Вводная лекция 1.
История развития искусственного интеллекта. Основные задачи ИИ.
Наиболее известные системы ИИ. История языка Пролог.
История развития ИИ.
Искусственный интеллект подразумевает создание некоторой разумной, интеллектуальной машины. Реально о проблеме ИИ заговорили с момента появления работ Тьюринга. Возник вопрос: какую машину считать разумной? Тьюринг предложил: нужно общаться с машиной как с невидимым собеседником если человек и машина неразличимы, то машина интеллектуальна. Но с развитием техники этот тест перестал быть полным.
Развитие искусственного интеллекта связано с именем Мичи. Он выделял главным свойством интеллектуальной машины способность к самообучению.
Нет общего понятия ИИ. Но можно определить задачи, методы решения которых на ЭВМ связаны с понятием ИИ.
Задачи искусственного интеллекта.
Вопервых, к задачам ИИ относится автоматическое решение некоторых проблем, а также рассмотрение и корректировка методов решения этих проблем. Автоматические решатели задач системы, осуществляющие построение вычислительной процедуры.
Также, искусственный интеллект рассматривает:
- задачи распознавания образов (распознаватели устройства, реагирующие на внешнюю среду через датчики (телекамеры и т.д.)), например, задачи по распознаванию естественной речи;
- задачи доказательства теорем и обучения (например, навык какой-нибудь игры);
- построение экспертных систем программных систем, способных принимать решение как эксперт (такая система должна обладать знаниями базой данных, механизмом логического вывода и способом его совершенствования);
Чтобы сделать программу интеллектуальной, ее нужно снабдить качественными знаниями.
Системы искусственного интеллекта:
программа ELIZA (автор: профессор Вайзенбаум). Эта программа была разработана в конце 60х годов. Ее задача отвечать на вопросы собеседника. Программа ищет в вопросе знакомые ей слова (имеющиеся в списке ее знаний, в стеке) и, если слово нашлось, то выбирается соответствующий список ответов, иначе ответ выбирается из стека общих фраз. Один из вариантов программы ELIZA программа DOCTOR, созданная пародией на психиатрическую больницу.
система MYSIN (автор: Шортклиф). Эта система была разработана в 1976 году. Она предназначалась для консультаций при диагностике инфекционных заболеваний крови и умела строить логические выводы. Система была способна оценивать правдоподобность логического вывода (в рамках от 0 до 1), давала пояснения о том, почему она пришла к тому или иному выводу, могла быть использована и при диагностике некоторых других заболеваний.
система DENDRAL для решения задач химического анализа.
Инженерия знаний наука о том, как извлечь информацию от экспертной системы. Инженер знаний тот, кто владеет этой наукой и способен работать с экспертной системой.
Для создания ИИ не годятся традиционные языки высокого и низкого уровня, а используются языки: логического программирования PROLOG (распространен в Европе), LISP (распространен в США, базу этого языка составляют списки).
Логическое программирование:
Теперь перейдем к изучению особенностей языка PROLOG.
В первую очередь следует заметить, что PROLOG декларативный язык (то есть язык, не требующий определенных алгоритмов), в отличие от языков C, Pascal и других языков процедурного толка (то есть алгоритмических языков).
Логическая программа это набор аксиом (состоящих из хорновских дизъюнкт и целей (GOAL)).Вычисление логической программы это конструктивное доказательство целевого утверждения из логической программы.
Так, например пусть есть логическая программа, содержащая знания о том, что Иван является родителем Семена, а Семен является родителем Анны. Эта программа может быть записана в следующем виде:
родитель(иван,семен)
родитель(семен,анна)
Здесь ключевое слово "родитель" называется именем предиката, задающим отношение "родитель потомок", а два аргумента этого предиката, есть данные программы, подпадающие под это отношение.
Цель: родитель(иван, семен). вычисленное значение этой программы: yes (то есть, эта цель достижима из логической программы).
Цель: родитель(Х, семен). вычисленное значение этой программы: иван (то есть, эта цель достижима и выдает своим результатом имя отца Семена Иван).
Следует обратить внимание на то, что все константные термы в языке PROLOG должны писаться с маленькой буквы, а переменные с большой.
Рассмотрим структуру аксиом, из которых состоит логическая программа. Аксиомы записываются в виде:
A:B1,B2,…,Bn.
Такая запись аксиом может трактоваться двумя способами:
- декларативно: из конъюнкции подцелей B1,B2,…,Bn следует цель A;
- процедурно: A есть последовательность B1,…,Bn.
И ту, и другую трактовку мы рассмотрим позже…
Замечание:
Значительный вклад в теорию логического программирования внесли:
- Ковальский: в своей публикации он разработал 2 метода, на которых основано логическое программирование методы унификации и резолюции.
- Колмероэ: создал первый интерпретатор логической программы и назвал его PROLOG.