Автор: Пользователь скрыл имя, 15 Марта 2012 в 08:06, курсовая работа
Жасанды интеллект (искуственный интеллект) – бұл адам ойын компьютерде бейнелейтін (имитирующий) программалық жүйе.Бұндай жүйені жасау үшін белгілі бір облыста шешім қабылдайтын немесе нақтылы есептерді шешетін адамның ойлау процесін зерттеу қажет және осы процестің негізгі қадамдарын бөліп көрсетіп , оларды компьютерде іске асыратын программалық жабдықтарды жасау қажет.
ЖОСПАР
КІРІСПЕ....................................................................................................3
НЕГІЗГІ БӨЛІМ
Жасанды интеллект жүйесіндегі аспаптық құрылғылар.
2.Жасанды интеллект обылысындағы зерттеудің негізгі бағыттары............5
3.Пролог логикалық программалау тілі...........................................................6
3.1.1-ші ретті предикаттарды есептеу.........................................................10
3.2.1-ші ретті предикаттар тілінің синтаксисі............................................12
3.3.1-ші ретті предикаттар тілінің симантикасы........................................13
4.Синтаксис және унификация.........................................................................14
4.1.Унификация.............................................................................................19
5.Арифметикалық өрнектеу..............................................................................20
5.1.Арифметикалық өрнектеу......................................................................21
5.2.Арифметикалық операторлар................................................................22
5.3.Арифметикалық өрнектерді есептеу.....................................................22
5.4.Арифметикалық өрнектер нәтижесін салыстыру................................23
6.Рекурсия...........................................................................................................23
ҚОРЫТЫНДЫ........................................................................................30
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР.........................................................31
t формуласы th деп аталады, егер оның соңғы болатындығын анықтайтын дәлелдеу болса Mn= t
Жеке жағдайда кез келген аксиома th болып табылады.Қорытынды шығару ережесінің 2 типі бар. І типтегі ережелер бір тұтас деп есептелетін формулаларға қолданылады.(Бұл жағдайда оларды өнім, өнім ережелері немесе өнімдік ережелер деп аталады).
ІІ типтегі ережелер формуланы жеке бөліктеріне қолданылуы мүмкін.Сонымен қатар , бұл бөліктер қалыпты жүйеге енетін формулалар болып табылады.Мұндай ережелер қайта жазу ережелері деп аталады.
Мысал :
1) Алфавит :Е,S,A;
2) Формула: алфавит кез келген символдардың тізбегі;
3) Аксиома : (Т,А); ТА;
4) Қорытынды шығару ережелері;
R1)tA – tAS (өнім)
R2)Tt – Ttt (өнім)
R 3)AAA – S (қайтып жазу)
R4)SS –
R1 ережесі болып табылады және тек th-ң соңғы әріпі А болғанда ғана қолданылады.Мыс: “TASTA” th-нан “TASTAS”-ты шығаруға болады.
R2 ережесі “TSA” th-сын “TSASA” th-сын шығаруға мүмкін береді.
R3 ережесі мысалы ,“TSAAAST”-дан “TSSST”-ға өтуге мүмкін береді.
R4 ережесі “TASSSST” әрбір 2 S-ті бос орынмен алмастырады және нәтижесінде “TAT”-ты аламыз.
Формальды жүйелер өңделетін тұжырымды мағынасын қарыстырмай-ақ ой-қорытындыларын жасауға арналған.Яғни ой-қорытындылар жасалатын барлық элементтер мағыналары басқа кез келген элементтермен алмастырылуы мүмкін.
Жақсы белгілі целлогизмді қарастырайық. «Барлық ер адамдар өлуге жаратылған.Сократ- ер адам , демек Сократ өлуге жаралған.»
Бұл сөйлемде кез келген ер адам немесе барлық «Сократ» , «өлуге жаратылған» сөздері қорытынды жасау мағынасы ақиқат болатындай кез келген сөздермен алмастырылады.Мысалы, абстрктілі модельдерде «кез келген Х дегеніміз У болып табылады.Егер Z Х болып табылса , онда Z У-те болып табылады.» X,Y,Z айнымалылары қолданылады.Байланыс сөздері : «егер», «онда», «немесе» және т.б.
Оператарлар деп аталатын бірінші ретті предикаттар тілінің синтаксисі.
І РЕТТІ ПРЕДИКАТТАР ТІЛІНІҢ СИНТАКСИСІ.
Предикат кез келген логикалық функция деп , ақиқат мәндер қабылдайтын аргументтер саны кез келген болатын функция аталады.Мысалы,И-истина -1, Л-жалған -0 , аргументтер арқылы, шексіз немесе кез келген Д жиынының пәндік облысы деп аталатын бөлігінен мәндер қабылдайды.Аргументтінің саны п-ге тең предикат , п-орынды предикат деп аталады.
Д пәндік облысында анықталған F(X) предикаты Д жиынының элементтеріне белгілі бір қасиет береді, сонымен қатар егер пікір ақиқат болса , онда F И мәніне ие және жалған болса Л мәніне ие.
F(x1, x2……xn) предикаты x1, x2……xn элементтері арасындағы қатынасты береді және «x1, x2……xn өзара F қатынасында болады» пікірін береді.Мысалы, Д натурал сандар жиыны болсын , онда F(X) предикатын «Х жұп сан» немесе «Х тақ сан» деп белгілеуге ,ал G(X,Y) предикатын «Х У-тен артық» немесе «Х У-ке бөлінеді» деп белгілеуге болады.
І ретті предикаттар тілінің алфавиті келесі символдар жиынынан тұрады:
1.Бөлімдер (разделитель) ашылатын немесе жабылатын жақшалар, үтір.
2.Кішкентай әріптермен немесе осындай әріптер тіркесімен белгіленетін тұрақтылар,мысалы «а», «друг» .
3.Үлкен әріптермен белгіленетін айнымалы: мысалы «У», «АДРЕC».
4.Үлкен әріптермен белгіленетін предикаттар: «Р» , «Q» , «артық».
5.Бір пәндік облыс мәнін басқа пәндік облысқа бейнелейтін және тәуелділікті орнататын функциялар , п орынды функция ,предикаттын аргументтері болып қызмет жасай алады.Функцияларды кішкентай әріптермен белгілейміз.
І РЕТТІ ПРЕДИКАТ ТІЛІНІҢ СИМАНТИКАСЫ.
Формула белгілі бір мағынаға ие болады,яғни қайсыбір пікірді білдіреді , егер қандай да бір интерпретация бар болса , формуланы интерпретациялау бұл онымен белгілі бір бос емес Д жиынын байланыстыру деген сөз яғни пәндік облысы нақтылау және мыналарды көрсету:
1.Формуладағы әрбір тұрақты үшін Д-дан нақтылы элементі.
2.Формуладағы әрбір п орында функцияльдық әріп үшін Д-дан п орынды нақтылы функцияны.
3.Формуладағы әрбір п орынды предикаттын әріп үшін Д-ң п элементтері арасындағы нақтылы қатынас.
Мысалы ,G(f(a,b)) ,g(a,b) атомы п төмендегі интерпретацияны қарастырайық: Д – нақты сандар жиыны а=2,b=3 ,f – қосу функциясы f(a,b)=a+b, g- көбейту функциясы , g(a,b)=a*b G –«кем емес» қатынасы. Мұндай интерпретацияда төмендегі формула «2+3 қосындысы 2*3 көбейтіндісінен кем емес» пікірін білдіреді.Бұл тұжырым дұрыс емес , сондықтан G(f(a,b)6g(a,b))=Л ,яғни жалған.Егер в=1 немесе в=2 деп интерпретацияның түрін өзгертсек , онда G(f(a,b)6g(a,b))=U ақиқат болады.
СИНТАКСИС ЖӘНЕ УНИФИКАЦИЯ.
СИНТАКСИС.
1.Термдер. Прологта мәліметтер объектісі термдер деп аталады. Терм тұрақты (константа), айнымалы немесе құрамды терм (құрылым) болуы мүмкін. Бүтін немесе нақты сандар константа болып табылады, мысалы:
0, -1, 123.4, 0.23Е-5
Прологтың кейбір версияларында нақты сандар қолданылмайды.
Константаларға сонымен қатар
голди, а, атом, +, :, ‘Фред Блогс’,
сияқты атомдар да жатады.
Атом дегенміз бірлік тырнақшаға алынған символдардың кез-келген тізбегі. Егер атомдарды айнымалалрды сипаттауға арналған символдардан ажырата алуға болатын болса, онда бірлік тырнақшаларды қолданбауға болады. Атомдардың тағы бірнеше мысалдарын келтірейік:
abсd, фред, ‘:’, Джо
Басқа программалау тілдеріндегі сияқты константалар нақтылы элементар объектілерді береді, ал мәліметтердің барлық басқа типтері константалар мен айнымалардың бірігуінен тұрады.
Айнымалалр аттары үлкен әріптерден немесе сызықша «_» белгісінен басталады. Мысалы:
Х, Айнымалы, _3, _айнымалы.
Егер айнымалы бір-ақ рет қолданылса,онда оған ат беру міндетті емес ,оны сызықша белгісінен тұратын анонимді айнымалы сияқты жазуға болады.Айнымалыларда атом тәрізді Пролог тілінің элементар объектілері болып табылады.
А-а:Айнымалыларға немесе тұрақтыларға жатқызуға келмейтін синтаксистік бірлік күрделі терм деп аталады. Демек күрделі терм айнымалылар мен тұрақтылардан тұрады.Тұрақтылар барлық программисттерге белгілі.Прологта тұрақты атом немесе сан болуы мүмкін.
2.Атом. Атом дегеніміз бірлік тырнақшаға алынған символдар тізбегі.Атом ішінде кездесетін бірлік тырнақша 2 рет жазылады.Атом баспаға шыққанда тырнақшаның ішкі символдары жазылмайды , атомды тырнақшаның ішіне жазу міндетті болмайтын бірнеше ерекше жағдайлар бар.Олар: тек сандардан,әріптерден,,сызықша символынан тұратын және бас әріптен басталатын атомдар.ІІ тұтастай арнайы символдардан тұратын атомдар.Олар: + , - , * , / , : , ; , @ , $ , ^ , &;
Егер /* жазудан басталатын атом , бірлік тырнақшаға алынбаса түсіндірмені басталуы ретінде қадылданады.
Тырнақшаға алу міндетті емес атомдарды тырнақшаға алыпта жазуға болады.Ішкі тырнақшалармен немесе оларсыз да жазылған жазу бір атомды анықтайды.
Ескерту: Атом бірден-бір символы жоқ (нольдік атом деп аталады) немесе баспаға шықпайтын символдардан тұруы мүмкін.(Прологта атомдарды тұрғызуға арналған баспаға шықпайтын немесе басқарушы символдардан тұратын предикаттар бар).Мұндай атомдарды баспаға шығарғанда қате туындауы мүмкін.
Прологтың көптеген версияларында бүтін немесе нақты сандармен жұмыс жасалады.Олардың диапазондары мен дәлдігі қандай екенін білу үшін сол версия туралы мәліметтерге көз салу қажет.
3.Айнымалылар. Прологтағы айнымалы ұғымы көптеген программалау тілінде қабылданғандағыдан біраз өзгеше.Айнымалы жадының бір бөлінген аумағы сияқты қарастырылмайды.Ол аты бойынша қарастырылған болмайтын объектіні белгілеу үшін қолданылады.Айнымалыны қайсыбір объектіні локальды аты деп есептеуге болады.
Айнымалы үлкен әріптен немесе сызықша белгісінен басталуы және тек әріп , сан және сызықша символдарынан тұруы тиіс.
Айнымалының әрекет ететін облысы тұжырым болып табылатын шекарасында бір ат,сол бір айнымалыға ғана тән ,2 тұжырым бір айнымалы атын әртүрлі әдіспен қолдануы мүмкін.
Әрбір анонимді айнымалы тұжырымға анонимді айгымалылардан анық ажыратылады.
А-а: Анонимдерден өзгеше айнымалылар атаулы деп ,ал нақтылан-баған (мән берілмеген) айнымалылар еркін деп аталады.
4.Күрделі терминдер немесе құрылымдар. Құрылым – басты функтор деп аталатын атомнан және құрылым компоненттері деп аталатын термдер тізбегінен тұрады.Компоненттер үтірмен ажыратылады және дөңгелек жақшаға алынады.Құрылымды термдерге мысал кел-тірейік : собака (рекс) , родитель (Х,У) құрылымдағы компонент саны құрылым арносты деп аталады.Берілген мысалда собака құрылымы 1 арносты болып , ал родитель құрылымы 2 арносты болып табылады.Атомды нолінші арностаға құрылым ретінде қарауға болады.
Егер құрылымды басты функтор ретінде қолданылатын атомды оператор деп жарияласақ ,онда 1-ші және 2-ші арносты құрылым операторлық түрінде жазылады.
А-а: Тізім – қайсы бір 2-ші арносты құрылым болып табылады.
Жол – деп қос тырнақша алынған баспаға шығаруға болатын символдар тізбегін айтамыз. « » жол ішінде 2 рет жазылады.
ПРОЛОГ-тың кейбір версияларында жолда атомдар немесе тізімдер сияқты белгілі бір объектілер типі ретінде қарастырады.оларды өңдеу үшін арнайы кіріктірілген тридекаттар еңгізіледі.Басқа версияларда жолдар тізімдер сияқты өңделсе ,онда тізімдерді өңдеуге арналған кіріктірілген тридикаттар қолданылады.
5.Тұжырымдар.Пролог программасы дегеніміз, бұл тұжырым жиынтығы.Тұжырымдар мақсаттардан тұрады және Прологтың мқ-да сақталады.Тұжырым соңында нүкте қойылады , кейде тұжырым сөйлем деп аталады.
Прологтың негізгі операциясы – тұжырымға кіретін мақсаттарды дәлелдеу.
Тұжырымның 2 типі бар: дерек – бұл міндетті түрде ақиқат болатын бірлік мақсат.
ІІ ереже: Кейбір жағдайларда ақиқат болатын бір басты мақсаттан және бір-бірінше құйрықты мақсаттардан тұрады.
Ереже әдетте, мақсаттар конъюнкциясы түрінде болатын бірнеше құйрықты мақсаттардан тұрады.
Конъюкцияны логикалық функция «және» түрінде қарастыруға болады.Сонымен , ереже келісіледі, егер оның құйрықты мақсаттары келісілсе.
Деректер мысалдары: собака (рекс),
Ереже мысалдары: собака (х):-родитель (х,у) , собака (х),
Ережелер мен деректер арасындағы айырмашылық таза симантикалық түрде болады: собака (х):- родитель (х,у) , собака (у); ережесінен :- собака(х) ‘,’ родитель (х,у) ,собака(у) жазу дұрыс болады,өйткені « :- » шарты орындалады.Егер («приусловии , что») операторы болып табылады.Ал ‘,’ бұл конъюкция операторы.Бірақ бұны мына түрде: соьака (х) :- родитель (х,у) , собака (у); түрде жазған ыңғайрырақ және оны келесі түрде оқимыз:
«х-собака , приусловии , что родителями х является У и У собака».
6.Сұраныстар.МҚ-на тұжырымдар еңгізілген соң , есептеу сұраныстар еңгізу арқылы жүргізіледі.Сұраныс Пролог-та арносы 1 болатын «?» тұжырыммен белгіленеді.Әдетте сұраныс операторлық түрде былай жазылады: «?» - белгісінен кейін бірнеше құйрықты мақсаттық тұжырымдар жазылады.
Сұраныстар мысалдары: ? – собака (х)
‘?’ – (собака (х))
(‘?’-) ‘,’ (родитель (х,у),собака(у))
Соңғы жазуда аргументтерді бөлуші үтір символы құрылымдағы конъюнкция символымен сәйкес келетіндіктен , былай жазу ыңғайсыз:
Сұранысты кейде басқарушы команда (деректива) деп аталады,себебі ол Пролог - жүйеден кейбір әрекеттердің орындалуын талап етеді.
Прологтың кейбір версияларында басқарушы команда үшін альтернативті символ қолданылады,ал «?»- символы ПРОЛОГ интерпритаторының жоғарғы деңгейін шақыруды білдіреді.Альтернативті символ болып :- символы табылады.Сонымен :-write (собака) бұл басқарушы команда орындалу нәтижесінде собака атомы баспаға шығады.