macroevolution: (Default)
[personal profile] macroevolution
 Процессы самоорганизации в онтогенезе многоклеточных: опыт имитационного моделирования.
Доклад на семинаре «Вопросы эволюции» 20.05.2011
М.А.Марков, А.В.Марков

На сегодня у меня было запланировано отрецензировать 1 статью и 1 автореферат. Как-то быстро управился, осталось "лишних" 2 часа, вот и решил выложить доклад.

А вот видео

Date: 2011-05-24 07:14 am (UTC)
From: [identity profile] wormball.livejournal.com
Касаемо увеличения скорости работы программы у меня следующие предположения (исходников я не видел, но что-то мне подсказывает):

- Можно делать визуализацию не каждый шаг, а, скажем, раз в 100 шагов.

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

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

И по поводу языка поведения клетки. Я так понял, вы просто пишете программу на С++ и ничтоже сумняшеся компилируете её визуальной студией. Это удобно и быстро, но, как вы сами заметили, почти несовместимо с автоматическим мутагенезом. Я бы на вашем месте сделал как в генетическом программировании - программа клетки представляется деревом, в узлах которого условия и действия. Тогда мутагенез будет изменением части узлов, а кроссинговер - обменом частью поддеревьев. А в текстовом виде можно записывать, например, в Лисп-подобной нотации.
Page generated Aug. 29th, 2025 11:50 pm
Powered by Dreamwidth Studios