Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
18
Добавлен:
20.06.2014
Размер:
140.8 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

КАФЕДРА АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ

Лабораторная работа №4

по дисциплине

«Системы искусственного интеллекта»

Студент

Филатов А.А.

подпись, дата

фамилия, инициалы

Группа

АС-09

Принял

Махлышев М.А.

ученая степень, звание

подпись, дата

фамилия, инициалы

Липецк 2012

Задание кафедры

1. Сформировать собственную базу правил (не менее 20 правил) в произвольной предметной области на основе собственных знаний или знаний эксперта.

2. Написать программный модуль на языке Prolog, реализующий вышеприведенный алгоритм.

1. База

Если власть = легитимна то народ = доволен

Если власть = не_легитимна то народ = не_доволен

Если власть = коррупционна то народ = не_доволен

Если народ = доволен то в_стране = порядок

Если в_стране = порядок то выборы = не_нужны

Если народ = не_доволен то в_стране = митинги

Если в_стране = митинги И госдеп = вмешивается то правительство = обвиняет_госдеп

Если в_стране = митинги И госдеп = не_вмешивается то гражданское_общество = зарождается

Если президент = умер то выборы = новые

Если президент = не_дееспособный то выборы = новые

Если президент = совержил_тяжкое_преступление то выборы = новые

Если президент = хороший_человек то народ = доволен

Если президент = закончился_срок то выборы = новые

Если правительство = контроллирует_сми то конституция = не_исполняется

Если правительство = запрещает_митинги то конституция = не_исполняется

Если правительство = ничего_не_делает то конституция = не_исполняется

Если правительство = защищает_народ то конституция = исполняется

Если конституция = исполняется то народ = доволен

Если конституция = не_исполняется то народ = не_доволен

2. Схема

3. Листинг

domains

database

have_found(symbol)

db_confirm(symbol,symbol)

db_denied(symbol,symbol)

predicates

guess_animal

find_animal

test1(symbol)

test2(symbol,symbol)

test3(symbol,symbol,symbol)

confirm(symbol,symbol)

denied(symbol,symbol)

check_if(symbol,symbol)

remember(symbol,symbol,symbol)

goal

guess_animal.

clauses

guess_animal:-

find_animal,

have_found(X),

write("Result: ",X),nl,!.

find_animal:-

test1(X),

test2(X,Y),

test3(X,Y,_),!.

test1(y):-

confirm("Narod","dovolen"),!.

test1(n).

test2(y,y):-

confirm("President","umer"),

asserta(have_found("Vybory novye")),!.

test2(y,n):-

asserta(have_found("Vybory ne nyzhny")),!.

test2(n,y):-

confirm("V strane","Poryadok"),

asserta(have_found("Vybory ne nuzhny")),!.

test2(n,n).

test3(n,n,y):-

confirm("gosdep","vmesh"),

asserta(have_found("Pravit obvin gosdep")),!.

test3(n,n,n):-

asserta(have_found("Zarozhd gragd obsh")),!.

confirm(X,Y):-

db_confirm(X,Y),!.

confirm(X,Y):-

not(denied(X,Y)),

!,

check_if(X,Y).

denied(X,Y):-

db_denied(X,Y),!.

check_if(X,Y):-

write(X," ",Y,"?\n"),

readln(Reply),

remember(X,Y,Reply).

remember(X,Y,yes):-

asserta(db_confirm(X,Y)).

remember(X,Y,no):-

asserta(db_denied(X,Y)),

fail.

4. Пример

Соседние файлы в папке Лабораторная работа №4