| текст программы |
Feb. 26th, 2007|11:46 am |
Вот текст программы на бейсике с комментариями:
10 REM Модель генетической эволюции - одномерный клеточный автомат GEMOCA 15 REM Дима Даннер, 2007
20 REM объявление и установка параметров (см.описание модели) 22 coevol=0.02: REM коэффициент эволюции 25 cell=0: REM текущая клетка 30 color=0: colors=1: REM параметры текущего цвета и сложности программы 40 noise=0.1: REM физическая вероятность ошибки 50 cycle=0: REM счетчик циклов 60 repro=0: REM счетчик успешных воспроизведений 71 error=0: REM флаг ошибки 80 corepro=0: REM коэффициент воспроизведения 85 REM здесь обявляются массивы для сбора статистики
90 REM ** ГЛАВНЫЙ ЦИКЛ ** 95 REM ВОСПРОИЗВЕДЕНИЕ 100 cycle=cycle+1 110 color=color+1: IF color>colors THEN color=1: error=0: REM следующий цвет 120 x=RND: IF x[ Error: Irreparable invalid markup ('<noise [...] воспроизведение>') in entry. Owner must fix manually. Raw contents below.] Вот текст программы на бейсике с комментариями:
10 REM Модель генетической эволюции - одномерный клеточный автомат GEMOCA 15 REM Дима Даннер, 2007
20 REM объявление и установка параметров (см.описание модели) 22 coevol=0.02: REM коэффициент эволюции 25 cell=0: REM текущая клетка 30 color=0: colors=1: REM параметры текущего цвета и сложности программы 40 noise=0.1: REM физическая вероятность ошибки 50 cycle=0: REM счетчик циклов 60 repro=0: REM счетчик успешных воспроизведений 71 error=0: REM флаг ошибки 80 corepro=0: REM коэффициент воспроизведения 85 REM здесь обявляются массивы для сбора статистики
90 REM ** ГЛАВНЫЙ ЦИКЛ ** 95 REM ВОСПРОИЗВЕДЕНИЕ 100 cycle=cycle+1 110 color=color+1: IF color>colors THEN color=1: error=0: REM следующий цвет 120 x=RND: IF x<noise THEN error=1: REM ошибка с вероятностью noise 130 cell=color: IF error=1 THEN cell=INT (RND*colors)+1: color=cell 140 IF color=colors AND error=0 THEN repro=repro+1: REM успешное воспроизведение 146 LET corepro=repro/cycle: REM подсчет коэффициента воспроизведения
147 REM МУТАЦИЯ (см. описание модели) 150 LET x=RND: REM проверка условия усложнения программы 160 IF x<coevol/4 AND corepro>0.5 THEN colors=colors+1: REM усложнение программы 170 IF corepro<0.5-(colors-1)*coevol THEN colors=colors-1: REM упрощение программы - отбор 180 IF colors=0 THEN colors=1
185 REM ** КОНЕЦ ГЛАВНОГО ЦИКЛА **
186 REM ВЫХОДЫ ИЗ ГЛАВНОГО ЦИКЛА 190 IF cycle/20000<>INT (cycle/20000) THEN GO TO 90: REM дискретизация для сбора статистики 195 REM после этой строки идет сбор статистики, показ промежуточного состояния, 196 REM изменение вероятности ошибки итд 500 IF cycle<4000000 THEN GO TO 90: REM выход из главного цикла, в данном случае 4 млн. попыток 501 REM КОНЕЦ РАСЧЕТОВ
510 REM здесь идет подсчет окончательной статистики, ее показ и сохранение 520 REM КОНЕЦ ПРОГРАММЫ |
|