- •ОгЛавление
- •8 Литература 93
- •Лабораторная работа №1 Знакомство с языком логического программирования Пролог
- •1.1 Цель работы
- •1.2 Теоретические сведения
- •1.3 Среда VisualProlog
- •1.4 Выполнение работы
- •1.5 Задание на лабораторную работу
- •2.3 Выполнение работы
- •2.4 Задание на лабораторную работу
- •2.5 Контрольные вопросы
- •Лабораторная работа №3 Рекурсивные структуры данных
- •3.1 Цель работы
- •3.2 Теоретические сведения
- •3.3 Выполнение работы
- •3.4 Задание на лабораторную работу
- •3.5 Контрольные вопросы
- •Лабораторная работа №4 Знакомство с языком списочных структур Лисп
- •4.1 Цель работы
- •4.2 Теоретические сведения
- •4.3 Среда FreeLisp
- •4.4 Выполнение работы
- •4.5 Задание на лабораторную работу
- •4.6 Контрольные вопросы
- •Лабораторная работа №5 Рекурсия и итерация в языке Лисп
- •5.1 Цель работы
- •5.2 Теоретические сведения
- •5.3 Выполнение работы
- •5.4 Задание на лабораторную работу
- •5. 5. Контрольные вопросы
- •6.2.2 Замыкания
- •6.2.3 Макросы
- •6.3 Задание на лабораторную работу
- •6.4 Контрольные вопросы
- •Лабораторная работа №7 Методы поиска решений в пространствах состояний
- •7.1 Цель работы
- •7.2 Теоретические сведения
- •7.4 Выполнение работы
- •7.5 Задание на лабораторную работу
- •7.6 Контрольные вопросы
- •8 Литература
7.5 Задание на лабораторную работу
Реализовать итерационную версию функции поиска tree-search.
Реализуйте функцию поиска в ширину в пространстве состояний (breadth-first-search).
Реализуйте функцию, печатающую лабиринт (maze-print).
Определите свой лабиринт my-maze (20x20). Оцените сколько времени потребуется для решения каждого из приведенных лабиринтов. (Для этого вы можете использовать функцию time. (time expr) возвращает значение выражения, но также печатает время ушедшее на его вычисление).
7.6 Контрольные вопросы
Когда лучше использовать поиск в ширину, а когда в глубину. (Под лучше понимается находить решения быстрее).
Какие параметры (search-strategy и tree-searcher) Вы передадите функции maze-solve? Почему?
Поскольку не каждый лабиринт имеет решение, что вы сделаете, чтобы быть уверенным в том, что поиск завершится в любом случае?
8 Литература
Структуры данных. Методические указания к самостоятельному изучению дисциплины «Программирование» для студентов направления «Компьютерная инженерия» / Сост. В. И. Павловский, П. Г. Бивойно и др. – Чернигов: ЧДТУ, 2001. – 82 с.
Хоггер К. Введение в логическое программирование. – М.: Мир, 1988. – 348 с.
Клоксин У., Меллиш К. Программирование на языке Пролог. – М.: Мир, 1987. – 336 с.
Братко И. Программирование на языке Пролог для искусственного интеллекта. – М.: Мир, 1990. – 560 с.
Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог. – М.: Мир, 1990. – 235 с.
Ин Ц., Соломон Д. Использование Турбо-Пролога. – М.: Мир, 1993. – 608 с.
Янсон А. Турбо-Пролог в сжатом изложении. – М.: Мир, 1991. – 94 с.
Nilsson U., Maluszynski. Logic, programming and prolog (2ed). http://www.ida.liu.se/~ulfni/lpp/.
Хювенен Э., Сеппянен Й. Мир Лиспа. В 2-х т. – М.: Мир, 1990.
Лавров С., Силагадзе Г. Автоматическая обработка данных. Язык Лисп и его реализация. – М.: Наука, 1978.
Маурер У. Введение в программирование на языке Лисп. – М.: Мир, 1976.
Common Lisp the Language, 2nd Edition by Guy L. Steele, Thinking Machines,Inc. http://www.cs.cmu.edu/Web/Groups/AI/lang/lisp/doc/cltl/
