В случае с одной буквой (осмысленной!) имеем выбор из 4 вариантов - аденин, гуанин, цитозин и тимин.
Допустим это опе-ратор присвоения A=10, который появился у одной из 4 особей (случайно)
В случае с двумя буквами (осмысленными в их последовательности по производимому функционалу) имеем вероятность 1/4*1/4 для каждого конкретного варианта. Впрочем для двух букв все без исключения варианты являются осмысленными - уж очень маленькая последовательность.
Допустим в данном случае выбрали оператор присвоения, который появился у одной из 16 особей (случайно)
A=10
B=5
В случае с тремя буквами (осмысленными в их последовательности по производимому функционалу) имеем вероятность 1/4*1/4*1/4 для каждого конкретного варианта. И тут уже возникает интересный момент, что в этой ветке возможно только такая осмысленная программа
A=10
B=5
C=A-B, где оператор минус это и есть третья буква.
То есть на последовательности из трех букв мы имеем единственную рабочую последовательность с вероятностью существования 1/64, что равно 1/(4^n)
Данная программа появится у одной из 64 особей. Допустим за сто лет данные особи могли бы размножится, но вот прикол - эта программа им не дает ничего совершенно. Они просто не смогут размножиться, потому что преимуществ нет. Вероятность данных особей так и останется 1/64 вне зависимости от числа лет.
Мы рассмотрели все три последовательных буквы, а осмысленный функционал появляется только в наборе генов (сотня генов например). Этот набор дает преимущество только в законченном виде и не дает преимущества в промежуточном виде. А каждый ген это допустим 3000 букв. Получаем скромную вероятность, которая никак не повышается естественными отбором: 1/(4^300000). Попробуй написать такое число.
Думаю подобное объяснение способен понять человек, освоивший начала алгебры и логики.
0:42 14 Апрель 2013
coal
Старожил
сообщений 7133
422
Я еще когда в школе учился написал шахматную программу которая при том довольно неплохо играла и попутно досконально изучил многие переборные алгоритмы
Сдается мне, что ты хвастунишка )))
Если бы ты действительно написал такую программу - ты бы знал, что число переборов экспоненциально.
Но впрочем ты можешь подтвердить что ты правда писал такую программу или пробовал. Напиши критерии по которым ты оценивал какой следующий ход выбрать (оценочную функцию)
0:43 14 Апрель 2013
coal
Старожил
сообщений 7133
423
число переборов экспоненциально.
в смысле растет экспоненциально от глубины перебора. И что мощь современных компов позволяет перебирать только на 6-7 полных ходов. А на суперкомпе 9-10 полных ходов. Это соответствует 9 буквам ДНК.
0:46 14 Апрель 2013
coal
Старожил
сообщений 7133
424
Не девяти, прошу прощения. Лень считать точно - где-то 1000 букв ДНК, треть одного гена. Причем по сравнению с природными процессами данный расчет ускорен в миллионы раз, если не в миллиарды.
0:52 14 Апрель 2013
Deep_Thought
Старожил
сообщений 5595
425
coal, я еще понимаю твое неверие в то, что я материализовал щуку, но в то, что я написал выше – это уже слишком я оч скромный человек, иначе я б прямо сказал что я математический гений–вундеркинд, побеждавший в куче всяких олимпиад и т д. Касательно «я не знаю что перебор экспоненциален», это ты не въехал что я имел в виду, мне уж лень было объяснять. Минимаксная процедура, альфа–бета процедура (позволяет сократить глубину перебора вдвое), и форсированый вариант – это основное что используется
0:56 14 Апрель 2013
coal
Старожил
сообщений 7133
426
Я знаю и что такое минимакс, и что такое теория игр. Для вычисления минимакса обязательное требование - знать все варианты. В случае если ты выбираешь минимакс на каждом ходу - твоя программа сольется первокласснику, если вообще сможет играть разумно.
Просто напиши оценочную функцию по которой ведется отбор по минимаксу
0:58 14 Апрель 2013
coal
Старожил
сообщений 7133
427
Но пускай даже отбор ведется так - на каждом ходу. Я выше написал, что только законченный код ведет к эволюционному преимуществу. Никакой промежуточный не ведет.
Вот на примере шахматной программы. Ты написал один оператор своей будущей программы. Как это может быть отобрано эволюцией? Никак, ноль преимуществ.
Написал второй оператор своей будущей программы. Результат аналогичный.
И пока ты не напишешь последний, десятитысычный оператор - твоя программа не имеет эволюционного преимущества перед другими программами. Она просто не работает
1:06 14 Апрель 2013
Deep_Thought
Старожил
сообщений 5595
428
coal пишет:
Я знаю и что такое минимакс, и что такое теория игр. Для вычисления минимакса обязательное требование - знать все варианты. В случае если ты выбираешь минимакс на каждом ходу - твоя программа сольется первокласснику, если вообще сможет играть разумно.
Просто напиши оценочную функцию по которой ведется отбор по минимаксу
Материальная оценка позиции + позиционная. Материальная пешка=1, конь=слон=3, ладья=5, ферзь=9, позиционная – свободные вертикали, диагонали, безопасность короля и т д
«В случае если ты выбираешь минимакс на каждом ходу - твоя программа сольется первокласснику, если вообще сможет играть разумно» – ты сам.понял чо сказал? ))
1:08 14 Апрель 2013
Pivovan
Старожил
сообщений 7938
429
coal пишет:
Но пускай даже отбор ведется так - на каждом ходу. Я выше написал, что только законченный код ведет к эволюционному преимуществу. Никакой промежуточный не ведет.
Вот на примере шахматной программы. Ты написал один оператор своей будущей программы. Как это может быть отобрано эволюцией? Никак, ноль преимуществ.
Написал второй оператор своей будущей программы. Результат аналогичный.
И пока ты не напишешь последний, десятитысычный оператор - твоя программа не имеет эволюционного преимущества перед другими программами. Она просто не работает
так ведь Дип еще скажет, что написание, этой самой, самой программы не имеет цели…
1:10 14 Апрель 2013
coal
Старожил
сообщений 7133
430
Материальная оценка позиции + позиционная. Материальная пешка=1, конь=слон=3, ладья=5, ферзь=9, позиционная – свободные вертикали, диагонали, безопасность короля и т д
1. Сначала посмотрим на качество твоей программы: ты используешь отсечение плохих вариантов на каждом ходу, значит твоя программа просто непособна жертвовать. И сольется первокласснику, который это делать умеет.
2. Само по себе отсечение плохих вариантов исключает случайность и подразумевает разумный отбор. Природа сама по себе не умеет отсекать варианты
1:12 14 Апрель 2013
speculum
Старожил
сообщений 3216
431
1:13 14 Апрель 2013
Deep_Thought
Старожил
сообщений 5595
432
И пока ты не напишешь последний, десятитысычный оператор - твоя программа не имеет эволюционного преимущества перед другими программами. Она просто не работает
Программа это одно, а жизнь другое. Если в гене ошибка, то получается мутант. Мутант передает свои гены потомкам. Если эти мутанты оказались круче не–мутантов, то по закону естественного отбора они вытесняют не–мутантов. Так и образуются новые виды. Чо тебе не нравится–то??
1:19 14 Апрель 2013
coal
Старожил
сообщений 7133
433
Программа это одно, а жизнь другое. Если в гене ошибка, то получается мутант. Мутант передает свои гены потомкам. Если эти мутанты оказались круче не–мутантов, то по закону естественного отбора они вытесняют не–мутантов. Так и образуются новые виды. Чо тебе не нравится–то??
Ну так я уже три раза написал. Эволюционное преимущество в виде мутации - это не изменение одной буквы, а изменение набора букв. Ну пускай хотя бы одного осмысленного гена. Вероятность такого изменения разово равна 4^3000. Напомню, что число 10^100 называется гуголом и является настолько большим, что ему просто нет сопоставлений во всей вселенной, даже по числу атомов.
Но тут такой нюанс, что вероятность изменения одного гена у человека равна один раз в 10 тысяч лет (ну так вот определили генетики). А вероятность, что изменится один ген из набора 20 соседних - пятьсот лет. То есть раз в пятьсот лет разово происходит положительная мутация, ведущая к улучшению функционала, а не к полной поломке его. Но мы же выше видели какова реальная вероятность этого (для ее проявления нужно число лет, которое просто не написать словом)
Если не очень понятно про поломку - возьми свою шахматную программу. Случайным образом поменяй один оператор. Какова вероятность, что твоя программа улучшится?
Рекомендовано к прочтению
1:23 14 Апрель 2013
Deep_Thought
Старожил
сообщений 5595
434
так ведь Дип еще скажет, что написание, этой самой, самой программы не имеет цели…
Имеет, дык ведь я и не сравниваю эволюцию с программированием, это Коал сравнивает
1. Сначала посмотрим на качество твоей программы: ты используешь отсечение плохих вариантов на каждом ходу, значит твоя программа просто непособна жертвовать. И сольется первокласснику, который это делать умеет.
2. Само по себе отсечение плохих вариантов исключает случайность и подразумевает разумный отбор. Природа сама по себе не умеет отсекать варианты
Отсечение плохих вариантов на каждом ходу (точнее тех, которые заведомо хуже ранее найденного) производит альфа–бета процедура а не минимаксная процедура и производит она это с учетом всей глубины перебора, поэтом на способность жертвовать оно никак не влияет. Прямая материально–позиционная оценка позиции производится только на самом дальнем ходе перебора, за исключением матрвых ситуаций.
Природа отсекает плохие варианты просто уничтожая нежизнеспособные виды
1:31 14 Апрель 2013
coal
Старожил
сообщений 7133
435
производит альфа–бета процедура а не минимаксная процедура и производит она это с учетом всей глубины перебора
Ну так общее число перебранных вариантов в это случае - степенная функция от глубины перебора. Если на каждом ходу возможно 20 вариантов, то на глубине 6 будет перебрано 20^6 вариантов, а не 20*6 как ты почему-то пытаешься доказать, а потом сам себя опровергаешь