Скачать 473.71 Kb.
|
Чтобы определить содержится ли элемент X в списке L создадим отношение member(X, L). Возможны случаи: 1) если X совпадает с головой списка L, то элемент найден и поиск прекращается. Первая часть правила (нерекурсивная): member (X, [X | L]). 2) если X не принадлежит голове, то он может принадлежать хвосту. Отбрасываем голову списка и вызываем правило для оставшегося списка. Вторая часть правила (рекурсивная): member (X, [_ | L]: - member (X, L). Таким образом, правило поиска элемента имеет вид: member (X, [X | L]). member (X, [_ | L]: - member (X, L). Например, для ответа на вопрос «Содержится ли число 4 в списке [2, 3, 4, 5]?», можно составить запрос: GOAL member(4, [2, 3, 4, 5]),Write (“yes”);Write (“no”), nl. При выполнении поиска X сравнивается с головой L. Если элементы не совпадают, то первый элемент отбрасывается и X сравнивается с головой полученного списка и так далее, пока L не станет пустым списком. Если элемент X найден, то цель достигнута, выводится сообщение “yes”, иначе выводится “no”. 4.Удаление элемента из списка. Определим отношение del(X, L, L1), где X – удаляемый элемент; L – исходный список; L1 – список, полученный в результате удаления X из L. Возможны два случая: 1) если X – голова списка, то результирующий список равен хвосту списка L. Первая часть правила (нерекурсивная): del(X, [X|L], L). 2) если X принадлежит хвосту, то список L делим на голову и хвост. Для хвоста снова вызывается правило del. Вторая часть правила (рекурсивная): del(X, [Y|L], [Y|L1]):- del(X,L,L1). Полная запись правила удаления элемента из списка: del(X, [X|L], L). del(X, [Y|L], [Y|L1]):- del (X,L,L1). Например, для удаления из списка [1, 2, 3, 4] элемента 3, следует составить запрос: GOAL del(3, [1, 2, 3, 4], L),Write (L), nl. Результат: [1, 2, 4]. П нет ри выполнении программы X сравнивается с первым элементом списка. X ![]() нет = 3 [1 | 2, 3, 4] - первая часть правила не выполняется, 1 заносится в стек, рекурсивный вызов для хвоста [2, 3, 4] X ![]() да = 3 [2 | 3, 4] - первая часть правила не выполняется, 2 заносится в стек, рекурсивный вызов для хвоста [3, 4] X ![]() L = [1, 2, 4] 5. Вставка символа X в список Определим отношение ins(X, L, L1), где X – добавляемый элемент в список L – исходный список L1 – список, полученный в результате вставки элемента Х в список L Отношение ins(X, L, L1) можно определить через del(X, L1, L). Если для отношения del(X, L1, L) список L1 – исходный список, содержащий элемент Х, то для ins(X, L, L1) список L1 является результирующим. Список L, не содержащий Х, для del(X, L1, L) – результирующий, а для ins(X, L, L1) – исходный. ins(X, L, L1): - del(X, L1, L). Например, для вставки элемента 5 в список [1, 2, 3] необходимо составить запрос: GOAL ins(5, [1, 2, 3], L),Write (L), nl, fail. Результат: [5, 1, 2, 3] [1, 5, 2, 3] [1, 2, 5, 3] [1, 2, 3, 5] Примечание: так как отношение ins(X, L, L1) определено через del (X, L1, L), то в разделе CLAUSES должно быть описано также правило del(X, L1, L). Литература
|
![]() | Учебно-методический комплекс по дисциплине “основы искусственного интеллекта” ... | ![]() | «Основы искусственного интеллекта» Рабочая учебная программа по дисциплине «Основы искусственного интеллекта» для ооп «050100 Физика и информатика по циклу б в. 13... |
![]() | Учебно-методический комплекс по дисциплине “основы искусственного интеллекта” для специальности ... | ![]() | Учебно-методический комплекс по дисциплине “основы искусственного интеллекта” для специальности ... |
![]() | В. К. Финн к структурной когнитологии: феноменология сознания с точки зрения искусственного интеллекта Ки и искусственного интеллекта – полигона экспериментальной проверки научных средств имитации рациональности и продуктивного мышления.... | ![]() | Конспект лекций по дисциплине «Системы искусственного интеллекта» Место среди других наук, первые шаги и современные направления искусственного интеллекта |
![]() | «шаг за шагом» создание искусственного интеллекта гашева Светлана Интеллект рассматривают как прикладную область исследований, связанных с имитацией отдельных функций интеллекта человека [6]. Распознавание... | ![]() | Философия искусственного интеллекта в свете новой методологии познания М.: Философия искусственного интеллекта. Материалы Всероссийской междисциплинарной конференции, иф ран, 2005 г., с. 143-146 |
![]() | О работе научного советаран по методологии искусственного интеллекта Первой Всероссийской междисциплинарной конференции, посвященной философским, методологическим и теоретическим проблемам искусственного... | ![]() | Статья рассматривает вопросы в области информационных технологий в системах: человек-машина, человек-информация. В статье раскрыты моменты: функции обработки информации, Целью данной работы является моделирование алгоритма искусственного интеллекта на доминантах функций: интроверсии, экстраверсии;... |