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 с. 

 

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

35761. Ференц Ліст 315.5 KB
  Біографія Ференц Ліст народився в селі Доборьян австрійська назва Райдинг біля міста Шопрон Угорщина Батьки 1 Батьки Франца Ліста Адам Ліст 1776 1826 служив у князя Естергазі доглядачем поголів'я овець. Після закінчення католицької гімназії в Прессбурзі нині Братислава Адам Ліст став послушником в францисканському ордені але через два роки вирішив з нього піти. Він на все життя зберіг дружбу з одним із францисканців що як припускають деякі дослідники надихнуло його назвати сина Францем а сам Ліст також підтримуючи зв'язки...
35762. Вітраж «Вічність». Творчий проект 10.02 MB
  Історія вітража і вітражного мистецтва сягає своїм корінням у часи раннього середньовіччя. Спрощення стосується лише технології але не до художніх достоїнств вітража тут все залежить від здібностей і смаку. Розмір і форма вітража завжди залежать від того місця куди його встановлять. Слід зменшити краю шаблонів на товщину металу з якого виготовляють жилку що скріпляє окремі частини вітража.
35763. Виготовлення обладнання для бісеру 482.5 KB
  Ми не випадково для свого проекту обрали тему «Виготовлення обладнання для бісеру» , тому, що він є невідємною складовою для того, щоб зробити виріб з бісеру, а картини в усі вікі притягували до себе захоплені погляди. Картини , з бісеру, коритуютьсяч популярністю, бо є дуже оригінальними.
35764. ПРОЕКТ Тарелка. Техника «декупаж». (обслуживающий труд) 410.5 KB
  Техника декупаж. На уроках технологии я познакомилась с техникой декупаж. Декупаж – это аппликация но аппликация особенная – покрытая лаком она выглядит как роспись. В этом и вся прелесть декупажа полет фантазии не ограничен.
35765. Творческий проект. Последовательность выполнения проектов. 401 KB
  Проведение экологической экспертизы изделия или анализ экологических факторов влияющих на выбор решения проблемы исследования. Подсчет себестоимости изготовленного изделия предполагаемой прибыли и срока окупаемости или подробное рассмотрение экономических факторов влияющих на выбор решения проблемы. Разработка при необходимости бизнесплана рекламы товарного знака изделия или услуги. Проект может состоять из отдельных частей например эскизов рисунков чертежей на изготовление какоголибо изделия или разработки технологического...
35766. Вязание крючком. Творческий проект 1.16 MB
  Цель проекта: Связать крючком красивое аккуратное изделие которое обязательно должно понравиться бабушке. Задачи проекта: Провести исследование и анализ идей вариантов моего изделия Разработать эскиз моего проектного изделия Организовать рабочее место Подобрать инструменты и приспособления для различных операций Подобрать материал для изделия с правильным сочетанием цвета Контроль качества моей работы Оценка готового изделия Экологическое обоснование Вязание крючком. История и не только Вязание крючком – очень известное и...
35767. Зубочелюстная система животных и человека 56.5 KB
  В процессе эволюции идет усиленная редукция первичного жевательного аппарата и первичного сустава. Фактически на смену примитивного зубочелюстного аппарата развивается новый вторичный жевательный аппарат у млекопитающих. Этот жевательный аппарат приобретает новые признаки.
35768. Творчий проект «Кухонна дошка» 492 KB
  2 Визначення собівартості виробу Матеріал Ціна одиниці вимірювання грн Витрата матеріалів Вартість витрат грн. Вмат Брусок липовий 1000 грн м3 00063 м3 63 Усього 63 3. г при тарифі на електроенергію 025 вартість спожитої електроенергії складає Ве=025 035=009 грн Матеріальні витрати Мв=ВматВс = 665 грн 009 грн = 674 грн.= 3132 грн.
35769. Творчий проект на тему:«Лічильна гладь» 69 KB
  Вишивка – один з найбільш поширених видів декоративного мистецтва в якому орнаментальне та сюжетне зображення на тканині шкірі повсті виконується різними ручними або машинними швами. Вишивка виникла з появою шитва на примітивному одязі людини кам‘яного віку. Уже в першому тисячолітті до нашої ери вишивка досягла високого художнього рівня в народів Стародавнього Вавілону Греції Риму Китаю Індії Ірану. Особливою пишністю відзначалася вишивка Візантії.