49917

Разработка элементов систем искусственного интеллекта с использованием логической модели представления знаний

Курсовая

Информатика, кибернетика и программирование

По заданию было построено дерево родственных отношений, составлено 19 фактов и 13 правил, которые описывают родственные связи в моей семье. Используя язык логического программирования Prolog, написана программа, в которой отображаются все родственные отношения с помощью заданных правил и фактов. Использовались такие предикаты, как parent(string, string), man(string), woman(string), married(string ,string).

Русский

2014-01-12

320.9 KB

6 чел.

ФЕДЕРАЛЬНОЕ АГЕНТСТВО РОССИЙСКОЙ ФЕДЕРАЦИИ ПО ОБРАЗОВАНИЮ И НАУКЕ

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

Пояснительная записка к курсовому проекту

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

на тему:

«Разработка элементов систем искусственного интеллекта с использованием логической модели представления знаний»

Вариант 25

Специальность     230102 – Автоматизированные системы обработки информации и управления

Факультет  информатики и робототехники

Кафедра            автоматизированных систем управления

Курс   5

Семестр            9

         Оценка ________________                             Исполнитель:

Консультант:                                            студ. гр. АСОИ-537

                         (зач. кн.075746)

 ___________Алыпов Ю.Е.                           _________Хисаев Р.М.

«___» ____________ 2012 г.             «___» ___________ 2012» г.

Уфа 2012

Задание 1

Задание:

Используя предикаты parent(symbol,symbol), man(symbol), woman(symbol), married(symbol,symbol), записать факты, описывающие Вашу семью. Записать 8 правил вывода для любых родственных отношений в Вашей (или вымышленной)семье (например: мать, отец, сестра, брат, племянница, племянник, тетя, дядя, внучка, внук, бабушка, дедушка, двоюродная сестра, двоюродный брат и т.д.).

Описание родственных связей:

13 вариант моя задача,20

Рис. 1. Дерево родственных отношений

Исходный текст:

predicates
parent(string,string)
man(string)
woman(string)
married(string,string)
plem(string,string)
mother(string,string)
father(string,string)
grandma(string,string)
grandfa(string,string)
son(string,string)
dauther(string,string)
brother(string,string)
sister(string,string).
print

clauses
man("Ravil").
man("Farit").
man("Gamil").
man("Anvar").

woman("Mynavara").
woman("Roza").
woman("Hariza").
woman("Aigul").


parent("Ravil","Farit").
parent("Ravil","Gamil").
parent("Mynavara","Farit").
parent("Mynavara","Gamil").
parent("Farit","Anvar").
parent("Roza”,"Anvar").
parent("Gamil","Aigul").
parent("Hariza","Aigul").

married("Ravil"," Mynavara").
married("Farit"," Roza").
married("Gamil","Hariza").

mother(X,Y):-parent(X,Y),woman(X).
father(X,Y):-parent(X,Y),man(X).
son(X,Y):-man(Y),parent(X,Y).
dauther(X,Y):-woman(Y),parent(X,Y).

grandma(X,Z):-parent(X,Y),parent(Y,Z),woman(X).
grandfa(X,F):-parent(X,Y),parent(Y,F),man(X).

brother(X,Y):-parent(Z,X),parent(Z,Y),man(X),X<>Y.
sister(X,Y):-parent(Z,X),parent(Z,Y),woman(X),X<>Y.  

plem(X,F):-parent(Z,F),man(F),parent(P,X),parent(P,Z),Z<>X. 

print:-mother(X,Y),write(X,"-mother-",Y),nl,fail.
print:-father(X,Y),write(X,"-father-",Y),nl,fail.
print:-son(X,Y),write(Y,"-son-",X),nl,fail.
print:-grandma(X,Z),write(X,"-grandma-",Z),nl,fail.
print:-grandfa(X,F),write(X,"-grandfa-",F),nl,fail.
print:-dauther(X,Y),write(Y,"-dauther-",X),nl,fail.
print:-brother(X,Y),write(X,"-brother-",Y),nl,fail.
print:-plem(X,F),write(F,"-plemannik-",X),nl,fail.
print.
GOAL
print,readln(I).

Результат работы программы:

Выводы: 

По заданию было построено дерево родственных отношений, составлено 19 фактов и 13 правил, которые описывают родственные связи в моей семье. Используя язык логического программирования Prolog, написана программа, в которой отображаются все родственные отношения с помощью заданных правил и фактов. Использовались такие предикаты, как  parent(string, string), man(string), woman(string), married(string ,string).

2 задание(6 задача).

Вычислить произведение двух целых положительных чисел (используя суммирование).

Исходный текст:

Пролог

PREDICATES

p(real,integer,real)

CLAUSES

p(_,0,0):-!.

p(A,B,C):-B1=B-1,p(A,B1,C1),C=C1+A.

goal

   write("A*B"),nl,

   write("A: "),readint(A),

write("B: "),readint(B),

   p(A,B,C),

   write("A*B: ",C).

Си++

#include <iostream>

using namespace std;

typedef unsigned short USHORT;

typedef unsigned short ULONG;

ULONG GetPower(USHORT n1, USHORT n2);

int main()

{

USHORT n1,n2;

   ULONG answer;

cout << "n1: " << endl;

cin >> n1;

cout << "n2:" << endl;

cin >> n2;

answer=GetPower(n1,n2);

cout<<n1<<"to the"<<n2<< "th power is" <<answer<<endl;

system("pause");

return 0;

}

2 задание(6 задача).

:  Написать программу, реализующую авиасправочник. В справочнике содержится следующая информация о каждом рейсе: номер рейса, пункт назначения, цена билета. Реализовать вывод всей информации из справочника, поиск пункта назначения по номеру рейса. Реализовать поиск по пункту назначения с указанием максимально возможной цены билета (должны быть выведены все рейсы, цена билета на которые ниже указанного значения). Для удобства работы реализовать меню с соответствующими пунктами.

Исходный текст:

                                                             Задание 3 (3)

У Ивана машина красная, у Петра – не черная, не синяя, не голубая, у Максима – черная и синяя. У Александра есть машины любого цвета (из перечисленных), у Бориса машины белого и синего цветов. У кого какого цвета машины, если все водители ехали на машинах разных цветов?

Исходный текст программы:

domains

s=symbol

slist=s*

predicates

colour(s)

colour_or_colour(s,s,s) % два цвета 

solve(s,s,s,s,s) % решить

print

clauses

colour("krasnii").

colour("chernii").

colour("goluboi").

colour("sinii").

colour("belii").

colour_or_colour(A,B,C):-C=A;C=B.

solve(Ivan,Petr,Maxim,Sacha,Boris):-Ivan=" krasnii ",                    

colour(Petr),Petr<>Ivan,Petr<>"chernii",Petr<>"sinii",Petr<>"goluboi",

colour_or_colour("chernii","sinii",Maxim),Maxim <>Ivan,Maxim<>Petr,    

colour(Sacha),Sacha<>Ivan,Sacha<>Petr,Sacha<>Maxim,colour_or_colour("belii","sinii",Boris),

Boris<>Ivan,Boris<>Petr,Boris<>Maxim,Boris<>Sacha.

print:-solve(Ivan,Petr,Maxim,Sacha,Boris),

write("Ivan car - ",Ivan,"\n","Petr car - ",Petr,"\n"," Maxim car - ", Maxim,"\n","Sasha car - ",Sacha,"\n","Boris car - ",Boris,"\n"),nl.

%-если убрать fail,то посчитает только один вариант! Если поставить то все возможныеgoal

goal

print

4 задача

Разработать программу поиска решения, предметная область произвольная, например, выбор сотового телефона, покупка автомобиля и т.п. В качестве примера можно использовать следующую программу на естественном языке  

Предметная область: Экспертная система породы дерева.

domains

database

xpositive(symbol,symbol)

xnegative(symbol,symbol)

predicates

do_expert_bird.

do_consulting

ask(symbol,symbol)

tree_is(symbol)

positive(symbol,symbol)

negative(symbol,symbol)

remember(symbol,symbol,symbol)

clear_facts

goal

do_expert_bird.

clauses

do_expert_bird:-

 makewindow(1,7,7,"Expert System",1,3,22,71),

 nl,write(" ---------------------------------------------------"),

 nl,write(" A Tree Expert "),

 nl,write("   "),

nl,write(" Please answer the questions 'yes' or 'no'."),

nl,write(" ---------------------------------------------------"),

nl,nl,

do_consulting,

write("Press space bar."),nl,

readchar(_),

removewindow,

exit.

do_consulting:-

tree_is(X),!,nl,

write("Tree ",X,"."),nl,

clear_facts.

do_consulting:-

nl,write("Sorry !"),

clear_facts.

ask(X,Y):-

write(" expert> ",X," ",Y," ?"),

readln(Reply),

remember(X,Y,Reply).

positive(X,Y):-

xpositive(X,Y),!.

positive(X,Y):-

not(negative(X,Y)),!,

ask(X,Y).

negative(X,Y):-

xnegative(X,Y),!.

remember(X,Y,yes):-

asserta(xpositive(X,Y)).

remember(X,Y,no):-

asserta(xnegative(X,Y)),

fail.

clear_facts:-

retract(xpositive(_,_)),

fail.

clear_facts:-

retract(xnegative(_,_)),

fail.

tree_is("Dub"):-

positive(tree,"Listvennaia"),

positive(tree,"Tverdaia"),

positive(tree,"Sero-Korichnevau"),

positive(tree,"Melkaia textura"),!.

tree_is("Buk"):-

positive(tree,"Listvennau"),

positive(tree,"Tverdaia"),

positive(tree,"Svetlo-Korichnevaia"),

positive(tree,"Krupnaia textura"),!.

tree_is("Osina"):-

positive(tree,"Listvennaia"),

positive(tree,"Mugkaia"),

positive(tree,"Svetlaia"),

positive(tree,"Melkaia textura"),!.

tree_is("Tis"):-

positive(tree,"Listvennaia"),

positive(tree,"Ochen tverdaia"),

positive(tree,"Temnaia"),!.

tree_is("El"):-

positive(tree,"Hvoinaia"),

positive(tree,"Mugkaia"),

positive(tree,"Svetlaia"),

positive(tree,"Smolistaia"),!.

tree_is("Sosna"):-

positive(tree,"Hvoinaia"),

positive(tree,"Mugkaia"),

positive(tree,"Svetlaia"),

positive(tree,"Ochen smolistaia"),!.

tree_is("Stolb"):-

positive(tree,"Ne derevo"),

positive(tree,"Ochen tverdii"),!.

Список литературы.:

  1.  И. Братко Программирование на языке Пролог для искусственного интеллекта: Пер. с англ.-М.: Мир, 1990.- 560 с.
  2.  Ин Ц., Соломон Д. Использование Турбо-Пролога. – М.: Мир, 1993. – 608 С.
  3.  Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог. – М.: Мир, 1990. – 235 с. 

 

А также другие работы, которые могут Вас заинтересовать

33052. Принципи діалектичного осмислення буття 14.4 KB
  Принцип об´єктивностіпоходить з атрибутивності відображення і вторинності свідомості як вищої форми відображення. Принцип об´єктивності доповнюється іншими принципами що забезпечують адекватність відображення. Цей принцип спрямовує мислення на перехід від явищ до їх сутності до пізнання закономірностей а також необхідних суттєвих зв´язків предмета що розглядається з оточуючими його предметами і процесами. Принцип історизмупотребує поперше якісної абосутнісної ретроспективизнання сутності; подругепередумовного розглядурозгляду...
33053. Закон єдності і боротьби протилежностей 15.08 KB
  Маючи обєктивний зміст закони діалектики виконують гносеологічну функцію: виступають ступенями проникнення в сутність розвитку його відтворення в обєктивній конкретній всезагальності від відображення розвитку як якісної зміни взагалі до розкриття суперечливої сутності цього процесу як єдності змін і збереження та як суперечності що розвязуються у формі поступального сходження від нижчого до вищого. Закон єдності і боротьби протилежностей один з основних законів діалектики який визнаєвнутрішнє джерело руху і розвитку в природі...
33054. Світоглядне і методологічне значення категорій 14.43 KB
  Він розглядав категорії як апріорні форми розсуду за допомогою яких розсудок упорядковує пізнавальний матеріал одержуваний за допомогою відчуттів. Кант оголосив категорії суб'єктивними формами розумової діяльності що притаманні свідомості до досвіду апріорі. Вчення про категорії найбільш розвинуте у філософії Гегеля в якого Наука логіки виступає як діалектична система філософських категорій. Заслуга Гегеля полягає саме у створенні діалектичної логіки де всі категорії взаємопов'язані переходять одна в одну і всі разом відтворюють...
33056. Питання про пізнаванність обєктивного світу 15.19 KB
  Наука яка вивчає сутність знання закономірності його функціонування і розвитку називаєтьсятеорією пізнання або гносеологією. Основною проблемою гносеології є проблема відносин обєкта пізнання навколишнього світу і субєкта пізнавальної діяльності людини. Вперше в історії філософії саме у Демокріта зявляється розгорнута теорія пізнання заснована на розумінні чуттєвого і розумового. Важливий крок у розвитку теорії пізнання було зроблено європейською філософією XVII XVIII ст.
33057. Практика пізнання 13.32 KB
  Практика це матеріальна чуттєвопредметна цілепокладаюча діяльність людини що має своїм змістом засвоєння і перетворення природних і соціальних об'єктів і становить загальну основу рушійну силу розвитку людського суспільства і пізнання. Структура практикимістить у собі такі моменти якпотреба мета мотив доцільна діяльність у вигляді її окремих актів предмет до якого спрямована діяльність засоби за допомогою яких досягається мета і нарешті результатдіяльності. ♦ Основним і вихідним видом суспільної практики є насамперед...
33058. Процес абстрактного, логічного мислення 14.88 KB
  Процес пізнання завжди починається з безпосереднього живого споглядання тобто з безпосередньої взаємодії людини в практичній діяльності з предметами і явищами. Основні формичуттєвого пізнання: ♦ відчуття; ♦ сприймання; ♦ уявлення. Першою і початковою формою і джерелом чуттєвого пізнання є відчуття. Тому сприймання це така форма чуттєвого пізнання коли у свідомості людини відбувається цілісне відображення зовнішнього матеріального предмета з усією сукупністю його властивостей якостей сторін які відображені у відчуттях.
33059. Поняття світогляду, його специфіка, структура, функції 13.72 KB
  Поняття світогляду його специфіка структура функції Отже світогляд – це сукупність поглядів оцінок принципів що визначають найзагальніше усвідомлення розуміння світу місця в ньому людини а також ціннісні орієнтації людей їх життєві позиції. Світогляд як складне духовне явище поєднує в собі переконання ідеали цілі мотиви поведінки інтереси ціннісні орієнтації принципи пізнання моральні норми естетичні погляди тощо. Структура світогляду залежить від певних чинників. Залежно від співвідношення інтелектуального та емоційного...
33060. Предмет і специфіку філософії 13.27 KB
  Методологічна функція полягає в тому що філософія виступає як загальне вчення про метод і як сукупність найбільш загальних методів пізнання і освоєння дійсності людиною. Прогностична функція філософії формулювання в її рамках гіпотез про загальні тенденції розвитку матерії і свідомості людини і світу. Критична функція філософії.