Введение
В бурноразвивающейся науке «искусственный интеллект» скрещиваются и переплетаютсяпроблемы, которые давно волнуют специалистов самых разных научных направлений.Психологи и программисты, философы и инженеры, лингвисты и математики, биологии кибернетики – все они в той или иной мере соприкасаются с проблемами искусственногоинтеллекта и участвуют в их решении.
Интерес кмоделированию рассуждений не случаен. Интеллектуальные системы создаются длятого, чтобы овеществлять в технических устройствах знания и умения, которымиобладают люди, чтобы решать задачи, относимые к области творческой деятельностичеловека, не хуже людей.
Винтеллектуальные системы, особенно в те, которые получили название экспертныхсистем и предназначены для помощи специалистам в решении их задач, необходимовложить знание о том, как мы рассуждаем, когда ищем решение. И если не говоритьо математике и еще нескольких науках, опирающихся на точные и формальныемодели, то наши схемы рассуждений – это тот самый аппарат, с помощью которогоосуществляется значительная доля творческой деятельности.
Когдаспециалисты в области моделирования человеческих рассуждений начали своюработу, они столкнулись с тем, что человеческие рассуждения представляют собойнечто загадочное и детально никем не изучались. Казалось бы, в логике – науке орассуждениях – за многие века ее существования должны были накопиться горыфактов о том, как люди делают выводы на основании знаний.
Но, каквыяснилось, логиков традиционно интересует лишь чрезвычайно узкий классрассуждений, которые можно было бы назвать строгими, а остальные многочисленныеформы человеческих рассуждений они не включают в свою компетенцию.
Психологиямышления также весьма сдержанно относится к тому, как формируются у человекасхемы рассуждений и как он ими пользуется в конкретных ситуациях. Лингвисты, которыемного занимались логическими проблемами естественного языка, остались далеки отпонимания того, как носитель этого языка строит на нем свои схемы принятиярешений.
Целькурсовой работы ― рассмотреть модели рассуждений, их виды и цель ихсоздания.
Актуальностьтемы моделирования рассуждений представляют интерес для специалистов поинтеллектуальным системам и искусственному интеллекту.
Глава 1. Знанияи их представление
Языки,предназначенные для описания предметных областей называются языками представлениязнаний. Универсальным языком представления знаний является естественный язык.Однако использование естественного языка в системах машинного представлениязнаний наталкивается на ряд препятствий, главным из которых является отсутствиеформальной семантики естественного языка.
Системы,основанные на знаниях — это системы программного обеспечения, основнымиструктурными элементами которых являются база знаний и механизм логическихвыводов. В первую очередь к ним относятся экспертные системы, способныедиагностировать заболевания, оценивать потенциальные месторождения полезныхископаемых, осуществлять обработку естественного языка, распознавание речи иизображений и т.д. Экспертные системы являются первым шагом в практическойреализации исследований в области ИИ. В настоящее время они уже используются впромышленности.
Экспертнаясистема — это вычислительная система, в которую включены знания специалистов онекоторой конкретной проблемной области и которая в пределах этой областиспособна принимать экспертные решения. Структурные элементы, составляющиесистему, выполняют следующие функции. База знаний — реализует функциипредставления знаний в конкретной предметной области и управление ими. Механизмлогических выводов — выполняет логические выводы на основании знаний, имеющихсяв базе знаний. Пользовательский интерфейс — необходим для правильной передачиответов пользователю, иначе пользоваться системой крайне неудобно.
Модульприобретения знаний — необходим для получения знаний от эксперта, поддержкибазы знаний и дополнения ее при необходимости. Модуль ответов и объяснений — формирует заключение экспертной системы и представляет различные комментарии,прилагаемые к заключению, а также объясняет мотивы заключения.
Перечисленныеструктурные элементы являются наиболее характерными, хотя в реальных экспертныхсистемах их функции могут быть соответствующим образом усилены или расширены.
Знания вбазе знаний представлены в конкретной форме и организация базы знаний позволяетих легко определять, модифицировать и пополнять. Решение задач с помощьюлогического вывода на основе знаний хранящихся в базе знаний, реализуетсяавтономным механизмом логического вывода. Хотя оба эти компонента системы сточки зрения ее структуры являются независимыми, они находятся в тесной связимежду собой и определение модели представления знаний накладывает ограниченияна выбор соответствующего механизма логических выводов. Таким образом, припроектировании экспертных систем необходимо анализировать оба указанныхкомпонента. Чтобы манипулировать знаниями из реального мира с помощьюкомпьютера, необходимо осуществлять их моделирование. К основным моделямпредставления знаний относятся:
· логические модели;
· продукционные модели;
· сетевые модели;
· фреймовые модели.
1.1Логические модели
Логическая(предикатная) модель представления знаний основана на алгебре высказываний ипредикатов, на системе аксиом этой алгебры и ее правилах вывода. Из предикатныхмоделей наибольшее распространение получила модель предикатов первого порядка,базирующаяся на термах (аргументах предикатов — логических констант,переменных, функций), предикатах (выражениях с логическими операциями).
Пример.Возьмем утверждение: «Инфляция в стране превышает прошлогодний уровень в 2раза». Это можно записать в виде логической модели: r(InfNew, InfOld, n),где r(x,y) — отношение вида «x=ny», InfNew — текущая инфляция встране, InfOld — инфляция в прошлом году. Тогда можно рассматривать истинные иложные предикаты, например, r(InfNew, InfOld, 2)=1, r(InfNew, InfOld, 3)=0 и т.д.Очень полезные операции для логических выводов — операции импликации,эквиваленции.
Логическиемодели удобны для представления логических взаимосвязей между фактами, ониформализованы, строги (теоретические), для их использования имеется удобный иадекватный инструментарий, например, язык логического программирования Пролог.
В основемоделей такого типа лежит понятие формальной системы. Постановка и решениелюбой задачи связаны с определенной предметной областью. Так, решая задачусоставления расписания обработки деталей на металлорежущих станках, мывовлекаем в предметную область такие объекты, как конкретные станки, детали,интервалы времени и общие понятия «станок», «деталь»,«тип станка» и т.д.
Всепредметы и события, которые составляют основу общего понимания необходимой длярешения задачи информации, называются предметной областью. Мысленно предметнаяобласть представляется состоящей из реальных объектов, называемых сущностями.Сущности предметной области находятся в определенных отношениях друг к другу.Отношения между сущностями выражаются с помощью суждений. В языке (формальномили естественном) суждениям отвечают предложения.
Дляпредставления математического знания в математической логике пользуютсялогическими формализмами — исчислением высказываний и исчислением предикатов.Эти формализмы имеют ясную формальную семантику и для них разработаны механизмывывода. Поэтому исчисление предикатов было первым логическим языком, которыйприменяли для формального описания предметных областей, связанных с решениемприкладных задач.
Описанияпредметных областей, выполненные в логических языках, называются логическимимоделями. Логические модели, построенные с применением языков логическогопрограммирования, широко применяются в базах знаний и экспертных системах.
1.2Продукционные модели
Продукционнаямодель представления знаний является развитием логических моделей в направленииэффективности представления и вывода знания.
Продукция –это выражение, содержащее ядро, интерпретируемое фразой «Если А, то В», имя,сферу применения, условие применимости ядра и постусловие, представляющее собойпроцедуру, которую следует выполнить после успешной реализации ядра. Все части,кроме ядра, являются необязательными.
Взаимосвязанныйнабор продукций образует систему. Основная проблема вывода знания в системепродукций является выбор для анализа очередной продукции. Конкурирующиепродукции образуют фронт.
Продукции(наряду с сетевыми моделями) являются наиболее популярными средствамипредставления знаний в системах ИИ. Импликация может истолковываться в обычномлогическом смысле как знак логического следования B из истинного А. Возможны идругие интерпретации продукции, например А описывает некоторое условие,необходимое, чтобы можно было совершить действие B.
Если в памятисистемы хранится некоторый набор продукций, то они образуют систему продукций.В системе продукций должны быть заданы специальные процедуры управленияпродукциями, с помощью которых происходит актуализация продукций и выполнениетой или иной продукции из числа актуализированных.
В составсистемы продукций входит база правил (продукций), глобальная база данных исистема управления. База правил — это область памяти, которая содержитсовокупность знаний в форме правил вида ЕСЛИ — ТО. Глобальная база данных — область памяти, содержащая фактические данные (факты). Система управленияформирует заключения, используя базу правил и базу данных. Существуют дваспособа формирования заключений — прямые выводы и обратные выводы.
В прямыхвыводах выбирается один из элементов данных, содержащихся в базе данных, и еслипри сопоставлении этот элемент согласуется с левой частью правила (посылкой),то из правила выводится соответствующее заключение и помещается в базу данныхили исполняется действие, определяемое правилом, и соответствующим образомизменяется содержимое базы данных. В обратных выводах процесс начинается отпоставленной цели. Если эта цель согласуется с правой частью правила(заключением), то посылка правила принимается за подцель или гипотезу. Этотпроцесс повторяется до тех пор, пока не будет получено совпадение подцели сданными. При большом числе продукций в продукционной модели усложняетсяпроверка непротиворечивости системы продукций, т.е. множества правил. Поэтомучисло продукций, с которыми работают современные системы ИИ, как правило, непревышают тысячи.
1.3 Сетевыемодели
В основемоделей этого типа лежит конструкция, названная раньше семантической сетью.Семантический подход к построению систем ИИ находит применение в системахпонимания естественного языка, в вопросно-ответных системах, в различныхпредметно — ориентированных системах.
В самомобщем случае семантическая сеть представляет собой информационную модельпредметной области и имеет вид графа, вершины которого соответствуют объектампредметной области, а дуги — отношениям между ними. Дуги могут быть определеныразными методами, зависящими от вида представляемых знаний. Обычно дуги,используемые для представления иерархии, включают дуги типа«множество», «подмножество», «элемент».Семантические сети, используемые для описания естественных языков, используютдуги типа «агент», «объект», «реципиент». Всемантических сетях существует возможность представлять знания болееестественным и структурированным образом, чем в других формализмах.
1.4 Фреймовыемодели
Фреймоваямодель представления знаний задает остов описания класса объектов и удобна дляописания структуры и характеристик однотипных объектов (процессов, событий)описываемых фреймами — специальными ячейками (шаблонами понятий) фреймовой сети(знания).
Фрейм — концентратор знаний и может быть активизирован как отдельный автономный элементи как элемент сети. Фрейм — это модель кванта знаний (абстрактного образа,ситуации), активизация фрейма аналогична активизации этого кванта знаний — дляобъяснения, предсказания и т.п. Отдельные характеристики (элементы описания)объекта называются слотами фрейма. Фреймы сети могут наследовать слоты другихфреймов сети.
Различаютфреймы-образцы (прототипы), хранящиеся в базе знаний, и фреймы-экземпляры, создаваемыедля отображения реальных ситуаций для конкретных данных.
Фреймовоепредставление данных достаточно универсальное. Оно позволяет отображать знанияс помощью:
фрейм-структур- для обозначения объектов и понятий;
фрейм-ролей- для обозначения ролевых обязанностей;
фрейм-сценариев- для обозначения поведения;
фрейм-ситуаций- для обозначения режимов деятельности, состояний.
Пример.Фрейм-структурами являются понятия «заем», «вексель»,«кредит». Фрейм-роли — «кассир», «клиент»,«сервер». Фрейм-сценарии — «страхование»,«банкинг», «банкротство». Фрейм-ситуации — «эволюция», «функционирование», «безработица».
Пример.Например, возьмем такое понятие, как «функция». Различные функциимогут отличаться друг от друга, но существует некоторый набор формальных характеристикдля описания любой функции (фрейм «Функция»): тип и допустимоемножество изменений аргумента (область определения функции), тип и допустимоемножество значений функции (множество значений функции), аналитическое правилосвязи аргумента со значением функции. Соответственно, могут быть определеныфреймы «Аргумент», «Значение функции», «Законсоответствия». Далее можно определить фреймы «Тип аргумента»,«Вычисление значения функции», «Операция» и др. Примерслотов для фрейма «Закон соответствия»: аналитический способ заданиязакона; сложность вычисления (реализации).
В отличиеот моделей других типов во фреймовых моделях фиксируется жесткая структураинформационных единиц, называемых фреймами. Фрейм является формой представлениянекоторой ситуации, которую можно (или целесообразно) описывать некоторойсовокупностью понятий и сущностей. В качестве идентификатора фреймуприсваивается имя фрейма. Это имя должно быть единственным во всей фреймовойсистеме.
Фрейм имеетопределенную внутреннюю структуру, состоящую из множества элементов, называемыхслотами, которым также присваиваются имена. Каждый слот в свою очередьпредставляется определенной структурой данных. В значение слота подставляетсяконкретная информация, относящаяся к объекту, описываемому этим фреймом.
Значениемслота может быть практически что угодно: числа, формулы, тексты на естественномязыке или программы, правила вывода или ссылки на другие слоты данного фреймаили других фреймов. В качестве значения слота может выступать набор слотов болеенизкого уровня, что позволяет реализовывать во фреймовых представлениях«принцип матрешки».
Связи междуфреймами задаются значениями специального слота с именем «Связь».Часть специалистов по системам ИИ считают, что нет необходимости выделятьфреймовые модели представления знаний, так как в них объединены все основныеособенности моделей остальных типов.
Глава 2. Моделированиерассуждений
Представлениезнаний — одно из наиболее сформировавшихся направлений искусственногоинтеллекта. Традиционно к нему относилась разработка формальных языков ипрограммных средств для отображения и описания так называемых когнитивныхструктур. Сегодня к представлению знаний причисляют также исследования подескриптивной логике, логикам пространства и времени, онтологиям.
Пространственныелогики позволяют описывать конфигурацию пространственных областей, объектов впространстве; изучаются также семейства пространственных отношений. В последнеевремя эта область, из-за тесной связи с прикладными задачами, становится доминирующейв исследованиях по представлению знаний.
Объектамидескриптивной логики являются так называемые концепты, (базовые структуры дляописания объектов в экспертных системах) и связанные в единое целое множестваконцептов (агрегированные объекты). Дескриптивная логика вырабатывает методыработы с такими сложными концептами, рассуждений об их свойствах и выводимостина них. Дескриптивная логика может быть использована, кроме того, дляпостроения объяснительной компоненты базы знаний.[4]
Наконец,онтологические исследования посвящены способам концептуализации знаний иметодологическим соображениям о разработке инструментальных средств для анализазнаний.
Различныеспособы представления знаний лежат в основе моделирования рассуждений, кудавходят: моделирование рассуждений на основе прецедентов (case-based reasoning,CBR), аргументации или ограничений, моделирование рассуждений снеопределенностью, рассуждения о действиях и изменениях, немонотонные моделирассуждений, и другие. Остановимся на некоторых из них.
2.1 Рассужденияна основе прецедентов
Моделированиерассуждений на основе прецедентов также называют методом «ближайшегососеда» («nearest neighbour») относится к классу методов, работакоторых основывается на хранении данных в памяти для сравнения с новымиэлементами. При появлении новой записи для прогнозирования находятся отклонениямежду этой записью и подобными наборами данных, и наиболее подобная (илиближний сосед) идентифицируется.
Например,при рассмотрении нового клиента банка, его атрибуты сравниваются со всемисуществующими клиентами данного банка (доход, возраст и т.д.). Множество«ближайших соседей» потенциального клиента банка выбирается наосновании ближайшего значения дохода, возраста и т.д.
При такомподходе используется термин «k-ближайший сосед» («k-nearestneighbour»). Термин означает, что выбирается k «верхних»(ближайших) соседей для их рассмотрения в качестве множества «ближайшихсоседей». Поскольку не всегда удобно хранить все данные, иногда хранитсятолько множество «типичных» случаев. В таком случае Прецедент — этоописание ситуации в сочетании с подробным указанием действий, предпринимаемых вданной ситуации.
Подход,основанный на прецедентах, условно можно поделить на следующие этапы:
· сбор подробной информации о поставленной задаче;
· сопоставление этой информации с деталями прецедентов, хранящихся вбазе, для выявления аналогичных случаев;
· выбор прецедента, наиболее близкого к текущей проблеме, из базыпрецедентов;
· адаптация выбранного решения к текущей проблеме, если этонеобходимо;
· проверка корректности каждого вновь полученного решения;
· занесение детальной информации о новом прецеденте в базупрецедентов.
Такимобразом, вывод, основанный на прецедентах, представляет собой такой методанализа данных, который делает заключения относительно данной ситуации порезультатам поиска аналогий, хранящихся в базе прецедентов.
Данныйметод по своей сути относится к категории «обучение без учителя»,т.е. является «самообучающейся» технологией, благодаря чему рабочие характеристикикаждой базы прецедентов с течением времени и накоплением примеров улучшаются.Разработка баз прецедентов по конкретной предметной области происходит наестественном для человека языке, следовательно, может быть выполнена наиболееопытными сотрудниками компании — экспертами или аналитиками, работающими вданной предметной области.
Однако этоне означает, что CBR-системы самостоятельно могут принимать решения. Последнеевсегда остается за человеком, данный метод лишь предлагает возможные вариантырешения и указывает на самый «разумный» с ее точки зрения.
Преимуществаметода
· Простота использования полученных результатов.
· Решения не уникальны для конкретной ситуации, возможно ихиспользование для других случаев.
· Целью поиска является не гарантированно верное решение, а лучшееиз возможных.
/>Недостатки метода
· Данный метод не создает каких-либо моделей или правил, обобщающихпредыдущий опыт, — в выборе решения они основываются на всем массиве доступныхисторических данных, поэтому невозможно сказать, на каком основании строятсяответы.
· Существует сложность выбора меры «близости» (метрики).От этой меры главным образом зависит объем множества записей, которые нужнохранить в памяти для достижения удовлетворительной классификации или прогноза.Также существует высокая зависимость результатов классификации от выбраннойметрики.
· При использовании метода возникает необходимость полного перебораобучающей выборки при распознавании, следствие этого — вычислительнаятрудоемкость.
· Типичные задачи данного метода — это задачи небольшой размерностипо количеству классов и переменных.
Методы CBRуже применяются во множестве прикладных задач – в медицине, управлениипроектами, для анализа и реорганизации среды, для разработки товаров массовогоспроса с учетом предпочтений разных групп потребителей, и т.д. Следует ожидатьприложений методов CBR для задач интеллектуального поиска информации,электронной коммерции (предложение товаров, создание виртуальных торговыхагентств), планирования поведения в динамических средах, компоновки,конструирования, синтеза программ.
2.2 Моделированиерассуждений на основе ограничений
Наиболееинтересны задачи моделирования рассуждений, основанных на процедурныхдинамических ограничениях. Они мотивированы сложными актуальными задачами –например, планированием в реальной обстановке.
Под задачейудовлетворения ограничений понимается четверка множеств: множество переменных,множество соответствующих областей переменных, множество ограничений напеременные и множество отношений над областями. Решением проблемыудовлетворения ограничений называется набор значений переменных,удовлетворяющих ограничениям на переменные, такой, что при этом области,которым принадлежат эти значения, удовлетворяют отношениям над областями.
2.3 Немонотонныемодели рассуждений
Сюдаотносятся исследования по логике умолчаний (default logic), по логике«отменяемых» (Defeasible) рассуждений, логике программ, теоретико — аргументационой характеризации логик с отменами, характеризации логик с отношениямипредпочтения, построению эквивалентных множеств формул для логик с очерчиванием(circumscription) и некоторые другие.
Такого родамодели возникают при реализации индуктивных рассуждений, например, по примерам;связаны они также с задачами машинного обучения и некоторыми иными задачами. Вчастности, в задачах моделирования рассуждений на основе индукции источникомпервоначальных гипотез служат примеры. Если некоторая гипотеза Н возникла наоснове N положительных примеров (например, экспериментального характера), тоникто не может дать гарантии, что в базе данных или в поле зрения алгоритма неокажется N+1 — й пример, опровергающий гипотезу (или меняющий степень ееистинности). Это означает, что ревизии должны быть подвержены и все следствиягипотезы H.
2.4 Рассужденияо действиях и изменениях
Большаячасть работ в этой области посвящена применениям ситуационного исчисления — формализма, предложенного Джоном Маккарти в 1968 году для описания действий,рассуждений о них и эффектов действий. Для преобразования плана поведенияробота в исполняемую программу, достигающую с некоторой вероятностьюфиксированной цели, вводится специальное логическое исчисление, основанное наситуационной логике.
Для этойлогики предложены варианты реализации на языке pGOLOG — версии языка GOLOG,содержащей средства для введения вероятностей. Активно исследуются логикидействий, применение модальных логик для рассуждений о знаниях и действиях.
2.5 Рассужденияс неопределенностью
Сюдаотносится использование байесовского формализма в системах правил и сетевыхмоделях. Байесовские сети – это статистический метод обнаружениязакономерностей в данных. Для этого используется первичная информация,содержащаяся либо в сетевых структурах либо в базах данных. Под сетевымиструктурами понимается в этом случае множество вершин и отношений на них,задаваемое с помощью ребер. Содержательно, ребра интерпретируются как причинныесвязи. Всякое множество вершин Z, представляющее все пути между некоторымидвуми иными вершинами X и Y соответствует условной зависимости между этимидвуми последними вершинами.
Далеезадается некоторое распределение вероятностей на множестве переменных,соответствующих вершинам этого графа и полученная, но минимизированная (внекотором смысле) сеть называется байсовской сетью.
На такойсети можно использовать, так называемый байесовский вывод, т.е. для вычислениявероятностей следствий событий можно использовать (с некоторой натяжкой)формулы теории вероятностей.
Иногдарассматриваются так называемые гибридные байесовские сети, с вершинами которыхсвязаны как дискретные, так и непрерывные переменные. Байесовские сети частоприменяются для моделирования технических систем.
Глава 3. Логическоепрограммирование
Проблемы слогической интерпретацией человеко-машинного взаимодействия имеют весьмасерьезные причины, основной из которой является фундаментальное противоречие,существующее между понятием взаимодействия и декларативной семантикойлогических программ. Дело в том, что программа, взаимодействующая с человеком, являетсячастным случаем так называемых реагирующих систем, отвечающих на сообщенияизвне.
Характернойособенностью реагирующей системой является ее последовательный переход из однихсостояний в другие под воздействием внешних событий. В то же время каждаялогическая программа имеет декларативную семантику и может быть представлена ввиде формулы (является статической системой).
Следуетотметить, что в процессе развития логического программирования было предложенобольшое количество способов имитации объектов с изменяемым состоянием,основанных на использовании задержанных вычислений и параллельных стратегийисполнения логических программ.
Основныепреимущества и особенности логической парадигмы программирования:
–программа, построенная на основе логического подхода, не является алгоритмом, апредставляет собой запись условия задачи на языке формальной логики;
– данныйподход наиболее удобен для решения логических задач;
–логическоепрограммирование требует особого стиля мышления программиста.
Применениелогических языков программирования осуществляется для описания различныхутверждений, логики, рассуждений, а также для создания средств искусственногоинтеллекта. Известен ряд способов, позволяющих реализовать основные базовыеалгоритмы на языке логического программирования.
Наиболее известныйпример языка логического программирования – это PGOLOG, был разработан всередине 1970-х во Франции в рамках проекта по пониманию естественного языка.
Язык ПРОЛОГпредназначен для представления и использования знаний в различных предметныхобластях. Математическую основу языка составляет исчисление предикатов первогопорядка (ИППП), при этом объекты предметной области, их свойства и связипредставляются конъюнкцией правильно построение формул специального вида, называемыхдизъюнктами Хорна. Для решения задачи получения новой информации об отношенияхпредметной области, формулируемой как задача доказательства теоремы, винтерпретаторе системы программирования ПРОЛОГ реализован метод резолюции.[6]
Программана языке ПРОЛОГ состоит из утверждений (предложений, дизъюнктов Хорна),составляющих базу фактов и базу правил, к которым допустимо обращение сзапросами. Запросы называются также целевыми утверждениями или просто целями.
Программированиена ПРОЛОГ состоит из следующих этапов:
1. Объявление некоторых фактов об объектах и отношениях между ними.
2. Объявление некоторых правил об объектах и отношениях между ними.
3. Формулировка вопросов об объектах и отношениях между ними.
Большинствосуществующих систем программирования ПРОЛОГ являются комбинированными в томсмысле, что допускают как интерпретацию программ, так и их компиляцию.
3.1 Арифметика
Дляописания арифметических операций в языке ПРОЛОГ используются структуры,функторами которых выступают знаки арифметических действий, а компонентами — термы, являющиеся операндами. В качестве операндов могут использоваться числа,переменные и структуры. Последние, в свою очередь, должны представлять собойарифметические выражения. С точки зрения ИППП знаки арифметических операций втаких структурах выступают в качестве функциональных букв.
Арифметическиеоперации могут также использоваться для вычислений. Например, если имеютсясведения о населении и площади некоторой страны, то можно вычислить среднююплотность населения для этой страны. Средняя плотность населения показывает,сколь тесно было бы в данной стране, если бы ее население было равномернораспределено по всей ее территории.
Рассмотримследующую базу данных, содержащую сведения о населении и площади некоторыхстран в 1976 г. Для представления связи между страной и ее населением будетиспользоваться предикат нас. В наши дни население обычно характеризуетсядовольно большими числами. Не все версии Пролога позволяют работать с такимичислами. Поэтому будем исчислять население в миллионах: нас (Х, Y) означает,что население страны X составляет примерно «Y миллионов» людей. Предикатплощадь будет обозначать связь между страной и ее площадью (в миллионахквадратных километров):
нас(сша,203).
нас(индия,548).
нас(китай,800).
нас(бразилия,108).
площадь(сша,8).
площадь(индия,3).
площадь(китай,9).
площадь(бразилия,8).
Теперь длятого, чтобы найти среднюю плотность населения некоторой страны, мы должныиспользовать правило, гласящее, что значение плотности получается делениемчисла, представляющего население, на число, представляющее площадь.
Введемпредикат плотность(Х, Y), где X – это страна, a Y – плотность населения вданной стране, и запишем соответствующее правило на Прологе:
плотность(X,Y):-нас(Х, Р),площадь(Х, А), Y is Р/А.
Данноеправило читается следующим образом:
«Плотностьнаселения страны X представляется числом Y, если: Население X — это Р, иПлощадь X — это A, и Y вычисляется делением Р на A.»
В правилеиспользуется оператор деления '/' введенный в предыдущем разделе. Операцияделения выполняется на самом деле как целочисленное деление, сохраняющее толькоцелую часть результата.
3.2 Запросы
Введенныеэлементы языка ПРОЛОГ позволяют рассмотреть более сложные типы запросов к базефактов. В общем виде запрос (целевое утверждение) формулируется в следующемвиде:
?-,...,.
Здеськаждая структура представляет собой предикат, возможно содержащий переменные.Причем областью действия переменной является всё утверждение в целом, то естьодна и та же переменная в пределах утверждения означает один и тот же объект.Символ "," (запятая) между предикатами трактуется как логическаясвязка И, то есть запрос необходимо рассматривать как требование на поиск вбазе фактов информации, удовлетворяющей одновременно всем предикатам целевогоутверждения. Предикаты, объединенные связкой И в таком запросе, называютсяподцелями (имея в виду весь запрос целью).
Пример. Пустьнеобходимо получить из базы фактов информацию о наличии строительных блоковвысотой более 2 и менее 5. Тогда соответствующий диалог с интерпретаторомПРОЛОГа будет иметь следующий вид (рисунок 1):
/>
Рисунок1.Диалог
Получивзапрос (целевое утверждение), состоящий из нескольких предикатов, интерпретаторпытается выполнить его, используя линейную по входу стратегию метода резолюции,реализуя следующую схему вычислений, поясняемую последним рассмотреннымпримером.
Выбираетсяпервый в последовательности запроса предикат и делается попытка (если этотпредикат не встроенный) согласовать его с базой фактов, для чего выполняетсясопоставление этого предиката последовательно со всеми утверждениями базы дотех пор, пока оно не даст положительного результата. Если этого не происходит,интерпретатор выдает в качестве ответа No. В ходе согласования возможнаконкретизация переменных значениями. В нашем примере на этом этапе будетвыполнено согласование предиката block(F,H) с третьим утверждением базы фактов,при этом переменная F получит значение cyl, переменная Н — 5, а маркер будетустановлен на утверждении 3.
Удовлетвориводин предикат (подцель) запроса, интерпретатор переходит к соседнему справа (унас это H>2). Этот предикат — встроенный, для его проверки нет необходимостиобращаться к базе фактов, поскольку интерпретатор в состоянии сам установитьего истинность (5>2). Далее следует проверка (попытка«согласовать») последнего предиката в запросе, которая заканчиваетсянеудачей. Здесь включается в работу механизм бэктрекинга (возврата), которыйзаставляет интерпретатор, передвигаясь по предикатам целевого утверждениясправа налево, вновь согласовывать эти предикаты, но уже на новых утвержденияхбазы фактов. Если попытка пересогласовать какой-либо предикат (подцель)интерпретатору удается, то он продолжает рассмотрение подцелей от данной вобычном порядке (слева направо). В нашем примере бэктрекинг достигнет предикатаblock(F,H), это приведет к расконкретизации переменных F и H и поиску новогоутверждения, согласующегося с ним, начиная со следующего после отмеченногомаркером (то есть начиная с четвертого) факта.
Этот(четвертый) факт согласуется с подцелью, F получает значение cyl, H — 3, и этозначение H удовлетворяет двум оставшимся в запросе предикатам. Таким образом,будет найден первый ответ на запрос. Ввод пользователем символа ";"инициирует механизм бэктрекинга и, следовательно, дальнейший поиск сиспользованием рассмотренной схемы.
3.3 Правила
Правилопредставляет собой дизъюнкт Хорна, содержащий один положительный литерал инесколько отрицательных, и записывается следующим образом:
:-,..., .
Здеськаждая структура представляет собой предикат, областью действия переменныхявляется все правило. Предикат, стоящий слева от атома ":-",называется заголовком правила, все остальные предикаты образуют его тело.Правило может трактоваться следующим образом: предикат, являющийся заголовкомправила, истинен (удовлетворен) тогда, когда истинен каждый из предикатов телаправила.
Правила вПрологе используются для описания определений, запросов к базам данных, а такжеобращений к другим правилам и процедурам. Пример записи правил представлен нарисунке 2.
/>
Рисунок2.Пример записи правил
Наличиеправил в программах на языке ПРОЛОГ позволяет интерпретатору находить ответ назапросы, не касающиеся непосредственно содержимого базы фактов.
В Прологеправила используются в том случае, когда необходимо сказать, что некоторый фактзависит от группы других фактов. В естественном языке для выражения правила мыможем использовать слово если. Например:
• Япользуюсь зонтом, если идет дождь.
• Джонпокупает вино, если оно дешевле, чем пиво.
В Прологеправило состоит из заголовка и тела правила. Заголовок и тело соединяются спомощью символа:-, который состоит из двоеточия: и тире -. Символ ':-' читаетсяесли.
Заголовокправила описывает факт, для определения которого предназначено это правило.Тело правила описывает конъюнкцию целей, которые должны быть последовательносогласованы с базой данных, для того чтобы заголовок правила был истинным.
Заключение
Анализируяисторию ИИ, можно выделить такое обширное направление как моделированиерассуждений. Долгие годы развитие этой науки двигалось именно по этому пути, итеперь это одна из самых развитых областей в современном ИИ. Моделированиерассуждений подразумевает создание символьных систем, на входе которыхпоставлена некая задача, а на выходе требуется её решение.
В настоящеевремя разработано большое количество различных методов, подходов и путей кмоделированию рассуждений.
Чтобыманипулировать знаниями из реального мира с помощью компьютера, необходимоосуществлять их моделирование.
Рассмотревданную темы, мы пришли к выводу, что моделирование рассуждений способствуетоблегчению труда при создании программы на основе знаний. Так как при решениекакой-либо проблемы мы ищем различные пути решения, то есть мы рассуждаем. Нобывают случаи, что задача сложная и представляет собой большой труд.
Списокиспользованной литературы
1. Андрейчиков, А.В. Интеллектуальные информационные системы: учебник/ А. В. Андрейчиков, О.Н. Андрейчикова. – М.: Финансы и статистика, 2007. – 250с.
2. Астахова, И.С. Системы искусственного интеллекта. Практическийкурс: учеб. пособие / И.С. Астахова, А.С. Потапов, В.А. Чулюков. – М.: Бином,Лаборатория знаний, 2008. – 276 с.
3. Башмаков А.И., Башмаков И.А. Интеллектуальные информационныетехнологии: Учебное пособие. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2008. – 304 с.
4. Гаврилова, Т.А. Базы знаний интеллектуальных систем: учебник / Т.А.Гаврилова. – СПб.: Питер, 2008.
5. Гаскаров, Д.В. Интеллектуальные информационные системы: учебник /Д.В. Гаскаров. – М.: Высшая школа, 2008.
6. Девятков, В.В. Системы искусственного интеллекта: учеб. пособиедля студентов вузов / В.В. Девятков. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2010.– 254 с.
7. Золотов С.И. Интеллектуальные информационные системы: учебноепособие / С.И. Золотов – Воронеж: Научная книга, 2007. – 140 с.
8. Избачков, Ю.С. Информационные системы: учеб. пособие для ВУЗов /Ю.С. Избачков, В. Н. Петров. – СПб.: Питер, 2008.
9. Люгер Джордж Ф. Искусственный интеллект: стратегии и методы решениясложных проблем, 4-е издание.: Пер. с англ. – М.: Издательский дом «Вильямс»,2008. – 864 с.
10. Пескова, С.А. Сети и телекоммуникации: учебное пособие для ВУЗов России / С.А. Пескова, А.Н. Волков, А.В.Кузин. – М.: Академия, 2007.
11. Путькина, Л.В. Интеллектуальные информационные системы: учебноепособие / Л.В. Путькина, Т.Г. Пискунова. – СПб.: СПбГУП, 2008.
12. Рассел С. Искусственный интеллект: современный подход. – М.:Издательский дом «Вильямс», 2006.– 258 с.
13. Тельнов, Ю.Ф. Интеллектуальные информационные системы в экономике:учеб. пособие / Ю. Ф. Тельнов. – М.: Синтег, 2008.
14. Ясницкий Л.Н. Введение в искусственный интеллект: учебное пособие/ Л.Н. Ясницкий. – М.: Академия, 2008.