Кому интересно может прочитать об генетике в схемотехнике в первоисточнике
Evolutionary Electronics At Sussex
Artificial evolution, such as a Genetic Algorithm, has many promising applications in electronics. These range from using it as an optimisation technique as part of a fairly conventional VLSI synthesis pathway, through to using it to design automatically circuits that could be of a very different nature to the way electronics is normally envisaged. We also apply our philosophy of artificial evolution to other domains of design: we seek to find ways of allowing evolution to explore areas of the "design space" not normally accessible.
Автор: Киви Берд
Ближе к природе
В научных и инженерных кругах примерно с 1960-х годов циркулирует идея, что электроника могла бы эволюционировать к более совершенным компьютерам или роботам подобно тому, как в природе эволюционное развитие привело к появлению человека и других сложных биологических систем.
Биология вообще служит для компьютерщиков источником вдохновения. Опираясь на модели мозга, они создали нейронные сети, особенно хорошо проявившие себя в задачах распознавания образов - от рукописного текста до отпечатков пальцев. На основе принципов генетики были разработаны методы скрещивания и мутации программ, что позволило программам-потомкам конкурировать друг с другом в образовании «особей, наиболее приспособленных» для решения некоей конкретной задачи. Такого рода генетические алгоритмы успешно используются при эволюционной разработке программ во множестве самых разнообразных областей, будь то создание произведений искусства или выбор наиболее перспективных акций на фондовой бирже.
Однако в начале 1990-х годов у молодого англичанина Адриана Томпсона (Adrian Thompson), в ту пору аспиранта и сотрудника Центра вычислительной науки и роботехники Сассекского университета, сложилось убеждение, что таким технологиям не хватает одного весьма важного качества. Все они были слишком жестко ограничены правилами, изначально предложенными конструкторами чипов и разработчиками программного обеспечения. Например, поведение живых клеток-нейронов по сути своей неотделимо от особенностей биохимических процессов, протекающих в них. А вот для чипа, моделирующего искусственную нейросеть, абсолютно безразлично, из какого материала состоит микросхема, поскольку вся конструкция функционирует в цифровом режиме.
Цифровые компьютеры представляют любые данные в виде последовательностей единиц и нулей, хранящихся в ячейках памяти в виде «вкл.» или «выкл.». Поэтому и транзисторы в чипах работают как переключатели - они либо «включают», либо «выключают» цепь. Но ведь по внутренней своей природе транзисторы не цифровые, а аналоговые устройства. Между «вкл.» и «выкл.» они последовательно проходят через разные состояния и в этих интервалах могут, к примеру, работать как усилители. Однако конструкторы компьютеров такие свойства транзисторов обычно игнорируют и практически не используют. Аналогичным образом и программисты ограничены цифровой природой компьютеров. Программа - последовательность логических инструкций, которые машина применяет к единицам и нулям по мере того, как те проходят через ее схемы. А потому эволюция, что моделируется генетическими алгоритмами, происходит лишь в крайне искусственном мире, порожденном языком программирования.
Что же произойдет (задался однажды вопросом Томпсон), если бы стало возможным снять цифровые ограничения и применить эволюционные принципы природы непосредственно к аппаратному обеспечению? Сумеет ли эволюция воспользоваться всеми электронными свойствами кремниевых компонент таким же образом, как она использует биомолекулярные структуры? Удастся ли и здесь эволюционными методами создавать новые конструкции? Ответить на все эти вопросы можно было лишь в том случае, если бы удалось найти способ объединения «влажных» процессов эволюции с «сухим» миром кремниевых чипов.
Как это нередко бывает в истории научных исследований, вместе с правильно поставленным вопросом довольно скоро появился и способ его решения. Именно в это время начала обретать популярность новая технология - микросхемы FPGA, созданные фирмой Xilinx, или Field-Programmable Gate Array - вентильные матрицы с перепрограммируемой пользователем логикой. По всей видимости, впервые конструктивную мысль об использовании микросхем FPGA для «эволюции хардвера» высказал в 1992 году ученый Хьюго де Гарис (Hugo de Garis) - весьма экстравагантный персонаж, одновременно стяжавший славу визионера, разработчика необычных «самообучающихся искусственных мозгов» и проповедника крайне эксцентричных идей «компьютерного космизма». Независимо от него примерно в то же самое время на чипы FPGA вышел и сугубо прагматичный Томпсон, которого интересовала вполне практическая задача - новые методы конструирования электронных схем.
Чудо превращения
Понятно, с таким устройством оказывается несложным организовать и моделирование эволюции при помощи генетического алгоритма. Для этого создается некая популяция конструкций - или попросту схем соединения элементарных ячеек. Каждая «особь» по очереди испытывается на приспособленность (fitness) к выполнению поставленной задачи, после чего наименее приспособленные отсеиваются, оставшиеся скрещиваются, мутируют, ну, и так далее, как это принято в генетических алгоритмах. Правда, если FPGA работает в стандартном режиме цифрового устройства, никакого принципиального отличия от обычного компьютерного моделирования мы здесь не получим. Революционность идеи Томпсона состояла в том, что для получения радикально новых результатов необходимо снять традиционные ограничения, то есть, по сути дела, нарушить «инструкцию по эксплуатации» чипа FPGA, позволив ему функционировать как аналоговому устройству. Прежде всего, Томпсон убрал генератор тактовой частоты, чтобы динамика системы из дискретной стала непрерывной, более напоминающей биологическую. И уже в первых экспериментах удалось получить крайне интересные результаты.
Исследователи поставили перед системой задачу эволюционного выведения схемы, способной различать два сигнала разной частоты - 1 кГц и 10 кГц. Для этого в FPGA выделили совсем небольшой участок - матрицу размером 10х10 ячеек.
Вполне очевидным было лишь одно - FPGA работал в аналоговой манере. Вплоть до финальной версии схемы порождались аналоговые волновые сигналы, а не строгий дискретный выход в виде напряжения 0 или 5 Вольт. Причем конструкция найденного решения оказалась в высшей степени интригующей. Из выделенных изначально 100 ячеек в итоге для функционирования схемы оказалось задействовано лишь 32. Остальные можно было убирать, что никак не меняло работу конфигурации. При этом 5 ячеек из оставшихся 32 вообще не выполняли никаких логических функций, способных влиять на выход (на рисунке они затенены серым цветом).
Пол Лэйзел и его коллега Джон Берд (Jon Bird) создавали эволюционную компьютерную программу, чтобы несложная электронная схема самостоятельно модифицировала себя в осциллятор, т. е. устройство, дающее на выходе качественный периодический сигнал синусоидальной формы. Схема, на которой проводились эксперименты, состояла из 10 транзисторов, чьи межсоединения можно программно перекоммутировать самыми разными способами. Каждая такая коммутация рассматривалась алгоритмом в качестве «гена», и после нескольких тысяч мутаций электронная схема действительно преобразовала себя в осциллятор с выходным сигналом правильной формы. Однако при анализе результата быстро обнаружился факт жульничества - на самом деле схема не генерировала синусоиду самостоятельно, а брала сигнал от излучений стоявшего поблизости компьютера, выдавая его на выходе как собственный.
Больше всего поражал тот факт, что для работы радиоприемника-самородка требовалась антенна, а такого рода деталь отсутствовала в экспериментальной схеме в принципе. Поскольку в данном случае электроника допускала проведение более тщательного дознания, было установлено, что роль антенны взяла на себя длинная цепь в системной плате. Но то, каким именно образом эволюционировавшая схема научилась пользоваться этой цепью как антенной, так и осталось загадкой. Очевидно, неисповедимые пути случайных мутаций вывели на «гены» приема эфирных радиочастот, после чего те и закрепились в «генотипе».
Помимо очень сильно разветвившейся задачи одного рода, обрисовалась и другая серьезная проблема. Электронные схемы должны работать в достаточно широком температурном диапазоне. Так, для обычных микропроцессоров рабочий диапазон простирается примерно от -20 до +80 по Цельсию. Эволюционные же схемы имеют тенденцию более-менее прилично работать лишь в узком интервале порядка 10 градусов в диапазоне комнатной температуры в лаборатории. Скорее всего, это связано с тем, что температура влияет на емкость, сопротивление и другие электрические характеристики компонент. Но каковы бы ни были причины, температурная чувствительность - серьезный недостаток схемы общего назначения, которая в идеале всегда должна быть дешевым и неприхотливым устройством, потребляющим минимум энергии и не требующим дополнительных термоконтроллеров. Для решения проблемы на помощь опять были призваны эволюционные алгоритмы, позволившие, помимо прочего, сделать еще одно большое открытие в области разработки новых конструкций: экспериментальным путем установлена важнейшая роль так называемой «нейтральной эволюции».
Исследователям было ясно, что при отыскании стабильного решения для функционирования в разных условиях требуется множество чипов, одновременно работающих в разных условиях: один, грубо говоря, в печке, другой - в холодильнике и т. д. При этом чипы должны быть электрически изолированы друг от друга для предотвращения взаимного влияния. Столь серьезные ограничивающие факторы означают, что наиболее разумной оказывается простейшая эволюционная стратегия, когда в каждый момент времени происходит лишь единственная мутация, а не перестройка всей конфигурации системы. Если единственная мутация вызывает снижение «пригодности», то ее отвергают, в противном же случае - принимают. По сути своей это просто алгоритм случайного поиска экстремума функции с допущением нейтральных ходов, которые, как выяснилось, являются жизненно важным компонентом эволюции.
Построенный эксперимент закончился вполне реальным успехом, когда схеме удалось найти надежную «всепогодную» конструкцию, которая не могла быть получена на основе общепринятых принципов разработки. Каждый раз, когда поиск заводил систему в зону локального оптимума и, казалось, нет никаких возможностей для совершенствования, схеме позволяли пройти через тысячи нейтральных мутаций, не повышающих пригодность, но слегка меняющих состав компонент. После чего находилась единственная мутация, приводящая к новому заметному улучшению параметров. И так повторялось несколько раз. Нейтральный дрейф уводил от схемы, которую невозможно было усовершенствовать изменением единственного гена и, в конечном счете, приводил к отысканию положительной мутации.
Формат этой статьи позволил рассказать лишь о небольшой части интереснейших работ, ведущихся сегодня в области эволюции электроники научно-исследовательскими лабораториями мира. По данной теме уже несколько лет устраиваются ежегодные международные семинары и конференции, спонсорами исследований выступают ведущие компании телекоммуникационной и компьютерной индустрии, поскольку экспериментальные результаты и разработка теории эволюционных конструкций обещают вполне ощутимые практические выгоды. Поэтому вполне вероятно, что в обозримом будущем в наших сотовых телефонах, карманных компьютерах и другой микропроцессорной технике будут работать удивительные схемы, самостоятельно развившиеся в процессе «железной эволюции».