"Дмитрий Завалишин. рассуждения о роботостроении" - читать интересную книгу автора

пойдет. Тут вот какой фокус. Существуют и активно используются в создании тех же компьютеров интереснейшие микросхемы, называемые аббревиатурой
FPGA. Field Programmable Gate Array. Штука это очень простая. Внутри микросхемы находится вагон и маленькая тележка некоторых логических элементов,
никак между собой не соединенных. То есть соединить их возможно, но для этого в микросхему необходимо загрузить, что называется, прошивку - грубо говоря,
план соединений элементов между собой. Матрицы FPGA обладают всеми свойствами электронных схем, ибо ими и являются, но, в отличие от любой другой
микросхемы, они позволяют менять свои свойства произвольным образом. Вместо того, чтобы взять кучу мелких микросхем и спаять из них прибор, современный
разработчик может взять FPGA и указать ему, как соединить кусочки матрицы, чтобы получить искомое безо всякой пайки.

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

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

Снизойдем от абстракций к конкретике. Что сделал Томпсон? Ерунду, в общем. Он сделал устройство, которое отличает
произносимую в микрофон команду "Go" от команды "Stop". И все.

Фокус только в том, что устройство на самом деле создала эволюция, а не человек. Никто на свете не знает, как оно работает. Никто не проектировал его схемы.
Никто не в курсе, каковы даже физические основы ее функционирования!! Несмотря на то, что FPGA создана человеком и физика ее работы безусловно известна,
тот режим, в который загнала человечье изделие эволюция, неизвестен никому. Выяснилось это, когда Томпсон стал разбираться в творении природы,
эволюционно созданной прошивке для FPGA. Напомню, прошивка указывает матрице, в каком порядке и как соединить имеющиеся в ней логические цепи.
Поэтому казалось поначалу, что созданная эволюцией прошивка может быть проанализирована, и метод извлечен на свет Божий. Только вот хрен-то. Как это все
работает - ученые пока не поняли. Мало того, когда из схемы попытались исключить элементы, выход которых вообще никуда не подключен (и, следовательно,
они не могут влиять на работу цепей), прошивка перестала работать. Это не мистика, это просто межэлементные емкости и индуктивные связи. Одна фигня -
человек не умеет ими пользоваться. Это баснословно сложно, если танцевать от нашей любимой печки - от вычислений и традиционного проектирования. То есть
не просто сложно - это за гранью возможного. А для эволюции - пустяк. Она не знает, глупая, что человек не предполагал использовать межэлементные емкости
в работе схемы, и использует. Она все использует, что вообще есть в материале.

И последнее. По оценкам специалистов, чтобы сделать на базе FPGA систему распознавания этих самых двух слов известными методами, нужно использовать
микросхему, по крайней мере, на порядок больше. Так-то.



Подведя черту (см. строкой выше), сделаем первичные выводы.

Создана (поперта у Бога) методика создания программ или железок, выполняющих задачи неизвестным человеку образом. Видимого ограничения
сложности задач пока не... не видится, скажем так.
Методика требует на порядок меньшего числа компонент на данную задачу. И это еще при условии, что никто не задавался целью собственно
минимизации оного числа. Если такой целью задаться - нет гарантии, что не наскребем по сусекам еще порядок.
Решение задач с помощью указанной методики... не требует от человека наличия интеллекта.

Поясню последнее. Дело в том, что эволюционные методы в принципе не требуют от "пользователя" понимания сути процесса. Требуется только предоставить
системе предикат, позволяющий ей отличить хороший результат от плохого. Далее - вопрос времени и пригодности материала. Если данный материал (тварь
Божья с данной сложностью мозга, микросхема с данным количеством элементов, чорт лысый с данной степенью сложности) вообще способен эту задачу
решить - эволюция вытрясет из него решение. Кстати, чтобы научить FPGA отличать сигнал в 1 килогерц от сигнала в 10 килогерц, Томпсону потребовалось всего
4100 поколений эволюции.