Автор работы: Пользователь скрыл имя, 08 Февраля 2011 в 23:37, курсовая работа
Цель - Знакомство с основами логического программирования (Prolog).
Используя предикаты parent(symbol, symbol), man(symbol), woman (symbol), married(symbol,symbol), записать факты, описывающие Вашу семью. Записать 8 правил вывода для любых родственных отношений в вашей (или вымышленной) семье (например: мать, отец, сестра, брат, племянница, племянник, тетя, дядя, внучка, внук, бабушка, дедушка, двоюродная сестра, двоюродный брат и т.д.).
Уфимский
государственный авиационный
Кафедра
АСУ
Курсовая
работа
По дисциплине: «Системы искусственного интеллекта»
На тему: «Разработка элементов систем искусственного интеллекта с использованием логической модели представления знаний»
Вариант-16.
Уфа 2010
Задание 1.
Цель - Знакомство с
основами логического
программирования (Prolog).
Используя предикаты parent(
Рис.1. Родственные
связи.
Рис. 2. Результат
работы программы для цели prograndmother(X,Y)
- прабабушка.
Рис. 3. Результат
работы программы для цели prof (X,Y)
- прадедушка.
Рис. 4. Результат
работы программы для цели Mother(X,Y)
– мама.
Рис. 5. Результат
работы программы для цели Uncle(X,Y)
– дядя.
Рис. 6. Результат
работы программы для цели dvbrat(X,Y) – двоюродный
брат.
Задание 2.
Тема
задания: Поиск с
возвратом и рекурсия.
2.1. Задача: Поменять порядок следования
букв в слове на противоположный. Для разделения
строки на символы использовать стандартный
предикат frontchar (String, Char, StringRest), позволяющий
разделять строку String на первый символ
Char и остаток строки StringRest.
2.1.1. Листинг программы.
2.1.2.
Результаты работы
программы.
Рис. 7. Результат
работы программы для строки «Мингазов».
Рис.8. Результат
работы программы для строки «Искусственный
интеллект».
2.2. Задача: Написать программу, реализующую авиасправочник. В справочнике содержится следующая информация о каждом рейсе: номер рейса, пункт назначения, цена билета. Реализовать вывод всей информации из справочника, поиск пункта назначения по номеру рейса. Реализовать поиск по пункту назначения с указанием максимально возможной цены билета (должны быть выведены все рейсы, цена билета на которые ниже указанного значения). Для удобства работы реализовать меню с соответствующими пунктами.
2.2.1. Листинг программы.
2.2.2.
Результаты работы
программы.
Рис.10. Запрос пользователя
о дальнейших действиях.
Рис. 11. Вывод
всей информации рейсах.
Рис. 12. Произведен поиск пункта назначения по номеру рейса (номер рейса = 455).
Рис. 15. Поиск
с параметром (цена билета не должна превышать
10 000).
Задание 3.
Тема – решение логических задач на соответствие.
Задача: На заводе работают три друга: слесарь, токарь и сварщик. Их фамилии Борисов, Иванов и Семенов. У слесаря нет ни братьев, ни сестер. Он – младший из друзей. Семенов женат на сестре Борисова, он старше токаря. Назвать фамилии слесаря, токаря и сварщика.
3.1. Листинг программы
3.2. Результат работы программы.
Рис. 13. Результат
работы программы.
Ответ: Семенов
занимает должность сварщика, Борисов
токарь, Иванов слесарь.
Вывод: Для
решения первого задания был использован
поиск с возвратом, который позволяет
находить все возможные варианты решения
для поставленной задачи. Во втором задании
в первой задаче был использован стандартный
предикат frontchar (String, Char, StringRest), позволяющий
разделять строку String на первый символ
Char и остаток строки StringRest. Во второй
задаче второго задания были использованы
Списки, а так как список это рекурсивная
структура данных, то использовалась рекурсия,
для обработки элементов данных. В третьем
задании использовался поиск с возвратом.
Для использования русской раскладки
клавиатуры была задействована программа
KEYRUS.