1.2.3 Пропозициялық логиканы пайдаланып логикалық есептерді шешу
Шешу алгоритмі:
Кодтау: логикалық айнымалылардың көмегімен қалағанды белгілеу (0, 1 мәндерін алу) және осы айнымалылардың мазмұнын сипаттау.
Шартты логикалық теңдеулер жүйесі түрінде жазу, оның оң жақ бөлігінде бірліктері бар.
Пікір. Егер теңдеудің оң жағы нөлге тең болса, сол жағын теріске шығару арқылы ол бірге азайтылады.
Жүйенің сол жақ бөліктерінің жалғаулығын құрастыру және оны бірлікке теңеу. Алынған теңдеу сипаттамалық деп аталады. Ол бастапқы теңдеулер жүйесіне тең: жүйенің әрбір шешімі сипаттамалық теңдеудің шешімі болып табылады және керісінше.
Негіздеме. Айнымалы мәндердің кейбір реті теңдеулер жүйесінің шешімі болсын. Сипаттамалық теңдеуге ауыстырғанда конъюнктураның әрбір мүшесін бірге айналдырады, сондықтан конъюнктура бірге тең болады.
Керісінше де дұрыс – сипаттамалық теңдеудің әрбір шешімі (ол конъюнктураны біреуге айналдырады) конъюнктураның барлық мүшелерін біріне айналдырады, сондықтан теңдеулер жүйесін қанағаттандырады.
Сипаттамалық теңдеудің сол жағын DNF-ге келтіру (атап айтқанда, SDNF-ке).
Түсініктеме. Екінші таралу заңы бойынша сипаттамалық теңдеудің сол жағындағы жақшаларды ашқанда қарама-қайшылық, алынып тасталған орта, қайталауларды (факторлар, терминдер) және жұтылу заңдарын қолдану арқылы елеулі жеңілдетулер алынады.
SDNF әрбір мүшесін басқаларына қарамастан біреуге теңестіру және теңдеулерден (сол жақ бөліктері айнымалылардың қосылыстары немесе оларды теріске шығару) айнымалылардың мәндерін шығару. Олардың әрбір жиынтығы мәселенің шешімі болып табылады.
Негіздеме. Айнымалылардың табылған мәндерінің әрбір жиыны дизъюнкцияның кем дегенде бір мүшесін бірлікке айналдырады, яғни сипаттамалық теңдеудің шешімі болып табылады.
Түсініктеме. Егер оңайлатылғаннан кейін DNF-де бір термин қалса, мәселенің бірегей шешімі, егер біреуден көп болса, бірнеше шешімі болады. Сипаттамалық теңдеудің сол жағындағы барлық мүшелер жойылған жағдайда есептің шешімі болмайды (деректер сәйкес емес).
Мәселені шешу үшін осы алгоритмді қолданайық.
Тапсырма. (Кім теледидар көреді?)
Отбасы бес адамнан тұрады: Алексей (А), Вера (С), Глеб (Г), Даша (Д), Евгений (Е).
Егер А теледидар көріп отырса, онда В да қарайды;
D немесе E немесе екеуін бірге қараңыз;
C немесе D қараңыз, бірақ бірге емес;
E мен D не бірге қарайды, не мүлде қарамайды;
егер E қарап отырса, онда A және D қарап отыр.
Кім теледидар көреді?
Шешім:
Логикалық теңдеулер жүйесі түрінде жазамыз:
Сипаттамалық теңдеуге түрлендірейік:
SDNF-ге сипаттамалық теңдеудің сол жағын келтіреміз:
Бізде бір термин бар, сондықтан мәселенің бірегей шешімі бар. SDNF әрбір мүшесін біреуге теңестіру және теңдеуден айнымалылардың мәнін шығару.
Осылайша, біз жауап алдық: Глеб пен Даша теледидар көріп отыр.
Достарыңызбен бөлісу: |