Упражнения

14. 1. Рассмотрите "если-то"-правила Рисунок 14.2-14.4 и транслируйте их в нашу систему обозначений для правил. Предложите расширение нотации, чтобы, при необходимости, можно было работать с оценками уверенности.
line(); % Небольшая база знаний для локализации неисправностей в
% электрической схеме
% Если прибор включен, но не работает, и предохранитель цел,
% то прибор неисправен.
        правило_поломки:
                                        если
                                                вкл( Прибор) и
                                                прибор( Прибор) и
                                                не работает( Прибор) и
                                                соед( Прибор, Предохр) и
                                                доказано( цел( Предохр) )
                                        то
                                                доказано( неиспр( Прибор) ).
% Если устройство работает, то его предохранитель цел
        правило_цел_предохр:
                                        если
                                                соед( Прибор, Предохр)
                                                и работает( Прибор)
                                        то
                                                доказано( цел( Предохр) ).
% Если два различных прибора подключены к одному и тому же
% предохранителю, оба включены и не работают, то предохранитель
% сгорел.
% ЗАМЕЧАНИЕ: предполагается, что из двух приборов неисправных -
% не более одного!
            правило_предохр:
                                        если
                                                соед( Прибор1, Предохр) и
                                                вкл( Прибор1) и
                                                не работает( Прибор1) и
                                                общ_предохр( Прибор2, Прибор1) и
                                                вкл( Прибор2) и


                                                не работает( Прибор2)
                                        то
                                                доказано( сгорел( Предохр) ).
        правило_общ_предохр:
                                        если
                                                соед( Прибор1, Предохр) и
                                                соед( Прибор2, Предохр) и
                                                различны( Прибор1, Прибор2)
                                        то
                                                общ_предохр( Прибор1, Прибор2).
        факт:  различны( X, Y) :- not (X=Y).
        факт:  прибор( радиатор).
        факт:  прибор( лампа1).
        факт:  прибор( лампа2).
        факт:  прибор( лампа3).
        факт:  прибор( лампа4).
        факт:  соед( лампа1, предохр1).
        факт:  соед( лампа2, предохр1).
        факт:  соед( радиатор, предохр1).
        факт:  соед( лампа3, предохр2).
        факт:  соед( лампа4, предохр2).
        можно_спросить( вкл( П), вкл( 'Прибор') ).
        можно_спросить( работает( П), работает(' Прибор')).
line();