ТҮсіндірме жазба пәнді оқыту



бет17/20
Дата01.02.2018
өлшемі3,82 Mb.
#37301
1   ...   12   13   14   15   16   17   18   19   20

Қолданылған әдебиеттер:


1,2,3...
2 лекция.

Тақырыбы: Бағдарлама мысалы: туыстық қатынастар.

Құзыреттіліктер:

ПҚ2.Шет тілі шеңберіндегі құзіреттілік.

ПҚ3.Математикалық және іргелі жаратылыстану ғылыми және техникалық құзіреттілік.

ПҚ4. Компьютерлік құзіреттілік.



Лекция жоспары:

  1. Ережелер көмегімен мысал – бағдарламаны кеңейту.

  2. Бағдарлама мысалы: туыстық қатынастар


Лекция мазмұны

Бірінші суреттегі туыстық қатынастардың толық ағашы келесі Пролог – бағдарламасында сипатталған:

КF 12-06-07

( пам, боб) ата –анасы.

( том, боб) ата – анасы.

( том, лиз) ата – анасы.

( боб, энн) ата – анасы.

( боб, пат) ата – анасы.

( пат, джим) ата – анасы.

Бұл бағдарлама 6 сөйлемнен құралған, әрбір сөйлем бір ғана ата – ана қатынасы болу фактісін жариялайды (көрсетеді).

Аргумент ретінде бірінші орында ата – анасы, ал екіншісінде – баласы. Бағдарламаны енгізген соң сұрақтар қоюға болады:

? – ( боб, пат) ата – анасы.

жүйе жауабы: Иә (Yes).

? – ( лиз, пат) ата – анасы.

жүйе жауабы: Жоқ (No).

? – (X, лиз) ата – анасы / * Лиздің ата – анасы кім ? */

X = том

? - (боб, X ) ата – анасы / * Бобтың баласы кім ? * /

X = энн / * Басқа да шешімдерін көру үшін мыналарды енгізіңіз << ; >> * /

X = пам


? – (X, Y) ата – анасы / * қайсысы кімнің ата – анасы ? * /

X = пам, Y = боб

X = том, Y = боб

X = том, Y = лиз

Бұдан да едәуір күрделі сұрақтарды қоюға да болады: << Джимнің ата – анасының ата –анасы кім ? >>. Бағдарламада ата – анасының ата – анасы қатынасы анықтамасы айтылмаған, осындай сұрақ 2 этапқа бөлінеді:


  1. Джимнің ата – анасы кім ? Y – делік.

  2. Y – тің ата – анасы кім ? X – делік.

  1. және (2) Пролог тілінде былайша жазылады:

? – (Y, джим) ата – анасы, ( Y, X) ата – анасы.

X = боб, Y = пам.

Осы сұрақтарды басқаша да қоюға болады:

«Келесі талаптарды қанағаттандыратын X пен Y – ті табу керек»:

(Y, джим) ата – анасы және (X, Y) ата – анасы. Егер олардың орындарын ауыстырсақ, жауабы тура солай шығады:

? – ( том, X) ата – анасы, (X, Y) ата – анасы % томның немерелері кім ( қайсыбір X – тің баласы, ол томның баласы болып табылады ) ?

КF 12-06-07

? – ( X, энн) ата – анасы, (X, пат) ата – анасы /* энн мен Патта ортақ ата – ана бар ма ? * /

X = боб

Ережелер көмегімен мысал – бағдарламаны кеңейту

Біздің мысал – бағдарламаны көптеген тәсілдермен кеңейтуге болады, ата – анасы қатынасына қатысушы адамдар жынысы туралы ақпаратты қосайық:

әйел (пам).

еркек (том).

еркек (боб).

әйел (лиз).

әйел (пат).

әйел (энн).

еркек (джим).

Бұл ақпаратты басқаша да көрсетуге болады, әйел мен еркек қатынастарының орнына, бір ғана бинарлық қатынас жынысын қолдануға болады. Онда:

жынысы (пам, әйелдік (ұрғашы)).

жынысы (том, еркектік).

жынысы (боб, еркектік).

және т.б.

Енді жаңа қатынас ұрпағы (әулеті), ол ата-ана қатынасына кері келеді, мысалы:

(лиз, том) ұрпағы.

Бұл қатынас ата-ана қатынасына кері келуін ескерсек, прологтық сөйлем жазуға болады:

(Х, Х) ұрпағы: - (Х, У) ата-анасы /* барлық Х және У үшін, егер Х – У ата – анасы болса, онда У – Х ұрпағы */.

Осындай сөйлем ереже деп аталады, мұндағы (У, Х) ұрпағы – сөйлемнің басы немесе қорытындысы, (Х, У) ата-анасы – шартты бөлігі немесе сөйлем денесі. Мысалы:

? – (лиз, том)ұрпағы.

Бағдарламада ұрпақтар туралы факті жоқ, сондықтан мына ережені қолданамыз:

(лиз, том) ұрпағы: - (том, лиз) ата-анасы.

Пролог - жүйесі шартты бөлігі ( шындыққа жатады ма) орындалады ма, жоқ па, соны тексереді. Ол үшін бастапқы мақсат:

(лиз, том) ұрпағы % ішкі мақсатпен ауыстырылады:

(том, лиз) ата – анасы.

Осындай фактіні бағдарламада табу мүмкін болғандықтан, яғни ереже шығысындағы тұжырым шындық, онда жүйе yes ( иә) деп жауап береді. Шеше қатынасын қосайық:

КF 12-06-07
(X, Y) шешесі: - (X, Y) ата – анасы, (X) әйел. / * Барлық X және Y үшін: X Y – тің шешесі, егер X Y – тің ата – анасы және X - әйел болса. */

Үтір – екі шарт арасындағы конъюнкция, яғни олар бір мезгілде орындалуы тиіс. Ата – анасының ата – анасы қатынасын ереже көмегімен былайша жазады:



(X, Z) ата – анасының ата – анасы: - (X, Y) ата – анасы, (Y, Z) ата – анасы. / * әпкесі қатынасы үшін ұқсас: * /.

(
X, Y) әкесі: - (Z, X) ата – анасы, (Z, Y) ата – анасы, (X) әйел.

Әпке қатынасы үшін жетілдірілген ереже:

(X, Y) әртүрлі: - X <> Y.

(X, Y) әпкесі: - (Z, X) ата – анасы,

(Z, Y) ата – анасы, (X) әйел, (X, Y) әртүрлі.

Бақылау сұрақтары

1.Туыстық қатынастар


Қолданылған әдебиеттер:


1,2,3...
3 лекция.

Тақырыбы: Ереженің рекурсивті анықтамасы.

Құзыреттіліктер:

ПҚ2.Шет тілі шеңберіндегі құзіреттілік.

ПҚ3.Математикалық және іргелі жаратылыстану ғылыми және техникалық құзіреттілік.

ПҚ4. Компьютерлік құзіреттілік



Лекция жоспары:

  1. Пролог программалау ортасы.

  2. Ереженің рекурсивті анықтамасы.

Лекция мазмұны

Ата, тегі қатынасын анықтайық :



4- сурет ата тегі қатынасының мысалы.



КF 12-06-07


а) X – жақын ата – тегі;

б) X – Z – тің алыс (арғы) ата – тегі. Бағдарлама:

а) (X, Z) ата – тегі: - (X, Z) ата – анасы.

б) (X, Z) ата – тегі: - (X, Y) ата – анасы, (Y, Z) ата –анасы.

(X, Z) ата – тегі: - (X, Y1) ата – анасы, (Х1, Y2) ата – анасы, (Y2, Z) ата – анасы.

(X, Z) ата – тегі: - (X, Y1) ата – анасы, (Y1, Y2) ата – анасы, (Y2, Y3) ата - анасы, (Y3, Z) ата – анасы.

Бұл бағдарлама үлкен және белгілі аумақта жұмыс істейді . Бірақ бұл проблема өзі арқылы ата – тегі қатынасымен шешіледі :


5- сурет. Қатынастың рекурсивті тұжырымдамасы.

Екі ережеден тұратын ата – тегі қатынасының толық бағдарламасы: бірінші жақын ата – тегі үшін және екінші, алыс ата – тегі үшін:

(X, Z) ата – тегі: - (X, Z) ата – анасы.

(X, Z) ата – тегі: - (X, Y) ата – анасы, (Y, Z) ата – тегі.

? – (пам, X) ата – тегі. /* Памның ұрпағы кім */.

X = боб;

X = энн;


X = пат;

X = джим .

Туыстық қатынастар туралы бағдарламаның қорытынды түрі :

(пам, боб) ата – анасы .

(том, боб) ата – анасы .

(том, лиз) ата – анасы .

(боб, энн) ата – анасы .

(боб, пат) ата – анасы .

(пат, джим) ата – анасы .

(пам) әйел.

(том) еркек.

(боб) еркек.

(лиз) әйел.

(энн) әйел.

(пат) әйел.

(джим) еркек.

(Y, X) ата – тегі: - (X, Y) ата – анасы.

(X, Y) шешесі: - (X, Y) ата – анасы, (X) әйел.

(X, Z) ата – анасының ата - анасы: - (X, Y) ата – анасы, (Y, Z) ата – анасы .

(X, Y) әртүрлі: - X <> Y .

(X, Y) әпкесі: - (Z, X) ата – анасы, (Z, Y) ата – анасы, (X) әйел, (X, Y) әртүрлі.

КF 12-06-07


(X, Z) ата – тегі: - (Z, X) ата – анасы.

(X, Z) ата – тегі: - (X, Y) ата – анасы, (Y, Z) ата – тегі.


1. Мысал. << Сессия >> құрылысын құру, барлық озат оқушыларды (студенттерді) таңдап алу.

DOMAINS


X=symbol

Y=integer

PREDICATES

muj(X)


jen(X)

fiz(X,Y)


xim(X,Y)

mat(X,Y)


otl(X)

otl_muj(X)

otl_jen(X)

CLAUSES


muj(misha).

muj(casha).

muj(dima).

jen(ira).

jen(masha).

jen(lena).

fiz(lena,5).

fiz(ira,5).

fiz(masha,4).

xim(lena,5).

xim(ira,5).

xim(masha,4).

mat(lena,5).

mat(ira,5).

mat(masha,5).

otl(X):-fiz(X,5),xim(X,5),mat(X,5).

otl_muj(X):-muj(X),otl(X).

otl_jen(X):-jen(X),otl(X).

GOAL

clearwindow,otl_jen(X),write(“отличница: “,X),nl,fail.


2. Мысал. Доллар – теңге және теңге – доллар қатынасын анықтау.

DOMAINS


 X=real

PREDICATES

 dolar_tenge(X,X)

 tenge_dolar(X,X)

КF 12-06-07
CLAUSES

 dolar_tenge(D,T):-T=D*154,write(T).

 tenge_dolar(T,D):-D=T/154,write(D).

GOAL


 clearwindow, tenge_dolar(300,D), nl, dolar_tenge(2,T)
3. Мысал. Зауыт құрылымын құру. Қарым – қатынастарын анықтау: бригадир – жұмысшылар, цех.

DOMAINS


rb=rab(Fam,Name)

Fam,Name,Br=symbol

PREDICATES

seh(Br,rb)

CLAUSES

seh(br1,rab(ivan,serg)).



seh(br1,rab(sem,serg)).

seh(br1,rab(ivan,dim)).

seh(br2,rab(kim,oleg)).

seh(br2,rab(alma,alia)).

seh(br2,rab(tim,gul)).

seh(br3,rab(myn,aig)).

seh(br3,rab(by,din)).

seh(br4,rab(amir,tol)).

seh(br4,rab(tol,nur)).

seh(br4,rab(ten,ira)).

GOAL

clearwindow,



write("Бригадир№1: "),

seh(br1,Y),nl,write(' ',Y),fail;

nl,write("Бригадир№2: "),

seh(br2,Y),nl,write(' ',Y),fail;

nl,write("цех: "),

seh(X,Y),nl,write(X,' ',Y),fail



Бақылау сұрақтары

1. Пролог тілі Си, Паскаль, Фортран



Әдебиет тізімі

1,2,3...
4 лекция.



Тақырыбы: Пролог бағдарламаның құрылымы. Берілгендерді енгізу, шығару операторлары.

Құзыреттіліктер:

ПҚ2.Шет тілі шеңберіндегі құзіреттілік.

ПҚ3.Математикалық және іргелі жаратылыстану ғылыми және техникалық құзіреттілік.

КF 12-06-07


ПҚ4. Компьютерлік құзіреттілік

Лекция жоспары:

  1. Берілгендерді енгізу, шығару операторлары.

  2. Пролог – бағдарламаның құрылымы

Лекция мазмұны

Пролог – бағдарламаның құрылымы

Бағдарлама құрылысы келесі түрге ие:

/ * бірнеше жолдарда коментарии */

% бір жолда комментарии

CONCTANCTS

% Бұл бөлімде константалар сипатталады.

PREDICATES

% Бұл бөлімде айнымалылар жазылады.

CLAUSES

% Бұл бөлімде фактілер мен ережелер анықталады.



DATABASES

% Бұл бөлімде мәліметтердің динамикалық базасының предикаттары анықталады.

GOAL

% Бұл бөлімде сұрақтар (ішкі) анықталады.



Домендер қарапайым, құрылымды және стандарт емес болып бөлінеді. Стандартты да мәндерге жатады: symbol, chat, integer, real, string, file.

Symbol – мәліметтердің символды типі, жазбаның екі формасын иеленеді: 1. Бөлек жолдан басталатын әріптер, цифрлар, сызу белгілерінің тізбегі.

Chat – 1 символ

integer – (- 32768 … 32768) диапазонындағы бүтін сандар.

real – кәдімгі және экспоненциалдық жазба формасында келетін шындық сан.

string – символдар жолы, екі рет жақшаға алынған символдар тізбегі.

file – файлдық айнымалы, оның мәні MS DOS – та файлдарға ат беру ережесі бойынша анықталады. Домендерді баспаға шығару (жариялау) мысалдары:

DOMAINS


a = integer

b = symbol

Домендердің стандартты типінен басқа, қарапайым және күрделі объектерден тұратын домендер құрылысын қолдануға болады. Бір жарнамада (жариялауда) бірнеше құрылымдарды сипаттауға болады араларын үтір арқылы бөліп, немесе қызметші сөз or арқылы бөліп жазады:

DOMAINS

D1, d2, d3 = symbol

f = fruits (d1, d2, d3); p(d3).

Предикаттар бөлімінде ереженің сол бөлігі немесе CLAUSES бөлімінен алынған ереже аты жазылады.

CLAUSES бөлімінде тұжырымдар жазылады. Бір ғана дұрыс предикаты бар фактілер мен ережелер бір блок аумағында жазылады, яғни бірінен соң бірі

КF 12-06-07
жазылуы тиіс. Ереже денесінде баспаға шығарылған предикаттардан басқа стандартты предикаттар мен салыстыру операциялары қолданылуы мүмкін. Стандарт предикаттар әртүрлі функцияларды орындайды. Олар: енгізу және шығару, файлдармен жұмыс жүргізу, DOS операциялық жүйесімен жұмыс істеу, жолдарды өңдеу, графикалық режимді қолдап тұру, бағдарламалаудың басқа да жүйелерімен интерфейсті қамтамасыз ету.

GOAL бөлімі ішкі деп аталатын бағдарламаға сұраныс қоюдан тұрады. Ішкі сұраныс үшін Пролог бірінші лайықты шешімді іздеуге кіріседі, сонымен қатар жүйе, салыстыру кезінде алынған, табылған шешім нәтижелері туралы хабарламайды. Бұл іс - әрекеттер бағдарламалануы тиіс. GOAL сұраныс бөлімі бағдарламада кездеспеуі де мүмкін, онда диалог режимінде бағдарлама қосылған соң сыртқы сұранысты қолдану үшін жүйе шешімінің барлық варианттарын тауып алады, және дәл осы терезеде (окно)

айнымалы предикаттар мәндері шығарылады және дұрыс немесе дұрыс емес орындалғаны туралы хабарлайды.

Бақылау сұрақтары


  1. Прологта атомдарға мысалдар келтіру.

  2. Ағаш. Шешімдер ағашы. Оны ережелерге түрлендіру

Әдебиет тізімі

1,2,3..


  1. лекция.

Тақырыбы: Пролог бағдарламаның декларативті мағынасы.

Құзыреттіліктер:

ПҚ2.Шет тілі шеңберіндегі құзіреттілік.

ПҚ3.Математикалық және іргелі жаратылыстану ғылыми және техникалық құзіреттілік.

ПҚ4. Компьютерлік құзіреттілік



Лекция жоспары:

  1. Мысал бағдарламалар

  2. Пролог – бағдарламаның декларативті мағынасы (мәні)


Лекция мазмұны

Сөйлемді қарастырайық:

P: - Q , R 7

Декларативті интерпретация:



  1. Р – шындық, егер Q, R шындық

  2. Q мен R- ден P шығады

Процедуралық интерпретация:

  1. Р есебін шешу үшін, Q ішкі есебін шеш, ал кейін R ішкі есебін шешуге көш.

  2. Р – ға жету үшін, алдымен Q – ге жет, содан кейін R – ге жет.

Мақсаттар арасындағы үтір мақсаттар конъюнкциясын білдіреді: олардың барлығы шындық болуы тиіс. Бірақ – та Прологта мақсаттар дизъюнкциясы да болуы мүмкін: кем дегенде мақсаттардың біреуі шындық болуы тиіс.

Дизъюнкция нүктелі үтірмен белгіленеді. Мыс:



  1. Р: – Q; R немесе :

КF 12-06-07


  1. P: - Q.

P: - R.

  1.  2).

Үтір мақсаттарды нүктелі үтірге қарағанда күштірек байланыстырады. Осылайша, сөйлем:

P: - Q, R; S,?, V.

Былайша түсіндіріледі: 1) P: - (Q, R); (S, T, V). немесе

2) P: - Q, R.

P: - S, T, V.

1. Мысал. Пролог тілінде вертикальдық кесінді қатынасының бағдарламасын жазу.

DOMAINS


X=integer

PREDICATES

point(X,X)

otr(X,X,X,X)

vert_otr(X,X,X,X)

CLAUSES


point(1,4).

point(1,7).

point(5,7).

point(5,4).

otr(X,Y,X1,Y1):-point(X,Y), point(X1,Y1).

vert_otr(X,Y,X1,Y1):-otr(X,Y,X1,Y1), X=X1, Y<>Y1.

GOAL

clearwindow, vert_otr(X,Y,X1,Y1), write(X,Y," ",X1,Y1).



 2. Мысал. Егер координаттары берілген болса, тең кесінділер қатынасын анықтау.

DOMAINS


X=integer

PREDICATES

dl(X,X,X,X,X)

ravn(X,X,X,X,X,X,X,X)

CLAUSES

dl(X1,Y1,X2,Y2,Z):- Z=sqrt((X2-X1)*(X2-X1)+(Y2-Y1)*(Y2-Y1)).



ravn(X1,Y1,X2,Y2,X3,Y3,X4,Y4):-dl(X1,Y1,X2,Y2,Z1),

dl(X3,Y3,X4,Y4,Z2), Z1=Z2, write("Кесінділер тең");

write("Кесінділер тең емес").

GOAL


clearwindow, ravn(1,1,1,3,2,1,2,3)
3. Мысал. Егер координаттары берілген болса, кесінді ортасы қатынасын анықтау.

DOMAINS


X=integer

PREDICATES

ravn(X,X,X,X)

CLAUSES


КF 12-06-07
ravn(X1,Y1,X2,Y2):- X=(X2-X1)/2, Y=(Y2-Y1)/2,

write("Кесінді ортасы: X=",X," Y=",Y); write("Кесінді ортасы жоқ").

GOAL

clearwindow,



ravn(1,5,3,4)

  4. Мысал. Үшбұрыш шыңдары берілген болса, медиана координаттарын анықтау.

DOMAINS

X=integer



PREDICATES

med(X,X,X,X,X,X)

CLAUSES

med(X1,Y1,X2,Y2,XV,YV):- X=(X2-X1)/2, Y=(Y2-Y1)/2,



write("Медиана координаттары: X1=", X," Y1=",Y," X2=",XV," Y2=",YV).

GOAL


clearwindow, med(1,2,3,4,3,5)

Бақылау сұрақтары

  1. Прологта программа құрылымы тұралы түсінік.

  2. Жасанды интеллект тұралы түсінік.

Әдебиет тізімі

1,2,3..



  1. лекция.

Тақырыбы: Айнымалылар. Құрылымдар. Салыстырулар. Сұрақтар мен үйлестіру

Құзыреттіліктер:

ПҚ2.Шет тілі шеңберіндегі құзіреттілік.

ПҚ3.Математикалық және іргелі жаратылыстану ғылыми және техникалық құзіреттілік.

ПҚ4. Компьютерлік құзіреттілік



Лекция жоспары:

  1. Құрылымдар.

  2. Салыстырулар.

  3. Сұрақтар мен үйлестіру


Лекция мазмұны

Айнымалылар

Прологта айнымалылар бас әріптен басталады, латын алфавитінің цифрлері мен әріптері қолданылады. Айнымалының ерекше түрі – анонимді айнымалы, айнымалының нақты мәні жоқ кезде предикаттың аргументі ретінде қолданылады. Прологта айнымалы информация қоймасы емес, ол сөйлем қаншалықты болса, соншалықты өмір сүреді. Бағдарламаның орындалуы процесінде айнымалы жаңа мәнге ие бола алады. Айнымалы мысалдары:

X

Нәтиже


КF 12-06-07

Объект 2


КF 12-06-07
Қатысушылар тізімі

Жаңа заттар тізімі.

_X 23

_X 23


(X) баласы бар: - (X, Y) ата – анасы.

Бұл жерде баласы бар болу (қасиеті) сипаты баланың атына байланысты емес, сондықтан анонимді айнымалы қолданған жөн:

(X) баласы бар: - ( _ , _ ) ата – анасы.

Атының лексикалық диапазоны – бір.

Сөйлем. Бұл деген сөз, егер, мысалы, X аты екі әртүрлі сөйлемдерден кездессе, онда ол екі әртүрлі айнымалыларды білдіреді. Бірақ бір сөйлемнің ішінде оның әрбір кездесуі бір ғана айнымалыны білдіреді. Константалар үшін жағдай басқаша: бір ғана атом кез – келген сөйлемде бір ғана объектіні білдіреді, басқаша – айтқанда – Бүкіл бағдарламада.
Құрылымдар

Құрылыс – бұл конструкция, ол оның аргументтері тізімінің жақшалары ішіне жазылған және үтірлермен бөлінген құрылысы атынан құралады. Құрылысқа компоненттерін біріктіру үшін функтурды таңдап алу қажет.



Мысалы:

Дата (1, мамыр, 1983)



Бұл жерде фуктур -* дата. Бұл мысалдағы барлық компоненттер – константалар (екі компонент – бүтін сандар және біреуі - атом). Мамыр айындағы жеке бір күнді 1-суреттегі құрылыспен көрсетуге болады:

О
сындай объекттер, 2-суретте көрсеткендей, келесі пролог терминдерімен көрсетуге болады:

Р
1=нүкте(2, 4).

КF 12-06-07
Р2=нүкте(5, 2).

S = кесінді (P1, P2) = кесінді (нүкте (2, 4), нүкте (5, 2)).

Т = үшбұрыш (нүкте (2, 4), нүкте (5, 2), нүкте (7, 6)).
Салыстырулар

Пролог тілінде орындалатын негізгі операция – бұл салыстыру операциясы (унификация немесе келісу деп те айтылады). Бұл операция не жемісті, не жеміссіз болуы мүмкін. Айнымалылар өз мәндерін, фактілер және ережелерде константаларды салыстыру нәтижесінде, алады. Айнымалы өз мәніне ие болғанша, ол бос деп аталады. Айнымалы өз жаңа мәнін алған соң, ол байланып қалады. Бірақ ол сұраққа жауап алу үшін қажетті уақыт аралығында ғана байланып (байланысты) қалады. Бұдан кейін Пролог оны босатады, қайтарады және альтернативті шешімдер іздейді. Айнымалылар салыстыру процесі бөлігінің қызметін атқарады. Салыстыру операциясы былайша анықталады:



  1. Константа тек константамен ғана салыстырылады.

  2. Ұқсас құрылымдар бір - бірімен салыстырылады.

  3. Айнымалы константамен немесе басында белгілі айнымалымен салыстырылады.

  4. Екі бос айнымалылар бір – бірімен байланыса алады және бір – бірімен салыстырылады.

Салыстыру мысалдары:

5 саны 5-пен ғана салыстырылады.

Иелену факті <<иелену>> мен ғана салыстырылады .

Сергей константасы Юрий константасымен салыстырылмайды.



Сұрақтар

Сұрақ – бұл бағдарламаның орындалуы кезінде болатын логикалық шығыстың жіберуші нүктесі. Кез – келген сұраққа жүйе «Иә» немесе «Жоқ» деп жауап береді.

Горизонталь және вертикаль кесінділерді тану үшін бағдарлама фрагментін жазайық. Кесінді вертикаль, егер оның нүктелері – соңы координаттары сәйкес келсе; кесінліге басқа да ешқандай шектеулер қойылмайды. <<Горизонталдық>> сипаты ұқсас келеді, тек X пен Y – тің

орындарына ауыстыру қажет. Құрамында осы фактілері болған келесі бағдарлама, мына тұжырымдарды жүзеге асырады:



Осы бағдарламамен мынадай диалог мүмкін:

? – верт (кес. (нүкте (4, 2), нүкте (4, 6))).

Иә.


? – верт ( кес. (нүкте (1, 1), нүкте (2, Y))).

Жоқ.


? – гор (кес. (нүкте (1, 1), нүкте (7, Y))).

Y = 1.


КF 12-06-07


Бағдарламаға қатысты едәуір жалпы сұрақты құрастырайық: <<Басы (2, 3) нүктесінде жатқан, қандай да бір вертикалды кесінділер бар ма ?>>

? – верт (кес. (нүкте (4, 2), Р))

Р = нүкте (4, Y)

Келесі сұрақты қояйық: Бір мезгілде горизонталь да, вертикаль да болатын кесінді бар ма?

? – верт (S), гор (S).

S = кес (нүкте (X, Y), нүкте (X, Y)).

Бақылау сұрақтары


  1. Машиналық интеллект дегеніміз не?

  2. Терім.

  3. Құрылым

Әдебиет тізімі

1,2,3..



  1. лекция.

Тақырыбы: Фактілер мен ережелер. Бағдарламаның орындалу алгоритмі.

Құзыреттіліктер:

ПҚ2.Шет тілі шеңберіндегі құзіреттілік.

ПҚ3.Математикалық және іргелі жаратылыстану ғылыми және техникалық құзіреттілік.

ПҚ4. Компьютерлік құзіреттілік



Лекция жоспары:

  1. Фактілер мен ережелер.

  2. Бағдарламаның орындалу алгоритмі.

Лекция мазмұны

Фактілер мен ережелер

Факті – бұл аргументтері, константалар болатын предикаттар, объекттер арасында немесе объекттер сипаты қатынастарын білдіреді. Фактілер әрдайым шындық және бағдарлама орындалуы кезінде болатын, дәлелдеме қызметін атқарады. Фактілер мысалдары:

Иванов (сымтетік, Т. 123456).

Петров (сымтетік, Т. 789012).

Ережелер бар фактілер негізінде объектер арасындағы жаңа қатынастарды анықтауға мүмкіндік береді. Аргументтер ретінде константалар, айнымалылар қолданылуы мүмкін.

Ереже құрылысы:

КF 12-06-07
< ереже басы >: - < ішкі мақсат 1 >, < ішкі мақсат 2 >, …. < ішкі мақсат № 4

Мұндағы << : - >> - Егер дап ақылды ; << ; >> - және дегенде білдіреді . Фактілер мен ережелер соңында нүкте қойылады. Ереже мысалы:

Беделді _ жігіт (X) : - жақсы көреді (Х, рэп), киюге (Х, блейзер).

Былайша түсіндіріледі: Қайсыбір Х – беделді жігіт, егер Х рэпті жақсы көрсе және блейзер киіп жүрсе.


Бағдарламаның орындалуы алгоритмі

Прологта бағдарлама фактілері мен ережелері қандай да бір мәнді облыста объекттер арасындағы байланыстар мен қатынастар сипаттары болып табылады. Факті орындалуы үшін басқа ешнәрсе қажет емес, толық анықталған процедура ретінде қарастыруға болады. Ереже:


А1_В1 , В2 , ….. Вn .
Бұл ережені А процедурасының анықтамасы ретінде қарастыруға болады. Ол тұжырымдайды, оны анықтау үшін В1, В2, ….., Вn. білу қажет. В1, В2, …, Вn процедуралары белгілі тәртіпте солдан оңға қарай орындалады. Егер кезекті процедура дұрыс орындалса, онда келесі процедураға көшеді, егер дұрыс емес орндалса, онда жоғарыдан – төмен анықталатын, осы процедура жазбасының келесі вариантына көшеді. Білім базасында фактілер мен ережелер бірігуі үшін іздеу жоғарыдан – төмен қарай кезекті жүргізіледі және егер де сәйкес фактілер табылмаса, онда жауабы теріс болады. Мысалы:

Жақсы көреді (Оля, оқуды).

Жақсы көреді (Света, бадминтон).

Жақсы көреді (Лена, жүзуді).

Жақсы көреді (Лена, оқуды).

? – жақсы көреді (Х, оқуды), жақсы көреді (Х, жүзуді) .

Х = Лена.

Сұрақ оқу мен жүзуді жақсы көретін адамдар бар, жоқ екенін білдіреді. Пролог басында (бірінші) сұрақтың бірінші бөлігі салыстыратын фактіні іздейді – жақсы көреді (Х, оқуды). Х айнымалысы Оля мәнімен байланысады, сонымен қатар Пролог фактілер тізімінде іздеу процедурасы жағдайын көрсететін көрсеткішті белгілеп (есте сақтап) алады. Бұдан кейін Пролог Х = Оля кезінде сұрақтың екінші бөлігін біріктіруге тырысады. Жақсы көреді (Оля, жүзуді) фактісін іздейді. Мұндай факті жоқ және іздеу жеміссіз аяқталады. Осындай жағдайда Пролг іздеудің бірінші бөлігіне оралады – жақсы көреді (Х, оқуды), Х айнымалыны босатады және басында фактілер тізімінде табылған көрсеткіштен бастап іздеуді қайта жүргізеді. Жақсы көреді (Лена, оқуды) фактісі сәйкес келеді. Х айнымалысы Лена мәнімен салыстырылады және бұдан кейін сұрақтың екінші бөлігі жақсы көреді (Лена, жүзуді) фактісімен сәйкес келеді. Сұраққа жауап табылды.



Бақылау сұрақтары

  1. Пролог.

  2. Логикалық операциялар жөнінде түсінік.

  3. Предикат. Импликация.

КF 12-06-07
Әдебиет тізімі

1,2,3..



  1. лекция.

Тақырыбы: Есептеулерді басқару.

Құзыреттіліктер:

ПҚ2.Шет тілі шеңберіндегі құзіреттілік.

ПҚ3.Математикалық және іргелі жаратылыстану ғылыми және техникалық құзіреттілік.

ПҚ4. Компьютерлік құзіреттілік



Лекция жоспары:

1. Есептеулерді басқару.


Лекция мазмұны

Есептеулерді басқару.

Есептеулерді басқару процесінің негізгі құралдарына стандартты предикаттар fail және !. Fail – дұрыс емес, сәтсіздік,!-өшіріп тастау, Сәтсіздікке душар бағдарламаның мысалы:



1. Мысал. Екінші курс студенттері туралы мәліметтерді экранға шығару.

DOMAINS


st=student(fam,pr,oc)

fam,pr=symbol

num, oc=integer

g=gr(num,st)

PREDICATES

kurs_22(g)

CLAUSES

kurs_22(gr(261,student(“Қалдаров”,”Бағдарламалау тілдері”,5))).



kurs_22(gr(261,student(“Ашірбеков”,”Операциялық жүйелер”,5))).

kurs_22(gr(261,student(“Әділбеков”,”Басқару жүйелері”,5))).

kurs_22(gr(262,student(“Айқынова”,”Бағдарламалау тілдері”,4))).

kurs_22(gr(261,student(“Бұхарбаев”,”Басқару жүйелері”,4))).

kurs_22(gr(261,student(“Нүрсейтов”,”Шет тілі”,5))).

kurs_22(gr(261,student(“Сатымбеков”,”Операциялық жүйелер”,5))).

GOAL

clearwindow, kurs_22(X), write(X)



Мұндағы: Write(X)-жүйе предикаты, экранға айнымалы мәнін шығаруды білдіреді. Осындай сұраныс нәтижесінде бірінші (алғашқы) лайықты шешім табылады. Пролог, осы сұраныстың барлық мәндерін тауып алу үшін, алтернативті шешімдерді циклді аударуды ұйымдастыру қажет. Лайықты бірнеше тәсілдер бар, олардың бірі Прологтың мына қасиетін қолданады, яғни күнделікті іздеуді (поиск) сәтсіз қолдану жағдайында, альтернативті шешімді іздеуді жүзеге асыру. Бұл жағдайда Пролог жақын альтернативаға дейін шегінеді, іздеудің алғы шарттарын қалпына келтіреді және процесс табылған жаңа альтернативадан бастап қайтадан басталады. Бұл үшін fail-ды қолданады, бірақ ол әрдайым сәтсіз аяқталады және

КF 12-06-07


жақын альтернативаға дейін баруды тудырады. GOAL бөлімінде барлық фактілерді қарастыру мақсаты үшін қосымша предикат fail-ды жазамыз:

Clearwindow , kurs_22 (X) , write (X) , nl , fail / * nl – жаңа жолға көшуді білдіреді */



Бақылау сұрақтары

  1. Есептеулерді басқару процесі

Әдебиет тізімі

1,2,3..


  1. лекция.

Тақырыбы: Рекурсивтік есептеулер.

Құзыреттіліктер:

ПҚ2.Шет тілі шеңберіндегі құзіреттілік.

ПҚ3.Математикалық және іргелі жаратылыстану ғылыми және техникалық құзіреттілік.

ПҚ4. Компьютерлік құзіреттілік



Лекция жоспары:

1. Рекурсивтік есептеулер.



Лекция мазмұны

Рекурсивтік есептеулер.

Ереженің рекурсивті сипаты өз денесінде тура осы ереже атына қатысты сілтемеден құралған. Және мұнда рекурсияның келесі варианттары болады:



  1. Оң рекурсия

Pr ( ): - pr11 ( ), pr12 ( ), …, pr1 ( ).

  1. Сол рекурсия

Pr1 (1): - pr ( ), …, pr 11 ( ), pr12 ( ).

  1. Жалпы рекурсия

Pr1 ( ): - pr11 ( ), pr12 ( ), …, pr ( ), …, pr 21 ( ), pr22 ( ).

Реккурсивті ережеде орындалуы уақытында тоқтап қалулар болмауы үшін, рекурсияның аяқталу шарттарын қарастыру қажет. Оларды екі тәсілмен жүзеге асыруға болады:

1. Құрамында рекурсиясы жоқ, бағдарламаға альтернативті ереже немесе факторды pr1 ( ) қосу, шығыс тек осы рекурсивті ереже дұрыс аяқталған кезде болады.

Дұрыс аяқталатын, (қандай) бір предикат шығу қалпын қалыптастыру.рr21 ( ), pr22 ( ) предикаттары рекурсияның орындалуына әсер етпейді. Олар рекурсиядан шыққан соң орындалады стектен айнымалылар мәндерін қабылдайды, стекке олар рекурсия орындалып жатқан уақытта орналасады. Және осындағы жүргізіліп жатқан есептеулер кванттық деп аталады.



1. Мысал. Рекурсивті есептеулерді қолдана , n! факториалды есептеңіз.

DOMAINS


Number, Product = integer.

PREDICATES

Fact(Number, Product)

CLAUSES


Fact (1,1):-!.

Fact(N,R):-Next_N=N-1, Fact(Next_N, P), R=N*P.

КF 12-06-07
GOAL

Fact (3,Res),write (“Факториал 3=”, Res), nl.

Бағдарлама жүрісі барысындағы есептеулер:

Предикатты шақыру

Қойылымдар

Есептеулер

Cоңғы есептеулер

Есептеулер нәтижелері

Fact (3 , res)

N = 3 , Res = R

Next_N = N –

1 = 2


R = N * P

Res = R = 3 * 2 = 6

Fact (2 , P)


N' = 2 , P = R

Next_N = N –

1 = 1


R = N * P

P = R = 2 * 1 = 2

Fact (1 , P)

1 = 1 , P = 1










Бірінші қадамдар fact (3, les) мақсатты сұраныс орындалады және шешімдердің 1 -ші варианты таңдалады : fact (1, 1) ережесі fact (3, res) пен салыстырылады, өйткені 3  1 кері қарай қозғалы, екінші ереже таңдалады, бұл кезде оны ереже атауымен салыстыру дұрыс келеді. Және мұнда №=3, Res=3 қойылымы орындалады. Ереже денесі стекке орналасады және дене предикаттары өңделе басталады. Олардың ішіндегі алғашқысы Next _ N = N – 1 = 2 – мен салыстыру, содан соң fact (2, P) – ні шақырады. Қайтадан ереженің бірінші варианты таңдалады. 1  2 – ні салыстыру сәтсіздікке ұшырады, бағдарлама кері шегініп, ереженің екінші варианты таңдалады. Бұл кезде ереже атауымен салыстыру дұрыс аяқталады. Және мұнда № = 2, P = R қойылымы орындалады. Ереженің жаңа көшірмесі стекке орналасады және оның орындалуы басталады. Олардың бірі Next_ № = № = 1 дұрыс аяқталады. Next_№ айнымалысының копиясы 1 – ге тең болады . Бұдан кейін fact (1, Р) шақырылады. Тағы да бірінші ережемен салыстыру орындалады және дұрыс аяқталады. Қойылым келесі түрде болады: 1=1, Р = 1. І ережесінің денесі бос, сондықтан ешқандай іс - әрекеттер орындалмайды. Бағдарлама рекурсиядан шыққан соң, соңғы (қорытынды) есептеулер орындалады, яғни екінші ереже көшірмесінен стекте қалған қалдықтар. Осы есептеулер нәтижесінде Res айнымалысы жаңа мән 6 – ға ие болады және ол экранға write (“ Res = “ , Res) предикатымен шығарылады.

Бірінші тұжырымда кесіп тастау бар, ол тек fact (1, Res) сұранысын сұраған кезде, яғни ! есептеген кезде, Res айнымалысы 1 – ге тең болу үшін қолданылады. Және бұл кезде екінші ереже алынып тасталады. Және мұнда бірінші ереже тоқтап қалу және қатеге соқтырмайды. Fast (0, Res) сұранысы үшін бағдарламаны түзету үшін clauses бөліміне тағы бір тұжырымдаманы қосады:

Fаct (0, 1) : - !

Бақылау сұрақтары

1. Ереженің рекурсивті сипаты



Әдебиет тізімі

1,2,3..


  1. лекция.

Тақырыбы: Арифметикалық өрнектер. Қолданылатын предикаттар.

Құзыреттіліктер:

ПҚ2.Шет тілі шеңберіндегі құзіреттілік.

ПҚ3.Математикалық және іргелі жаратылыстану ғылыми және техникалық құзіреттілік.

КF 12-06-07


ПҚ4. Компьютерлік құзіреттілік

Лекция жоспары:

  1. Арифметикалық өрнектер.

  2. Қолданылатын предикаттар.

Лекция мазмұны

Арифметикалық өрнектер. Қолданылатын предикаттар.

Арифметикалық формулалар санға немесе құрылысқа жатады. Құрылысқа бір немесе бірнеше компонент кіре алады, мысалы, сандар, арифметикалық операторлар, арифметикалық тізбек формулалар, айнымалы – арифметикалық формуламен, нақтыланған, унарлы функторлар, қайта құру функторлары және арифметикалық функторлар.

Арифметикалық операторлар: +, -, *, /, mod, div, - прологтың кәдімгі атомдары және көбінесе кез – келген контексте қолданылуы мүмкін.

Салыстыру операциялары: >, <, =, >=, <=, <>, ><.



Функциялары: sin, cos, tan, arctan, ln, log, exp, sqrt, round, brunc, abs.
1. Мысал. Стандартты предикаттарды қолдана, есептеңіз:

 

DOMAINS


X, Y, Z = integer % егер real, онда сұраныста – readreal деп жазылады

PREDICATES

Z(X,Y)

CLAUSES


Z(X,Y):-Y=X*COS(X), X>=5;               Y=TAN(X).



Достарыңызбен бөлісу:
1   ...   12   13   14   15   16   17   18   19   20




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет