По-английски об этом можно прочитать тут:
Evolvable hardware
On the Origin of Circuits
В чём была суть эксперимента? Итак, у нас есть чип, матрица из программируемых ячеек, 64 x 64. Для опыта использовался только один угол матрицы, квадрат из ста ячеек:

Условная схема отдельной ячейки:

Итак, каждая ячейка может получать сигнал с одной из четырёх сторон (по сторонам света - N, S, E, W) и передавать его дальше. Она также может передавать функцию (F) - результат логической операции над одним, двумя или тремя сигналами. Например, слева и справа пришло по "1", передаём вниз "1", слева пришла "1", но справа "0", передаём вниз "0". Поведение каждой ячейки задаётся отдельной программой - что передавать, как и куда. Естественно, можно настроить ячейку так, чтобы она всегда выдавала одно и то же значение, независимо от того, какой сигнал получен.
Исследователь сформулировал задачу - система из ста ячеек и логических вентилей-переключателей должна "научиться" отличать поступающий на вход (IN) сигнал частотой в 1 герц от сигнала частотой 10 герц. Не используя встроенный таймер! В идеале, система должна была выдавать на выход (OUT) напряжение в 5 вольт, если "слышала" 10 герц, и 0 вольт в остальных случаях.
Можете представить, как эту задачу решал бы обычный инженер? Есть сто программируемых ячеек, фиксированный вход и выход, нужно объяснить системе разницу между "бип, бип" и "бип-бип-бип", таймера нет...
А Адриан Томпсон просто сгенерировал пятьдесят программ с инструкциями для каждой конкретной ячейки. Программы представляли собой случайные последовательности нулей и единиц, длинной в 1800 бит. Эти программы стали "отдельными особями в популяции".
Каждую программу последовательно загружали на реальный чип и тестировали по заявленным условиям. Затем по специальному алгоритму определялось, кто из "участников" лучше всего справился с задачей. После этого создавалось следующее поколение программ - программа-победитель переходила в следующий круг без изменений, остальные 49 "особей" производились от родителей предыдущего поколения, с учётом определённого процента случайных мутаций в коде. Опять же, по параметрам эксперимента, программа-победитель всегда оставляла в два раза больше потомков, чем программа, оказавшаяся в середине рейтинга. (Следовательно, плохо приспособленные вообще теряли шанс на размножение, поскольку размеры популяции не менялись.)
И так несколько тысяч поколений.
Понятно, что первые поколения были "никакими", ведь их поведением управлял случайно набранный код. Победителями становились системы, отвечавшие на внешние сигналы неизменным "белым шумом" - в конце концов, любая активность лучше, чем полное отсутствие признаков жизни. Но затем количество начало перерастать в качество...
Слева указан номер поколения и реакция его лучшего представителя на поступающий сигнал:

В начале сплошной "белый шум".
Потом победной адаптацией стала способность передавать полученный сигнал на выход, так как здесь уже присутствует разная реакция на разные частоты.
В результате дальнейшего отбора системы научились поднимать напряжение в одном случае и сбрасывать его в другом - хотя и не так, как это требовалось.
Наконец, в результате эволюционного скачка, лучшим представителям популяции удалось решить задачу - они стабильно выдавали 5 вольт в ответ на десять герц, и ноль в ответ на частоту в 1 герц.
Томпсон провёл "вскрытие" победителя, и вот что он обнаружил (за вычетом неработающих и замкнутых на себя ячеек):

Куча мусора, куча линий, ведущих в никуда или пытающихся принять сигнал из ниоткуда - но система работала!
Тогда он стал отключать ячейки, по одной за раз, проверяя, как это повлияет на поведение системы и её способность распознавать сигнал. Это позволило отделить необходимые элементы от случайных и ненужных. В итоге, получилось следующее:

21 ячейка - этого достаточно, чтобы система безошибочно распознавала частоты. Какой инженер смог бы сконструировать подобное? А ведь это устройство возникло из хаоса изначального кода, благодаря случайным мутациям и последующему отбору "сильнейших". Но самое интересное в схеме - ячейки, отмеченные серым цветом. Они закольцованы, замкнуты сами на себя, не получают никаких сигналов извне и ничего не передают. При этом Томпсон обнаружил, что если их отключить, производительность системы резко падает.
Это уже не кибернетика - это биология. Инженер, поясняет автор исследования, работает с абстрактной моделью, из которой убраны все избыточные параметры. Найдя решение в рамках модели, инженер затем пытается перенести его на реальный образец. А тут всё начиналось с реального образца - и эволюция использовала в своих целях свойства данного чипа. Свойства, с точки зрения инженера, неправильные - цепочки сигналов переплетены так, что они начинают непосредственно влиять друг на друга. Возникают паразитические токи, случайные скачки напряжения, неправильные срабатывания логических переключателей - словом, всё то, чего надо избегать при создании подобных схем.
В результате, система из цифровой превращается в аналоговую, небольшие заводские дефекты становятся важными рабочими элементами. В конце концов, "греющие" чип ячейки тоже оказываются нужными, хотя с точки зрения математической логики они никак не могут влиять на состояние системы, ибо никуда не подключены.
Кстати, этим примером можно проиллюстрировать хроническую ошибку наивного социализма 20 века. "А что это за штука? А откуда она взялась в обществе - и зачем она вообще нужна? Она ведь ни на что не влияет! А давайте её с корнем уничтожим, как устаревшую и неправильную! Мы ведь должны перестроить общество по идеальной схеме, опираясь на чистый разум! ...Что, система стала работать хуже? Это заговор врагов!"
Да, свой эксперимент автор продолжил следующим образом. Сначала он доказал, что найденное слепой эволюцией решение работает только в узком диапазоне температур - холодный воздух из вентилятора или горячий воздух из фена выбивали систему из колеи. Понятно, почему - изменение температуры влияло на скорость прохождения сигнала, а внутреннего таймера, как я уже сказал, у системы не было.
Во-вторых, он перенёс программы на другую часть чипа - и выяснилось, что текущий чемпион на новом месте стал работать хуже. Его адаптации были рассчитаны на конкретный квадрат 10 на 10 ячеек, расположенный в конкретном месте конкретного чипа. Но зато в популяции оказались особи, которые на новом месте стали работать лучше бывшего чемпиона. А ещё через пару сотен поколений вся популяция подтянулась к прежнему высокому уровню, но уже на новом участке.
Не знаю, по-моему, это потрясающе. Ну и вывод автора: "Благодаря эволюции можно более полно исследовать пространство возможных решений. Значительная часть этого пространства недостижима обычными методами проектирования... Эволюция способна найти решение, которое будет более эффективно использовать доступные ресурсы, обладать более сложной структурой, демонстрировать динамическое поведение и учитывать особенности среды, в которой предстоит работать".
Update:
November 22 2011, 04:11:35 UTC 6 months ago
Удивлен
Не то что бы я не слышал про программируемые схемы, но тут - прямо таки фундаментальный "задел" для саморазвития в будущем вычислительной техники.В принципе если развить мысль - такое "эволюционное развитие" позволяет сделать самодостаточно эволюционирующих роботов.
November 22 2011, 10:09:05 UTC 6 months ago
Re: Удивлен
Оно позволяет сделать робота, который не будет работать =). То, что схема перестала работать от нагрева - заложено изначально.А за исключением этого косяка - ничего нового...
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
November 22 2011, 04:29:44 UTC 6 months ago
Чтобы решить задачу измерения частоты(времени) НЕОБХОДИМА мера частоты или времени. Единица. Опорный сигнал, камертон, кварц, колебательный контур, RC цепочка etc. В данном исследовании камертон был исключен сознательно (а отнюдь не по недомыслию = наивно). Исследователи хотели посмотреть, будут ли задействованы недокументированые особенности (сопротивления утечки, паразитные емкости), с которыми у инженеров-проектировщиков непримиримая борьба.
Очевидно, закрашенные серым ячейки входят в синтезированный из имеющегося субстрата эталон частоты на паразитной емкости и сопротивлении.
То есть по результатам опыта можно сделать вывод, что выращенный таким образом прибор существенно использует уникальные свойства субстрата и результат абсолютно непригоден для тиражирования и вообще нестабилен.
В другой серии опытов, система научилась ловить помеху - строчную развертку стоявшегов лаборатории монитора, то есть опорную частоту. Вырос радиоприемник.
November 22 2011, 09:55:59 UTC 6 months ago
Ваши контраргументы?
"В данном исследовании камертон был исключен сознательно (а отнюдь не по недомыслию = наивно)". Блин, я пишу, что таймер был выключен по условиям задачи.
"результат абсолютно непригоден для тиражирования и вообще нестабилен" - результат: решение задачи.
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
5 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
November 22 2011, 15:15:53 UTC 6 months ago
5 months ago
5 months ago
5 months ago
5 months ago
November 22 2011, 08:19:13 UTC 6 months ago
http://chelreglib.ru:6007/cgi-bin/irbis
November 25 2011, 15:57:27 UTC 6 months ago
Ваша ссылка не работает
Расскажите, что там было?November 22 2011, 10:07:42 UTC 6 months ago
1. Загнал микросхему в неустойчивый режим, где она не описывается спецификацией. (Таймера нет? Агащазблин! У него там не одна сотня времязадающих элементов - правда, с неизвестными параметрами)
2. С помощью эволюционного алгоритма добился результата (неудивительно: все и так в курсе, что эти алгоритмы работают... если бы была нормальная схема, где переходы между ячейками ведут себя известным образом - можно было бы добиваться результата на модели и получить схему проще и лучше, чем выдал его алгоритм. На выбор - или аналогично эволюционным алгоритмом, или просто подумать)
3. Нарисовал "схему прохождения сигнала", которая в силу пункта 1 отношения к реальности не имеет.
4. Убедился, что сделал хрень (в силу пункта 1 - небольшое изменение параметров рушит все).
В общем, инженер не стал бы так делать просто потому, что подход изначально порочный. Он добавил бы к схеме RC-цепочку или еще что, и получил бы нормальный результат (воспроизводящийся от микросхемы к микросхеме и не зависящий от температуры).
November 22 2011, 10:16:06 UTC 6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
November 22 2011, 11:02:48 UTC 6 months ago
6 months ago
6 months ago
November 22 2011, 11:09:37 UTC 6 months ago
Спасибо, что ты пересказал это более человеческим языком!
November 22 2011, 12:56:18 UTC 6 months ago
Сейчас добавлю апдейт.
6 months ago
6 months ago
November 23 2011, 10:38:12 UTC 6 months ago
А-а-а-а-а, я тащусь!
Наконец-то инженеры доказали существование души!И то, что она возникает естественным путем в ходе эволюции!!!
November 23 2011, 17:53:29 UTC 6 months ago
Все фигня.
У nature_wonder я грозился разгромить, желаете? :-)November 23 2011, 20:44:21 UTC 6 months ago
Re: Все фигня.
Я всегда готов выслушать чужое мнение. Если вас волнует алгоритм оценки "жизнеспособности", то вот он:6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
November 23 2011, 21:10:44 UTC 6 months ago
http://megaswf.com/serve/1031310/ - вот один из примеров его реализации) только учтите, залипнуть можно надолго))
November 27 2011, 08:48:02 UTC 6 months ago
November 24 2011, 09:27:16 UTC 6 months ago
November 25 2011, 08:46:38 UTC 6 months ago
November 25 2011, 13:41:15 UTC 6 months ago
А по существу вопроса - это всё конечно здорово, однако у слепого эволюционного подхода есть ряд существенных минусов перед подходом инженерным и разумным - во-первых, время на создание системы, для сложных систем очевидно гигантское, во-вторых, косность системы, т.е. наследование удачных когда-то решений и развитие новых решений на их основе, что на определённом этапе может создавать проблемы вплоть до неразрешимых и вообще решать задачу не оптимальным образом, а как получится.
Да и вообще не очень понятно, как обуздать эволюцию для решения практических задач, неразрешимых другими методами. Вот хотим мы например, создать ИИ эволюционно, но не на биологической основе, как мы сами, а на какой-то другой - сколько миллионов лет ждать придётся?
У Лема в Сумме технологий этот аспект довольно подробно разбирается.
насчёт выводов автора - сложность структуры это скорее недостаток, чем достоинство, надёжность падает. Да и многие свойства таких эволюционных объектов непредсказуемы - что тоже добавляет головной боли потенциальным разработчикам.
November 25 2011, 14:38:20 UTC 6 months ago
November 27 2011, 08:46:29 UTC 6 months ago
-сетке из функций задается какие-то изначальные значения
-через сетку прогоняют тонны входных данных, при этом значение селекторных функций "подкручивается"
-соответсвенно позитинвые результаты сохраняются, негативные отсеиваются.
-получается машина, которая умеет великолепно отвечать на один конкретно поставленный вопрос.
Но почему-то никто не увидел в этом "эволюции". Это селекция.
November 28 2011, 08:21:46 UTC 6 months ago
December 1 2011, 15:17:58 UTC 6 months ago
Лажа. Когда цель постоянное занчение, колебания на выходе - хуже, а не лучше!
January 7 2012, 04:57:49 UTC 4 months ago
мне (как дилетанту) остался неясен один момент:
=остальные 49 "особей" производились от родителей предыдущего поколения, с учётом определённого процента случайных мутаций в коде. =
если изначальный код программы был случайной генерацией нулей и единиц, то есть никакую логику в работу программы не закладывали, то как на основании кода "подающего признаки жизни" родителя генерировали (опять же случайным образом) его детей?