Назад | Содержание| Вперёд 16. 4. Заключительные замечания Нашего...

Назад | Содержание| Вперёд

16. 4.    Заключительные замечания

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

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

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

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

        пуск( Состояние) :-

               Условие ---> Действие,

               проверить( Условие, Состояние),

               выполнить( Действие, Состояние).

Задача процедуры выполнить - получитьновое состояние базы данных и обратиться кпроцедуре пуск, подав на ее вход этоновое состояние.

Проект

Запрограммируйте интерпретатор, который, всоответствии с приведенным выше замечанием,реализует базу данных как аргумент пусковойпроцедуры и не использует для этого внутреннейбазы данных пролог-системы (т. е. обходится без assertи retract). Эта новая версия интерпретаторабудет допускать автоматические возвраты.Попытайтесь разработать такое представлениебазы данных, которое облегчало бы сопоставлениес образцами.

Резюме

Архитектура, ориентированная на типовые конфигурации (образцы), хорошо приспособлена для решения многих задач искусственного интеллекта.

Программа, управляемая образцами, состоит из модулей, запускаемых при возникновении в базе данных тех или иных конфигураций.

Прологовские программы можно рассматривать как частный случай систем, управляемых образцами.

Параллельная реализация - наиболее естественный способ реализации систем, управляемых образцами. Реализация на последовательной машине требует разрешения конфликтов между модулями, содержащимися в конфликтном множестве.

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

Были рассмотрены следующие понятия:

        системы, управляемые образцами

        архитектуры, ориентированные на образцы

        программирование в терминах образцов

        модули, управляемые образцами

        конфликтное множество, разрешение конфликтов

        принцип резолюции

        автоматическое доказательство теорем на

                основе принципа резолюции

Литература

Waterman and Hayes-Roth (1978) - классическая книга посистемам, управляемым образцами. В книге Nilsson (1980)можно найти фундаментальные понятия,относящиеся к задаче автоматическогодоказательства теорем, включая алгоритмпреобразования логических формул вконъюнктивную нормальную форму. Прологовскаяпрограмма для выполнения этого преобразованияприведена в Clocksin and Mellish (1981).

Clocksin F. W. and Mellish С S. (1981). Programming in Prolog. Springer-Verlag. [Имеется перевод: Клоксин У., Мелиш К.Программирование на языке Пролог. - М.: Мир, 1987.]

Nilsson N. J. (1980). Principles of Artificial Intelligence. Tioga;Springer-Verlag.

Waterman D. A. and Hayes-Roth F. (1978, eds). Pattern-Directed Inference Systems.Academic Press.

Назад | Содержание| Вперёд









Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Наверх