![]() |
![]() |
||
![]() |
4.9. Использование Пролога для реализации правил де МорганаВ программе 4.4 функции а, Ь, с, d, q и h представлены в трех различных вариантах, иллюстрирующих применение правил де Моргана. Различным вариантам соответствуют отношения, обозначенные разным числом букв. Например, отношение а - первый вариант функции а из табл. 4.8, аа - второй вариант той же функции и ааа - третий. Теперь, если три варианта представляют одну и ту же функцию, реакция Пролог-системы в случае одних и тех же переменных будет одинаковой. Программа 4.4
а Т if (either p true or p false) аа Т if not (p true and p false) ааа Т if not not (either p true or p false) b T if (either p true or q true) bb T if not (p false and q false) bbb T if not not (either p true or q true) с Т if (either p true or q false) cc T if not (p false and q true) ссс Т if not not (either p true or q false) d T if p true dd T if not (p false and p false) ddd T if not not (either p true or p true) g T if (either p true or q true or p false and q false)) gg T if not not (p true or q true) and not (p false and q false) ggg T if not not (either not (either p false or q false) or not (either p true or q true)) h T if p true and q true hh T if not not (p true and q true) hhh T if not (either p false or q false) X true if (X true) is-told X false if not X true X F if not X T В данной программе енова используется модуль TOLD, позволяющий организовать диалог пользоваться с Пролог-системой. Ниже приводится пример такого диалога: is (h T) [верно (h Т)] р true ? yes [р истинно? да] a true ? yes [q истинно? да] YES [ДА] & is (hh T) [верно (hh T)] р true ? yes [р истинно? да] q true ? yes [q истинно? да] YES [ДА] & is (hhh T) [верно (hhh T)] p true ? yes [р истинно? да] q true ? yes [q истинно? да] YES [ДА] Указанный диалог показывает, что первая строка таблицы истинности для высказываний h, hh и hhh одна и та же. Аналогичным образом могут быть проверены и остальные строки и таблицы. Ниже приводится программа 4.5, полученная в результате модификации программы 4.3. Эта программа позволяет проверять таблицы истинности для различных вариантов представления функций алгебры логики. Программа 4.5
Т true X true (Y Z x) if X true (Y Z) and x true b true (X Y) if (either X true or Y true) bb true (X Y) if X val and Y val and not (X false and Y false) bbb true (X Y) if X val and Y val and not not (either X true or Y true) с true (X Y) if (either X true or Y false) cc true (X Y) if X val and Y val and not (X false and Y true) ccc true (X, Y) if X val and Y val and not not (either X true or Y false) h true (X Y) if X true and Y true hh true (X Y) if X val and Y val and not not (X true and Y true) hhh true (X Y) if X val and Y val and not (either X false or Y false) X val if (either X true or X false) X tab (Y Z x) if (either X true (Y Z x) or X false (Y Z x)) F false X false (Y Z) if Y val and Z val and not (X true (Y Z)) X false (Y Z x) if X false (Y Z) and x false Для получения с помощью программы 4.5 таблицы истинности для функции b необходимо ввести запрос типа all (x y z : b tab (x y z)). Затем после ввода аналогичных запросов для функций bb и bbb получаем соответствующие им таблицы. Ниже приводится диалог, возникающий после ввода трех указанных запросов. & all (х у z : b tab (xyz)) TXT XTT FFF & all (x у z : bb tab (x у z)) TTT TFT FTT FFF & all (x у z : bbb tab (x у z)) TFT FTT FFF No (more) answers По полученным таблицам можно убедиться в идентичности функций b, bb и bbb.
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
![]() |
|||
© Злыгостев А.С., 2001-2019
При использовании материалов сайта активная ссылка обязательна: http://informaticslib.ru/ 'Библиотека по информатике' |