История ия. Краткая история искусственного интеллекта. Глава VII. Перспективы развития ИИС в управлении знаниями

История искусственного интеллекта как нового научного направления начинается в середине XX века. К этому времени уже было сформировано множество предпосылок его зарождения: среди философов давно шли споры о природе человека и процессе познания мира, нейрофизиологи и психологи разработали ряд теорий относительно работы человеческого мозга и мышления, экономисты и математики задавались вопросами оптимальных расчетов и представления знаний о мире в формализованном виде; наконец, зародился фундамент математической теории вычислений -- теории алгоритмов -- и были созданы первые компьютеры. С самого момента своего рождения ИИ развивается как междисциплинарное направление, взаимодействующее с информатикой и кибернетикой, когнитивными науками, логикой и математикой, лингвистикой и психологией, биологией и медициной. Идея создания искусственного подобия человеческого разума для решения сложных задач и моделирования мыслительной способности витала в воздухе с древнейших времен. В древнем Египте была создана «оживающая» механическая статуя бога Амона. У Гомера в «Илиаде» бог Гефест ковал человекоподобные существа-автоматы. В литературе эта идея обыгрывалась многократно: от Галатеи Пигмалиона до Буратино папы Карло. Однако родоначальником искусственного интеллекта считается средневековый испанский философ, математик и поэт Р. Луллий (ок. 1235-ок. 1315), который в XIV веке пытался создать машину для решения различных задач на основе всеобщей классификации понятий. В XVIII в. Г. Лейбниц (1646-1716) и Р. Декарт (1596-1650) независимо друг от друга развили эту идею, предложив универсальные языки классификации всех наук. Эти идеи легли в основу теоретических разработок в области создания искусственного интеллекта. Развитие искусственного интеллекта как научного направления стало возможным только после создания ЭВМ. Это произошло в 40-х гг. XX веке. В это же время Н. Винер (1894-1964) создал свои основополагающие работы по новой науке -- кибернетике.

Термин искусственный интеллект (artificial intelligence) предложен в 1956 г. на семинаре с аналогичным названием в Станфордском университете (США). Семинар был посвящен разработке логических, а не вычислительных задач. Вскоре после признания искусственного интеллекта самостоятельной отраслью науки произошло разделение на два основных направления: нейрокибернетику и кибернетику «черного ящика». И только в настоящее время стали заметны тенденции к объединению этих частей вновь в единое целое. В СССР в 1954 г. в МГУ под руководством профессора А.А. Ляпунова (1911-1973) начал свою работу семинар «Автоматы и мышление». В этом семинаре принимали участие крупнейшие физиологи, лингвисты, психологи, математики. Принято считать, что именно в это время родился искусственный интеллект в России. Как и за рубежом, выделились направления нейрокибернетики и кибернетики «черного ящика».

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

Первые исследования в области ИИ связаны с созданием программы для игры в шахматы, так как считалось, что способность играть в шахматы является показателем высокого интеллекта. В 1954 году американский ученый Ньюэлл задумал создать такую программу. Шеннон предложил, а Тьюринг уточнил метод создания такой программы. Американцы Шоу и Саймон в содружестве с группой голландских психологов из Амстердама под руководством де Гроота создали такую программу. Попутно был создан специальный язык ИПЛ (1956), предназначенный для манипулирования информацией в символьной форме, который явился предшественником языка Лисп (MacCarthy, 1960). Однако первой программой искусственного интеллекта была программа Логик-теоретик, предназначенная для доказательства теорем в исчислении высказываний (9 августа 1956). Программа для игры в шахматы была создана в 1957 году (NSS - Newell, Shaw, Simon). Ее структура и структура программы Логик-теоретик легли в основу создания программы Универсального Решателя Задач (GPS-General Problem Solving). Эта программа, анализируя различия между ситуациями и конструируя цели, хорошо решает головоломки типа «Ханойская башня» или вычисляет неопределенные интегралы. Программа EPAM (Elementary Perceiving and Memorizing Program) - элементарная программа для восприятия и запоминания, задумана Фейгенбаумом. Начало 60-х гг. - эпоха эвристического программирования. Эвристика - правило, теоретически не обоснованное, но позволяющее сократить количество переборов в пространстве поиска. Эвристическое программирование - разработка стратегии действий на основе известных, заранее заданных эвристик. В 60-х годах создаются первые программы, работающие с запросами на естественном языке. Программа БЕЙСБОЛ (Green и др.,1961) отвечала на запросы о результатах прошедших бейсбольных матчей, программе STUDENT (Bobrow,1964) было доступно решение алгебраических задач, сформулированных на английском языке. В 1971 г. Терри Виноград разработал систему SHRDLU, которая моделирует робота, манипулирующего кубиками. С роботом можно говорить по-английски. Система интересуется не только синтаксисом фраз, но и правильно понимает их смысл благодаря семантическим и прагматическим знаниям о своем «мире кубиков». Начиная с середины 80-х гг., за рубежом происходит коммерциализация искусственного интеллекта. Растут ежегодные капиталовложения, создаются промышленные экспертные системы. Растет интерес к самообучающимся системам. В настоящее время ИИ - это бурно развивающаяся и сильно разветвленная научная область. На данный момент в истории развития искусственного интеллекта происходят крупные открытия и разработки, связные с инновациями в сопредельных областях науки, кибернетики и робототехники. Сейчас человечество как никогда близко подошло к создание искусственного интеллекта.

Можно считать, что история искусственного интеллекта начинается с момента создания первых ЭВМ в 40-х г.г. С появлением электронных вычислительных машин, обладающих высокой (по меркам того времени) производительностью, стали возникать первые вопросы в области искусственного интеллекта: возможно ли создать машину, интеллектуальные возможности которой были бы тождественны интеллектуальным возможностям человека (или даже превосходили возможности человека).

Следующим этапом в истории искусственного интеллекта являются 50-е годы, когда исследователи пытались строить разумные машины, имитируя мозг. Эти попытки оказались безуспешными по причине полной непригодности, как аппаратных, так и программных средств. В 1956 г. состоялся семинар в Стэнфордском университете (США), где был впервые предложен термин искусственный интеллект – artificial intelligence .

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

Эвристика - правило, теоретически не обоснованное, но позволяющее сократить количество переборов в пространстве поиска.

Эвристическое программирование – разработка стратегии действий по аналогии или прецедентам. В целом, 50-60 г.г. в истории искусственного интеллекта можно отметить как время поиска универсального алгоритма мышления.

Существенный прорыв в практических приложениях искусственного интеллекта произошел в 70-х гг., когда на смену поискам универсального алгоритма мышления пришла идея моделировать конкретные знания специалистов-экспертов. В США появились первые коммерческие системы, основанные на знаниях, или экспертные системы. Пришел новый подход к решению задач искусственного интеллекта – представление знаний. Созданы «MYCIN» и «DENDRAL» – ставшие уже классическими экспертные системы для медицины и химии. Обе эти системы в определенном смысле можно назвать диагностическими, поскольку в первом случае («MYCIN») по ряду симптомов (признаков патологии организма) определяется болезнь (ставится диагноз), во втором – по ряду свойств определяется химическое соединение. В принципе, этот этап в истории искусственного интеллекта можно назвать рождением экспертных систем.

Следующий значимый период в истории искусственного интеллекта – это 80-е года. На этом отрезке искусственный интеллект пережил второе рождение. Были широко осознаны его большие потенциальные возможности, как в исследованиях, так и в развитии производства. В рамках новой технологии появились первые коммерческие программные продукты. В это время стала развиваться область машинного обучения. До этих пор перенесение знаний специалиста-эксперта в машинную программу было утомительной и долгой процедурой. Создание систем, автоматически улучшающих и расширяющих свой запас эвристических (не формальных, основанных на интуитивных соображениях) правил – важнейший этап в последние годы. В начале десятилетия в различных странах были начаты крупнейшие в истории обработки данных, национальные и международные исследовательские проекты, нацеленные на «интеллектуальные вычислительные системы пятого поколения».

Сегодняшнее состояние исследований в этой области можно охарактеризовать словами одного из известных специалистов в области искусственного интеллекта, профессора Н.Г. Загоруйко:

«Дискуссии на тему «Может ли машина мыслить?» уже давно сошли со страниц газет и журналов. Скептики устали ждать, когда же сбудутся обещания энтузиастов. А энтузиасты без лишних разговоров, небольшими шагами продолжают двигаться в направлении горизонта, за которым они надеются увидеть искусственного собрата по разуму».

Основные понятия искусственного интеллекта.

Достаточно трудно дать точное определение, что такое интеллект человека, потому что интеллект - это сплав многих навыков в области обработки и представления информации. Интеллект (intelligence) происходит от латинского intellectus - что означает ум, рассудок, разум; мыслительные способности человека. С большой степенью достоверности интеллектом можно называть способность мозга решать (интеллектуальные) задачи путем приобретения, запоминания и целенаправленного преобразования знаний в процессе обучения на опыте и адаптации к разнообразным обстоятельствам.

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

Системы искусственного интеллекта (СИИ) - это системы, созданные на базе ЭВМ, которые имитируют решение человеком сложных интеллектуальных задач.
Знания: в общем случае знание - проверенный практикой результат познания действительности, верное ее отражение в мышлении человека, обладание опытом и пониманием, которые являются правильными и в субъективном, и в объективном отношении, на основании которых можно построить суждения и выводы, кажущиеся достаточно надежными для того, чтобы рассматриваться как знание. Поэтому в контексте ИТ термин знания - это информация, присутствующая при реализации интеллектуальных функций. Обычно это отклонения, тенденции, шаблоны и зависимости, обнаруженные в информации Другими словами, интеллектуальные системы являются в то же время системами обработки знаний.

К программам искусственного интеллекта относятся:



1. игровые программы (стохастические, компьютерные игры);

2. естественно-языковые программы - машинный перевод, генерация текстов, обработка речи;

3. распознающие программы - распознавание почерков, изображений, карт;

4. программы создания и анализа графики, живописи, музыкальных произведений.

Выделяются следующие направления искусственного интеллекта:

1. экспертные системы;

2. нейронные сети;

3. естественно-языковые системы;

4. эволюционные методы и генетические алгоритмы;

5. нечеткие множества;

6. системы извлечения знаний.

История развития искусственного интеллекта

В развитии СИИ можно выделить три основных этапа:

− 60-70-е годы. Это годы осознания возможностей искусственного интеллекта и формирования социального заказа на поддержку процессов принятия решений и управления. Наука отвечает на этот заказ появлением первых персептронов (нейронных сетей), разработкой методов эвристического программирования и ситуационного управления большими системами (разработано в СССР)

­­− 70-80-е годы. На этом этапе происходит осознание важности знаний для формирования адекватных решений; появляются экспертные системы, в которых активно используется аппарат нечеткой математики, разрабатываются модели правдоподобного вывода и правдоподобных рассуждений

− 80-90-е годы. Появляются интегрированные (гибридные) модели представления знаний, сочетающие в себе интеллекты: поисковый, вычислительный, логический и образный.

Термин искусственный интеллект (artificial intelligence) предложен в 1956 году на семинаре в Стенфордском университете (США).

Идея создания искусственного подобия человеческого разума для решения сложных задач и моделирования мыслительной способности витала в воздухе с древнейших времен. Впервые ее выразил Р. Луллий, который еще в XIV веке пытался создать машину для решения различных задач на основе всеобщей классификации понятий.

Развитие же искусственного интеллекта, как научного направления стало возможным только после создания ЭВМ. Это произошло в 40-х годах XX века. В это же время Н. Винер создал свои основополагающие работы по новой науке - кибернетике.

В 1954 году в МГУ под руководством профессора А. А. Ляпунова начал свою работу семинар "Автоматы и мышление". В этом семинаре принимали участие крупнейшие физиологи, лингвисты, психологи, математики. Принято считать, что именно в это время родился искусственный интеллект в России.

Существенный прорыв в практических приложениях искусственного интеллекта произошел в середине 70-х годов XX века, когда на смену поискам универсального алгоритма мышления пришла идея моделировать конкретные знания специалистов-экспертов.

В США появились первые коммерческие системы, основанные на знаниях, или экспертные системы появился новый подход к решению задач искусственного интеллекта - представление знаний. Созданы MYCIN и DENDRAL - ставшие классическими экспертные системы для медицины и химии.

В 1980-1990 годы проводятся активные исследования в области представления знаний, разрабатываются языки представления знаний, экспертные системы. Начиная с середины 80-х годов XX века, происходит коммерциализация искусственного интеллекта. Растут ежегодные капиталовложения, создаются промышленные экспертные системы.

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

Условно можно выделить 7 этапов развития искусственного интеллекта, каждый из которых связывается с определённым уровнем развития искусственного интеллекта и парадигмой, реализуемой в конкретной системе.

Парадигма – новая идея математического описания работы систем искусственного интеллекта.

Этап 1 (50–е годы) (Нейрон и нейронные сети)

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

Этап 2 (60-е годы) (Эвристический поиск)

В «интеллект» машины добавились механизмы поиска, сортировки, простейшие операции по обобщению информации, не зависящие от смысла обрабатываемых данных. Это стало новой точкой отсчета в развитии и понимании задач автоматизации деятельности человека.

Этап 3 (70-е годы) (Представление знаний)

учеными была осознана важность знаний (по объему и содержанию) для синтеза интересных алгоритмов решения задач. При этом имелись в виду знания, с которыми математика не умела работать, т.е. опытные знания, не носящие строгого формального характера и описываемые обычно в декларативной форме. Это знания специалистов в различных областях деятельности, врачей, химиков, исследователей и т.п. Такие знания получили название экспертных знаний, и соответственно системы, работающие на основе экспертных знаний, стали называться системами-консультантами или экспертными системами

Этап 4 (80-е годы) (Обучающие машины)

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

Этап 5 (90-е годы) (Автоматизированные обрабатывающие центры)

Усложнение систем связи и решаемых задач потребовало качественно нового уровня «интеллектуальности» обеспечивающих программных систем, таких систем, как защита от несанкционированного доступа, информационная безопасность ресурсов, защита от нападений, смысловой анализ и поиск информации в сетях и т.п. И новой парадигмой создания перспективных систем защиты всех видов стали интеллектуальные системы. Именно они позволяют создавать гибкие среды, в рамках которых обеспечивается решение всех необходимых задач.

Этап 6 (2000-е годы) (Робототехника)

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

Этап 7 (год 2008)( Сингулярность)

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

По некоторым прогнозам, технологическая сингулярность может наступить уже около 2030 года. Сторонники теории технологической сингулярности считают, что если возникнет принципиально отличный от человеческого разума (пост человек), дальнейшую судьбу цивилизации невозможно предсказать, опираясь на человеческое (социальное) поведение.

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

Информационнаясистема поддержки решений (ИСПР) связывает интеллектуальные ресурсы управленца со способностями и возможностями компьютера для улучшения качества решений. Эти системы предназначены для менеджеров, принимающих управленческие решения в условиях полуструктурированных и слабо определенных задач.

Таким образом, дальнейшее развитие ИСПР привело к созданию интеллектуальной информационной СПР.

Интеллектуальные информационные технологии (ИИТ) (Intellectual information technology , IIT ) - это информационные технологии, помогающие человеку ускорить анализ политической, экономической, социальной и технической ситуации, а также - синтез управленческих решений.

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

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

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

Глава I. История развития Интеллектуальных информационных систем

История Интеллектуальных информационных систем (ИИС) начинается с середины XX века, что связано с развитием Искусственного интеллекта как нового научного направления, появлением термина «Artificial Intelligence».

Предпосылки развития искусственного интеллекта в СССР и России появляются уже в XIX веке, когда Коллежский советник Семён Николаевич Корсаков (1787-1853) ставил задачу усиления возможностей разума посредством разработки научных методов и устройств, перекликающуюся с современной концепцией искусственного интеллекта, как усилителя естественного. В 1832 г. С. Н. Корсаков опубликовал описание пяти изобретённых им механических устройств, так называемых «интеллектуальных машин», для частичной механизации умственной деятельности в задачах поиска, сравнения и классификации. В конструкции своих машин Корсаков впервые в истории информатики применил перфорированные карты, игравшие у него своего рода роль баз знаний, а сами машины по существу являлись предшественниками экспертных систем. «Интеллектуальные машины» позволяли находить решения по заданным условиям, например определять наиболее подходящие лекарства по наблюдаемым у пациента симптомам заболевания. В СССР работы в области искусственного интеллекта начались в 1960-х гг. В Московском университете и Академии наук был выполнен ряд пионерских исследований, возглавленных В. Пушкиным и Д. А. Поспеловым. В 1964 г. была опубликована работа ленинградского логика С. Маслова «Обратный метод установления выводимости в классическом исчислении предикатов», в которой впервые предлагался метод автоматического поиска доказательства теорем в исчислении предикатов. В 1966 г. В. Ф. Турчиным был разработан язык рекурсивных функций Рефал. До 1970-х гг. в СССР все исследования ИИ велись в рамках кибернетики. По мнению Д. А. Поспелова, науки «информатика» и «кибернетика» были в это время смешаны, по причине ряда академических споров. Только в конце 1970-х в СССР начинают говорить о научном направлении «искусственный интеллект» как разделе информатики. При этом родилась и сама информатика, подчинив себе прародительницу «кибернетику». В конце 1970-х создаётся толковый словарь по искусственному интеллекту, трёхтомный справочник по искусственному интеллекту и энциклопедический словарь по информатике, в котором разделы «Кибернетика» и «Искусственный интеллект» входят наряду с другими разделами в состав информатики.

История ИИТ начинается с середины 1970-х годов и связывается с совместным практическим применением интеллектуальных информационных систем, систем искусственного интеллекта, систем поддержки решений и информационных систем.История ИИТ связана также с развитием трех научных направлений: компьютерной философии, компьютерной психологии и продвинутой компьютерной науки (Advanced computer science ) и дополняется прогрессом в создании:

1. ситуационных центров

2. информационно-аналитических систем

3. инструментариев эволюционных вычислений и генетических алгоритмов

4. систем поддержки общения человека с компьютером на естественном языке

5. когнитивным моделированием

6. систем автоматического тематического рубрицирования документов

7. систем стратегического планирования

8. инструментариев технического и фундаментального анализа финансовых рынков

9. систем менеджмента качества

10. систем управления интеллектуальной собственностью и др.

Искусственный интеллект как наука был основан тремя поколениями исследователей.

В Табл.1.1. представлены ключевые события в истории ИИ и инженерии знаний, начиная с первой работы У. Маккалока и У. Питса в 1943 г. и до современных тенденций в комбинированных усилиях экспертных систем, нечеткой логики и нейронных вычислений в современных системах, основанных на знаниях, способных осуществлять вычисления при помощи слов.

Таблица 1.1.

Краткий перечень главных событий в истории ИИ и инженерии знаний

Период

События

Рождение ИИ

(1943-1956)

У. Маккалок и У. Питс:

Логическое исчисление идей, присущих нервной деятельности, 1943.

А.Тьюринг: Вычислительная машина и интеллект, 1950.

К. Шеннон: Программирование компьютера для шахматной игры, 1950.

Подъем ИИ

(1956- конец 1960-х)

Д. Маккарти: LISP – язык программирования искусственного интеллекта.

М. Куллиан: Семантические сети для представления знаний,1966.

А. Ньюэл и Г. Саймон: Универсальный решатель задач (GPS ),1961.

М. Минский: Структуры для представления знаний (фреймы), 1975.

Открытие и разработка экспертных систем (начало 1970-х – середина 1980-х).

Э. Фейгенбаум, Б. Букханан и др. (Стэндфордский университет): Экспертная система DENDRAL

Э. Фейгенбаум, Э. Шортлиф: Экспертная система MYCIN

Стэндфордский исследовательский центр: Экспертная система PROSPECTOR

А. Колмероэ, Р. Ковальски и др. (Франция): Язык логического программирования PROLOG .

Возрождение искусственный нейронных сетей (1965 и далее)

Дж. Хопфилд: Нейронные сети и физические с эмержентными коллективнымивычислительными способностями, 1982.

Т. Кохонен: Самоорганизующиеся топологически правильные карты, 1982.

Д. Румельхарт и Д. Макклеланд: Распределенная параллельная обработка данных, 1986.

Эволюционное вычисление (начало 1970-х и далее)

И. Рехенберг: Эволюционные стратегии – оптимизация технических систем по принципам биологической информации, 1973.

Дж. Холланд: Адаптация в естественных и искусственных системах, 1975.

Дж. Коза: Генетическое программирование: компьютерное программирование средствами естественного отбора, 1992.

Д.Фогель: Эволюционное вычисление – направление новой философии в машинном интеллекте, 1995.

Нечеткие множества и нечеткая логика (середина 1960-х и далее)

Л. Заде: Нечеткие множества, 1965.

Л. Заде: Нечеткие алгоритмы, 1969.

Э. Мамдани: Применение нечеткой логики в приближенном рассуждении с использованием лингвистического синтеза, 1977.

- М. Суджено: Нечеткий логический вывод (алгоритм Такаги-Суджено), 1985

Вычисления при помощи слов (конец 1980-х и далее)

А. Нейгоца: Экспертные системы и нечектие системы, 1985.

Б. Коско: Нейронные сети и нечеткие системы, 1992.

Б. Коско: Нечеткое мышление, 1993.

Р. Ягер и Л. Заде: нечеткие множества, нейронные сети и мягкие вычисления, 1994.

Б. Коско: Нечеткая инженерия, 1996.

Л. Заде: Вычисления при помощи слов, 1996.

Таким образом, исторически разработки в области ИИ велись в двух основных направлениях:

- первое направление связано с попытками разработки ин­теллектуальных машин путем моделирования их биологического прототипа - человеческого мозга. Сейчас это направление возрож­дается на основе развития современных аппаратных и программ­ных средств (микрочипы на основе нечеткой логики, распределенные многопроцессорные системы, многоагентные системы, мягкие вычисления, генетические алгоритмы и нейронные сети и т.д.).

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

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

Глава II. Интеллектуальные системы и их виды

Интеллектуальная система (ИС, intelligent system ) - это техническая или программная система, способная решать задачи, традиционно считающиеся творческими, принадлежащие конкретной предметной области, знания о которой хранятся в памяти такой системы. Структура интеллектуальной системы включает три основных блока - базу знаний, решатель и интеллектуальный интерфейс.

Со всем процессом разработки интеллектуальных информационных систем в целом и ЭС в частноститесно связанаИнженерия знаний . Это методология ЭС, которая охватывает методы добычи, анализа и выражения в правилах знаний экспертов для формирования базы правил. Развитие ЭС создало инженерию знаний – процесс построения интеллектуальных систем. Она представляет собой совокупность моделей, методов и технических приемов, нацеленных на создание систем, которые предназначены для решения проблем с использованием знаний. Главными элементами инженерии знаний являются использование операций типа обобщение, генерация гипотез для индуктивных выводов, подготовка новых программ самими компьютерными программами и т.д. Слово engineering в английском означаетискусная обработка предметов, изобретение или создание чего-либо. Следовательно, работу по оснащению программ специальными экспертными знаниями из проблемной области, выполняемую человеком, либо компьютером (программой), также можно назвать инженерией знаний.

Виды интеллектуальных систем :

  1. Расчетно-логическая система

К расчетно-логическим системам относят системы, способные решать управленческие и проектные задачи по декларативным описаниям условий. При этом пользователь имеет возможность контролировать в режиме диалога все стадии вычислительного процесса. Данные системы способны автоматически строить математическую модель задачи и автоматически синтезировать вычислительные алгоритмы по формулировке задачи. Эти свойства реализуются благодаря наличию базы знаний в виде функциональной семантической сети и компонентов дедуктивного вывода и планирования

  1. Рефлекторная интеллектуальная система

Рефлекторная система - это система, которая формирует вырабатываемые специальными алгоритмами ответные реакции на различные комбинации входных воздействий. Алгоритм обеспечивает выбор наиболее вероятной реакции интеллектуальной системы на множество входных воздействий, при известных вероятностях выбора реакции на каждое входное воздействие, а также на некоторые комбинации входных воздействий. Данная задача подобна той, которую реализуют перцептроны. Перцептро́н , или перс ептрон (perceptron ) - математическая и компьютерная модель восприятия информации мозгом (кибернетическая модель мозга ), предложенная Фрэнком Розенблаттом в 1957 г. и реализованная в виде электронной машины «Марк-1» в 1960 г. Перцептрон стал одной из первых моделей нейросетей , а «Марк-1» - первым в мире нейрокомпьютером . Несмотря на свою простоту, перцептрон способен обучаться и решать довольно сложные задачи. Рефлекторные программные системы применяются к следующим задачам: естественно-языковой доступ к базам данных; оценки инвестиционных предложений; оценки и прогнозирования влияния вредных веществ на здоровье населения; прогнозирования результатов спортивных игр.

  1. Интеллектуальная информационная система

Интеллектуальная информационная система (ИИС, intelligent system ) - система, основанная на знаниях.

  1. Гибридная интеллектуальная система

Под гибридной интеллектуальной системой принято понимать систему, в которой для решения задачи используется более одного метода имитации интеллектуальной деятельности человека. Таким образом ГИС - это совокупность:

  • аналитических моделей
  • экспертных систем
  • искусственных нейронных сетей
  • нечетких систем
  • генетических алгоритмов
  • имитационных статистических моделей

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

Глава III . Интеллектуальные информационные системы (ИИС) поддержки принятия решений

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

ИИС – это компьютерная система, состоящая из 5 основных взаимодействующих компонентов : языковой подсистемы (механизм обеспечения связи между пользователем и другими компонентами ИСПР), информацией подсистемы (хранилище данных и средств их обработки), подсистемы управления знаниями (хранилище знаний о проблемной области, таких как процедуры, эвристики и правила, и средства обработки знаний), подсистемы управления моделями и подсистемы обработки и решения задач (связующее звено между другими подсистемами).

Классификация задач, решаемых ИИС :

  • Интерпретация данных . Это одна из традиционных задач для экспертных систем. Под интерпретацией понимается процесс определения смысла данных, результаты которого должны быть согласованными и корректными. Обычно предусматривается многовариантный анализ данных.
  • Диагностика . Под диагностикой понимается процесс соотношения объекта с некоторым классом объектов и/или обнаружение неисправности в некоторой системе. Неисправность - это отклонение от нормы. Такая трактовка позволяет с единых теоретических позиций рассматривать и неисправность оборудования в технических системах, и заболевания живых организмов, и всевозможные природные аномалии. Важной спецификой является здесь необходимость понимания функциональной структуры («анатомии») диагностирующей системы.
  • Мониторинг . Основная задача мониторинга - непрерывная интерпретация данных в реальном масштабе времени и сигнализация о выходе тех или иных параметров за допустимые пределы. Главные проблемы - «пропуск» тревожной ситуации и инверсная задача «ложного» срабатывания. Сложность этих проблем в размытости симптомов тревожных ситуаций и необходимость учёта временного контекста.
  • Проектирование . Проектирование состоит в подготовке спецификаций на создание «объектов» с заранее определёнными свойствами. Под спецификацией понимается весь набор необходимых документов-чертёж, пояснительная записка и т.д. Основные проблемы здесь - получение чёткого структурного описания знаний об объекте и проблема «следа». Для организации эффективного проектирования и в ещё большей степени перепроектирования необходимо формировать не только сами проектные решения, но и мотивы их принятия. Таким образом, в задачах проектирования тесно связываются два основных процесса, выполняемых в рамках соответствующей ЭС: процесс вывода решения и процесс объяснения.
  • Прогнозирование . Прогнозирование позволяет предсказывать последствия некоторых событий или явлений на основании анализа имеющихся данных. Прогнозирующие системы логически выводят вероятные следствия из заданных ситуаций. В прогнозирующей системе обычно используется параметрическая динамическая модель, в которой значения параметров «подгоняются» под заданную ситуацию. Выводимые из этой модели следствия составляют основу для прогнозов с вероятностными оценками.
  • Планирование . Под планированием понимается нахождение планов действий, относящихся к объектам, способным выполнять некоторые функции. В таких ЭС используются модели поведения реальных объектов с тем, чтобы логически вывести последствия планируемой деятельности.
  • Обучение . Под обучением понимается использование компьютера для обучения какой-то дисциплине или предмету. Системы обучения диагностируют ошибки при изучении какой-либо дисциплины с помощью ЭВМ и подсказывают правильные решения. Они аккумулируют знания о гипотетическом «ученике» и его характерных ошибках, затем в работе они способны диагностировать слабости в познаниях обучаемых и находить соответствующие средства для их ликвидации. Кроме того, они планируют акт общения с учеником в зависимости от успехов ученика с целью передачи знаний.

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

  • Управление . Под управлением понимается функция организованной системы, поддерживающая определенный режим деятельности. Такого рода ЭС осуществляют управление поведением сложных систем в соответствии с заданными спецификациями.
  • Поддержка принятия решений . Поддержка принятия решения - это совокупность процедур, обеспечивающая лицо, принимающее решения, необходимой информацией и рекомендациями, облегчающие процесс принятия решения. Эти ЭС помогают специалистам выбрать и/или сформировать нужную альтернативу среди множества выборов при принятии ответственных решений.

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

Глава IV . Разработка и проектирование ИИС

§1. Этапы проектирования ИИС

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

Процесс построения систем ИИ можно раз­делить на пять этапов (см.Рис.4.1.1.).


Рис.4.1.1. Этапы проектирования ИИ

1. Идентификация определения задач и идентификация их характеристик. Разра­батывается техническое задание на проектируемую систему, ограничивается круг пользователей системы.

2. Выделение главных концепций предметной области, которые отражают знания круга экспертов. Инженер знаний определяет формальные средства представления знаний и процедуры получения решений. Выявля­ются и формулируются понятия, определяющие выбор характерной схемы представления знаний эксперта о предметной области. Основным источником знаний о проблемной области является человек-эксперт, книги, технологические описания, инструк­ции, документы, методы «мозгового штурма», методы автоматизированного запол­нения БЗ. Другим важным источником знаний является Интернет (традиционный поиск необходимой информации и знаний, а также интеллектуальные агенты (программные роботы)).

3 . Выбор формализма представления знаний и определение механизма вывода решений . Разработанная структура для представления знаний является основой для реализации следующего этапа - непосредственного построения базы знаний системы.

4.Выбор или разработка языка представления знаний. После того как правила сформулированы и представлены на выбранном языке представления, они заносятся инженером знаний в БЗ.

5.Тестирование системы путем решения кон­кретных проверочных задач.

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

§2. Стадии существования ИИС

Стадии существования интеллектуальных систем (или жизненные циклы системы) соответствуют уровню готовности системы, завершенности ее функциональных возможностей, реализуемых инструментарием. Определяют следующие стадии существования интеллектуальных систем: демонстрационный прототип; исследовательский прототип; действующий прототип; промышленная система; коммерческая система.

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

Исследовательский прототип проектируется в течение 1,5 ...2 лет. На этой стадии развития системы ее БЗ уже содержит не­сколько сотен правил, которые достаточно адекватно описывают предметную область.

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

Промышленные системы обеспечивают высокий уровень качества решения проблем предметной области при значительных уменьшениях времени решения и требуемой памяти. Количество правил возрастает не столь значительно по сравнению с действу­ющим прототипом. На этой стадии происходит преобразование дей­ствующего прототипа за счет расширения числа правил и совер­шенствования интеллектуальных систем на базе использования более эффективных, инструментальных средств. Это требует примерно 3 ... 4 года.

Коммерческаясистема предназначенавосновномдляпродажи. Она является либо проблемно-ориентированной, либо проблемно-независимой.

§3. Инструментальные средства проектирования ИИС

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

  • нисходящий (Top - Down AI ), семиотический - создание экспертных систем, баз знаний и систем логического вывода, имитирующих высокоуровневые психические процессы: мышление, рассуждение, речь, эмоции, творчество и т. д.;
  • восходящий (Bottom - Up AI ), биологический - изучение нейронных сетей и эволюционных вычислений, моделирующих интеллектуальное поведение на основе биологических элементов, а также создание соответствующих вычислительных систем, таких как нейрокомпьютер или биокомпьютер.

Для разработки ИИС раньше использовались логические языки (Пролог, Лисп и т. д.), а сейчас используются различные процедурные языки. Логико-математическое обеспечение разрабатывается как для самих модулей систем, так и для состыковки этих модулей. Однако в области лингвистики тоже существует множество проблем, например, для обеспечения работы системы в режиме диалога с пользователем на естественном языке необходимо заложить в систему алгоритмы формализации естественного языка, а эта задача оказалась куда более сложной, чем предполагалось на заре развития интеллектуальных систем. Еще одна проблема - постоянная изменчивость языка, которая обязательно должна быть отражена в системах искусственного интеллекта.

На проектирование и создание одной экспертной системы ранее требовалось 20-30 человек-лет. В настоящее время имеется ряд средств, ускоряющих создание. Эти средства называют инструментальными или инструментарием . Использование инструментальных средств разработки экспертных систем сокращает время, затрачиваемое на их создание, в 3-5 раз.

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

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

1. Оболочки экспертных систем

Системы этого типа создаются, как правило, на основе какой-нибудь экспертной системы, достаточно хорошо зарекомендовавшей себя на практике. При создании оболочки из системы-прототипа удаляются компоненты, слишком специфичные для области ее непосредственного применения, и оставляются те, которые не имеют узкой специализации. Примером может служить система EMYCIN, созданная на основе прошедшей длительную «обкатку» системы MYCIN. В EMYCIN сохранен интерпретатор и все базовые структуры данных – таблицы знаний и связанные с ними механизм индексации. Оболочка дополнена специальным языком, улучшающим читабельность программ, и средствами поддержки библиотеки типовых случаев и заключений, выполненных по ним экспертной системой.

2. Языки программирования высокого уровня

Инструментальные средства этой категории избавляют разработчика от необходимости углубляться в детали реализации системы – способы эффективного распределения памяти, низкоуровневые процедуры доступа и манипулирования данными. Одним из наиболее известных представителей таких языков является OPS5. Этот язык прост в изучении и предоставляет программисту гораздо более широкие возможности, чем типичные специализированные оболочки. Следует отметить, что большинство подобных языков так и не было доведено до уровня коммерческого продукта и представляет собой скорее инструмент для исследователей. Осуществляется программирование на обычных языках (Паскаль, Си и др.), программирование на специализированных языках, применяемых в задачах искусственного интеллекта (LISP, FRL, SmallTalk и др.) и др.

3. Среда программирования, поддерживающая несколько парадигм

Средства этой категории включают несколько программных модулей, что позволяет пользователю комбинировать в процессе разработки экспертной системы разные стили программирования. Среди первых проектов такого рода была исследовательская программа LOOP, которая допускала использование двух типов представления знаний: базирующегося на системе правил и объектно-ориентированного. На основе этой архитектуры во второй половине 1980-х годов было разработано несколько коммерческих программных продуктов, из которых наибольшую известность получили KEE, KnowledgeCraft и ART. Эти программы предоставляют в распоряжение квалифицированного пользователя множество опций и для последующих разработок, таких как КАРРА и CLIPS, и стали своего рода стандартом. Однако освоить эти языки программистам далеко не так просто, как языки, отнесенные к предыдущей категории.

4. Дополнительные модули

Глава V . Архитектура ИИС

§1. Структура интеллектуальной системы

В зависимости от характера выполняемых функций и области действий эксперты выполняют несколько характерных задач, ко­торые являются типичными: интерпретация, плани­рование, управление, проектирование, прогнозирование, диспетчирование и мониторинг, диагностика. Главное, эксперт спосо­бен обновлять свои знания (т. е. обучаться), объяснять действия, обосновывать решения, прогнозировать развитие ситуаций, актив­но взаимодействовать с внешней средой и воспринимать информа­цию различного характера, получать решения на основе имею­щихся знаний, хранить в памяти необходимую информацию и фактографические данные. Анализ задач послужит ориентиром при рассмотрении архитектуры ИС, осно­ванных на знаниях.

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

На Рис.5.1.1.. представлена обобщенная структура и компоненты интеллектуальной системы, а также ее окружение.


Рис.5.1.1. Структура интеллектуальных систем.

§2. СтруктураБЗ ивзаимодействиесдругимикомпонентами интеллектуальной системы

Структурно БЗ можно организовать в ви­де двух основных подбаз - базы правил (БП) и базы данных (БД).

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

Таким образом, очень обобщенно можно говорить о двух уров­нях представления знаний: первый уровень - фактографическая информация, данные; второй уровень - описания, отношения, правила и процедуры, определяющие способ манипулирования фактографической информации.

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

Во многих интеллектуальных системах, особенно работающихв реальном времени, реализуется уровень метазнаний, кото­рый необходим для обеспечения рационализации процессов оперирования знаниями в БЗ, уменьшения области поиска решения, сокращения время обработки ин­формации. Метазнания - это зна­ния системы о себе, т. е. знания о своих знаниях, их структуре и о принципах своего функционирования. На основе этих знаний на уровне метазнаний (в бло­ке метазнаний) среди имею­щегося набора стратегий поиска определяется наибо­лее эффективная.



Рис.5.2.1.ОбобщеннаяструктураБЗ

При варианте структуры БЗ, представленном на Рис.5.2.1. , функ­ции интерпретатора правил, рациональным образом реализующе­го механизм вывода решений, по существу выполняет верхний уровень БЗ - метазнания (или блок метазнаний).

Необходимо подчеркнуть, что существуют различные вариан­ты как организации самой БЗ, так и взаимодействия БЗ с дру­гими компонентами ИС.

На Рис.5.2.2. приведен фрагмент системы ИИ, отражающий вза­имодействие БЗ с основными модулями системы при поиске и ге­нерации знаний. В БЗ представлена как фактографическая информация, так и правила, или эвристики.



Рис.5.2.2. Структура взаимодействия БЗ с основными компонентами ИИС для продукционных систем

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

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

При использовании наиболее распространенных в настоящее время продукционных систем представления знаний возможен ва­риант структурной и функциональной организации основных ком­понентов системы, представленный на Рис.5.2.3.






Рис.5.2.3. Структура взаимодействия БЗ с основными компонентами ИС для продукционных систем.

§3 . Модели представления знаний в ИИС

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

Представление знаний в интеллектуальных системах осуществляется на основе:

1. Фреймов и семантических сетей

2. Продукционных и логических моделей

3. Моделей представления и формализации нечетких знаний

4. Нейронных сетей.

Знания в ИИС можно представить с помощью моделей двух типов: декларативных и процедурных. К типовым декларативным моделям относят семантические сети и фреймы, а типовым процедурным моделям – исчисления предикатов, системы продукций, нечёткая логика. На практике редко удаётся обойтись рамками одной модели при разработке ИИС, поэтому представление знаний получается сложным.

Семантическая сеть представляет собой ориентированный граф, вершинами которого являются информационные единицы, имеющие индивидуальные имена. В качестве информационной единицы могут выступать события, действия, обобщённые понятия или свойства объектов. Вершины графа соединяются дугой, если соответствующие информационные единицы находятся в каком-либо отношении.

Фрейм представляет собой структуру данных, дающую целостное представление об объектах, явлениях и их типах в виде абстрактных образов. Структура фрейма записывается в виде списка свойств (слотов). Каждый фрейм имеет

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

Логика предикатов является расширением логики высказываний. Основным объектом здесь является переменное высказывание (предикат), истинность и ложность которого зависят от значения его переменных. Язык логики предикатов является более мощным по сравнению с языком логики высказываний. Он пригоден для формализации понятий многих проблемных областей.

Продукционная модель , или модель, основанная на правилах, позволяет представить знания в виде предложений типа ЕСЛИ (условие ), ТО (действие ).

Количественные данные (знания) могут быть неточными. Для учёта неточности лингвистических знаний используется формальный аппарат нечёткой алгебры . Одно из главных понятий в нечёткой логике – это понятие лингвистической переменной, которое определяется через нечёткие множества. Нечёткие множества позволяют учитывать субъективные мнения отдельных экспертов.

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

§4 . Обработка знаний и вывод решений в ИИС

Основными методами обработки знаний и вывода решений в ИИС являются:

I . Методы вывода и поиска решений в продукционных системах

1. Методы вывода на основе прямой и обратной цепочек

2. Общие методы поиска решений в пространстве состояний

Методы перебора

Поиск в глубину

Поиск в ширину

Поиск на основе стоимости дуг (Нахождение пути минимальной стоимости)

-Поиск с возвратом (бэктрекинг)

3. Эвристические методы поиска (для определения направления поиска используется оценочная функция )

4. Методы редукции

5. Методы поиска решений в больших пространствах состояний

Методы порождения и проверки

Методы последовательного уточнения сверху

Др.

II . Выводы на фреймах и в семантических сетях

III . Дедуктивные методы поиска решений

IV . Поиск решений в условиях неопределенности

1. Вероятностный вывод

2. Вывод на основе теории уверенности

3. Нечеткая логика и приближенные рассуждения

V . Вывод в нейронных сетях

§5. Интеллектуальный интерфейс

Термин «пользовательский интерфейс» охватывает все аспекты взаимодействия между пользователем и ИИС. Он включает не только техническое и программное обеспечение, но также факторы, которые связаны с обеспечением использования, доступности и человеко-машинного взаимодействия. Развитие способностей и возможностей комфортного и качественного взаимодействия пользователя с системой, которая организует, предоставляет этот компонент, позволяет говорить об интеллектуальном интерфейсе. Подсистема интеллектуального интерфейса управляется программным обеспечением, называемым управляющая система интеллектуального интерфейса.

Виды интерфейса.

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

Командный язык. При это виде пользователь вводит команды. Многие команды включают комбинации глагол-существительное. Некоторые команды могут исполняться с функциональными ключами. Другим способом упрощения команд является использование макросов. Команды могут также вводиться голосом.

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

Формирование взаимодействия. Пользователь вводит данные или команды в обозначенные формы (поля). Заголовки формы (или отчета, или таблицы) служат подсказками для входа. Компьютер может представлять какой-то выход как результат, и пользователь может быть спрошен о продолжении интерактивного процесса.

Естественный язык. Взаимодействие человек – компьютер, которое подобно диалогу человека с человеком называется естественнымязыком. Сегодня диалог на естественном языке выполняется главным образом посредством клавиатуры. Такой диалог будет проводиться в будущем с использованием голоса для ввода и вывода информации. Главнымограничением использования естественного языка является по существу неспособность компьютера понимать естественный язык. Однако, достижения ИИ все больше повышают уровень диалога на естественном языке.

Графический пользовательский интерфейс. В графическом пользовательском интерфейсе объекты обычно представляются как пиктограммы (или символы) и пользователь непосредственно ими манипулирует. Новейшие операционные системы компьютеров и их приложения исключительно основаны на графике.

Глава VI . Классификация ИИС

ИИС могут размещаться на каком-либо сайте, где пользователь задает системе вопросы на естественном языке (если это вопросно-ответная система) или, отвечая на вопросы системы, находит необходимую информацию (если это экспертная система). Но, как правило, ЭС в интернете выполняют рекламно-информационные функции (интерактивные баннеры), а серьезные системы (такие, как, например, ЭС диагностики оборудования) используются локально, так как выполняют конкретные специфические задачи.

Интеллектуальные поисковики отличаются от виртуальных собеседников тем, что они достаточно безлики и в ответ на вопрос выдают некоторую выжимку из источников знаний (иногда достаточно большого объема), а собеседники обладают «характером», особой манерой общения (могут использовать сленг, ненормативную лексику), и их ответы должны быть предельно лаконичными (иногда даже просто в форме смайликов, если это соответствует контексту).

ИИС:

  • Экспертные системы
    • Собственно экспертные системы (ЭС)
  • Вопросно-ответные системы (в некоторых источниках «системы общения»)
    • Виртуальные собеседники

§1. Экспертные системы

Экспертная система (ЭС, expert system) - компьютерная программа, способная частично заменить специалиста-эксперта в разрешении проблемной ситуации. Э то вычислительная система, в которую включены знания специалистов о некоторой узкой предметной области в форме базы знаний. Такие системы могут использоваться не экспертом для улучшения их способностей и возможностей в решении задач определенного класса в конкретной предметной области. ЭС могут быть использованы для распространения источников редких знаний. Эти системы могут иметь значительное влияние как на деятельность таких профессиональных консультантов, как финансовые аналитики, юристы, аудиторы и др., так и на организации и их менеджмент.

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

Экспертные системы имеют одно большое отличие от других ИИС : они не предназначены для решения каких-то универсальных задач, как например нейронные сети или генетические алгоритмы. Экспертные системы предназначены для качественного решения задач в определенной разработчиками области, в редких случаях – областях.

Рис.6.1.1. Экспертная система

Технологию построения ЭС (см. Рис.6.1.2. ) часто называют инженерией знаний.

Рис. 6 .1.2. Процесс построения ЭС.

Характерными чертами ЭС являются:

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

Классификации ЭС

· Собственно Экспертные системы

  • Интерактивные баннеры (web + ЭС)

Интерактивные говорящие баннеры - это инфы или экспертные системы, предназначенные для размещения на внешних ресурсах.

Преимущества интерактивных баннеров:

  • Повышенная привлекательность для потребителей - с необычным баннером хочется пообщаться.
  • Продолжительный контакт с пользователем. Среднее время общения с баннером может составлять около 3 минут.
  • Баннер может вести разных собеседников на разные страницы, в соответствии с их запросами и потребностями.

Классификация ЭС по связи с реальным временем:

  • Статические ЭС - это ЭС, решающие задачи в условиях не изменяющихся во времени исходных данных и знаний.
  • Квазидинамические ЭС интерпретируют ситуацию, которая меняется с некоторым фиксированным интервалом времени.
  • Динамические ЭС - это ЭС, решающие задачи в условиях изменяющихся во времени исходных данных и знаний.

Структура ЭС:

На Рис.6.1.3. ниже представлена каноническая структура экспертной системы динамического типа:


Рис.6 .1.3. Структура ЭС

  • механизм логического вывода, называемый также интерпретатором, решателем;
  • рабочую память (РП), называемую также рабочей базой данных (БД);
  • базу знаний (БЗ);
  • подсистему приобретения и пополнения знаний;
  • подсистему объяснения;
  • подсистему диалога;
  • подсистему взаимодействия с внешним миром.

Механизм логического вывода (МЛВ) предназначен для получения новых фактов на основе сопоставления исходных данных из рабочей памяти и знаний из базы знаний. Механизм логического вывода реализует алгоритмы прямого и/или обратного вывода и формально может быть представлен четверкой:

Механизм вывода является мозгом ЭС, его также называют управляющая структура или интерпретатор правил (в ЭС, основанных на правилах).

Эта компонента является в основном компьютерной программой, которая обеспечивает методологию для рассуждения об информации в БЗ и в рабочей области, а также для формулирования заключений. Она обеспечивает указания о том, как использовать знания системы при реализации аренды (расписания запланированных действий в рабочей области), которая организует и управляет шагами, предпринимаемыми для решения задачи.

Механизм вывода имеет два главных элемента:

Интерпретатор, который выполняет выбранные позиции аренды, используя соответствующие правила БЗ.

Планировщик, который поддерживает управление агендой. Он оценивает результаты используемых правил вывода всвете их приоритетов или других критериев в агенде.

Рабочая память предназначена для хранения исходных и промежуточных фактов решаемой в текущий момент задачи. Как правило, размещается в оперативной памяти ЭВМ и отражает текущее состояние предметной области в виде фактов с коэффициентами уверенности (КУ) в истинности этих фактов.

Ценность всей экспертной системы как законченного продукта на 90% определяется качеством созданной базы знаний .Как правило, БЗ ЭС содержит факты (статические сведения о предметной области) и правила - набор инструкций, применяя которые к известным фактам можно получать новые факты. В рамках логической модели баз данных и базы знаний записываются на языке Пролог- язык и система логического программирования) с помощью языка предикатов для описания фактов и правил логического вывода, выражающих правила определения понятий, для описания обобщенных и конкретных сведений, а также конкретных и обобщенных запросов к базам данных и базам знаний.

Подсистема приобретения и пополнения знаний автоматизирует процесс наполнения экспертной системы знаниями, осуществляемый пользователем-экспертом, и адаптации базы знаний системы к условиям ее функционирования. Адаптация экспертной системы к изменениям в предметной области реализуется путем замены правил или фактов в базе знаний.

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

  • повышается доверие пользователей к полученным результатам;
  • облегчается отладка системы;
  • создаются условия для пользователей по вскрытию новых закономерностей предметной области;
  • объяснение полученных выводов может служить средством поиска точки в парето-оптимальном множестве решений.

В настоящее время на практике все СО реа­лизуются на одних и тех же принципах в основном двумя спосо­бами:

Фиксацией событий и состояний с помощью заготовленных текстов на естественном языке;

Трассировкой рассуждений, обратным развертыванием дерева целей с указанием подцелей.

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

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

Факты и правила в экспертной системе не всегда либо истинны, либо ложные. Иногда существует некоторая степень неуверенности в достоверности факта или точности правила. Если это сомнение выражено явно, то оно называется «коэффициентом доверия».

Коэффициент доверия – это число, которое означает вероятность или степень уверенности, с которой можно считать данный факт или правило достоверным или справедливым. Данный коэффициент является оценкой степени доверия к решению, выдаваемому экспертной системой. Такая оценка, например, может проводиться по схеме Шортлиффа.

Режимы функционирования ЭС:

  1. Режим ввода знаний - в этом режиме эксперт с помощью инженера по знаниям посредством редактора базы знаний вводит известные ему сведения о предметной области в базу знаний ЭС.
  2. Режим консультации - пользователь ведет диалог с ЭС, сообщая ей сведения о текущей задаче и получая рекомендации ЭС. Например, на основе сведений о физическом состоянии больного ЭС ставит диагноз в виде перечня заболеваний, наиболее вероятных при данных симптомах.

Табл.6 .1.1.

Основные классы решения задач, решаемые ЭС

Класс

На решение какой задачи направлена

Интерпретация

Выявление описаний ситуации из наблюдений

Предсказание

Выявление похожих последствий в данной ситуации.

Диагностика

Выявление неисправности системы через наблюдения.

Проектирование

Конфигурирование и разработка объектов, удовлетворяющих определенным требованиям.

Планирование

Разработка планов для достижения целей.

Мониторинг

Сравнение наблюдений с планами, сигнализируя об отклонениях и исключениях.

Отладка

Выявление и устранение неисправностей.

Управление

Интерпретирование, предсказывание восстановление и мониторинг поведения системы.

Некоторые ЭС принадлежат к двум или более из этих категорий. Дадим краткое описание каждой их этих категорий.

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

Системы предсказания включают прогнозирование погоды, демографические предсказания, экономическое прогнозирование, оценки урожайности, а также военное, маркетинговое и финансовое прогнозирование.

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

Системы проектирования разрабатывают конфигурации объектов, которые удовлетворяют определенным требованиям задачи проектирования. Такие задачи включают конструирование зданий, планировка расположения оборудования и др. Эти системы конструируют различные взаимосвязи описаний объектов друг с другом и проверяют, удовлетворяют ли эти конфигурации установленным ограничениям и требованиям.

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

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

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

Наиболее известные/распространённые ЭС :

  • CLIPS - популярная ЭС (public domain)
  • OpenCyc - мощная динамическая ЭС с глобальной онтологической моделью и поддержкой независимых контекстов
  • MYCIN - наиболее известная диагностическая система, которая предназначена для диагностики и наблюдения за состоянием больного при менингите и бактериальных инфекциях.
  • HASP/SIAP - интерпретирующая система, которая определяет местоположение и типы судов в Тихом океане по данным акустических систем слежения.

Первую ЭС под названием Dendral разработали в Стэнфорде в конце 1960-х гг. Она определяла строение органических молекул по химическим формулам и спектрографическим данным о химических связях в молекулах. Ценность Dendral заключалась в следующем: органические молекулы, как правило, очень велики и поэтому число возможных структур этих молекул также велико; благодаря эвристическим знаниям экспертов-химиков, заложенных в ЭС, правильное решение из миллиона возможных находилось всего за несколько попыток. Принципы и идеи, заложенные в Dendral оказались настолько эффективными, что они до сих пор применяются в химических и фармацевтических лабораториях по всему миру. ЭС Dendral одной из первых использовала эвристические знания специалистов для достижения уровня эксперта в решении задач, однако методика современных экспертных систем связана с другой разработкой – Myсin. В ней использовались знания экспертов медицины для диагностики и лечения специального менингита и бактериальных инфекций крови. ЭС Mycin, также разработаннаяв Стэнфорде в середине 1970-х гг., одной из первых обратилась к проблеме принятия решений на основе ненадежной или недостаточной информации. Все рассуждения экспертной системы Mycin были основаны на принципах управляющей логики, соответствующих специфике предметной области. Многие методики разработки экспертных систем, использующиеся сегодня, были впервые разработаны в рамках проекта Mycin. MYCIN была ранней экспертной системой разработанной за 5 или 6 лет в начале 1970х годов в Стендфордском университете. Она была написана на Лиспе как докторская диссертация Edward Shortliffe под руководством Bruce Buchanan, Stanley N. Cohen и других. В этой же лаборатории была ранее создана экспертная система Dendral, но на этот раз внимание было акцентировано на использовании решающих правил с элементами неопределенности. MYCIN был спроектирован для диагностирования бактерий, вызывающих тяжелые инфекции, такие как бактериемия и менингит, а также для рекомендации необходимого количества антибиотиков в зависимости от массы тела пациента. Название системы происходит от суффикса «-мицин», часто встречающегося в названиях антибиотиков. Также Mycin использовалась для диагностики заболеваний свертываемости крови.

Преимущества ЭС:

1. Постоянство

Человеческая компетенция ослабевает со временем. Перерыв в деятельности человека-эксперта может серьёзно отразиться на его профессиональных качествах.

2. Лёгкость передачи

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

3. Устойчивость и воспроизводимость результатов

Экспертные системы устойчивы к «помехам». Человек же легко поддается влиянию внешних факторов, которые непосредственно не связаны с решаемой задачей. Эксперт-человек может принимать в тождественных ситуациях разные решения из-за эмоциональных факторов. Результаты экспертной системы – стабильны.

4. Стоимость

Эксперты, особенно высококвалифицированные обходятся очень дорого. Экспертные системы, наоборот, сравнительно недороги. Их разработка дорога, но они дёшевы в эксплуатации.

Кроме того, эксперт–человек может принимать различные решения в тождественных ситуациях из-за эмоциональных факторов (влияние дефицита времени, влияние стресса).

Табл.6.1.2.

Сравнение человеческой и искусственной компетентности

Человеческая компетентность

Искусственная компетентность

Непрочная

Трудно представляемая

Трудно документируемая

Непредсказуемая

Дорогая

Постоянная

Легко передаваемая

Легко документируемая

Устойчивая

Приемлемая по затратам

Недостатки ЭС:

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

  • Передача экспертным системам «глубоких» знаний о предметной области является большой проблемой. Как правило, это является следствием сложности формализации эвристических знаний экспертов.
  • Экспертные системы неспособны предоставить осмысленные объяснения своих рассуждений, как это делает человек. Как правило, экспертные системы всего лишь описывают последовательность шагов, предпринятых в процессе поиска решения.
  • Отладка и тестирование любой компьютерной программы является достаточно трудоемким делом, но проверять экспертные системы особенно тяжело. Это является серьезной проблемой, поскольку экспертные системы применяются в таких критичных областях, как управление воздушным и железнодорожным движением, системами оружия и в ядерной промышленности.
  • Экспертные системы обладают еще одним большим недостатком: они неспособны к самообучению. Для того, чтобы поддерживать экспертные системы в актуальном состоянии необходимо постоянное вмешательство в базу знаний инженеров по знаниям. Экспертные системы, лишенные поддержки со стороны разработчиков, быстро теряют свою востребованность.
  • Эксперты могут непосредственно воспринимать комплекс входной сенсорной информации (визуальной, звуковой, осязательной, обонятельной и тактильной). ЭС – только символы. Хотя в отдельных направлениях разработки инженерных и производственных интеллектуальных систем получены реальные результаты определенной обработки сенсорной информации.
  • Эксперты – люди могут охватить картину в целом, все аспекты проблемы и понять, как они соотносятся с основной задачей. ЭС стремится сосредоточить на самой задаче, хотя смежные задачи могут повлиять на решение основной.
  • Люди, эксперты и не эксперты, имеют то, что мы называем здравым смыслом , или общедоступными знаниями. Это широкий спектр общих знаний о мире, о том, какие законы в нем действуют, т.е. знания, которыми каждый из нас обладает, приобретает из опыта и которыми постоянно пользуется. Из-за огромного объема знаний, образующих здравый смысл, не существует легкого способа встроить их в интеллектуальную программу. Знания здравого смысла включают знания о том, что вы знаете и чего не знаете.

Поэтому ЭС наиболее часто используются как советчики, в качестве консультантов или помощников ЛПР.

§2. Вопросно-ответные системы

Классификация Вопросно-ответных систем :

    • Интеллектуальные поисковики (например, система Старт)
    • Виртуальные цифровые помощники
    • Виртуальные собеседники (ВС)

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

Структура виртуальных собеседников:


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

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

Решаемые задачи:

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

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

Сферы применения:

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

Преимущества виртуальных собеседников:

  • Работоспособность: инф работает 24 часа в сутки 7 дней в неделю и может одновременно общаться с неограниченным количеством пользователей. Инф позволяет снизить нагрузку и расходы на call-центр, консультантов и специалистов технической поддержки.
  • Доступность: инф снимает психологический барьер, стоящий перед пользователем при обращении за помощью; достаточно ввести фразу – и инф моментально даст грамотный совет. При этом пользователи относятся к инфу с доверием, поскольку он умеет поддерживать живой, непринужденный диалог и даже выражать эмоции в ответ на реплики пользователя.
  • Простота работы: инф не требует от пользователя использования никаких дополнительных программ. В то же время инф не создает проблем и у заказчика: для установки инфа на сайт достаточно разместить на страницах специальный короткий код.
  • Компетентность: инф легко поддается обучению, что позволяет заложить в него все важные вопросы, которые интересуют пользователей. Инф способен помогать пользователю в навигации по сайту, автоматически открывая необходимые страницы. При необходимости инф может сам инициировать диалоги на нужные темы.
  • Внимательность: Инф записывает все разговоры с пользователями, и заказчик имеет к ним полный доступ. Записи разговоров полезны как с точки зрения дальнейшего обучения инфа, так и с точки зрения сбора ценной информации о пользователях и их интересах.

Использование ВС позволяет:

  • Увеличить конверсию посетителей в клиентов: инф снимает мотивационный барьер между пользователем и сайтом, поскольку сразу вызывает доверие у пользователя и дает ему именно ту информацию, которая его интересует.
  • Повысить лояльность посетителей: яркий, позитивный инф поддерживает живое общение с пользователем и вызывает у него самые положительные эмоции. Что важно, в сознании пользователя эти эмоции будут напрямую связаны с образом компании - заказчика инфа.
  • Улучшить эффект от рекламной кампании и маркетинговых акций: инф привлекает к себе внимание пользователей и предоставляет им самую полную информацию о рекламируемом предмете.
  • Снизить нагрузку на штатных консультантов, продавцов и сотрудников техподдержки: отвечая на часто возникающие и легко решаемые вопросы, инф экономит время и силы штатных специалистов, позволяя им сконцентрироваться на действительно важных проблемах.
  • Повысить уровень обслуживания клиентов: инф позволяет выяснить, что интересует конкретного клиента, и предоставить ему то, что нужно!

Глава VII . Перспективы развития ИИС в управлении знаниями

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

1. Технологии извлечения и представления знаний . В первом случае основной задачей является разработка методов: формального описания "признаков знаний" (поисковых образов); формализации ПрО; распознавания и сравнения образов; извлечения знаний из экспертов, статистики, текстов, "опыта" и т.п. Во втором - решаются задачи, связанные с формализацией знаний для их представления в памяти интеллектуальных систем (ИС). Решение этих задач позволяет разработчикам комплексных технологий получить ответы на три принципиально важных вопроса: какие знания необходимо представлять в ИС, кто (что) является источником этих знаний, какие методы и модели обеспечивают адекватное представление этих знаний в ИС.

2. Технологии манипулирования знаниями, решение интеллектуальных задач предполагает не только представление знаний в ИС, но и их обработку, т.е. необходимо научить ИС оперировать ими. Поэтому здесь изучаются вопросы пополнения знаний на основе их неполных описаний, классификации знаний в ИС, разрабатываются процедуры и методы обобщения знаний, достоверного вывода и др.

3. Технология общения . Переход к ИС знаменует новую технологию общения конечных пользователей с ЭВМ и требует решения таких проблем, как понимание связных текстов на ограниченном и неограниченном естественном языке, понимание речи и ее синтез, разработка коммуникативных моделей "пользователь-ЭВМ", формирование объяснений и т.п. Главная цель данных исследований - обеспечение комфортных условий для общения человека и ИС.

4. Технологии восприятия . Разработка этих технологий предполагает создание методов: анализа трехмерных сцен, представления информации о зрительных образах в базе знаний ИС, трансформации зрительных сцен в текстовые описания и обратно, а также разработку процедур когнитивной графики и др.

5. Технологии обучения. Отличительной особенностью ИС должна стать их способность решать задачи, в явном виде не представленные в БЗ, что требует наделения ИС способностью к обучению. Для этих целей необходимо: создать методы формирования условий задачи по описанию проблемной ситуации или по наблюдению за этой ситуацией, обеспечить переход от известного решения частных задач к решению общей задачи, наделить ИС способностью декомпозировать исходную задачу на более мелкие, решение которых известно, разработать нормативные и декларативные модели самого процесса обучения, создать теорию подражательного поведения и др.

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

Заключение

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

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

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

- преодолениесложности (сложности управлениявозникают тогда, когда

приходится делать выбор из множества возможных решений);

Управление предприятием требует организации больших объемов информа­ ции;

Как уменьшить информациюдо того уровня, который необходим для приня тия решения (потеря информации, поступающей от объектов, работающих в реальном
режиме времени, может существенно сказаться на результате);

Нехватка времени на принятие решения (проявляется по мере усложнения
производства);

Проблема координации (решения необходимо координировать с другими
звеньями процесса или объекта);

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

Проблема извлечения знаний и их сохранения и распределе­ния - сегодня одна из главных проблем ор­ганизаций.

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

Список источников информации

1. Chi Leung Patrick Hui, ISBN 978-953-307-188-6, 586 pages, April 2011

2. Edited by Karl Perusich, Cognitive Maps, ISBN 978-953-307-044-5, 140 pages, January 2010

3. John Prager, Eric Brown, Anni Coden, and Dragomir Radev. Question-answering by predictive annotation. In Proceedings, 23rd Annual International ACM SIGIR Conference on Research and Development in Information Retrieval, Athens, Greece, July 2000

4. Knox Haggie, John Kingston, Choosing Your Knowledge Management Strategy, School of Informatics, University of Edinburgh, Journal of Knowledge Management Practice, June 2003

5. Negnevitsky M. Artificial Intelligence. A guide to intelligent systems. Addison-Wesley, 2005.

6. Peter Jackson, Introduction to Expert Systems. - 3 rd edition, Hardbound - Addison Wesley Publishing Company, 1998-12-31 - 560p. - ISBN 0201876868

7. Абдикеев Н.М. Проектирование интеллектуальных систем в экономике: Учебник. – М.: Экзамен, 2004. – 528 с.

8. Абдикеев Н.М. Интеллектуальные информационные системы: Учебное пособие.- М.: КОС-ИНФ, Рос. экон. акад., 2003. – 188 с.

9. Абдикеев Н.М., Киселев А.Д. Управление знаниями корпорации и реинжиниринг бизнеса (Под ред. Абдикеева Н.М.). Инфра-М, Москва, 2010

10. А.В. Гаврилов. Гибридные интеллектуальные системы: Монография – Новосибирск: Изд-во НГТУ, 2002. – 142 с.

11. В.В. Бухтояров "Эволюционный метод формирования общего решения в коллективах нейронных сетей", Журнал «Искусственный интеллект и принятие решений» под гл. редакцией академика С.В. Емельянова, номер 2010 / 03

12. Г.В. Рыбина, А.О. Дейнеко "Распределенное приобретение знаний для автоматизированного построения интегрированных экспертных систем", Журнал «Искусственный интеллект и принятие решений» под гл. редакцией академика С.В. Емельянова, номер 2010 / 04

13. Г.В. Рыбина "Обучающие интегрированные экспертные системы: некоторые итоги и перспективы", Журнал «Искусственный интеллект и принятие решений» под гл. редакцией академика С.В. Емельянова, номер 2008 / 01

14. Г.С. Осипов "Динамические интеллектуальные системы", Журнал «Искусственный интеллект и принятие решений» под гл. редакцией академика С.В. Емельянова, номер 2008 / 01

15. Золотов С.И. Интеллектуальные информационные системы: учебное пособие / С.И. Золотов – Воронеж: Научная книга, 2007. –140с.

16. Интеллектуальные информационные системы: учебник для студентов высших учебных заведений, обучающихся по специальности "Прикладная информатика в экономике" / А. В. Андрейчиков, О. Н. Андрейчикова. - М. : Финансы и статистика, 2004. - 423 с.

17. Интеллектуальные методы для создания информационных систем: учебное пособие / Е.Ю. Головина.– М.: Издательский домМЭИ, 2011. – 102с. - ISBN 978-5-383-00212-4

18. П.Р. Варшавский, А.П. Еремеев "Моделирование рассуждений на основе прецедентов в интеллектуальных системах поддержки принятия решений", Журнал «Искусственный интеллект и принятие решений» под гл. редакцией академика С.В. Емельянова, номер2009 / 02

19. Романов В.П. Интеллектуальные информационные системы в экономике Учебное пособие / Под ред. д. э. н., проф. Н. П. Тихомирова. - М.: Издательство «Экзамен», 2003. - 496 с.

20. Рыбина Г.В. "Теория и практика построения интегрированных экспертных систем", Рецензенты: зав.каф. прикладной математики МЭИ, д.т.н., проф. Еремеев А.П., зав.каф. МГУПИ, д.т.н., проф. Петров О.М., М.: ООО Издательство "Научтехлитиздат", 2008. -485 с. - ISBN 978-5-93728-081-7

21. Таунсенд К., Фохт Д. Проектирование и программная реализация экспертных систем на персональных ЭВМ: Пер. с англ. В. А. Кондратенко, С. В. Трубицына. - М.: Финансы и статистика, 1990. - 320 с.

1 Литературный обзор.


  1. Краткая история развития искусственного интеллекта.

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

В 50-х годах исследователи в области ИИ пытались строить разумные машины, имитируя мозг. Эти попытки оказались безуспешными по причине полной непригодности как аппаратных так и программных средств.

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

В начале 70-х годов специалисты в области ИИ сосредоточили свое внимание на разработке методов и приемов программирования, пригодных для решения более специализированных задач: методов представления (способы формулирования проблемы для решения на средствах вычислительной техники (ВТ)) и методах поиска (способы управления ходом решения так, чтобы оно не требовало слишком большого объема памяти и времени).

И только в конце 70-х годов была принята принципиально новая концепция, которая заключается в том, что для создания интеллектуальной программы ее необходимо снабдить множеством высококачественных специальных знаний о некоторой предметной области. Развитие этого направления привело к созданию экспертных систем (ЭС).

В 80-х годах ИИ пережил второе рождение. Были широко осознаны его большие потенциальные возможности как в исследованиях, так и в развитии производства. В рамках новой технологии появились первые коммерческие программные продукты. В это время стала развиваться область машинного обучения. До этих пор перенесение знаний специалиста-эксперта в машинную программу было утомительной и долгой процедурой. Создание систем, автоматически улучшающих и расширяющих свой запас эвристических (не формальных, основанных на интуитивных соображениях) правил - важнейший этап в последние годы. В начале десятилетия в различных странах были начаты крупнейшие в истории обработки данных национальные и международные исследовательские проекты, нацеленные на «интеллектуальные ВМ пятого поколения».

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


  1. обработка естественного языка;

  2. экспертные системы (ЭС);

  3. символьные и алгебраические вычисления;

  4. доказательства и логическое программирование;

  5. программирование игр;

  6. обработка сигналов и распознавание образов;

  7. и др.

1.2 Языки программирования ИИ.

1.2.1 Классификация языков и стилей программирования.
Все языки программирования можно разделить на процедурные и декларативные языки. Подавляющее большинство используемых в настоящее время языков программирования (Си, Паскаль, Бейсик и т. п.) относятся к процедурным языкам. Наиболее существенными классами декларативных языков являются функциональные (Лисп, Лого, АПЛ и т. п.) и логические (Пролог, Плэнер, Конивер и др.) языки (рис.1).

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

Процедурная программа состоит из последовательности операторов и предложений, управляющих последовательностью их выполнения. Типичными операторами являются операторы присваивания и передачи управления, операторы ввода-вывода и специальные предложения для организации циклов. Из них можно составлять фрагменты программ и подпрограммы. В основе процедурного программирования лежат взятие значения какой-то переменной, совершение над ним действия и сохранения нового значения с помощью оператора присваивания, и так до тех пор пока не будет получено (и, возможно, напечатано) желаемое окончательное значение.

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

ПРОЦЕДУРНЫЕ ЯЗЫКИ ДЕКЛАРАТИВНЫЕ ЯЗЫКИ

Паскаль, Си, Фортран, ...

ЛОГИЧЕСКИЕ ЯЗЫКИ ФУНКЦИОНАЛЬНЫЕ ЯЗЫКИ

Пролог, Mandala... Лисп, Лого, АРЛ, ...

Рис.1 Классификация языков программирования
Логическое программирование - это один из подходов к информатике, при котором в качестве языка высокого уровня используется логика предикатов первого порядка в форме фраз Хорна. Логика предикатов первого порядка - это универсальный абстрактный язык предназначенный для представления знаний и для решения задач. Его можно рассматривать как общую теорию отношений. Логическое программирование базируется на подмножестве логики предикатов первого порядка, при этом оно одинаково широко с ней по сфере охвата. Логическое программирование дает возможность программисту описывать ситуацию при помощи формул логики предикатов, а затем, для выполнения выводов из этих формул, применить автоматический решатель задач (т. е. некоторую процедуру). При использовании языка логического программирования основное внимание уделяется описанию структуры прикладной задачи, а не выработке предписаний компьютеру о том, что ему следует делать. Другие понятия информатики из таких областей, как теория реляционных баз данных, программная инженерия и представление знаний, также можно описать (и, следовательно, реализовать) с помощью логических программ..

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

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

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


  1. Сравнительные характеристики языков ИИ.

На первом этапе развития ИИ (в конце 50-х - начале 60-х годов) не существовало языков и систем, ориентированных специально на области знаний. Появившиеся к тому времени универсальные языки программирования казались подходящим инструментом для создания любых (в том числе и интеллектуальных) систем, поскольку в этих языках можно выделить декларативную и процедурную компоненты. Казалось, что на этой базе могут быть интерпретированы любые модели и системы представления знаний. Но сложность и трудоемкость таких интерпретаций оказались настолько велики, что прикладные системы для реализации были недоступны. Исследования показали, что производительность труда программиста остается постоянной независимо от уровня инструментального языка, на котором он работает, а соотношение между длиной исходной и результирующей программ примерно 1:10. Таким образом, использование адекватного инструментального языка повышает производительность труда разработчика системы на порядок, и это при одноступенчатой трансляции. Языки предназначенные для программирования интеллектуальных систем содержат иерархические (многоуровневые) трансляторы и увеличивают производительность труда в 100-ни раз. Все это подтверждает важность использования адекватных инструментальных средств.


  1. Языки обработки символьной информации.

Язык Лисп был разработан в Стэнфорде под руководством Дж. Маккарти в начале 60-х годов. По первоначальным замыслам он должен был0 включать наряду со всеми возможностями Фортрана средства работы с матрицами, указателями и структурами из указателей и т. п. Но для такого проекта не хватило средств. Окончательно сформированные принципы положенные в основу языка Лисп: использование единого спискового представления для программ и данных; применение выражений для определения функций; скобочный синтаксис языка.

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

После создания в начале 70-х годов мощных Лисп-систем Маклисп Интерлисп попытки создания языков ИИ, отличных от Лиспа, но на той же основе, сходят на нет. Дальнейшее развитие языка идет, с одной стороны, по пути его стандартизации (Стандарт-Лисп, Франц-Лисп, Коммон Лисп), а с другой - в направлении создания концептуально новых языков для представления и манипулирования знаниями в Лисп среде. В настоящее время Лисп реализован на всех классах ЭВМ, начиная с ПЭВМ и кончая высоко производительными вычислительными системами.

Лисп - не единственный язык, используемый для задач ИИ. Уже в середине 60-х годов разрабатывались языки, предлагающие другие концептуальные основы. Наиболее важные из них в области обработки символьной информации - СНОБОЛ и Рефал.


СНОБОЛ.

Это язык обработки строк, в рамках которого впервые появилась и была реализована в достаточно полной мере концепция поиска по образцу. Язык СНОБОЛ был одной из первых практических реализаций развитой продукционной системы. Наиболее известная и интересная версия этого языка - Снобол-4 Здесь техника задания образцов и работа с ними существенно опередили потребности практики. По существу, он так и остался «фирменным» языком программирования, хотя концепции СНОБОЛа, безусловно, оказали влияние и на Лисп, и на другие языки программирования задач ИИ.


Рефал.

Язык Рефал - алгоритмический язык рекурсивных функций. Он был создан Турчиным в качестве метаязыка, предназначенного для описания различных, в том числе и алгоритмических, языков и различных видов обработки таких языков. При этом имелось в виду и использование Рефала в качестве метаязыка над самим собой. Для пользователя это язык обработки символьной информации. Поэтому, помимо описания семантики алгоритмических языков, он нашел и другие применения. Это выполнение громоздких аналитических выкладок в теоретической физике и прикладной математике, интерпретация и компиляция языков программирования, доказательство теорем, моделирование целенаправленного поведения, а в последнее время и задачи ИИ. Общим для всех этих применений являются сложные преобразования над объектами, определенными в некоторых формализованных языках.

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

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

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

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

Часто бывает удобно разбить Рефал-программу на части, которые могут обрабатываться компилятором Рефала независимо друг от друга. Наименьшая часть Рефал-программы, которая может быть обработана компилятором независимо от других, называется модулем. Результат компиляции исходного модуля на Рефале представляет собой объектный модуль, который перед исполнением Рефал-программы должен быть объединен с другими модулями, полученными компиляцией с Рефала или других языков это объединение выполняется с помощью редактора связей и загрузчиков. Детали зависят от используемой ОС.

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


Пролог.

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

Пролог - европейский язык, был разработан в Марсельском университете в 1971 году. Но популярность он стал приобретать только в начале 80-х годов. Это связано с двумя обстоятельствами: во-первых, был обоснован логический базис этого языка и, во-вторых, в японском проекте вычислительных систем пятого поколения он был выбран в качестве базового для одной из центральных компонент - машины вывода.

Язык Пролог базируется на ограниченном наборе механизмов, включающих в себя сопоставление образцов, древовидное представление структур данных и автоматический возврат. Пролог особенно хорошо приспособлен для решения задач, в которых фигурируют объекты и отношения между ними.

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

Пролог успешно применяется в таких областях как: реляционные базы данных (язык особенно полезен при создании интерфейсов реляционных баз данных с пользователем); автоматическое решение задач; понимание естественного языка; реализация языков программирования; представление знаний; экспертные системы и др. задачи ИИ.

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

Пролог программа состоит из двух частей: базы данных (множество аксиом) и последовательности целевых утверждений, описывающих в совокупности отрицание доказываемой теоремы. Главное принципиальное отличие интерпретации программы на Прологе от процедуры доказательства теоремы в исчислении предикатов первого порядка состоит в том, что аксиомы в базе данных упорядочены и порядок их следования весьма существенен, так как на этом основан сам алгоритм, реализуемый Пролог-программы. Другое существенное ограничение Пролога в том, что в качестве логических аксиом используются формулы ограниченного класса - так называемые дизъюнкты Хорна. Однако при решении многих практических задач этого достаточно для адекватного представления знаний. Во фразах Хорна после единственного заключения следует ноль и более условий.

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

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

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

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

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

На эффективности Пролога очень сильно сказываются ограниченность ресурсов по времени и пространству. Это связано с неприспособленностью традиционной архитектуры вычислительных машин для реализации прологовского способа выполнения программ, предусматривающего достижение целей из некоторого списка. Вызовет ли это трудности в практических приложениях, зависит от задачи. Фактор времени практически не имеет значения, если пролог-программа, запускаемая по несколько раз в день, занимает одну секунду, а соответствующая программа на другом языке - 0.1 секунды. Но разница в эффективности становится существенной, если эти две программы требуют 50 и 5 минут соответственно.

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

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

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


  1. Языки программирования интеллектуальных решателей.

Группа языков, которые можно назвать языками интеллектуальных решателей, в основном ориентирована на такую подобласть ИИ, как решение проблем, для которой характерны, с одной стороны, достаточно простые и хорошо формализуемые модели задач, а с другой - усложненные методы поиска их решения. Поэтому основное внимание в этих языках было уделено введению мощных структур управления, а не способам представления знаний. Это такие языки как Плэнер, Конивер, КюА-4, КюЛисп.


Плэнер.

Этот язык дал толчок мощному языкотворчеству в области ИИ. Язык разработан в Массачуссетском технологическом институте в 1967-1971гг. Вначале это была надстройка над Лиспом, в таком виде язык реализован на Маклиспе под названием Микро Плэнер. В дальнейшем Плэнер был существенно расширен и превращен в самостоятельный язык. В СССР он реализован под названием Плэнер-БЭСМ и Плэнер-Эльбрус. Этот язык ввел в языки программирования много новых идей: автоматический поиск с возвратами, поиск данных по образцу, вызов процедур по образцу, дедуктивный метод и т. д.

В качестве своего подмножества Плэнер содержит практически весь Лисп (с некоторыми модификациями) и во многом сохраняет его специфические особенности. Структура данных (выражений, атомов и списков), синтаксис программ и правила их вычисления в Плэнере аналогичны лисповским. Для обработки данных в Плэнере в основном используются те же средства, что и в Лиспе: рекурсивные и блочные функции. Практически все встроенные функции Лиспа, в том числе и функция EVAL, включены в Плэнер. Аналогично определяются новые функции. Как и в Лиспе, с атомами могут быть связаны списки свойств.

Но между Лиспом и Плэнером существуют и различия. Отметим некоторые из них. В Лиспе при обращении к переменной указывается только ее имя, например Х, сам же атом как данное указывается как ‘X. В Плэнере используется обратная нотация: атомы обозначают самих себя, а при обращении к переменным перед их именем ставится префикс. При этом префикс указывает как должна быть использована переменная. Отличается от лисповского и синтаксис обращения к функциям, которое в Плэнере записывается в виде списка не с круглыми, а с квадратными скобками.

Для обработки данных в Плэнере используются не только функции, но и образцы и сопоставители.

Образцы описывают правила анализа и декомпозиции данных и поэтому их применение облегчает написание программ и сокращает их тексты.

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

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

На Плэнере можно программировать описывая то, что имеется и то что надо получить, без явного указания, как это делать. Ответственность же за поиск решения описываемой задачи берет на себя встроенный в язык дедуктивный механизм (механизм автоматического достижения целей), в основе которого лежит вызов теорем по образцу. Однако только вызова теорем по образцу не достаточно для такого механизма. Необходим механизм перебора, и такой механизм - режим возвратов - введен в язык.

Выполнение программы в режиме возвратов удобно для ее автора тем, что язык берет на себя ответственность за запоминание развилок и оставшихся в них альтернатив, за осуществление возвратов к ним и восстановления прежнего состояния программы - все это делается автоматически. Но такой автоматизм не всегда выгоден, так как в общем случае он ведет к «слепому» перебору. И может оказаться так, что при вызове теорем наиболее подходящая из них будет вызвана последней, хотя автор программы заранее знает о ее достоинствах. Учитывая это Плэнер предоставляет средства управления режимом возвратов.


Конивер.

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

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

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

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