Научная литература
booksshare.net -> Добавить материал -> Химия -> Кинг Р. -> "Химические приложения топологии и теории графов " -> 203

Химические приложения топологии и теории графов - Кинг Р.

Кинг Р. Химические приложения топологии и теории графов — М.: Мир, 1987. — 560 c.
Скачать (прямая ссылка): himicheskieprilojeniya1987.djvu
Предыдущая << 1 .. 197 198 199 200 201 202 < 203 > 204 205 206 207 208 209 .. 216 >> Следующая

представление химических структурных формул, которое гораздо ближе к
восприятию химиками таких графов. Это значительно упрощает вычисления и
создает удобства для пользователей.
Мы опишем представление "функционального фрагмента" структурных формул,
применимое к любой молекуле, с помощью которого можно разложить
химический граф на ряд основных фрагментов. Используя лнсповский механизм
"свойств" (PROPERTY) и алгоритм Криппена определения геометрии через
расстояния, мы получим декартовы координаты для каждого атома, которые
могут использоваться в качестве данных ввода для программ молекулярной
механики или программных систем расчетов ab initio.
1. ВВЕДЕНИЕ
В этом сообщении мы опишем применение языка лисп (LIST Processing) * к
небольшой, но значительной проблеме, связанной с распространением методов
теоретической химии. Большие программы, такие, как POLYATOM, GAUSSIAN-XX
** и ММ-Х, предоставляют химику-практику реальные расчетные возможности.
Однако даже такие весьма способные и знающие люди сталкиваются со
значительными трудностями при использовании этих программ просто потому,
что подготовка исходных данных оказывается весь-
* Лисп (LIST Processing - обработка списков) - алгоритмический язык,
имеющий средства для обработки списков, основным назначением которого
является описание рекурсивных функций символьных выражений. Подробнее об
этом см. в [5*, 6*]. - Прим. перев.
** XX обозначает соответствующий вариант данной программы, например
GAUSS1AN-80. - Прим. перев.
Программа на языке лисп
531
ма затруднительной. Когда была распространена программа ММ2 (для
примера), пользователи должны были разработать довольно детальное
описание молекулярной геометрии лишь для того, чтобы только начать
расчет. Борьба с давно забытой после средней школы геометрией не является
очень воодушевляющей и привлекательной для впервые встретившегося с
"компьютерной химией". Конечно, эта проблема не нова - программисты
ведущих химических компаний разработали графические системы, способные
осуществлять чтение химических структурных формул. Такие легко вводимые
формулы могут служить основой для поисков в литературе и расчетов по
методу молекулярной механики; они также могут быть полезными для
популяризации расчетных методой. Здесь мы хотим описать интерфейс
пользователя, который позволяет работать с химическими структурами в
схематической форме - наиболее простом представлении для пользователя и
готовит вычурно сформа-тированный файл ввода, требуемый в программах QCPE
*. Наша программа, вероятно, со временем станет широко распространенной в
отличие от существующих программ. Она использует методы, применяемые в
исследованиях по искусственному интеллекту; распознавание химических
структур осуществляется аналогично тому, как это делают химики. Эта
особенность программы будет разрабатываться в дальнейшем по мере
углубления нашего понимания распознавания образов человеком **.
2. ЛИСП - ЯЗЫК НЕЧИСЛЕННОГО ПРОГРАММИРОВАНИЯ
Прикладные программисты воспитаны на Фортране. Это едва ли не самый
старый язык, предназначенный и применяемый в области численного анализа.
Мы настолько привыкли к Фортрану, что использовали его даже в тех
случаях, когда другие выразительные средства были бы более приемлемыми.
Здесь я хочу отметить, что усилия, необходимые Для изучения языка лисп,
будут компенсироваться при изучении нечисленных, по сути, концептуальных
моделей, типичных для многих областей "химической" математики.
Любое краткое описание лисп может дать лишь приблизительное представление
о языке, но несколько конструкций являются
* QCPE (Quantum Chemistry Program Exchange) - специализированный фонд
квантовохимических программ. Описание ряда программ QCPE и примеры
подготовки информации для ввода см. в [7*]. - Прим. перев.
** Дальнейшую разработку программы см. в [8*]. - Прим. перев.
532
К Триндл, Р. Гиван
определяющими для понимания подпрограмм обработки структур в нашей
программе. Основной единицей данных в языке лисп является "атом", который
может быть любым символьным выражением *; число, символ или группа
символов могут быть атомом. Основная структура данных в лиспе - "список",
являющийся последовательностью атомов или подсписков. Явная цикличность
такого определения на самом деле иллюстрирует важность "рекурсии" в
лиспе. Рекурсию следует отличать от итерации, которая намного более
привычна прикладным программистам. При итерации отдельная операция
повторяется каждый раз с новыми индексами; решается последовательность
однородных задач. При рекурсии большая задача решается в принципе
сведением к меньшей задаче; задачи систематически уменьшаются до
достижения тривиальной задачи (которая может быть решена). Используя
решенную задачу как исходную точку, решаются промежуточные задачи
возрастающей сложности до тех пор, пока не будет получено решение
первоначальной задачи. Это различие иллюстрируется следующим примером
программного кода:
Предыдущая << 1 .. 197 198 199 200 201 202 < 203 > 204 205 206 207 208 209 .. 216 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed