Автор работы: d***********@gmail.com, 28 Ноября 2011 в 07:34, курсовая работа
Жасанды интеллект (искуственный интеллект) – бұл адам ойын компьютерде бейнелейтін (имитирующий) программалық жүйе.Бұндай жүйені жасау үшін белгілі бір облыста шешім қабылдайтын немесе нақтылы есептерді шешетін адамның ойлау процесін зерттеу қажет және осы процестің негізгі қадамдарын бөліп көрсетіп , оларды компьютерде іске асыратын программалық жабдықтарды жасау қажет.
КІРІСПЕ....................................................................................................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
/*факт ‘голди является родителем рекса’
Родитель(Джек,рекс).
Қолданылған Пролог синтаксисінің
кейінірек нақтылап анықтаймыз.Әзірше
кішкене әріптермен жазылған
әрбір әріптер Литерал деп есептейік.Ол
объектіні береді және өзгертуге
келмейді. Үлкен әріптен басталатын
әрбір сөз (мыс:Х,У,Кім) айнымалы
болып табылады.Программаның орындалу
барысында айнымалыларға мән
беріледі.Яғни одан кейін келетін
мақсатты дәлелдеу көзделеді.Пролог
мәліметтер базасының сұраныстардың
немесе программаның орындалу барысында
ақпаратын өзгерте алатындай немесе
қосымша ақпараттар еңгізе алатындай
етіп,жабдықталған.
I РЕТТІ ПРЕДИКАТТАРДЫ ЕСЕПТЕУ.
1.Формальды жүйені анықтау.
Формальды жүйе деп синтаксистік түрде өңделген символдар жиының мағынасын ескермей өңдеу ережелері анықталатын абстрактілі объектінің жиының айтамыз.Формальды жүйе құраушылары төменде берілген:
1. Ақырлы алфавит (Символдардың ақырлы жиыны)
2. Формальды жүйе формулаларын (немесе сөздерін) жасау процедурасы.
3. Аксиома деп аталатын формулалар жиыны.
4. Формулалардың ақырлы жиының алуға мүмкіндік беретін қорытынды шығару ережелердің ақырлы жиыны.
Бұл ережелер келесі түрде берілуі мүмкін:
U1 U2…..Um W1 W…Wn.
Мұнда Ui , Wj – формальды жүйе формулалары , ал “ “ - ‘шығады’ немесе ‘туындайды’ дегенді білдіреді.
Формальды жүйе кейде аксиоматикалық, формальды теория немесе формулалар жиыны деп те аталады.
Алфавит ақырлы деп есептеледі және оны кейде сөздік деп те атайды.Оған const-лар , айнымалылар және операторлар кіреді.
Формулаларды жасау процедурасы құрылып тұрған символдардан синтаксистік немесе граматикалық символдарды тұрғызуға арналады.Ол қорытынды шығару ережесінен өзгеше болады.
Формальды дәлелдеу деп М1 ,М2 ... Мп формулалардың ақырлы жиынында әрбір Мі формуласы не аксиома немесе алдыңғы Мj (j<<) формулаларынан қорытынды шығару ережелері көмегімен алынатындай формулалардың жиынтығын айтамыз.
t формуласы th деп аталады, егер оның соңғы болатындығын анықтайтын дәлелдеу болса Mn= t
Жеке жағдайда кез келген аксиома th болып табылады.Қорытынды шығару ережесінің 2 типі бар. І типтегі ережелер бір тұтас деп есептелетін формулаларға қолданылады.(Бұл жағдайда оларды өнім, өнім ережелері немесе өнімдік ережелер деп аталады).
ІІ типтегі ережелер формуланы жеке бөліктеріне қолданылуы мүмкін.Сонымен қатар , бұл бөліктер қалыпты жүйеге енетін формулалар болып табылады.Мұндай ережелер қайта жазу ережелері деп аталады.
Мысал :
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”-ты аламыз.
Формальды жүйелер өңделетін
Жақсы белгілі целлогизмді қарастырайық. «Барлық ер адамдар өлуге жаратылған.Сократ- ер адам , демек Сократ өлуге жаралған.»
Бұл сөйлемде кез келген
ер адам немесе барлық «Сократ»
, «өлуге жаратылған» сөздері
қорытынды жасау мағынасы
ақиқат болатындай кез келген
сөздермен алмастырылады.
Оператарлар деп аталатын
бірінші ретті предикаттар
тілінің синтаксисі.
І РЕТТІ ПРЕДИКАТТАР ТІЛІНІҢ СИНТАКСИСІ.
Предикат кез келген логикалық функция деп , ақиқат мәндер қабылдайтын аргументтер саны кез келген болатын функция аталады.Мысалы,И-истина -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 тұжырым бір айнымалы атын әртүрлі әдіспен қолдануы мүмкін.