shvarz: (Default)
[personal profile] shvarz
Всевозможные увлечения, проекты, и игрушки имеют свойство захватывать внимание на некоторый срок, но потом надоедать. У меня есть одно увлечение, которое я переодически забрасываю, но потом опять к нему возвращаюсь, и так вот уже 11 лет.

Программа Darwinbots - симулятор биологической эволюции. Я о ней писал уже здесь и потом еще здесь. Вкратце - это лучший из известных мне симуляторов эволюции. Вернее даже так: программ симулирует биологические процессы, но вот эволюция внутри нее не симулируется, а действительно происходит, со всеми полагающимися свойствами - случайными мутациями, естественным отбором, генетическим дрейфом, непредсказуемостью решений, генетическим мусором, эволюцией новых функций с нуля и т.п.

Концепция этого симулятора отличная, но вот сама программа это "ужос". Она писалась на протяжении многих лет самыми разными людьми, которые постепенно добавляли к ней все новые и новые фичи, не особо заботясь об удобстве пользователей. Это программа для небольшой кучки фанатов, которым не лень перелопатить кучу описаний, разобраться самим в том для чего описаний нет, и найти способы обходить баги (которых в программе изрядно).

Я ее пару дней назад загрузил после несколько-летнего перерыва и начал гонять, но даже мне, опытному пользователю, в ней непросто разобраться.

Поэтому вопрос к залу: А нет желающих попробовать эту программу привести хотя бы в более-менее божеский вид? Я программировать не умею, но могу помочь с объяснениями того, как устроены все функции и для чего они нужны. Все исходники есть и вроде как в них не так уж трудно разобраться (это мне сказал человек, который сам одно время работал над этой программой). К сожалению, программа написана на Visual Basic, а это (насколько я понимаю) мертвый уже язык (но может остались старожилы).
Альтернативный вариант для особых энтузиастов: Взять основную концепцию симулятора и написать схожую программу с нуля.

Date: 2014-09-19 08:26 pm (UTC)
From: [identity profile] kiselev-dv.livejournal.com
А где исходники посмотреть можно?

(no subject)

From: [identity profile] friendlystrnger.livejournal.com - Date: 2014-09-19 08:50 pm (UTC) - Expand

(no subject)

From: [identity profile] paul kononov - Date: 2014-09-20 02:11 am (UTC) - Expand

(no subject)

From: [identity profile] selfmade.livejournal.com - Date: 2014-09-21 03:41 am (UTC) - Expand

(no subject)

From: [identity profile] paul kononov - Date: 2014-09-23 03:57 am (UTC) - Expand

Date: 2014-09-19 08:47 pm (UTC)
From: [identity profile] mudak.livejournal.com
они ж там вроде версию 3 на C# пишут http://wiki.darwinbots.com/w/Darwinbots_3

Date: 2014-09-19 09:52 pm (UTC)
From: [identity profile] shvarz.livejournal.com
Это один человек уже несколько лет работает и самое раннее, когда она ожидается - через год.

(no subject)

From: [identity profile] 3seemingmonkeys.livejournal.com - Date: 2014-09-20 06:40 am (UTC) - Expand

(no subject)

From: [identity profile] shvarz.livejournal.com - Date: 2014-09-20 04:20 pm (UTC) - Expand

(no subject)

From: [identity profile] gegmopo4.livejournal.com - Date: 2014-09-20 06:01 pm (UTC) - Expand

Date: 2014-09-19 08:54 pm (UTC)
From: [identity profile] friendlystrnger.livejournal.com
>Все исходники есть и вроде как в них не так уж трудно разобраться
в каждой строчке-то нетрудно, но что бы нормально переписать надо понимать вообще всё что, зачем и к чему...

"Взять основную концепцию симулятора и написать схожую программу с нуля"
А есть описание концепции? Чтоб оценить размах так сказать :)


p.s. в жабаскрипт ее переписать надо, чтоб в броузере запускать ;)
(deleted comment)

(no subject)

From: [identity profile] kiselev-dv.livejournal.com - Date: 2014-09-20 08:05 am (UTC) - Expand

Date: 2014-09-20 12:32 am (UTC)
From: [identity profile] shvarz.livejournal.com
Ммм, описание концепции. Частично рассказано в постах по ссылкам в тексте.
В общем, идея в том, что свойства каждого организма (его поведение, способности, репродуктивная стратегия и т.д.) определяются программой. Эта программа и есть мутируемая ДНК. Она может быть очень простой, а может быть очень сложной. Программа на входе берет параметры, поставляемые "органами чувств", а выдает на выходе действия на следующий ход (это все Markov Chain). Программа написана на языке, который устроен так, что небольшие изменения (мутации) в программе как правило не ведут к ее полной и немедленной недееспособности (хотя могут), а часто лишь слегка ее изменяют.
Организмы эти забрасываются в "среду" и никто не определяет согласно каким свойствам эти организмы выживают или погибают, все происходит "естественно" - сумел оставить размножающееся потомство, значит преуспел. Это единственный критерий.
Разнообразие функций в программе позволяет создавать очень разные условия среды.
Насколько я понимаю, основное, что тормозит программу это необходимость прогонять для каждого из роботов индивидуально его "органы чувств", его программу, и его положение на следующий ход. Последнее особенно сложно, потому что эти организмы имеют разные размеры и массы, и приходится просчитывать как все эти "шарики" ведут себя в этаком виртуальном бильярде.
Edited Date: 2014-09-20 12:33 am (UTC)

(no subject)

From: [identity profile] paul kononov - Date: 2014-09-20 02:58 am (UTC) - Expand

(no subject)

From: [identity profile] obiwanus.livejournal.com - Date: 2014-09-20 04:07 am (UTC) - Expand

(no subject)

From: [identity profile] harmala.livejournal.com - Date: 2014-09-20 07:08 am (UTC) - Expand

(no subject)

From: [identity profile] obiwanus.livejournal.com - Date: 2014-09-20 07:11 am (UTC) - Expand

(no subject)

From: [identity profile] shvarz.livejournal.com - Date: 2014-09-20 04:22 pm (UTC) - Expand

(no subject)

From: [identity profile] paul kononov - Date: 2014-09-23 04:06 am (UTC) - Expand

(no subject)

From: [identity profile] obiwanus.livejournal.com - Date: 2014-09-23 04:29 am (UTC) - Expand

(no subject)

From: [identity profile] 3seemingmonkeys.livejournal.com - Date: 2014-09-20 06:42 am (UTC) - Expand

(no subject)

From: [identity profile] shvarz.livejournal.com - Date: 2014-09-20 04:30 pm (UTC) - Expand

(no subject)

From: [identity profile] paul kononov - Date: 2014-09-23 04:05 am (UTC) - Expand

(no subject)

From: [identity profile] friendlystrnger.livejournal.com - Date: 2014-09-20 11:35 pm (UTC) - Expand

(no subject)

From: [identity profile] Андрей Гаврилов - Date: 2014-11-03 01:00 pm (UTC) - Expand

(no subject)

From: [identity profile] shvarz.livejournal.com - Date: 2014-11-03 01:14 pm (UTC) - Expand

(no subject)

From: [identity profile] Андрей Гаврилов - Date: 2014-11-03 01:25 pm (UTC) - Expand

Date: 2014-09-20 02:15 am (UTC)
From: [identity profile] paul kononov (from livejournal.com)
There where several attempts to rewrite in Java over the years. Java is not optimized for performance. C/C# combination is optimized. Too bad it is a little over my head. Version 3 will be released sometime next year if everything goes well.

(no subject)

From: [identity profile] friendlystrnger.livejournal.com - Date: 2014-09-20 11:38 pm (UTC) - Expand

(no subject)

From: [identity profile] selfmade.livejournal.com - Date: 2014-09-21 03:47 am (UTC) - Expand

(no subject)

From: [identity profile] friendlystrnger.livejournal.com - Date: 2014-09-21 10:32 pm (UTC) - Expand

(no subject)

From: [identity profile] selfmade.livejournal.com - Date: 2014-09-22 12:19 am (UTC) - Expand

(no subject)

From: [identity profile] paul kononov - Date: 2014-09-23 04:12 am (UTC) - Expand

Date: 2014-09-19 08:55 pm (UTC)
From: [identity profile] ahiin.livejournal.com
А такую штуку видели?
http://ahiin.livejournal.com/97628.html

Гораздо проще устроено, но тоже весело.

Date: 2014-09-20 02:21 am (UTC)
From: [identity profile] paul kononov (from livejournal.com)
I have played with that program for a good three hours before. The physics model is very limited and even less biologically accurate then what we have. Also there is an external fitness function, we do not have one. Also, we simulate all or entities together and watch them evolve progressively. We do not have entities pre-generate at the beginning of the simulation. We have a true(ish) DNA that can be designed by a user as well as evolved by the program from nothingness.

(no subject)

From: [identity profile] ahiin.livejournal.com - Date: 2014-09-20 06:12 am (UTC) - Expand

(no subject)

From: [identity profile] paul kononov - Date: 2014-09-23 04:13 am (UTC) - Expand

Date: 2014-09-19 09:01 pm (UTC)
From: [identity profile] cema.livejournal.com
Well, they have a C# version and a C++ version, so all is swell.

I wish I had time to play with it. Maybe ask some students?

Date: 2014-09-20 02:22 am (UTC)
From: [identity profile] paul kononov (from livejournal.com)
All is well? vb6 is dead...
(deleted comment)

Date: 2014-09-20 02:46 am (UTC)
From: [identity profile] paul kononov (from livejournal.com)
Very well written comment :)

We have two svn sources one for the complete vb source, the other for the c# work in progress.
This program does not have to be object oriented as it is not. The only thing I need is stack tracing and parallel support.

I needed a project to learn on that I can actually comprehend. I got one. That does not necessarily make the design philosophy slow.

Date: 2014-09-20 01:35 am (UTC)
From: [identity profile] smalgin.livejournal.com
I will take a look. No promises though.
If i take it, I'll fork vb6 to my own repo and port it to csharp on my own. You will have to negotiate merging with original csharp branch, if that will be possible.
Again, no promises.

Date: 2014-09-20 02:07 am (UTC)
From: [identity profile] paul kononov (from livejournal.com)
Hello Yegor, thank you for the kind post, and for playing with the software again.

I added a couple warning to the program as requested. I also added a pretty new startup screen that does a small description for existing settings packs.

I would love to get more information from you as you reviewed the program recently. Contact me by email. And yes I do tend to obsess on this project a little. So I guess your post overall was appropriate. Did not get a reply from you in a while so starting looking for you online. :)

There is a difference between natively bypassing a bug, like turn off error checking. And actually fixing bugs. I have physically fixed about 10, 15 bugs so far trying to figure out what is actually wrong and not just hammering a fix in place. Also, no new features will be added at this point, so you may take that as good news.

I still hate how visual basic was murdered on me, I grew up on it.

Date: 2014-09-20 04:31 pm (UTC)
From: [identity profile] shvarz.livejournal.com
Looks like your email went into spam for some reason, I'll respond over the weekend.

Date: 2014-09-20 02:51 am (UTC)
From: [identity profile] vasja-iz-aa.livejournal.com
вот когда в следующей жизни рыбаком будут работать, я тогда обязательно в свободное время, для развлечения эту или другую какую программу перепишу, с Бейсика на Це. а нынче -- извините. слишком уж анекдот про станки на пляже напоминает

Date: 2014-09-20 09:28 am (UTC)
ext_605364: geg MOPO4 (geg_MOPO4)
From: [identity profile] gegmopo4.livejournal.com
А посмотрите-ка Biogenesis (http://biogenesis.sourceforge.net/).

Date: 2014-09-20 04:45 pm (UTC)
From: [identity profile] shvarz.livejournal.com
Забавно, но намного тривиальней Darwinbots. Пространство возможных геномов довольно узкое и возможные поведения тоже ограничены тем, что жестко закодировано в программе.
В Darwinbots пространство возможных геномов бесконечно, а выбор поведений тоже огромен. Он настолько слабо определяется пользователем, что бывали случаи, когда организмы эволюционировали так, что начинали эксплуатировать баги в программе.

Date: 2014-09-20 04:47 pm (UTC)
From: [identity profile] shvarz.livejournal.com
Но есть и определенные плюсы, конечно. Куда более интересно для рядового пользователя, визуально и в виде игрушки.

Date: 2014-09-23 02:58 pm (UTC)
From: [identity profile] paul kononov (from livejournal.com)
I am beginning to get a feeling of an email compromise. Just bump me here when you figure stuff out so I will know. As always, thank you.

Date: 2014-09-28 05:15 pm (UTC)
From: [identity profile] Анна Кравченко (from livejournal.com)
а можно дурацкий комментарий?
1.оцените сколько будет переписать проект у кого-нибудь.
2. напишите презентацию для биологов.
3. Выложите на кикстартере и соберите деньги.
ежели совет не понравился.. извиняйте..
Edited Date: 2014-09-28 05:15 pm (UTC)

Date: 2014-11-30 03:15 pm (UTC)
From: [identity profile] paul kononov (from livejournal.com)
Sovet ponravelsa. Yea tak e zdelau. Ony menia tam prosto dobevate.

Date: 2014-11-30 03:21 pm (UTC)
From: [identity profile] paul kononov (from livejournal.com)
Nu wot Yegor, bole menya opesal. Tepery nedo zdelat verseu bez bagow. Bage ot nelegalnogo vzlomaneo archetecture.

March 2022

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 24th, 2026 01:26 am
Powered by Dreamwidth Studios