Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Возможные усовершенствования




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

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

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

К сожалению, рассматриваемый интерпретатор в том виде, в каком он реализован
в программе, исключает возможность применять какие-либо методы перебора с воз­
вратами, поскольку в нем предусмотрен способ непосредственного манипулирования
базой данных с помощью предикатов sssertz и retract. Поэтому мы не имеем воз­
можности изучать альтернативные пути выполнения. Указанный недостаток можно
устранить, используя другую реализацию базы данных, в которой не применяются
предикаты asserts и retract языка Prolog. Один из способов решения такой зада­
чи может предусматривать представление всего состояния базы данных с помощью
терма Prolog, передаваемого в качестве параметра в процедуру run. Наиболее про­
стая возможность реализации такого решения состоит в организации этого терма как
списка объектов в базе данных. В подобном случае верхний уровень интерпретатора
может выглядеть следующим образом:
run(State):-
Condition ---------- > Action,



Часть [!. Применение языка Prolog в области искусственного интеллекта


test! Condition, State), execute[ Action, State).

Затем процедура execute вычисляет новое состояние и вызывает процедуру run с

этим новым состоянием.

Проект

Реализуйте интерпретатор для программ, управляемых шаблонами, в котором ба­за данных не сопровождается в виде собственной внутренней базы данных Prolog (т.е. с помощью предикатов assertz и retract), а для ее сопровождения использу­ется параметр процедуры, в соответствии с приведенным выше замечанием. В таком случае новый интерпретатор будет обеспечивать автоматический перебор с возврата­ми. Попробуйте спроектировать представление базы данных, которое обеспечивало бы эффективное сопоставление с шаблонами.





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 418 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Вы никогда не пересечете океан, если не наберетесь мужества потерять берег из виду. © Христофор Колумб
==> читать все изречения...

2339 - | 2144 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.