- •1 Общая характеристика дисциплины
- •1.1 Значение дисциплины ии
- •1.2 Понятие "искусственный интеллект"
- •1.3 Краткая история развития ии
- •1.4 Классификация систем ии
- •Представления знаний - центральная проблема ии.
- •Компьютерной лингвистики, решение которой обеспечивает процесс естественно- языкового общения с эвм и процесс автомтического перевода с иностранных языков.
- •Компьютерной логики, имеющей особо важное значение для развития экспертных систем, поскольку ее цель – моделирование человеческих рассуждений.
- •1.5 Основные направления развития ии
- •2Языки систем искусственного интеллекта
- •2.1 Общие сведения о языках сии
- •2.2 Язык лисп
- •2.2.1 Алфавит
- •2.2.2 Атомы и точечные пары
- •2.2.3 Списки
- •2.2.4 Арифметические функции языка лисп
- •2.2.5 Функции setq и quote
- •2.2.6 Функции car и cdr
- •2.2.7 Композиция функций саr и cdr.
- •2.2.8 Пустой список
- •2.2.9 Функция cons
- •2.2.10 Логические значения и предикаты
- •2.2.11 Предикаты атом и eq
- •2.2.12 Предикат null
- •2.2.13 Предикаты, классифицирующие атомы
- •2.2.14 Арифметические предикаты сравнения
- •2.2.15 Операции над строками битов
- •2.2.16 Функция cond
- •2.2.17 Определяющее выражение функции
- •2.2.18 Определяемые функции
- •2.2.19 Рекурсивные функции
- •2.2.20 Prog- механизм.
- •2.3 Обращение (инверсия) списков
- •2.4 Вычисление факториала числа
- •2.5 Вычисление длины списка
- •2.6 Вычисление длины списка и его подсписков
- •2.7 Соединение списков
- •2.8 Удаление элемента из списка
- •2.9 Функция, вычисляющая список общих элементов двух списков
- •2.10 Функция, объединяющая два списка и не включающая повторяющиеся элементы
- •2.11 Ассоциативные списки
- •2.12 Функции, изменяющие значения указателей
- •2.13 Функции read и print
- •2.14 Функция eval
- •3 Представление задач и поиск решений
- •3.1 Представление задач в пространстве состояний
- •3.2 Сведение задачи к подзадачам
- •3.3Представление задач в виде доказательства теорем
- •3.4 Поиск решения в пространстве состояний
- •3.5 Алгоритм поиска в ширину
- •3.6 Алгоритм поиска в глубину
- •3.7Алгоритм равных цен
- •3.8 Алгоритмы эвристического (упорядочного) поиска
- •3.9 Поиск решения задачи, при сведении задачи к подзадачам
- •3.10 Представление знаний
- •3.10.1 Продукционные системы
- •3.10.2Семантические сети
- •3.10.3 Представление знаний фреймами
- •3.11 Сопоставление с образцом
- •3.11.1 Функции Mapcad, Apply и Funcall
- •3.11.2 Свойства Атомов
- •3.11.3 Функция сопоставления с образцом
- •3.11.4 Присваивание значений при сопоставлении с образцом
- •3.11.5 Функции Explope, Compress, AtomCar, AtomCdr
- •3.11.6 Задание ограничений при сопоставлении с образцом
- •3.12 Программная реализация лисп - машин
- •3.12.1 Структура памяти лисп - машины
- •3.12.2 Диалекты языка лисп
- •3.12.3 Аппаратная реализация языка лисп
- •4 Математические основы логического вывода
- •4.1 Решение задач с помощью доказательства теорем
- •4.2 Тождественные преобразования при доказательстве теорем
- •4.3 Принцип резолюции
- •4.4Примеры применения принципа резолюции
- •4.5 Система управления роботом strips.
- •5Решение задач искусственного интеллекта на языке пролог
- •5.1 Применение метода доказательства теорем в системе пролог
- •5.2 Особенности программирования на пролоГе
- •5.4 Арифметические предикаты
- •5.5 Предикаты управления возвратом
- •5.6 Программа вычисления квадратного корня
- •5.7 Вычисление n!
- •5.8 Область действия предиката отсечения
- •5.9 Отрицание на пролоГе
- •5.10 Определение структур управления
- •5.11 Организация циклов в языке пролог
- •5.11.1 Цикл repeat-fail
- •5.11.2 Сопоставление цикла с возвратом и рекурсии
- •5.12 Операторная запись.
- •5.13 Ввод-вывод в системе пролог
- •5.13.1 Предикаты ввода-вывода символов
- •5.13.2 Предикаты ввода-вывода термов
- •5.13.3 Примеры применения предикатов ввода-вывода
- •5.14 Предикат name
- •5.15 Предикаты проверки типов термов
- •5.16 Создание и декомпозиция термов
- •5.17 Предикаты работы с базой данных .
- •5.18 Бинарные деревья
- •5.18.1 Построение бинарного дерева
- •5.18.2 Преобразование списка в упорядоченное дерево
- •5.18.3 Преобразование дерева в список
- •5.18.4 Удаление элемента из дерева
- •5.18.5 Поиск в глубину
- •5.18.6 Поиск в ширину
- •5.19 Поиск решений в игровых программах.
- •5.20 Обратное усечение дерева.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ УКРАИНЫ
СЕВАСТОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
БОНДАРЕВ В.Н.
СИСТЕМЫ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
конспект лекций
Севастополь 1999
ВВЕДЕНИЕ
Научно-техническая дисциплина "Системы искусственного интеллекта" - быстро развивающееся направление современной информатики и кибернетики. Оно лежит на стыке разнообразных дисциплин, таких как математическая логика, теория управления, теория иннформации, вычислительная техника, программирование и др. Тематика исследований, относящихся к искусственному интеллекту весьма разнообразна.
В конспекте лекций не ставилась задача охватить весь круг вопросов, относящихся к искусственному интеллекту (ИИ). Основная цель - изложить основы тех разделов дисциплины, которые в настоящее время наиболее полно проработаны и могут использоваться для построения автоматизированных информационных систем конретного назначения. Поэтому в конспекте основное внимание уделено инструментальным системам ЛИСП и ПРОЛОГ и их использованию при решении отдельных задач искуственного интеллекта. Это обусловлено, также тем, что большинство работ, посвященных ИИ, используют указанные инструментальные средства и для того, чтобы понимать эти работы, безусловно необходимо хорошо знать языки ЛИСП и ПРОЛОГ.
Важной особенностью, повлиявшей на структуру конспекта, явилась организация учебного процесса. Чтение курса лекций происходит параллельно с проведением лабораторных занятий. Это требует, чтобы студенты буквально с первых лекций получили сведения об инструментальных средствах и могли их использовать на лабораторных занятиях. Поэтому конспект построен так, что после краткого знакомства с проблематикой ИИ излагаются основы языка ЛИСП, а затем по мере его освоения происходит переход к рассмотрению основных задач ИИ.
1 Общая характеристика дисциплины
1.1 Значение дисциплины ии
Для того, чтобы охарактеризовать важность работ по ИИ, достаточно сказать, что в программах научно-технического развития многих промышленно развитых стран на первом месте стоит задача создания супер ЭВМ нового поколения с быстродействием 10 млрд. оп.в сек. с использованием принципов ИИ, совершенных средств общения человека с машиной для применения в решении особо сложных задач.
Показателем развития работ в области ИИ служит рост затрат и ассигнований: в 1985 году эта сумма составила $350 млн. ( США, Зап.Евр., Япония ), а к 1990 она достигла $19 млрд. Темпы роста невиданные. Наблюдается значительный рост публикаций. Только в США по проблемам ИИ издается около двадцати журналов. Происходит интенсивная подготовка кадров: обязательные курсы по представлению знаний, компьютерной логике, лингвистике и др. проблемам ИИ читаются в ста университетах США, Японии и Зап.Евр. Существуют около 10-ти специализаций, в рамках которых готовятся разработчики интеллектуальных систем и инженеры по знаниям.
Данная дисциплина должна познакомить студентов с основными принципами ИИ и инструметальными средствами систем ИИ.
1.2 Понятие "искусственный интеллект"
Искусственный интеллект (ИИ) - комплексная научно-техническая дисциплина. Исторически сложилось так, что работы в области ИИ ведутся по двум направлениям. В рамках первого направления предпринимаются попытки моделировать деятельность мозга на психофиэиологическом уровне в надежде воспроизвести на ЭВМ или с помощью специальных технических устройств искусственный разум. Это направление ИИ называется б и о н и ч е с к и м. Второе направление исследований ИИ можно назвать п р а г м а т и ч е с к и м . Оно почти оставляет за пределами своих исследований психофизиологическую деятельность человеческого мозга. Здесь ЭВМ рассматривается как инструмент для создания искусственных систем, способных выполнять не хуже, а возможно и лучше человека, ту работу, которую люди традиционно относят к интеллектуальной. Иногда первое направление работ в области ИИ называют восходящим, а второе - нисходящим [ ].
В конспекте освещаются результаты, достигнутые в основном в рамках прагматического направления, как наиболее завершенные.
Термин "искусственный интеллект" в исследованиях этого направления понимается исключительно в метафорическом смысле, а исследователи заняты разработкой программ, позволяющих средствами ЭВМ воспроизвести процессы, которые у человека являются результатом его мыслительной деятельности [ ].
Рассмотрим более подробно, что понимают под термином ИИ. Для этого рассмотрим некоторые определения понятия "интеллект".
Психологи обычно с большой осторожностью подходят к вопросу об определении понятия интеллект. Как отметил один из них, единственное непротиворечивое определение состоит в следующем: "интеллект - это то, что оценивается в тестах" [ ]. Однако, предпочтительнее было бы иметь более общее определение. Интеллект иногда определяют как способность реагировать на новую ситуацию. С таким определением хорошо согласуются результаты по оценке интеллектуальности животных. Тип интеллекта, проявляющийся в подобных опытах, близок к нашему интуитивному определению этого понятия. Oднако, такое определение не вполне объективно. Чтобы установить, что данная ситуация является новой в точном смысле слова, необходимо субъективное суждение. Например, требуется найти log 23 с помощью калькулятора. Возможно это и новая ситуация для калькулятора, но новизна эта иная, чем в случае с обезьяной, которая пытается достать связку бананов, подвешенную к потолку. И это отличие трудно сформулировать.
Попытка определить понятия "интеллект" равносильна попытке дать определение понятию "мышления" при ответе на вопрос "могут ли машины мыслить?". Можно сказать, что сама проблематика ИИ и есть попытка ответить на этот вопрос. То обстоятельство, что сегодня мы вряд ли могли бы рассматривать микрокалькулятор как "мыслящее" устройство, свидетельствует о том, что любая попытка создать думающую машину автоматически подразумевает самоотрицание. Сам факт, что машина обладает некоторым типом поведения, заставляет людей говорить: " Это не то,что мы понимаем под мышлением, ибо мы понимаем, как машина может это делать".
Пока разработка ИИ не достигнет своей высшей цели - моделирование каждого аспекта человеческого интеллекта ( что, по-видимому, не осуществимо в обозримом будущем), ему обязательно будет присуще такое самоотрицание.
Несколько поколений назад люди, несомненно сочли бы карманный микрокалькулятор интеллектуальным, а сегодня для такой оценки от машины потребуется гораздо большее.
Поэтому ИИ - это область исследований, направленных на то, чтобы научить машины выполнять функции, которые в настоящее время для них слишком трудны, и особенно такие функции, которые способны выполняют люди в процессе творческой деятельности. Слова "в настоящее время ... трудны" говорят о том, что подобное определение должно быть "скользящим", т.е. меняться со временем, точно так же, как изменяется ныне представление о "думающей машине" по мере развития техники.
Поскольку проблематика ИИ , по существу, беспредельна и она привлекла к себе многих способных людей, ее по праву считают "передним краем" разработок в области кибернетики и информатики.
Представляет интерес тест, позволяющий сказать, является машина думающей или нет, который предложил известный математик и специалист в области компьютерных систем Алан Тьюринг. Этот тест основан на игре в переговоры. Если человек, задающий вопросы, не в состоянии установить, общается он с другим человеком или машиной, и если на самом деле это была машина то следует считать, что машина обладает интеллектом. В настоящее время существуют программы удовлетворяющие тесту Тьюринга. Например, программа ЭЛИЗА (в области психиатрии) [ ].
Вместе с тем, тест Тьюринга не является точным, потому что Тьюринг не рассматривает задачу достижения какого-либо полезного эффекта. Он рассматривает лишь задачу моделирования интеллекта.
Необходимо отметить, что термин "искусственный интеллект" является в некоторой степени амбициозным и с этой точки зрения критикуется многими исследователями [ ]. Тем не менее, этот термин устоялся и сейчас широко используется для названия целого научного направления, сформировавшегося в самостоятельную ветвь информатики. Таким образом ИИ это область исследований, которая к человеческому интеллекту имеет довольно косвенное отношение. Речь здесь идет о задачах, которые хорошо решаются человеком и плохо машиной. Естесственно, не все задачи, которые хорошо решает человек, следует относить к интеллектуальным. Но есть широкий круг задач, связанных с умением понимать, анализировать, планировать действия, манипулировать знаниями и др., которые безусловно относятся к интеллектуальным. Важной характеристикой этих умений является универсальность, предполагающая их применимость к объектам самой различной природы. Именно поэтому, говоря о методах и принципах ИИ, подразумевают универсальные процедуры, применимые к широкому классу задач.
Необходимо отметить, что методы ИИ обладают важной особенностью. Это т е х н о л о г и я решения различных проблем в различных областях применения ( а не продукция) [ ]. Именно поэтому методы ИИ часто называют н о в о й и н ф о р м а ц и о н н о й т е х н о л о г и е й [ ].
Как известно, старая информационная технология опирается на бумажные носители и формально-математические модели.
Становление новой информационной технологии обусловлено тем, что в теории ИИ были разработаны логико-лингвистические модели (семантические сети, фреймы, продукционные системы). Они позволяют формализовать содержательные знания об объектах, дать семантику (формально-математические модели не содержат семантики).
Новую информационную технологию отличают от существующей следующие принципиальные особенности [ ]:
1.Логико-лингвистическое моделирование резко расширило применение ЭВМ за счет трудно или совсем неформализуемых ранее областей знаний и сфер деятельности (медицина, биология, геология).
2.Специалистам, без посредников обеспечивается прямой доступ к ЭВМ в диалоговом режиме - интеллектульный интерфейс. При этом взаимодействие с ЭВМ происходит на профессиональном языке пользователя.
Оснащенные упомянутыми средствами ИИ и объединенные в сети ЭВМ обеспечивают не тяжеловесную бумажную, а новую технологию. В результате мы переходим к б е з б у м а ж н о й и н ф о р м а т и к е [ ].