русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Булевы функции и логика высказываний


Дата добавления: 2015-08-31; просмотров: 1333; Нарушение авторских прав


Как мы уже отметили, Дж. Буль ввел булевы функции для решения логических задач. В логике под высказыванием понимают некоторое повествовательное предложение, относительно которого можно сказать, истинно оно или ложно. Логика высказываний занимается выяснением истинности тех или иных высказываний, связью между истинностью различных высказываний и т.п.

Булевы функции могут служить полезным инструментом при решении многих логических задач.

Каждую переменную можно рассматривать как некоторое элементарное высказывание, принимающее одно из двух значений: 1 (истина) или 0 (ложь). Сложным высказываниям сооответствуют формулы, построенные из элементарных высказываний с помощью логических связок. Вычисляя значения задаваемых ими функций, можно устанавливать зависимости истинностных значений сложных высказываний от значений входящих в них элементарных высказываний. Рассмотрим следующий пример.

Пример 3.1.Пусть известно, что в дорожном проишествии участвовали три автомобиля с водителями A, B и C. Свидетели проишествия дали следующие показания:

  • 1-ый свидетель: если A виновен, то из остальных B и C хоть один не виновен;
  • 2-ой свидетель: если C не виновен, то виновен кто-то один из пары A, B но не оба вместе;
  • 3-ий свидетель: в столкновении виновны не менее двух водителей.

Опишите показания свидетелей в виде булевых формул и постройте таблицу значений их конъюнкции. Можно ли на основании этих показаний сделать вывод, что C является виновником проишествия? Можно ли однозначно определить второго виновника?

Для ответа на эти вопросы введем три переменные, соответствующие следующим высказываниям: X1 : " виновен A ", X2 : " виновен B " и X3 : " виновен C ". Тогда показания 1-го свидетеля описываются формулой Φ1=(X1 (X2 X3)) , показания 2-го свидетеля - Φ2= ( X3 (( X1 X2) (X1 X2))), а 3-го свидетеля - Φ3= ((X1 X2)\vee ((X1 X3) ( X2 X3))) . Показаниям всех трех свидетелей соответствует конъюнкция этих формул Ψ= (Φ1 2 Φ3)) . Составим таблицы значений для функций fΦi (i=1,2,3) , а затем - для fΨ.



Таблица 3.5. Функция fΦ1  
X1 X2 X3 (X1 ( X2   X3))  
 
 
 
 
 
 
 
 
 
Таблица 3.6. Функция f Φ2
X1 X2 X3 ( X3 (( X1 X2)   (X1 X2)))
\ 1
                                         

 

Таблица 3.7. Функция f Φ3
X1 X2 X3 ((X1 X2) ((X1 X3) ( X2 X3)))
Таблица 3.8. Функция f Ψ        
X1 X2 X3 (\Phi1 (\Phi2 \Phi3))        
       
       
       
       
       
       
       
       
                                     

Из этой таблицы следует, что fΨ(X1,X2,X3)=1 на двух наборах: (X1=0, X2=1, X3=1) и (X1=1, X2=0, X3=1) (строки с этими наборами подчеркнуты). Поскольку в обоих случаях X3=1 , можно сделать вывод, что С является одним из виновников проишествия. Однозначно определить второго виновника полученная от свидетелей информация не позволяет, так как в одном случае им является А, а в другом - В.

Важную роль в логике играют понятия тождественно истинной и выполнимой формулы.

Определение

Булева формула Φ называется тождественно истинной, если она истинна при любых значениях входящих в нее переменных, т.е. функция fΦ тождественно равна 1.

Булева формула Φ называется выполнимой, если существует такой набор значений переменных, на котором она истинна, т.е. функция fΦ равна 1 хоть на одном наборе аргументов.

Как проверить тождественную истинность или выполнимость формулы Φ? На первый взгляд кажется, что ответ прост - построим по Φ таблицу для функции fΦ , и, если в столбце значений стоят только единицы, то заключаем, что Φ тождественно истинна, если там есть хоть одна единица, то Φ выполнима. К сожалению, этот способ пригоден только для формул с небольшим числом переменных. Уже для нескольких десятков и сотен переменных он не годится из-за большого размера получающейся таблицы - нетрудно подсчитать, что число 290 превосходит количество атомов во всей видимой вселенной.

В математической логике построены аксиоматические системы, позволяющие формализовать человеческие рассуждения о выводимости одних тождественно истинных формул из других (см., например, [15]). В некоторых случаях они позволяют доказать тождественную истинность достаточно длинных формул, имеющих регулярную структуру. Но в общем случае и они практически не применимы для произвольных формул с большим числом переменных.

В теории сложности алгоритмов имеется ряд результатов (они выходят за рамки нашего курса), которые свидетельствуют о том, что эффективных алгоритмов для проверки выполнимости или тождественной истинности произвольной булевой формулы не существует. Вместе с тем для некоторых подклассов формул эти задачи решаются достаточно эффективно. Один такой подкласс - Хорновские формулы - будет рассмотрен далее в лекции 6



<== предыдущая лекция | следующая лекция ==>
Определение 3.3. | Основные эквивалентности (тождества)


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.666 сек.