Зертханалық жұмыс №7
Тақырыбы: «Қиып алу» конструкциясы.
Жұмыстың мақсаты: Пролог-Д жүйесінде альтернативті шешім табу.
Теориялық бөлім
«Қиып алу» - предикаты, логикалық шығаруды басқару үшін негізделген. Бұл предикат келесі мәселені шешу үшін қолданылады:
Табылған шешімдердің санымен шектеледі.
Есептің кейбір ерекше шешімдерін табу.
Компьютер жұмысын жеңілдету мақсатында іздеу көлемімен шектеледі. «Қиып алу» предикаты (!) леп белгісімен сипатталады.
Егер предикатты сөйлемде қолдансақ, онда одан алған әсерді тек солдан оңға ғана жүретін есік ретінде сипаттауға болады, бірақ артқа осы есік арқылы қайтуға болады. Есік ролін (!) символы орындайды. Пролог-Д жүйесі сөйлемде солдан оңға қарай ретпен <- символынан бастап біріншіден соңғы мақсатқа дейін орындалады. Егер қандайда бір мақсат орындалмаса, онда қайтаруды және альтернативті шешімді табуға болады. Қиып алу мақсаты қаралғаннан кейін альтернативті іздеу мүмкіндігі шектеледі де « ! » символымен сипатталады. Осы мақсатта, егер А, Б, В мақсаттары орындалмаса, қайта альтернативті шешімді сөйлемнен іздеу мысалы <- А, Б, В, !, Г, Д, Е; мүмкін, ал егер Г, Д және Е мақсаттары орындалмаса, онда болмайды. Бұл предикаттың ерекше маңыздылығы есептің жазылуында және көптеген шешімдерді жіберуде. Қиып алу предикатына мысал ретінде «мама» білім қоры мысалында сипатталған. Шынында, әрбір адамда екі анадан болу мүмкін емес, сондықтан берілген адамның атын анықтау үшін келесі іздеуді тоқтату қажет.
мама(Саша,Петя)<-!;
мама(Наташа,Ваня)<-!;
мама(Оля,Петя)<-!;
мама(Катя,Даша)<-!;
мама(Люда,Сережа)<-!;
мама(Петя,Костя)<-!;
білім қорында мына сұрақ берілуі мүмкін.
?мама(x,Даша);
Пролог-Д жүйесінің жауабы:
x=Kатя
Басқа шешім жоқ
Тапсырмалар
1. Егер мысалдағы сөйлемдерден соңғы қиып алу предикатын алып тастасақ, онда не болады?
2. Пролог-Д жүйесінде кезекті және параллель байланысты екі резисторлар, екі конденсаторларды жазыңыз.
Достарыңызбен бөлісу: |