Компьютеры на основе ДНК.
Весьма оригинальна и имеет огромные перспективы идея создания вычислительных устройств на базе ДНК. Родоначальником этого направления является Леонард Адлеман (один из создателей схемы RSA), решивший в 1994 г. с помощью «умных» молекул задачу о коммивояжере. Тогда ДНК-компьютер смог верно найти кратчайший путь для путешествия по семи городам. В этом году был достигнут куда больший успех: детищу Адлемана удалось справиться со сходной задачей, содержащей уже более миллиона вариантов.
Основная идея, которая используется при создании ДНК-компьютеров, следующая: для каждой из переменных (определяющих, например, путь) синтезируется уникальная последовательность оснований; затем, будучи смешаны в достаточном количестве (триллионы молекул), эти переменные соединяются в варианты. Исходя из правила больших чисел, всех вариантов будет приблизительно поровну. Остается только определить, в каком из них переменные не повторяются. Это самая сложная проблема, решаемая при помощи многоступенчатой экстракции, хроматографии и других химических методов.
Работа Адлемана, вызвав интерес как генетиков, так и микроэлектронщиков, стала поводом подумать о сотрудничестве различных, ранее обособленных групп ученых. Через несколько месяцев после публикации в журнале «Science» в Принстоне состоялась первая конференция по ДНК-компьютерам. Она собрала три сотни участников и, по сути, впервые заявила о новом направлении исследований. В работу включились специалисты ряда научных лабораторий. Они продолжили упражняться с логическими задачами, расширив их масштаб и спектр. Ученые из университета Висконсина экспериментировали с другим носителем генетической информации - одинарной спиралью РНК. С ее помощью они нашли решение шахматной головоломки, суть которой - разместить многочисленные фигуры коней на доске таким образом, чтобы ни один конь не угрожал другому. Проводились опыты с использованием молекул, закрепленных на поверхности золотой пластины, были предложены ДНК-алгоритмы для шифрования данных и, наоборот, вскрытия кодов. Ричард Липтон (Richard J. Lipton) из Принстона первым показал возможность ДНК-кодирования двоичных чисел и решения бинарных задач. Кроме того, изучается идея применения ДНК для «выращивания» отдельных компонентов процессоров. Ученые разрабатывают технологию создания необычных унифицированных молекулярных структур, которые могут стать основой полупроводниковых наносхем. Эта же технология рассматривается как первый шаг к программированию молекулярных реакций.
Последняя из привлекших внимание новостей появилась совсем недавно израильские ученые опубликовали результаты экспериментов с автономным молекулярным компьютером, система ввода-вывода и «программное обеспечение» которого состоит из ДНК, а роль аппаратной части выполняют два фермента, разрезающих и соединяющих определенные фрагменты цепочки. Эта вычислительная схема способна работать с 765 простыми программами, решая задачи вроде нахождения кодов, содержащих четное число нулей или единиц. Триллион таких компьютеров в капле раствора обрабатывает данные с точностью 99,8 %, выполняя миллиард операций в секунду. В проведенных экспериментах в каждом отдельном цикле весь этот триллион параллельно решал одну задачу, работая с одинаковыми входящими молекулами. Однако в принципе, при усложнении процесса, можно одновременно задавать различные программы, что и станет действительно ценной реализацией идеи параллельных вычислений.
Еще шесть-семь лет назад, сразу после экспериментов Адлемана со многими основаниями, высказывалось мнение, что вычислительные системы на основе ДНК - это сомнительное решение неочевидной проблемы. Кажется, сейчас это решение, судя по растущему интересу к исследованиям в области молекулярных компьютеров, начинает внимательно прорабатываться, и поле деятельности для него находится. По мнению оптимистически настроенных ученых, новое направление развития вычислительной техники перестанет казаться экзотикой в ближайшие десять лет, хотя скептики справедливо указывают на сложности, связанные с управлением живыми молекулами и контролем их активности, необходимым для того, чтобы исключить ошибки в вычислениях. Принципиальное затруднение, непреодолимое с помощью существующих молекулярных методов, касается увеличения масштаба проблем, с которыми могут справиться ДНК-компьютеры. Выразительную оценку еще в 1995 году дал профессор Юрис Хартманис (Juris Hartmanis) в статье «О весе вычислений» («On the Weight of Computations»). Он подсчитал, что если многократно расширить задачу коммивояжера, включив в нее две сотни городов вместо семи, то вес цепочек ДНК, представляющих все возможные варианты решения, превысит вес Земли (стоит, впрочем, заметить, что задачу с двумя сотнями узлов современные суперкомпьютеры будут решать тысячи лет). В целом же не только способность живых «счетных машин» выполнять огромное число операций параллельно пока не находит применения, но и сам принцип использования ДНК для вычислений, как признают ученые, его разрабатывающие, еще предстоит как следует проверить.
Преимущество у ДНК-компьютера такое же, как и у квантового: параллелизм вычислений. То есть многие из не решаемых современными вычислительными устройствами проблем (по причине экспоненциальной сложности) будут для него полиномиально сложными, а значит, вполне доступными. В будущем проектировать и создавать ДНК-компьютеры начнут непосредственно в живых клетках, что позволит выполнять в них цифровые программы, взаимодействующие с естественными биохимическими процессами.
Конечно, относительно реализации полноценного ДНК-компьютера вопросов пока больше, чем ответов, но стоит прислушаться к миллиардолетнему опыту природы и попытаться воспользоваться подаренным ею невероятным по возможностям инструментом.
Хотя все сказанное похоже на отрывок из фантастического романа, многое из этого уже почти реальность. Первые молекулярные схемы уже существуют, и в текущем десятилетии должно начаться их серийное производство. Первый же полноценный молекулярный компьютер появится, по прогнозам экспертов, в 2015—2020 гг.
Искусственный интеллект
В далеких 40-х Джон фон Нейман[4], создатель концепции современного компьютера, был абсолютно уверен, что повышение тактовой частоты до мегагерц позволит машинам мыслить не хуже человека. Однако шли годы, мощности ЭВМ все возрастали, над проблемой искусственного интеллекта билось все больше народу, создавались специальные языки (Lisp и Prolog) и машинные архитектуры, соответствующие специальности появились во всех университетах, — но научить компьютеры думать так и не удалось.
Правда ИИ нашел свои области применения, став важным повседневным инструментом для решения некоторых типов задач. Что же нужно, чтобы научить компьютер думать?
Во-первых, необходимо отказаться от булевой алгебры, описывающей состояние системы только двумя возможными вариантами — или 0, или 1. Ведь, согласитесь, наше сознание не формирует мысли исключительно по принципу tertium non datur (третьего не дано): так, дерево может быть не только высоким или низким, но и средним, существуют переходные оттенки между черным и белым и т. д. В связи с этим вводится представление о так называемой нечеткой логике (fuzzy logic — англ. «нечеткая, размытая логика»). Нечеткая логика является многозначной логикой, что позволяет определить промежуточные значения для указанных выше примеров. Сейчас математический аппарат нечеткой логики удобен для использования в системах управления метрополитенами и сложными технологическими процессами, при распознавании рукописных символов, в системах прогнозирования землетрясений, наведения телекамер, при трансляции спортивных событий, для повышения безопасности в ядерных реакторах и других целей. Однако для логических методов характерна большая трудоемкость, поскольку во время поиска доказательства не исключен полный перебор возможных вариантов. Исходя из этого, данный подход может быть реализован только в случае небольшого объема базы данных.
Во-вторых, очень перспективным является построение системы ИИ на основе моделирования принципов работы человеческого мозга. Здесь следует говорить о так называемых нейросетях (НС)— искусственных аналогах биологической сети, по своей топологии максимально приближающихся к оригиналу. Сферы применения НС чрезвычайно обширны: распознавание образов, анализ и синтез речи, машинный перевод, прогнозирование, системы управления несложными объектами в реальном масштабе времени. Можно предполагать появление НС, нацеленных на создание информационных копий человека, виртуальных личностей, средой обитания которых является Интернет. Однако прогресс в данном направлении сдерживается пока тем, что мы слишком мало знаем о том, как работает мозг. Следовательно, развитие нейробиологии напрямую определяет и решение проблемы деятельности «полноценного» ИИ.
В-третьих, интересным представляется подход к созданию ИИ на основе эволюционирующих систем. Построенные по начальной модели и развивающиеся по определенным правилам, такие системы способны генерировать копии самих себя с несколько модифицированными и наиболее приемлемыми для текущей ситуации свойствами. Необходимо заметить, что первоначальная модель может быть любой: НС, набор логических правил, деревьев, а критерии отбора появляющихся модификаций зависят от установленных изначально эволюционных алгоритмов. Примером простейшей эволюционной модели может служить алгоритм игры «Жизнь» [5]В-четвертых, можно создать систему, только имитирующую поведение человека, его разум и интеллект, со степенью достоверности, близкой к единице, воспользовавшись для этого принципом «черного ящика», основной смысл которого сводится к следующему. Допустим, некий объект, обладая определенными свойствами, однозначно влияющими на входящую информацию, анализирует и перерабатывает ее. Причем нам совершенно неважно, каким образом будет происходить обработка поступающих данных. Главное, что необходимо четко уяснить, — это система правил: некая конфигурация A всегда будет преобразована в состояние B. В итоге мы можем создать клон этого объекта, даже не зная его внутренней структуры, точно таким же образом реагирующий на изменения внешней среды, как исходный. Данная модель построения ИИ основывается на способности человека копировать то, что делают другие, не вдаваясь в подробности, как это делать и зачем это нужно. Основной недостаток имитационного подхода — низкая информативность моделей.