Элементы математической логики
Понятие «искусственный интеллект» возникло с появлением самых первых компьютерных программ, имитирующих интеллектуальную деятельность людей - игру в шахматы, шашки, доказательство теорем и решение задач на ЭВМ.
Все компьютерные программы, демонстрирующие интеллектуальное поведение, основаны на использовании определенного математического аппарата, опирающегося на законы математической логики. Без понимания этих законов невозможно понимание принципов работы вычислительных машин вообще и систем искусственного интеллекта в частности.
Логика - это наука, изучающая правильность суждений, рассуждений и доказательств. Примеры суждений: «снег белый», «2´2 = 5», «Земля круглая», «информатика - наука», «генетика - лженаука».
Суждения могут быть истинными или ложными. Истинность или ложность суждений проверяется их соответствием действительности. Пример истинного суждения - «снег белый». Пример ложного суждения - «генетика - лженаука».
Суждение истинно, если оно отражает действительное положение вещей. Примеры истинных суждений: «снег белый», «2´2 = 4», «театр - это искусство».
Суждение ложно, если оно противоречит истинному положению вещей. Примеры ложных утверждений - «2´2 = 5», «снег - черный», «Земля плоская».
Однако существуют суждения, об истинности или ложности которых нельзя судить однозначно. Пример таких суждений: «есть жизнь на Марсе», «машина может думать», «астрология - наука».
Математическая логика- это дисциплина, изучающая технику математических доказательств. Отличие математических суждений от обычных разговорных высказываний состоит в том, что математические суждения всегда предполагают однозначную интерпретацию, в то время как наши обычные высказывания зачастую допускают многозначную трактовку.
Математика- наука, признающая исключительно только однозначные суждения, утверждения и допускающая только строгие доказательства. В то время как люди в своих рассуждениях и высказываниях допускают различного рода неточности и двусмысленности.
Работа ЭВМкак автоматических устройств основана исключительно на математически строгих правилах выполнения команд, программ и интерпретации данных. Тем самым работа компьютеров допускает строгую однозначную проверку правильности своей работы в плане заложенных в них процедур и алгоритмов обработки информации.
Фундаментом наукио вычислительных машинах является конструктивная математика, в основе которой лежит математическая логика и теория алгоритмов с их однозначностью в оценке суждений и процедур вывода. Математическая логика с самого начала использовалась для описания элементов и узлов ЭВМ, а теория алгоритмов - для описания компьютерных программ.
Основными объектами в математической логике являются - высказывания и предикаты. Первые изучаются в исчислении высказываний, а вторые - в исчислении предикатов.
Высказывания- это суждения, о которых может быть известно - что они истины или ложны. В исчислении высказываний не исследуется - о чем утверждается в этих суждениях.
Высказывания обычно обозначаются отдельными буквами или буквами с возможными индексами. Примеры простых высказываний и их обозначений:
А= «снег белый»
В1 = «вода теплая»
В2 = «земля твердая»
С математической точки зрения высказывания - это переменные, принимающие значения «истина» или «ложь». Эти два истинностных значения иногда заменяются словами «да», «нет», либо цифрами 1 и 0.
В отличии от высказываний предикаты - это суждения о некоторых переменных объектах или их свойствах. Примеры предикатов:
А(х) = «цвет яблока - х»
В(х, у) = «х < у»
где х, у - это некоторые переменные (объекты).
Значениями переменныхв предикатах могут быть числа, слова, вектора, списки, функции, процедуры, алгоритмы или даже программы. Для математической логики существенно, чтобы эти переменные объекты имели конструктивную форму и были бы строго определены.
С математической точки зрения предикаты - это функции, имеющие одну или несколько переменных и принимающие логические значения «истина» или «ложь». Обозначения предикатов в математической логике схожи с обозначениями обычных математических функций: Р(х), Q(x,y) и т. д.
В информатике для обозначения переменных, функций и предикатов, а также их аргументов обычно используются осмысленные слова и словосочетания в целях простоты их ввода в ЭВМ. Например, предикаты, используемые для описания фактов в языке Пролог, обычно имеют обозначения, выражаемые в лексике родного языка:
любит (Маша, х);
цена (конфеты, с).
В форме предикатов с конкретными аргументами-значениями могут быть описаны факты любой базы данных. Примеры описания фактов из базы данных в записи на языке Пролог:
любит (Маша, цветы) - Маша любит цветы
любит (Саша, машины) - Саша любит машины
цена (цветы, 1000) - цена цветов 1000
цена (мороженое, 2500) - цена морженого 2500
В этой же форме предикатов с переменными могут описываться и простейшие запросы к базам данных на языке Пролог. Примеры запросов к указанной базе данных на языке Пролог и соответствующие ответы ЭВМ:
? любит (х, конфеты) - Кто любит конфеты?
х = Маша
? цена (конфеты, с) - Какова цена конфет?
с = 1000