Текст программы на языке Prolog

Автор работы: Пользователь скрыл имя, 07 Марта 2013 в 12:03, контрольная работа

Описание работы

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

Содержание работы

Задание 3
1. Описание предметной области 4
2. Описание предметной области в определениях логики предикатов первого порядка 5
2.1 Формулы, определяющие условия выполнения действий 6
2.2 Целевая формула. 10
3 Формулы, определяющие начальные знания агента о предметной области. 10
4. Текст программы на языке Prolog. 11
5. Результаты работы программы 17
Список используемой литературы 18

Файлы: 1 файл

Отчет.doc

— 336.50 Кб (Скачать файл)

Министерство образования  и науки РФ

Федеральное государственное бюджетное  образовательное учреждение

высшего профессионального образования

"Тульский государственный университет"

 

Политехнический институт

 

Кафедра "Автоматизированные станочные системы"

 

 

 

 

 

 

 

 

 

Контрольно-курсовая работа по курсу

"Интеллектуальные подсистемы САПР"

Задание № 13

 

 

 

 

 

 

 

 

Выполнил                                                 студент гр. 642181/12 Холманов А.И.

Проверил                                               Д.т.н., проф. Ямникова О.А.   

 

 

 

 

 

 

 

Тула 2012

Содержание

 

 

 

Задание

 

1. Описание предметной области

 

В данной работе в качестве предметной области рассматривается программа  выбор автомобиля.

 

Процесс выбора:

Человеку предлагается отвечать на вопросы связанные с  характеристиками автомобиля. Ответы вида: «да», «нет» и «не знаю». Программа, запоминая ответы, подбирает из БД подходящие автомобили.

Итог выбора:

Выбор заканчивается, если найдена подходящая машина, или не найдено ничего.

Входные данные:

Мнение пользователя о критериях.

Выходные данные:

Результат поиска.

 

2. Описание предметной области в определениях логики предикатов первого порядка

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

Для описания воспользуемся  логикой предикатов, которая существенно  более выразительна, чем логика высказываний, и позволяет представлять знания о среде гораздо более компактно. Выразительность логики предикатов является следствием ее основополагающей идеи, заключающейся во взаимно-однозначном сопоставлении каждого уникального (не совпадающего ни с каким другим) объекта среды с индивидуальной объектной константой, обозначаемой именем (названием) объекта, а класс однотипных по каким-либо свойствам объектов, — с объектной переменной, значением которой являются объектные константы. Объектные константы и переменные в литературе часто называют индивидными, или предметными.

Предикатом называют высказывательную функцию, определенную на множестве наборов значений объектных переменных. Эта функция может принимать только два значения: Истина (И) и Ложь (Л), называемые истинностными значениями. Отношения объектов среды представляются на языке логики предикатов, как и на языке логики высказываний, в виде определенных предложений (высказываний, формул логики предикатов), использующих объектные переменные и объектные константы, а также ряд других конструкций, включая уже известные связки и скобки.

Внутренняя база данных:

yes(string)

no(string)

maybe(string)

Объявление предикатов:

repeat

run

auto(string, real)

is(string)

positive(string)

negative(string)

xpositive(string)

xnegative(string)

ask(string,char)                                    

remember(string,char)

delete_all

 

Answer– Значение, вводимое пользователем.

 

 

2.1 Формулы, определяющие условия выполнения действий.

 

Машина(VW Golf 5 500000) Истинность(Факт(Иномарка)) (Истинность(Факт(АКП)))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) Истинность(Факт(До 700000 руб))   (Истинность(Факт(Седан))) Истинность(Факт(Передний привод)).

Машина(Volkswagen Tiguan 819908) Истинность(Факт(Иномарка)) (Истинность(Факт(АКП)))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) (Истинность(Факт(До 700000 руб)))   (Истинность(Факт(Седан))) Истинность(Факт(Полный привод)).

Машина(Volkswagen Scirocco 1100000) Истинность(Факт(Иномарка)) (Истинность(Факт(АКП)))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) (Истинность(Факт(До 700000 руб)))   (Истинность(Факт(Седан))) Истинность(Факт(Передний привод)).

Машина(Renault Scenic II 320000) Истинность(Факт(Иномарка)) (Истинность(Факт(АКП)))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) Истинность(Факт(До 700000 руб))   (Истинность(Факт(Седан))) Истинность(Факт(Передний привод)).

Машина(VW Golf 5 AVT  580000) Истинность(Факт(Иномарка)) Истинность(Факт(АКП))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) Истинность(Факт(До 700000 руб))   (Истинность(Факт(Седан))) Истинность(Факт(Передний привод)).

Машина(Volkswagen Tiguan AVT 900000) Истинность(Факт(Иномарка)) Истинность(Факт(АКП))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) (Истинность(Факт(До 700000 руб)))   (Истинность(Факт(Седан))) Истинность(Факт(Полный привод)).

Машина(Volkswagen Scirocco AVT 1180000) Истинность(Факт(Иномарка)) Истинность(Факт(АКП))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) (Истинность(Факт(До 700000 руб)))   (Истинность(Факт(Седан))) Истинность(Факт(Передний привод)).

Машина(Renault Scenic II AVT 400000) Истинность(Факт(Иномарка)) Истинность(Факт(АКП))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) Истинность(Факт(До 700000 руб))   (Истинность(Факт(Седан))) Истинность(Факт(Передний привод)).

Машина(Toyota corolla 350000) Истинность(Факт(Иномарка)) (Истинность(Факт(АКП)))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) (Истинность(Факт(Руль слева))) Истинность(Факт(До 700000 руб))   (Истинность(Факт(Седан))) Истинность(Факт(Передний привод)).

 

Машина(Nissan Skyline 1000000) Истинность(Факт(Иномарка)) Истинность(Факт(АКП))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) (Истинность(Факт(Руль слева))) Истинность(Факт(До 700000 руб))   Истинность(Факт(Седан)) Истинность(Факт(Задний привод)).

Машина(Toyota Supra 500000) Истинность(Факт(Иномарка)) (Истинность(Факт(АКП)))   Истинность(Факт(Мощнее 300 лс)) Истинность(Факт(Двигатель бензиновый)) (Истинность(Факт(Руль слева))) ( Истинность(Факт(До 700000 руб)))   Истинность(Факт(Седан)) Истинность(Факт(Задний привод)).

Машина(Toyota Supra AVT 580000) Истинность(Факт(Иномарка)) Истинность(Факт(АКП))   Истинность(Факт(Мощнее 300 лс)) Истинность(Факт(Двигатель бензиновый)) (Истинность(Факт(Руль слева))) ( Истинность(Факт(До 700000 руб)))   Истинность(Факт(Седан)) Истинность(Факт(Задний привод)).

Машина(Chevrolet Niva 444000) (Истинность(Факт(Иномарка))) (Истинность(Факт(АКП))) (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) ( Истинность(Факт(До 700000 руб)))   Истинность(Факт(Седан)) Истинность(Факт(Полный привод)).

Машина(Chevrolet Niva AVT 484000) (Истинность(Факт(Иномарка))) Истинность(Факт(АКП)) (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) ( Истинность(Факт(До 700000 руб)))   Истинность(Факт(Седан)) Истинность(Факт(Полный привод)).

Машина(Subaru Impreza 580000) Истинность(Факт(Иномарка)) Истинность(Факт(АКП))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) (Истинность(Факт(Руль слева))) ( Истинность(Факт(До 700000 руб)))   (Истинность(Факт(Седан))) Истинность(Факт(Полный привод)).

Машина(Subaru Impreza Sedan 580000) Истинность(Факт(Иномарка)) Истинность(Факт(АКП))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) (Истинность(Факт(Руль слева))) ( Истинность(Факт(До 700000 руб)))   Истинность(Факт(Седан)) Истинность(Факт(Полный привод)).

Машина(Opel Astra 600000) Истинность(Факт(Иномарка)) (Истинность(Факт(АКП)))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) Истинность(Факт(До 700000 руб))   (Истинность(Факт(Седан))) Истинность(Факт(Передний привод)).

Машина(Ford Focus 532000) Истинность(Факт(Иномарка)) Истинность(Факт(АКП))   Истинность(Факт(Мощнее 300 лс)) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) Истинность(Факт(До 700000 руб))   Истинность(Факт(Седан)) Истинность(Факт(Передний привод)).

Машина(Nissan Almera 366000) Истинность(Факт(Иномарка)) (Истинность(Факт(АКП)))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) Истинность(Факт(До 700000 руб))   Истинность(Факт(Седан)) Истинность(Факт(Передний привод)).

Машина(Lada Kalina 270000) (Истинность(Факт(Иномарка))) (Истинность(Факт(АКП)))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) Истинность(Факт(До 700000 руб))   Истинность(Факт(Седан)) Истинность(Факт(Передний привод)).

Машина(ВАЗ 2115 255000) (Истинность(Факт(Иномарка))) (Истинность(Факт(АКП)))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) Истинность(Факт(До 700000 руб))   Истинность(Факт(Седан)) Истинность(Факт(Передний привод)).

Машина(Volga Siber 740000) (Истинность(Факт(Иномарка))) (Истинность(Факт(АКП)))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) Истинность(Факт(До 700000 руб))   Истинность(Факт(Седан)) Истинность(Факт(Передний привод)).

Машина(BMW X6 4420000) Истинность(Факт(Иномарка)) Истинность(Факт(АКП))   Истинность(Факт(Мощнее 300 лс)) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) (Истинность(Факт(До 700000 руб))) (Истинность(Факт(Седан))) Истинность(Факт(Задний привод)).

Машина(Audi A4 1110000) Истинность(Факт(Иномарка)) Истинность(Факт(АКП))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) Истинность(Факт(Руль слева)) (Истинность(Факт(До 700000 руб)))   (Истинность(Факт(Седан))) Истинность(Факт(Полный привод)).

Машина(Toyota Crown 520000) Истинность(Факт(Иномарка)) Истинность(Факт(АКП))   (Истинность(Факт(Мощнее 300 лс))) Истинность(Факт(Двигатель бензиновый)) (Истинность(Факт(Руль слева))) Истинность(Факт(До 700000 руб))   (Истинность(Факт(Седан))) Истинность(Факт(Полный привод)).

 

 

2.2 Целевая формула.

 

Факт(Иномарка) Факт(АКП) Факт(Мощнее 300 лс Факт(Двигатель бензиновый ) Факт(Руль слева) Факт(До 700000 руб) Факт(Седан) Факт(Полный привод) Факт(Передний привод) Факт(Задний привод).

3 Формулы, определяющие начальные знания агента о предметной области.

 

Начало_опроса

 

4. Текст программы на языке Prolog.

database          

  yes(string)

  no(string)

  maybe(string)

 

predicates

  repeat

  run

  auto(string, real)

  is(string)

  positive(string)

  negative(string)

  xpositive(string)

  xnegative(string)

  ask(string,char)                                    

  remember(string,char)

  make_selection(string,real,char)

  continue_selection(char,string,real)

  delete_all

clauses

  repeat.

  repeat:-repeat.

 

auto("VW Golf 5",  500000):- positive("Иномарка"),

Информация о работе Текст программы на языке Prolog