В общем случае обоснование правильности обобщенных методов решения требует математического исследования получаемых результатов и математического доказательства их правильности для всех конкретных случаев.
В о п р о с ы
1. Когда результаты правильные?
2. Когда результаты неправильные?
3. Когда способ решения правильный?
4. Что такое постановка задачи?
4. Что такое метод решения?
5. Когда метод решения правильный?
6. Когда метод решения неправильный?
З а д а н и я
1. Приведите постановку задачи и общий метод решения квадратного уравнения.
2. Приведите калькуляцию для решения квадратных уравнений на компьютере.
3. Докажите правильность общего метода решения квадратного уравнения.
4. Приведите калькуляцию для решения системы уравнений с двумя неизвестными:
а×х + b×у = е
с×х + d×y = f
с помощью следующего общего метода:
х = Dx/Dу = Dy/D
Dx = e×d - b×f Dy = a×f - b×e
D = a×d - b×c
Глава 3. ОСНОВЫ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
3.1. Элементы математической логики
Понятие «искусственный интеллект» возникло с появлением самых первых компьютерных программ, имитирующих интеллектуальную деятельность людей - игру в шахматы, шашки, доказательство теорем и решение задач на ЭВМ.
Все компьютерные программы, демонстрирующие интеллектуальное поведение, основаны на использовании определенного математического аппарата, опирающегося на законы математической логики. Без понимания этих законов невозможно понимание принципов работы вычислительных машин вообще и систем искусственного интеллекта в частности.
Логика - это наука, изучающая правильность суждений, рассуждений и доказательств. Примеры суждений: «снег белый», «2´2 = 5», «Земля круглая», «информатика - наука», «генетика - лженаука».
Суждения могут быть истинными или ложными. Истинность или ложность суждений проверяется их соответствием действительности. Пример истинного суждения - «снег белый». Пример ложного суждения - «генетика - лженаука».
Суждение истинно, если оно отражает действительное положение вещей. Примеры истинных суждений: «снег белый», «2´2 = 4», «театр - это искусство».
Суждение ложно, если оно противоречит истинному положению вещей. Примеры ложных утверждений - «2´2 = 5», «снег - черный», «Земля плоская».
Однако существуют суждения, об истинности или ложности которых нельзя судить однозначно. Пример таких суждений: «есть жизнь на Марсе», «машина может думать», «астрология - наука».
Математическая логика - это дисциплина, изучающая технику математических доказательств. Отличие математических суждений от обычных разговорных высказываний состоит в том, что математические суждения всегда предполагают однозначную интерпретацию, в то время как наши обычные высказывания зачастую допускают многозначную трактовку.
Математика - наука, признающая исключительно только однозначные суждения, утверждения и допускающая только строгие доказательства. В то время как люди в своих рассуждениях и высказываниях допускают различного рода неточности и двусмысленности.
Работа ЭВМ как автоматических устройств основана исключительно на математически строгих правилах выполнения команд, программ и интерпретации данных. Тем самым работа компьютеров допускает строгую однозначную проверку правильности своей работы в плане заложенных в них процедур и алгоритмов обработки информации.
Фундаментом науки о вычислительных машинах является конструктивная математика, в основе которой лежит математическая логика и теория алгоритмов с их однозначностью в оценке суждений и процедур вывода. Математическая логика с самого начала использовалась для описания элементов и узлов ЭВМ, а теория алгоритмов - для описания компьютерных программ.
Основными объектами в математической логике являются - высказывания и предикаты. Первые изучаются в исчислении высказываний, а вторые - в исчислении предикатов.
Высказывания - это суждения, о которых может быть известно - что они истины или ложны. В исчислении высказываний не исследуется - о чем утверждается в этих суждениях.
Высказывания обычно обозначаются отдельными буквами или буквами с возможными индексами. Примеры простых высказываний и их обозначений:
А = «снег белый»
В1= «вода теплая»
В2 = «земля твердая»
С математической точки зрения высказывания - это переменные, принимающие значения «истина» или «ложь». Эти два истинностных значения иногда заменяются словами «да», «нет», либо цифрами 1 и 0.
В отличии от высказываний предикаты - это суждения о некоторых переменных объектах или их свойствах. Примеры предикатов:
А(х) = «цвет яблока -х»
В(х,у) = «х < у»
где х, у - это некоторые переменные (объекты).
Значениями переменных в предикатах могут быть числа, слова, вектора, списки, функции, процедуры, алгоритмы или даже программы. Для математической логики существенно, чтобы эти переменные объекты имели конструктивную форму и были бы строго определены.
С математической точки зрения предикаты - это функции, имеющие одну или несколько переменных и принимающие логические значения «истина» или «ложь». Обозначения предикатов в математической логике схожи с обозначениями обычных математических функций: Р(х), Q(x,y)и т. д.
В информатике для обозначения переменных, функций и предикатов, а также их аргументов обычно используются осмысленные слова и словосочетания в целях простоты их ввода в ЭВМ. Например, предикаты, используемые для описания фактов в языке Пролог, обычно имеют обозначения, выражаемые в лексике родного языка:
любит (Маша, х);
цена (конфеты, с).
В форме предикатов с конкретными аргументами-значениями могут быть описаны факты любой базы данных. Примеры описания фактов из базы данных в записи на языке Пролог:
любит (Маша, цветы) - Маша любит цветы
любит (Саша, машины) - Саша любит машины
цена (цветы, 1000) - цена цветов 1000
цена (мороженое, 2500) - цена морженого 2500
В этой же форме предикатов с переменными могут описываться и простейшие запросы к базам данных на языке Пролог. Примеры запросов к указанной базе данных на языке Пролог и соответствующие ответы ЭВМ:
? любит(х, конфеты) - Кто любит конфеты?
х = Маша
? цена (конфеты, с) - Какова цена конфет?
с = 1000
В о п р о с ы
1. Что изучает математическая логика?
2. Что изучает логика?
3. Что такое высказывание?
4. Что такое предикат?
5. Когда суждения истинны?
6. Когда суждения ложны?
З а д а ч и
1. Приведите примеры истинных и ложных утверждений
а) из арифметики;
б) из геометрии;
в) из биологии;
г) из жизни.
2. Выразите отрицания для высказываний:
а) «мы пойдем в кино»;
б) «х = 0 или х = 1»;
в) «х = 0 и у = 0»;
г) «а = 0 иb = 0 и с = 0»;
д) «х = 0 или у = 0 или z = 0».
е) «мы не пойдем никуда»;
ж) «а = 0 илиb = 0»;
з) «х > 0 и х < 100».
3.2. Основные логические операции
Суждения в математической логике могут быть простыми и сложносоставными. Примеры простых суждений:
х = 1 рост < 160
А цена (х, у)
Сложносоставные суждения в математической логике образуются из простых с помощью логических связок и, или и не, выражающих три основных логических операции:
логическая связка не - отрицание суждений;
логическая связка или - конъюнкция суждений;
логическая связка и- дизъюнкция суждений.
Примеры сложносоставных суждений:
не А- неверно суждениеА
С или В- истинноС или В
(х > 0) и (у > 0) - (хбольше 0) и (убольше 0)
(глаза = синие) или (глаза = голубые)
Логическая связка не используется для выражения отрицаний. Примеры:
не (глаза = синие), - неверно, что глаза синие
не (А или В), - неверно, что выполняется А или В
не (любит (Саша, конфеты)) - неверно, что Саша любит конфеты
Наглядной иллюстрацией этих логических связок с предикатами служат следующие диаграммы:
Отрицание не А истинно или ложно в зависимости от истинности исходного суждения А. Свойства отрицания не как логической связки можно описать таблицей истинности:
Таблица истинности:
А не А
да | нет |
нет | да |
Свойства отрицаний:
НЕ1: Отрицание ложно, если суждение истинно.
НЕ2: Отрицание истинно, если суждение ложно.
Для понимания отрицаний важно уметь выражать их в позитивной форме. Приведем примеры отрицания математических неравенств и их позитивные переформулировки:
не (х = 0) º (х ¹ 0)
не (х ¹ 0) º (х = 0)
не (х > 0) º (х £ 0)
не (х < 0) º (х ³ 0)
не (х ³ 0) º (х < 0)
не (х £ 0) º (х > 0)
Свойства отрицаний, записанные в таблицу истинностности, могут быть описаны как факты на языке Пролог:
не (да, нет);
не (нет, да);
После ввода этих фактов в ЭВМ с помощью запросов можно перепроверить свойства отрицаний:
? не(А, нет)
А = да
? не (А, да)
А = нет
Логическая связка и в математической логике называется конъюнкцией. Таблица истинности конъюнкции: