Смекни!
smekni.com

4 Применение идей синергетики в нанонауке 7 (стр. 5 из 6)

В опыте одновременно работали 1012 автоматов с одинаковым «программным обеспечением». Входные данные, в принципе, для автоматов могут быть различными. «Вычислительная мощность» составляла 109 переходов в секунду с вероятностью больше, чем 99,8%.

Дальнейшие работы группы Э. Шапиро показали, что при помощи ДНК-вычислителя может быть реализована машина Тьюринга [21]. Этот результат оказался настолько важным, что даже был запатентован.

Рис. 6.14 Схема опыта Э. Шапиро

6.6 Задел в молекулярных вычислениях. Проблемы и идеи

Менее чем за 10 лет в области молекулярных вычислений появилось более 1000 публикаций [22]. Появилась также первая монография [11]. В публикациях обсуждаются первые эксперименты по молекулярным вычислениям, повторяются опыты Эдлмана. Например, проведен опыт по нахождению количества гамильтоновых путей на графе. Обсуждаются алгоритмы, которые могут быть реализованы на ДНК-вычислителях.

Интересен тот факт, что при обсуждении квантовых вычислений и вычислений молекулярных, возникает разговор об одних и тех же алгоритмах: поиск путей на графе с различными модификациями, разложение числа на простые множители. Пока неясно, объясняется ли это малым количеством разработанных для обеих парадигм алгоритмов, или же каким-то внутренним родством парадигм.

Отсутствие практики вычислений в парадигме, подобной ДНК-вычислениям, делает эту область особенно сложной для разработки. ДНК-вычисления характеризуются практически неограниченным параллелизмом. Весь опыт параллельных вычислений, создания параллельных алгоритмов, параллельных компьютеров говорит о том, что чрезвычайно сложно создать равномерно загруженную параллельную систему даже из обозримого числа одновременно работающих вычислителей. По-видимому, природе удалось решить эту задачу очень эффективно.

6.6.1 Парадигма ДНК-вычислений. Внешнее оправдание

С точки зрения практического использования, парадигма ДНК-вычислений разрабатывается вовсе не для того, чтобы заменить классическую парадигму вычислений, в частности привычные цифровые компьютеры.

Основными задачами, стоящими перед областью ДНК-вычислений, считаются задачи управления молекулярным синтезом, задачи сборки наноконструкций. Работы в этих областях уже существуют [23,24,25].

В наше время огромные вычислительные усилия затрачиваются на этапе поиска веществ с нужными свойствами, например, лекарственных препаратов. Определяется множество молекул-кандидатов, затем это множество сужается при помощи расчетов. На каждом следующем этапе проводятся более подробные исследования. Данный подход приводит к успеху, однако не решает задачу синтеза нужного вещества. Например, при поиске лекарства от рака было проверено около 200000 веществ. В результате было найдено одно (!) вещество – таксол - яд, содержащийся в малых количествах в коре тиса. Синтез этого вещества не дешевле, чем извлечение его из натурального сырья, а в нем оно содержится в слишком малых количествах [26].

С другой стороны, в уже осуществленных экспериментах по ДНК-вычислениям, например, опыте Эдлмана, большая часть усилий затрачивается не на синтез исходных данных, не на разработку алгоритма, не на решение задачи, а на фильтрацию, извлечение уже готового результата в виде, удобном для восприятия человеком.

На наш взгляд, одна из ключевых идей молекулярных вычислений состоит в том, что необходимые расчеты и синтез нужных химических веществ, в том числе лекарств, можно провести в рамках одного процесса молекулярного вычислителя – синтезатора. В идеальном варианте, свойства, алгоритм поиска и алгоритм синтеза (сборки) описываются на языке для ДНК-вычислителя. Затем «программа» выполняется, в результате получается нужное вещество. Несмотря на то, что этот процесс в точности напоминает описанный писателями-фантастами, современная наука близка к его осуществлению.

Для решения еще одной задачи – синтеза наноконструкций, необходимо наличие системы, которая по описанию нужной конструкции генерирует программу для молекулярного синтезатора.

6.6.2 Два пути развития парадигмы ДНК-вычислений

Существуют два принципиально различных пути развития парадигмы ДНК-вычислений. Первый путь связан с максимальным использованием наработок классической парадигмы: разработка теории ДНК-операций в терминах грамматик и конечных автоматов, создание языка программирования для ДНК вычислителя на основе одного из существующих алгоритмических языков. Ключевую роль в этом процессе, естественно, будут играть специалисты по информационным технологиям. На этом пути существует опасность ухода от «истоков» ДНК вычислений (как это произошло с нейронными сетями), от молекулярной биологии, и, следовательно, от исходных задач, стоящих перед ДНК-вычислителем.

Второй путь предполагает итерационное развитие парадигмы, в соответствии с ее внутренней логикой. Отталкиваться следует от задач, стоящих перед парадигмой ДНК-вычислений. Этот путь займет большее время, чем первый, однако, если мы приблизительно можем представить себе результат первого пути, то результатом второго могут стать совершенно иные методы обработки информации, неизвестные нам сегодня.

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

Развитие парадигмы ДНК-вычислений, кроме развития теории, распадается на следующие важнейшие практические задачи:

· Создание эмулятора ДНК-вычислителя.

· Разработка языка программирования высокого уровня для ДНК-вычислителя.

· Создание банка задач и алгоритмов для ДНК-вычислителя.

· Создание среды разработки программ для ДНК-вычислителя.

Рассмотрим эти задачи более подробно.

6.6.3 Создание эмулятора ДНК-вычислителя

Область молекулярных вычислений – уникальная связь между специалистами по молекулярной биологии и представителями компьютерных наук. Важно сохранить и углубить эту связь, поэтому голос биологов при создании эмулятора ДНК-вычислителя должен быть решающим.

Эмулятор ДНК-вычислителя – это программное средство, позволяющее планировать и проводить имитации опытов по ДНК-вычислениям без применения лабораторного оборудования, а также запускать на выполнение программы для ДНК-вычислителя, скомпилированные в некотором байт-коде.

Основные требования к эмулятору ДНК-вычислителя:

· Возможность имитации экспериментов биологами, максимальный учет запросов биологов на этапе составления требований к эмулятору. (Как следствие, использование по максимуму реальных представлений о проведении эксперимента).

· Расширяемость: возможность добавления новых ферментов, новых приемов проведения эксперимента.

· Максимальная доступность для исследователей: независимый от платформы проект в открытом коде.

· Возможность выполнения программ, написанных на языке высокого уровня для ДНК-вычислителя.

Следует отметить (принимая во внимание второй путь), что употребление слов «эмулятор», «байт-код», «программа» и других терминов компьютерных наук нужно считать условным, чтобы избежать переноса смыслов.

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

Байт-код эмулятора ДНК-вычислителя представляет собой промежуточный уровень между исходными кодами программы для ДНК-вычислителя, и конкретными «операциями низкого уровня». Спецификация байт-кода – вопрос отдельного обсуждения. На первом этапе развития эмулятора это просто средство эффективного хранения программ, а в дальнейшем этот код может развиться в инструкции для автоматических установок, осуществляющих синтез.

6.6.4 Создание языка программирования высокого уровня для ДНК-вычислителя

Простейшие алгоритмы, такие как алгоритм Эдлмана, записываются на одной странице и представляют собой запись на некотором псевдоалгоритмическом языке. Но даже в этих простейших случаях необходимы дополнительные разъяснения о том, каким образом происходит перевод задачи с языка, например, теории графов, в термины последовательностей ДНК, т.е. формализованное описание алгоритма не является исчерпывающим. В более сложных случаях, таких как, например, задаче о выполнимости пропозициональных формул [11, с. 63], описание алгоритма занимает уже с десяток страниц, причем объяснение по большей части происходит неформализованным образом, т.е. «на словах». Первым шагом при создании языка высокого уровня должна быть попытка формализации записи алгоритмов для ДНК-вычислителя. Далее (согласно первому пути), необходима интенсивная работа по формализации ДНК-операций в привычных терминах (уже начатая авторами монографии [11]), создание синтаксиса языка высокого уровня на основе накопленного в этой области опыта (в том числе создания макроязыков и библиотек для параллельного программирования), затем создание инструментальных средств, с максимальным привлечением существующих разработок в области грамматик и трансляторов. Вместе с тем следует двигаться и по второму пути, выявляя внутренние особенности новой парадигмы вычислений (преимущественно путем анализа новых экспериментов биологов и экспериментов с эмулятором ДНК-вычислителя).