Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Системы искусственного интеллекта





Элементы математической логики.

Понятие «искусственный интеллект» возникло с появлением самых первых компьютерных программ, имитирующих интеллектуальную деятельность людей - игру в шахматы, шашки, доказательство теорем и решение задач на ЭВМ.

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

Логика – это наука, изучающая правильность суждений, рассуждений и доказательств. Примеры суждений: «снег белый», «2´2 = 5», «Земля круглая», «информатика - наука», «генетика - лженаука».

Суждения могут быть истинными или ложными. Истинность или ложность суждений проверяется их соответствием действительности. Пример истинного суждения – «снег белый». Пример ложного суждения – «генетика - лженаука».

Суждение истинно, если оно отражает действительное положение вещей. Примеры истинных суждений: «снег белый», «2´2 = 4», «театр - это искусство».

Суждение ложно, если оно противоречит истинному положению вещей. Примеры ложных утверждений - «2´2 = 5», «снег - черный», «Земля плоская».

Однако существуют суждения, об истинности или ложности которых нельзя судить однозначно. Пример таких суждений: «есть жизнь на Марсе», «машина может думать», «астрология - наука».

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

Математика – наука, признающая исключительно только однозначные суждения, утверждения и допускающая только строгие доказательства. В то время как люди в своих рассуждениях и высказываниях допускают различного рода неточности и двусмысленности.

Работа ЭВМ как автоматических устройств основана исключительно на математически строгих правилах выполнения команд, программ и интерпретации данных. Тем самым работа компьютеров допускает строгую однозначную проверку правильности своей работы в плане заложенных в них процедур и алгоритмов обработки информации.

Фундаментом науки о вычислительных машинах является конструктивная математика, в основе которой лежит математическая логика и теория алгоритмов с их однозначностью в оценке суждений и процедур вывода. Математическая логика с самого начала использовалась для описания элементов и узлов ЭВМ, а теория алгоритмов – для описания компьютерных программ.

Основными объектами в математической логике являются– высказывания и предикаты. Первые изучаются в исчислении высказываний, а вторые – в исчислении предикатов.

Высказывания – это суждения, о которых может быть известно – что они истины или ложны. В исчислении высказываний не исследуется – о чем утверждается в этих суждениях.

Высказывания обычно обозначаются отдельными буквами или буквами с возможными индексами. Примеры простых высказываний и их обозначений:

 

А = «снег белый»

В1 = «вода теплая»

В2 = «земля твердая»

 

С математической точки зрения высказывания – это переменные, принимающие значения «истина» или «ложь». Эти два истинностных значения иногда заменяются словами «да», «нет», либо цифрами 1 и 0.

В отличии от высказываний предикаты – это суждения о некоторых переменных объектах или их свойствах. Примеры предикатов:

 

А(х) = «цвет яблока - х»

В(х, у) = «х < у»

 

где х, у - это некоторые переменные (объекты).

Значениями переменных в предикатах могут быть числа, слова, вектора, списки, функции, процедуры, алгоритмы или даже программы. Для математической логики существенно, чтобы эти переменные объекты имели конструктивную форму и были бы строго определены.

С математической точки зрения предикатыэто функции, имеющие одну или несколько переменных и принимающие логические значения «истина» или «ложь». Обозначения предикатов в математической логике схожи с обозначениями обычных математических функций: Р(х), Q(x,y) и т. д.

В информатике для обозначения переменных, функций и предикатов, а также их аргументов обычно используются осмысленные слова и словосочетания в целях простоты их ввода в ЭВМ. Например, предикаты, используемые для описания фактов в языке Пролог, обычно имеют обозначения, выражаемые в лексике родного языка:

 

любит (Маша, х);

Цена (конфеты, с).

 

В форме предикатов с конкретными аргументами – значениями могут быть описаны факты любой базы данных. Примеры описания фактов из базы данных в записи на языке Пролог:

 

любит (Маша, цветы) - Маша любит цветы

любит (Саша, машины) - Саша любит машины

цена (цветы, 1000) - цена цветов 1000

цена (мороженое, 2500) - цена морженого 2500

 

В этой же форме предикатов с переменными могут описываться и простейшие запросы к базам данных на языке Пролог. Примеры запросов к указанной базе данных на языке Пролог и соответствующие ответы ЭВМ:

? любит (х, конфеты) - Кто любит конфеты?

х = Маша

? цена (конфеты, с) - Какова цена конфет?

с = 1000

 

Основные логические операции.

Суждения в математической логике могут быть простыми и сложносоставными. Примеры простых суждений:

 

х = 1 рост < 160

А цена (х, у)

 

Сложносоставные суждения в математической логике образуются из простых с помощью логических связок и, или и не, выражающих три основных логических операции:

 

логическая связка не - отрицание суждений;

логическая связка или - конъюнкция суждений;

логическая связка и - дизъюнкция суждений.

 

Примеры сложносоставных суждений:

 

не А - неверно суждение А

С или В - истинно С или В

(х > 0) и (у > 0) - (х больше 0) и (у больше 0)

(глаза = синие) или (глаза = голубые)

 

Логическая связка не используется для выражения отрицаний. Примеры:

 

не (глаза = синие), - неверно, что глаза синие

неили В), - неверно, что выполняется А или В

не (любит (Саша, конфеты)) - неверно, что Саша любит конфеты

 

Наглядной иллюстрацией этих логических связок с предикатами служат следующие диаграммы:

 

Отрицание не А истинно или ложно в зависимости от истинности исходного суждения А. Свойства отрицания не как логической связки можно описать таблицей истинности:

Таблица истинности:

А не А

да нет
нет да

 

Свойства отрицаний:

 

НЕ1: Отрицание ложно, если суждение истинно.

НЕ2: Отрицание истинно, если суждение ложно.

 

Для понимания отрицаний важно уметь выражать их в позитивной форме. Приведем примеры отрицания математических неравенств и их позитивные переформулировки:

 

не (х = 0) º (х ¹ 0)

не (х ¹ 0) º (х = 0)

не (х > 0) º (х £ 0)

не (х < 0) º (х ³ 0)

не (х ³ 0) º (х < 0)

не (х £ 0) º (х > 0)

 

Свойства отрицаний, записанные в таблицу истинностности, могут быть описаны как факты на языке Пролог:

 

не (да, нет);

не (нет, да);

 

После ввода этих фактов в ЭВМ с помощью запросов можно перепроверить свойства отрицаний:

 

? не (А, нет)

А = да

? не (А, да)

А = нет

 

Логическая связка и в математической логике называется конъ­юнкцией. Таблица истинности конъюнкции:

 

А В А и В

да да да
да нет нет
нет да нет
нет нет нет

 

Свойства конъюнкции:

 

И1: Конъюнкция А и В истинна, когда истинны оба суждения.

И 2: Конъюнкция А и В ложна, когда ложно хотя бы одно из суж­дений А или В.

 

Логическая связка или в математической логике называется дизъ­юнкцией. Таблица истинности дизъюнкции:

А В А или В

да да да
да нет да
нет да да
нет нет нет

 

Свойства дизъюнкции:

 

ИЛИ1: Дизъюнкция А или В истинна, когда истинно любое из суждений А или В.

ИЛИ2: Дизъюнкция А или В ложна, когда ложны оба суждения А и В.

 

Свойства конъюнкции и дизъюнкции также можно описать в виде фактов на языке Пролог:

 

Дизъюнкция:Конъюнкция:

или (да, да, да); и2 (да, да, да);

или (да, нет, да); и2 (да, нет, нет);

или (нет, да, да); и2 (нет, да, нет);

или (нет, нет, нет); и2 (нет, нет, нет);

 

Опираясь на эти факты можно получить ответы на вопросы о свойствах дизъюнкции и конъюнкции с помощью ЭВМ:

 

? или (А, В, нет)? и 2 (А, В, да)

А = нет В = нет А = да В = да

? или (А, В, да)? и 2 (А, В, нет)

А = да В = да А = да В = нет

А = да В = нет А = нет В = да

А = нет В = да А = нет В = нет

 

Одной из важнейших логических связок математической логики является импликация А ® В. Эта связка в математической логике используется для определения правил логического вывода.

Импликация А ® В - это логическое следование. Импликация А ® В читается: «если А, то В». Первое суждение в импликации называется посылкой, а второе суждение - следствием.

Приведем примеры правил логического вывода:

а) с использованием высказываний:

если «на улице дождь», то «на улице мокро»,

б) с использованием предикатов:

любит (х, конфеты) ® сластена (х).

Таблица истинности импликации:

 

А В А ® В

да да да
да нет нет
нет да да
нет нет да

 

Свойства импликации:

П1: «Импликация А ® В ложна,

когда посылка А истинна, а следствие В - ложно».

П2: «Импликация А ® В истинна,

когда истинно следствие либо ложны и посылка и следствие».

В языке Пролог импликации используются для описания правил вывода и определения новых логических понятий. Например, поня­тие «сластена» в языке.Пролог описывается следующим образом:

сластена (х) любит (х, конфеты);

Описание этого правила позволяет вводить в ЭВМ вопросы о «сластенах» и получать осмысленные ответы, исходя из сведений, хранящихся в базе данных:

 

? сластена (х) - Кто сластена?

х = Маша

С помощью таблиц истинности могут быть описаны и проверены свойства любых сложносоставных высказываний. Соответственно с помощью этих таблиц на ЭВМ средствами языка Пролог могут быть проверены любые сложносоставные высказывания и законы исчис­ления высказываний.

Задача 1. Проверьте закон двойного отрицания в исчислении высказываний

не (не А) º А

Решение. Рассмотрим объединенную таблицу истинности вы­сказываний

 

А не А не (неА)

да нет да
нет да нет

Сравнение крайних столбцов показывает, что всюду, где выска­зывание А истинно, там же истинно и двойное отрицание не (не А). И наоборот, всюду, где ложно А, там ложно и двойное отрицание не (не А). Следовательно, двойное отрицание тождественно исходному высказыванию: не (не А) º А.

 

Задача 2. Сравните с помощью таблиц истинности отрицание дизъюнкции и отрицание конъюнкции неи В) и неили В).

Решение.

А В АиВ не (АиВ) АилиВ не (АилиВ)
да да да нет да нет
да нет нет да да нет
нет да нет да да нет
нет нет нет да нет да

 

Элементы языка Пролог.

Пролог – это одна из моделей систем искусственного интеллекта, способных воспроизводить логические умозаключения. Кроме того, Пролог – это язык для описания фактов, правил и процедур логического вывода. О языке Пролог обычно говорят, что он представляет язык логического программирования.

Основной особенностью системы Пролог являются встроенные процедуры логического вывода, имитирующие способность человеческого интеллекта выполнять логические умозаключения. Какая лексика используется при этом – русского, английского или других языков – играет второстепенную роль, несущественную для ЭВМ, но важную для тех, кто будет работать и вести диалог с машиной.

Основная идея Пролога как языка записи фактов, вопросов и правил заключается в том, что они записываются в форме предикатов математической логики. Все они интерпретируются ЭВМ строго в соответствии с законами математической логики и ни чем более.

Основные конструкции языка Пролог – это факты, вопросы и правила. Все эти три конструкции записываются в форме предикатов и их комбинаций. Рассмотрим правила их записи на языке Пролог.

Факты – это конкретные сведения о ком-то либо о чем-то. Факты на языке Пролог записываются в форме предикатов с конкретными аргументами-значениями. Примеры записи фактов на Прологе:

 

папа (Вова, Лена); - Вова - папа Лены

любит (Лена, музыка); - Лена любит музыку

оценка (Лена, русский, 5); - У Лены 5 по русскому языку

 

Вопросы на Прологе – это запросы к совокупности данных или процедурам, хранящимся, в ЭВМ. Запись вопросов начинается со знака?, за которым записывается предикат или группа предикатов, разделяемых запятыми. Примеры записи простых вопросов на языке Пролог:

 

? папа (х, Лена) - Кто папы Лены?

х = Вова

? мама (х, у) - Кто у кого - мама?

НЕТ

? оценка (х, _, 5) - Кто имеет оценки 5?

х = Лена

 

Здесь буквы х, у – обозначения переменных, а числа и слова – конкретные значения аргументов в соответствующих предикатах. Знак подчеркивания «_» представляет неопределенное значение, которое несущественно для ответа на вопросы.

При записи сложносоставных вопросов в языке Пролог можно указывать несколько условий-предикатов, разделяемых запятыми. Запятая в этих сложносоставных вопросах играет роль логической связки и. Примеры сложносоставных вопросов:

 

? мама (х, у), мама (у, Оля) - Кто мама у мамы Оли?

х = Зина у = Люба

? мама (х, у), папа (у, Оля) - Кто мама у папы Оли?

НЕТ

 

Правила в Прологе – это правила логического вывода. Слева в правилах записывается следствие, а справа – предусловие. Предусловие может состоять из одного или нескольких предикатов, разделяемых запятыми. Примеры записи правил вывода на Прологе:

 

студент (х) занятие (х, учеба); - Студент - тот, кто занят учебой;

нумизмат (х) собирает (х, монеты); - Нумизмат - тот, кто собирает монеты.

 

Примеры вопросов на использование этих правил:

 

? студент (х) - Кто - студент?

х = Алеша

х = Лена

? нумизмат (у) - Кто - нумизмат?

у = Алеша

 

В правилах со сложносоставными определениями запятая также играет роль логической связки и, объединяя условия, образующие определение. Такого рода правила позволяют создавать самые сложные и изощренные базы знаний по самым различным предметным областям и применениям.

Приведем пример составления базы знаний о друзьях. Будем различать друзей по их именам: Алеша, Оля и т. д. Включим в базу данных следующие сведения о друзьях:

что им нравится;

что они коллекционируют;

чем они занимаются;

какие оценки они имеют.

При такой постановке проблемы и предметная область, и круг основных вопросов очерчены достаточно четко. Для записи фактов на Прологе примем следующие предикаты:

 

нравится (<имя>, <вещь>);

собирает (<имя>, <вещь>);

занимается (<имя>, <предмет>);

оценка (<имя>, <предмет>, <балл>);

 

Вместо <имя>, <вещь>, <предмет>, <балл> при составлении базы знаний необходимо подставить конкретную информацию о конкретных друзьях. Записывать имена будем с большой буквы в именительном падеже. Далее, <вещь> и <предмет> – это существительные в именительном падеже, <балл> – целое число от 1 до 5.

Пусть об Оле и Алеше известно следующее:

1. Оле нравится музыка. Она собирает фотографии любимых певцов. Занимается домоводством. Оля имеет 4 по русскому языку и 5 по алгебре.

2. Алеше нравится история, он собирает монеты, естественно, имеет 5 по истории, занимается в археологическом кружке.

Соответствующая база данных на языке Пролог:

 

нравится (Оля, музыка); - Оле нравится музыка

нравится (Алеша, история); - Алеше нравится история

собирает (Оля, фотографии); - Оля собирает фотографии

собирает (Алеша, монеты); - Алеша собирает монеты

собирает (Алеша, значки); - Алеша собирает значки

оценка (Оля, русский, 4); - Оля имеет 4 по русскому языку

занимается (Алеша, бизнес); - Алеша занимается бизнесом

оценка (Оля, алгебра, 5); - Оля имеет оценку 5 по алгебре

оценка (Алеша, история, 5); - Алеша имеет оценку 5 по истории

 

К составленной базе данных можно обращаться с самыми разными вопросами об интересах, занятиях, склонностях и успехах в учебе. Примеры самых простых вопросов и ответов, получаемых от ЭВМ:

 

? занимается (Алеша, футбол) - Занимается ли Алеша футболом?

Нет

? нравится (Оля, музыка) - Нравится ли Оле музыка?

да

Использование в вопросах переменных позволяет получать от ЭВМ информацию, хранящуюся в базе данных. В ответ на такие вопросы выводятся все возможные варианты ответов. Например:

 

? нравится (х, у) - Кому что нравится?

х = Оля у = музыка

х = Алеша у = история

 

Если какая-то часть информации по той или иной причине не нужна, то вместо соответствующей переменной в вопросе ставится знак подчеркивания «_»:

 

? собирает (_, х) - Что собирают друзья?

х = фотографии

х = монеты

х = значки

 

Наконец, в вопросах можно одновременно использовать как переменные, так и конкретные значения. Например:

 

? занимается (х, музыка) - Кто занимается музыкой?

Нет

? занимается (Алеша, у) - Чем занимается Алеша?

у = бизнес

? собирает (х, монеты) - Кто собирает монеты?

х = Алеша

? оценка (х, _, 5) - Кто имеет пятерки?

х = Оля

х = Алеша

 

Примеры сложносоставных вопросов:

1. Кто занимается бизнесом и собирает монеты?

 

? занимается (х, бизнес), собирает (х, монеты)

х = Алеша

 

2. Какие оценки имеет тот, кто собирает монеты?

 

? собирает (х, монеты), оценка (х, р, z)

х = Алеша

р = история

z = 5

 

К составленной базе данных можно добавить следующие правила вывода:

 

книголюб (х) нравится (х, книги), - Книголюб - тот, кто

собирает (х, книги) любит и собирает книги

бизнесмен (х) собирает (х, монеты), - Бизнесмен - тот, кто

занятие (х, бизнес) собирает монеты и занима­ ется бизнесом

 

Примеры использования правил-определений:

 

? книголюб (х) - Кто - книголюб?

НЕТ

? бизнесмен (у) - Кто - бизнесмен?

у = Алеша

 

Базы знаний на ЭВМ.

Экспертные системы и базы знаний на ЭВМ – одно из перспективных направлений в области искусственного интеллекта. Такие экспертные системы в ближайшем будущем станут интеллектуальными ассистентами людей во многих областях профессиональной деятельности.

Базы знаний – это совокупность фактов и правил вывода, хранящихся в памяти ЭВМ. Содержание любой базы знаний составляют конкретные и обобщенные факты и сведения об определенной предметной области или сфере деятельности. Примеры предметных областей – семья, школа, вуз, магазин, рынок, ферма, фирма, завод, офис, банк и т.п.

Конкретные сведения в базах знаний представляются фактами, которые записываются в виде предикатов с конкретными значениями. Примеры записи фактов в форме предикатов:

 

мама (Люба, Оля); - Люба - мама Оли

оценка (Вова, физика, 5); - Вова имеет 5 по физике

 

Обобщенные сведения в базах знаний записываются в форме правил вывода, выражающих определения понятий. Примеры обобщенных сведений:

 

бабушка (х, z) мама (х, у), мама (у, z) - бабушка - это мама мамы

двоечник (х) оценка (х, _, 2) - двоечник - тот, у кого есть двойки

 

Используя совокупность конкретных и обобщенных фактов и правил, компьютеры могут давать ответы на широкий круг осмысленных вопросов. Для этого соответствующая база знаний с соответствующей системой понятий должна храниться в памяти ЭВМ.

Базы знаний могут содержать правила вывода следующих видов:

- правила определения понятий;

- правила принятия решений;

- способы решения задач;

- правила поведения и т. п.

При определении новых понятий необходимо различать их объем и содержание. Объем понятия – это совокупность вещей или явлений, отвечающих данному понятию. Объем понятий соотносит словам и терминам соответствующие объекты предметной области.

Содержание понятия – это совокупность логических признаков, выделяющих объекты, отвечающие данному понятию, среди других объектов. С логической точки зрения определение понятия представляет описание совокупности признаков, характеризующих его содержание.

 

Приведем примеры определения понятий.

1. Понятие «мама». Объем понятия – совокупность всех мам. Содержание понятия – женщина, имеющая детей. Формализация понятия на Прологе может выражаться конкретными фактами. Примеры:

 

мама (Люба, Оля); - Люба - мама Оли

мама (Зина, Люба); - Зина - мама Любы

 

2. Понятие – «бабушка». Объем понятия – совокупность всех бабушек. Содержание понятия – «бабушка - это мама мамы или папы». Формализация этого понятия на Прологе:

 

бабушка (х, z) мама (х, у), мама (у, z); - бабушка - это мама мамы

бабушка (х, z) мама (х, у), папа (у, z); - бабушка - это мама папы

 

3. Понятие «музыкант». Объем понятия – совокупность людей, занимающихся музыкой. Содержание понятия – «музыкант – человек, который любит музыку и занимается музыкой». Это понятие на языке Пролог можно записать в виде правила:

 







Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...

ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.