Лабораторный практикум кузнецов. Основы интеллектуальных систем для гуманитариев
Скачать 1.54 Mb.
|
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Набережночелнинский институт (филиал) ФГАОУ ВПО «Казанский (Приволжский) федеральный университет» Отделение информационных технологий и энергетических систем Кафедра системного анализа и информатики Набережные Челны 2017 Основы интеллектуальных систем для гуманитариев Лабораторный практикум УДК 004.89(076.5) ББК 32.813я73-5 О-75 Рецензенты: Р.Г. Марданшин, к. ф.-м. н., доцент каф. ЕНД НЧФ КНИТУ-КАИ; В.С. Каримов, к. т. н., доцент каф. системного анализа и информатики НЧИ КФУ. О-75 Основы интеллектуальных систем для гуманитариев: лабораторный практикум / авт.-сост. : Л.Ю. Грудцына ; НЧИ КФУ. – Набережные Челны : Издательско-полиграфич. центр, 2017. – 50с. : ил., табл. – Библиогр. : 7 назв. Данный лабораторный практикум предназначен для практического изучения дисциплины «Основы интеллектуальных систем» студентами, обучающимися по направлению подготовки 37.03.01 «Психология». Практикум состоит из пяти лабораторных работ и содержит краткие теоретические сведения по изучаемой дисциплине. Каждая лабораторная работа включает в себя разобранный пример, а также варианты для самостоятельного выполнения. УДК 004.89(076.5) ББК 32.813я73-5 © НЧИ КФУ, 2017. © Л.Ю. Грудцына, 2017. 3 ОГЛАВЛЕНИЕ ВВЕДЕНИЕ ............................................................................................................4 Базовые понятия и основные направления исследований в области искусственного интеллекта ..............................................................................4 Представление знаний в системах искусственного интеллекта ...................7 Лабораторная работа №1 «Представление знаний. Продукционная модель» ....................................................................................................................9 Пример решения задачи ......................................................................................9 Варианты заданий ............................................................................................ 12 Лабораторная работа 2 «Представление знаний. Семантическая сеть» .. 14 Пример решения задачи .................................................................................... 15 Варианты заданий ............................................................................................ 18 Лабораторная работа 3 «Представление знаний. Фреймовая модель» ..... 19 Пример решения задачи .................................................................................... 22 Варианты заданий ............................................................................................ 30 Лабораторная работа 4 «Элементы логики высказываний. Способы доказательства и вывода» ................................................................................. 31 Пример решения задачи .................................................................................... 34 Варианты заданий ............................................................................................ 37 Лабораторная работа 5 «Элементы нечеткой логики. Нечеткий вывод» 39 Пример решения задачи .................................................................................... 42 Варианты заданий ............................................................................................ 46 ЛИТЕРАТУРА ..................................................................................................... 50 4 ВВЕДЕНИЕ Базовые понятия и основные направления исследований в области искусственного интеллекта Интеллект – внутреннее свойство человеческой личности (или искусственной системы), позволяющее ей принимать правильные решения в условиях неопределенности внешней среды. Искусственный интеллект (англ. – artificial intelligence) – это искусственные программные системы, созданные человеком на базе ЭВМ и имитирующие решение человеком сложных творческих задач в процессе его жизнедеятельности. Термин искусственный интеллект (ИИ) был предложен в 1956 г. на семинаре в Дартмутском колледже. На сегодняшний день существует множество определений, описывающих данное понятие. Чтобы пояснить понятие «искусственный интеллект», необходимо понимать отличие интеллектуальной задачи от простой. Принято считать, если для задачи найден алгоритм еѐ решения, то она не относится к интеллектуальным. Это связано с тем, что, имея алгоритм, процесс решения данного класса задач становится таким, что его может в точности выполнить человек или компьютер, не имеющие ни малейшего представления о сущности самой задачи. С другой стороны, отыскание алгоритма для задач некоторого типа связано со сложными рассуждениями, требующими большой изобретательности и высокой квалификации. Таким образом, интеллектуальные задачи относятся к классу трудноформализуемых задач, т.к.: – в этих задачах используется, помимо традиционных данных в числовом формате, информация в виде изображений, рисунков, знаков, букв, слов, звуков; – предполагается сделать выбор между многими вариантами в условиях неопределѐнности; – не существует алгоритмического решения задачи; – алгоритмическое решение существует, но его нельзя использовать из- за ограниченности ресурсов. Искусственный интеллект, как научное направление, в рамках которого ставятся и решаются задачи моделирования интеллектуальной человеческой деятельности, опирается на ряд дисциплин (рис. 1). 5 Рис. 1. Дисциплины, являющиеся основой ИИ. С конца 1970-х годов для поддержки решения интеллектуальных задач, традиционно выполнявшихся людьми, на основе исследований в области ИИ сформировалась новая отрасль компьютерной индустрии – разработка интеллектуальных информационных систем. Информационная система – взаимосвязанная совокупность средств, методов и персонала, используемых для хранения, обработки и выдачи информации в интересах достижения поставленной цели. Интеллектуальная информационная система (ИИС)должна уметь в наборе фактов распознать существенные и из имеющихся фактов и знаний сделать выводы с использованием дедукции, аналогии, индукции и т.д. Кроме того, она должны обладать средствами оценки результатов собственной работы. С помощью подсистем объяснения она может ответить на вопрос, почему получен тот или иной результат. Наконец, ИИС должна уметь обобщать, улавливая сходство между имеющимися фактами, и накапливать опыт. Примерами интеллектуальных информационных систем могут быть: 6 Экспертные системы – системы, имитирующие образ действия высококвалифицированных специалистов в конкретных предметных областях; Системы общения с ЭВМ на естественном языке – специализированные диалоговые системы, обеспечивающие «дружественный» интерактивный диалог человека-оператора с ЭВМ; Системы обработки сигналов и изображений – информационные системы, осуществляющие сбор и обработку информации о состоянии объектов, ее анализ (распознавание, интерпретация), прогнозирование и т.д.; Системы управления – управляющие информационные системы, обеспечивающие оценку состояния управляемого объекта (процесса, системы) и принятие решений с целью достижения высокого качества или выбора стратегии функционирования объекта в условиях неопределенности. История попыток создания искусственного разума насчитывает более 700 лет. Первую зафиксированную в истории попытку создания машины, моделирующей человеческий разум, связывают с именем испанского изобретателя Раймунда Луллия. Развивая традиции учѐных своего времени, Луллий сконструировал машину, состоявшую из системы кругов, вращая которые можно было получить «формулу истины». По существу она представляла собой механическую экспертную систему. В XVIII в. Лейбниц и Декарт независимо друг от друга продолжили идеи, заложенные Луллием, предложив универсальные языки классификации всех наук. Эти работы можно считать первыми теоретическими работами в области ИИ. В 40-х гг. XX в. с появлением компьютера ИИ обрѐл второе рождение. Произошло выделение ИИ в самостоятельное научное направление. Исследования в области ИИ проводились в трѐх направлениях. В рамках первого подхода объектом исследований являются структура и механизмы работы мозга человека, а конечная цель заключается в раскрытии тайн мышления. Второй подход ориентирован на моделирование интеллектуальной деятельности с помощью компьютера. Третий подход основан на симбиозе возможностей естественного и искусственного интеллекта для создания интерактивных ИИС. На сегодняшний день методы ИИ позволили создать эффективные компьютерные программы в самых разнообразных, ранее считавшихся недоступными для формализации и алгоритмизации, сферах человеческой деятельности, таких как медицина, биология, зоология, социология, культурология, политология, экономика, бизнес, криминалистика и т.п. 7 Среди важнейших классов задач, которые ставились перед ИИС, следует выделить: доказательство теорем, управление роботами, распознавание образов, машинный перевод и понимание текстов на естественном языке и игровые программы. Представление знаний в системах искусственного интеллекта Данными называют информацию фактического характера, описывающую объекты, процессы и явления предметной области, а также их свойства. Знания – это закономерности предметной области (принципы, связи, законы), полученные в результате практической деятельности и профессионального опыта, позволяющие специалистам ставить и решать задачи в этой области. Знания описывают не только отдельные факты, но и взаимосвязи между ними, поэтому знания иногда называют структурированными данными. База знаний – совокупность программных средств, обеспечивающих поиск, хранение, преобразование и запись в памяти ЭВМ сложно структурированных информационных единиц – знаний. Проблема представления знаний в ИИС чрезвычайно актуальна, поскольку их функционирование опирается на знания о проблемной области, хранящиеся на компьютере. В рамках этой проблемы решаются задачи, связанные с формализацией и представлением знаний в ИИС. Для этого разрабатываются специальные модели представления знаний и языки для описания знаний, выделяются различные типы знаний. Выделяют два вида моделей предоставления знаний: декларативные и процедурные. В декларативных моделях предметная область представляется в виде синтаксического описания еѐ состояния. Вывод решений основывается на процедурах поиска в пространстве состояний. В процедурном представлении знания содержатся в небольших программах (процедурах), которые определяют поведение ИИС. При этом можно не описывать все возможные состояния среды или объекта для реализации вывода. Достаточно хранить некоторые начальные состояния и процедуры, генерирующие необходимые описания ситуаций и действий. К типовым декларативным моделям относят семантические сети и фреймы, а типовым процедурным моделям – исчисления высказываний / предикатов, системы продукций, нечѐткая логика. На 8 практике редко удаѐтся обойтись рамками одной модели при разработке ИИС, поэтому представление знаний получается сложным. Семантическая сеть представляет собой ориентированный граф, вершинами которого являются информационные единицы, имеющие индивидуальные имена. В качестве информационной единицы могут выступать события, действия, обобщѐнные понятия или свойства объектов. Вершины графа соединяются дугой, если соответствующие информационные единицы находятся в каком-либо отношении. Фрейм представляет собой структуру данных, дающую целостное представление об объектах, явлениях и их типах в виде абстрактных образов. Структура фрейма записывается в виде списка свойств (слотов). Каждый фрейм имеет специальный слот, заполненный наименованием представляемой сущности, а другие заполнены значениями разнообразных атрибутов, ассоциирующихся с объектом. Логика высказываний представляет собой формальную систему, элементами которой являются простые высказывания, из простых высказываний образуются сложные с помощью логических знаков (связок). В логике изучается строение сложных высказываний, выраженных формулами, вне зависимости от содержания составляющих их простых высказываний. Логика предикатов является расширением логики высказываний. Основным объектом здесь является переменное высказывание (предикат), истинность и ложность которого зависят от значения его переменных. Язык логики предикатов является более мощным по сравнению с языком логики высказываний. Он пригоден для формализации понятий многих проблемных областей. Продукционная модель, или модель, основанная на правилах, позволяет представить знания в виде предложений типа ЕСЛИ (условие), ТО (действие). Количественные данные (знания) могут быть неточными. Для учѐта неточности лингвистических знаний используется формальный аппарат нечѐткой алгебры. Одно из главных понятий в нечѐткой логике – это понятие лингвистической переменной, которое определяется через нечѐткие множества. Нечѐткие множества позволяют учитывать субъективные мнения отдельных экспертов. 9 Лабораторная работа №1 «Представление знаний. Продукционная модель» Продукция – это предложение-образец вида «Если, то», по которому осуществляется поиск в базе знаний. В продукции выделяют левую часть (начинается с «если» и заканчивается перед «то») и правую (начинается после «то»). Левая часть продукции – антецедент – условие выполнения правой часть продукции. Правая часть – консеквент – действие, выполняемое в случае нахождения элементов, удовлетворяющих левой части. Действие может быть промежуточным и выступать затем в качестве консеквента или целевым, завершающим процедуру вывода. Антецедент формируется из фактов, входных данных задачи и логических связок (и, или, не). Консеквент может представлять из себя действие по изменению фактов, данных, рекомендацию, решение задачи. Кроме этого, любая продукция имеет имя и приоритет, определяющий последовательность проверки продукций машиной вывода. Продукции отражают причинно-следственные связи, которые и позволяют человеку принимать решения, базируясь на знаниях и предположениях о том, что есть и что будет, если что-то сделать. Пример решения задачи Задача. Построить продукционную модель представления знаний в предметной области «Ресторан» (посещение ресторана). Описание процесса решения. Для построения продукционной модели представления знаний необходимо выполнить следующие шаги: 1) Определить целевые действия задачи (являющиеся решениями). 2) Определить промежуточные действия или цепочку действий, между начальным состоянием и конечным (между тем, что имеется, и целевым действием). 3) Опередить условия для каждого действия, при котором его целесообразно и возможно выполнить. Определить порядок выполнения действий. 4) Добавить конкретики при необходимости, исходя из поставленной задачи. 10 5) Преобразовать полученный порядок действий и соответствующие им условия в продукции. 6) Для проверки правильности построения продукций записать цепочки продукций, явно проследив связи между ними. Этот набор шагов предполагает движение при построении продукционной модели от результата к начальному состоянию, но возможно и движение от начального состояния к результату (шаги 1 и 2). Решение. 1) Обязательное действие, выполняемое в ресторанах – поглощение пищи и ее оплата. Значит, есть уже два целевых действия «съесть пищу» и «оплатить», которые взаимосвязаны и следуют друг за другом. 2) Прежде чем что-либо съесть в ресторане, туда нужно придти, дождаться официанта и сделать заказ. Кроме того, нужно выбрать, в какой именно ресторан пойти. Значит, цепочка промежуточных действий: «выбор ресторана и путь туда», «сделать заказ официанту». 3) Прежде чем идти в ресторан, необходимо убедиться, что есть необходимая сумма денег. Выбор ресторана может обуславливаться многими причинами, выберем территориальный признак – к какому ближе в тот и идем. В разных ресторанах работают разные люди, поэтому в зависимости от выбора ресторана, официанты будут разные. Кроме того, разные рестораны специализируются на разных кухнях, поэтому заказанные блюда будут в разных ресторанах отличаться. Значит вначале идут действия, позволяющие выбрать ресторан, затем характеризующие рестораны, а уже после заказ, еда, и оплата заказа. 4) Пусть в задаче будут рассматриваться два ресторана: «Вкусная еда» и «Вкуснятина». Первый –паб и заказы приносят быстрее, чем во втором, второй –пиццерия. В первом работает официант Сергей, а во втором официантка Марина. Петр –это клиент. 5) Выше описанное можно преобразовать в следующие предложения типа «Если, то»: Если субъект хочет есть и у субъекта есть достаточная сумма денег, то субъект может пойти в ресторан. Если субъект ближе к ресторану «Вкусная еда», чем к ресторану «Вкуснятина» и субъект может пойти в ресторан, то субъект идет в ресторан «Вкусная еда». 11 Если субъект ближе к ресторану «Вкуснятина», чем к ресторану «Вкусная еда» и субъект может пойти в ресторан, то субъект идет в ресторан «Вкуснятина». Если субъект идет в ресторан «Вкуснятина» и в ресторане «Вкуснятина» работает официант Марина, то у субъекта принимает заказ Марина. Если субъект идет в ресторан «Вкусная еда» и в ресторане «Вкусная еда» работает официант Сергей, то у субъекта принимает заказ Сергей. Если субъект выбрал блюда и у субъекта принимает заказ Марина, то заказ принесут через 20 мин. Если субъект выбрал блюда и у субъекта принимает заказ Сергей, то заказ принесут через 10 мин. Если заказ принесут через 20 мин. или заказ принесут через 10 мин., то субъект может есть. Если субъект может есть, то после еды субъект должен оплатить заказ. Введем обозначения для фактов (Ф), действий (Д) и продукций (П), тогда: Субъект = Петр; Ф1= субъект хочет есть; Ф2= у субъекта есть достаточная сумма денег; Ф3= субъект ближе к ресторану «Вкусная еда», чем к «Вкуснятина»; Ф4=в ресторане «Вкуснятина» работает официант Марина; Ф5=в ресторане «Вкусная еда» работает официант Сергей; Ф6= субъект выбрал блюда; Д1= субъект может пойти в ресторан; Д2=субъект идет в ресторан «Вкусная еда»; Д3=субъект идет в ресторан «Вкуснятина»; Д4= у субъекта принимает заказ Марина; Д5=у субъекта принимает заказ Сергей; Д6=заказ принесут через 20 мин. Д7=заказ принесут через 10 мин. Д8=после еды субъект должен оплатить заказ. Для продукций установим приоритет (в скобках перед запятой, чем выше приоритет, чем раньше проверяется правило). 12 П1(4 , Ф1 и Ф2)= Д1; П2(5 , Ф3 и Д1)= Д2; П3(4 , не Ф3 и Д1)= Д3; П4(3 , Д3 и Ф4)= Д4; П5(3 , Д2 и Ф5)= Д5; П6(2 , Д4)= Д6; П7(2 , Д5)= Д7; П8(1 , Д6 или Д7)= Д8; 6) Для отображения взаимосвязи продукций построим граф (рис. 2). Рис. 2. Схема продукций предметной области «Ресторан». Варианты заданий 1. Построить продукционную модель представления знаний в предметной области «Аэропорт» (диспетчерская). 2. Построить продукционную модель представления знаний в предметной области «Железная дорога» (продажа билетов). 3. Построить продукционную модель представления знаний в предметной области «Торговый центр» (организация). 4. Построить продукционную модель представления знаний в предметной области «Автозаправка» (обслуживание клиентов). 5. Построить продукционную модель представления знаний в предметной области «Автопарк» (пассажирские перевозки). 13 6. Построить продукционную модель представления знаний в предметной области «Компьютерные сети» (организация). 7. Построить продукционную модель представления знаний в предметной области «Университет» (учебный процесс). 8. Построить продукционную модель представления знаний в предметной области «Компьютерная безопасность» (средства и способы ее обеспечения). 9. Построить продукционную модель представления знаний в предметной области «Компьютерная безопасность» (угрозы). 10. Построить продукционную модель представления знаний в предметной области «Интернет-кафе» (организация и обслуживание). 11. Построить продукционную модель представления знаний в предметной области «Разработка информационных систем» (ведение информационного проекта). 12. Построить продукционную модель представления знаний в предметной области «Туристическое агентство» (работа с клиентами). 13. Построить продукционную модель представления знаний в предметной области «Зоопарк» (организация). 14. Построить продукционную модель представления знаний в предметной области «Кухня» (приготовление пищи). 15. Построить продукционную модель представления знаний в предметной области «Больница» (прием больных). 16. Построить продукционную модель представления знаний в предметной области «Кинопрокат» (ассортимент и работа с клиентами). 17. Построить продукционную модель представления знаний в предметной области «Прокат автомобилей» (ассортимент и работа с клиентами). 18. Построить продукционную модель представления знаний в предметной области «Операционные системы» (функционирование). 19. Построить продукционную модель представления знаний в предметной области «Информационные системы» (виды и функционирование). 20. Построить продукционную модель представления знаний в предметной области «Предприятие» (структура и функционирование). 14 |