Вход

Искусство программирования на языке PROLOG

Лекция по компьютерным сетям
Дата добавления: 22 октября 2010
Язык лекции: Русский
Архив, rar, 92 кб
Лекцию можно скачать бесплатно
Скачать
Вводная лекция 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.
© Рефератбанк, 2002 - 2017