- Дипломы
- Курсовые
- Рефераты
- Отчеты по практике
- Диссертации
Искусственный интеллект и логическое программирование
Внимание: Акция! Курсовая работа, Реферат или Отчет по практике за 10 рублей!
Только в текущем месяце у Вас есть шанс получить курсовую работу, реферат или отчет по практике за 10 рублей по вашим требованиям и методичке!
Все, что необходимо - это закрепить заявку (внести аванс) за консультацию по написанию предстоящей дипломной работе, ВКР или магистерской диссертации.
Нет ничего страшного, если дипломная работа, магистерская диссертация или диплом ВКР будет защищаться не в этом году.
Вы можете оформить заявку в рамках акции уже сегодня и как только получите задание на дипломную работу, сообщить нам об этом. Оплаченная сумма будет заморожена на необходимый вам период.
В бланке заказа в поле "Дополнительная информация" следует указать "Курсовая, реферат или отчет за 10 рублей"
Не упустите шанс сэкономить несколько тысяч рублей!
Подробности у специалистов нашей компании.
Только в текущем месяце у Вас есть шанс получить курсовую работу, реферат или отчет по практике за 10 рублей по вашим требованиям и методичке!
Все, что необходимо - это закрепить заявку (внести аванс) за консультацию по написанию предстоящей дипломной работе, ВКР или магистерской диссертации.
Нет ничего страшного, если дипломная работа, магистерская диссертация или диплом ВКР будет защищаться не в этом году.
Вы можете оформить заявку в рамках акции уже сегодня и как только получите задание на дипломную работу, сообщить нам об этом. Оплаченная сумма будет заморожена на необходимый вам период.
В бланке заказа в поле "Дополнительная информация" следует указать "Курсовая, реферат или отчет за 10 рублей"
Не упустите шанс сэкономить несколько тысяч рублей!
Подробности у специалистов нашей компании.
Код работы: | W007360 |
Тема: | Искусственный интеллект и логическое программирование |
Содержание
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФГАОУ ВПО «СЕВЕРО-КАВКАЗСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» ИНСТИТУТ КАФЕДРА КУРСОВАЯ РАБОТА (ПРОЕКТ) по дисциплине « » на тему: «Искусственный интеллект и логическое программирование» Выполнил: ________________________ студент __ курса группы __ направления (специально- сти) _________ __________формы обучения ________________________ (подпись) Руководитель работы: __________________________ (ФИО, должность, кафедра) Работа допущена к защите _______________________ ______________ (подпись руководителя) (дата) Работа выполнена и защищена с оценкой _________________________ Дата защиты___________ Члены комиссии: ________________ __________ _______________ (должность) (подпись) (И.О. Фамилия) ______________ _______________ _______________ ______________ _______________ _______________ ______________ _______________ _______________ Ставрополь, 20___ г. Введение На сегодняшний день, если брать общий уровень интеллектуального развития, машины абсолютно уступают людям. Но однажды – по нашему предположению – разум машины превзойдет разум человека. Насколько справедливо утверждение, что довольно скоро в нашем распоряжении окажутся вычислительные ресурсы, достаточные для воспроизведения соответствующих эволюционных процессов, вследствие которых образовался человеческий интеллект? Ответ зависит от следующих условий: во-первых, будет ли в течение следующих десятилетий, достигнут значимый прогресс компьютерных технологий; во-вторых, какая потребуется вычислительная мощность, чтобы механизмы запуска генетических алгоритмов были аналогичны естественному отбору, приведшему к появлению человека. Надо сказать, что выводы, к которым мы приходим по цепочке наших рассуждений, крайне неопределенны; но, несмотря на такой обескураживающий факт, все-таки представляется уместным попробовать дать хотя бы приблизительную оценку этой версии. За неимением других возможностей даже ориентировочные расчеты привлекут внимание к некоторым любопытным неизвестным величинам. В современном мире рост производительности программиста практически достигается только в тех случаях, когда часть интеллектуальной нагрузки берут на себя компьютеры. Одним из способов достигнуть максимального прогресса в этой области является «искусственный интеллект», когда компьютер берет на себя однотипные, многократно повторяющиеся операции, но и сам может обучаться. Кроме того, создание полноценного «искусственного интеллекта» открывает перед человечеством новые горизонты развития. Еще одно интересное замечание: профессия программиста, является одной из самых интеллектуальных, поскольку продуктом деятельности программиста являются программы – алгоритмы в чистом виде. Именно поэтому создание даже элементов искусственного интеллекта должно очень сильно повысить производительность его труда. Интеллект и мышление органически связаны с решением таких задач, как доказательство теорем, логический анализ, распознавание ситуаций, планирование поведения, игры и управление в условиях неопределенности. Характерными чертами интеллекта, проявляющимися в процессе решения задач, является способность к обучению, обобщению, накоплению опыта и адаптации к изменяющимся условиям в процессе решения задач. Создание экспертных систем с широким спектром возможностей, являющихся помощниками человека при поиске решений в сложных ситуациях, требует привлечения эффективных инструментальных средств разработки. К их числу относятся языки обработки символической логической информации, родоначальником которых является Пролог. Пролог – язык высокого уровня, ориентированный на использование концепций и методов математической логики. Основной особенностью Пролога, отличающей его от других языков, является декларативный характер написанных на нем программ. Пролог – язык программирования, хорошо приспособленный для автоматизации различных форм логических рассуждений. Строительными блоками программы являются множество объектов определенной структуры, а также функции и отношения, связывающие эти объекты. Область применения языка Пролог: экспертные системы, восприятие текстов на естественном языке, символьные вычисления, разработка компиляторов, создание языков для встроенных систем, архитектурное проектирование и т. д. Целью изучения курсовой является приобретение знаний о способах мышления человека, а также о методах их реализации на компьютере. Изучение автоматизации сложноформализуемых задач, которые до сих пор считаются прерогативой человека. Изучение языков логического программирования. Достижению поставленной цели способствует решение ряда задач: изучение общих принципов искусственного интеллекта; рассмотреть этапы развития программных средств; изучение языков логического программирования; рассмотреть язык высокого уровня – Пролог. Основным предметом изучения являются мыслительные способности человека и способы их реализации техническими средствами. ОБЩИЕ ПРИНЦИПЫ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА 1.1. Предыстория теории искусственного интеллекта Искусственный интеллект, как и любое направление современной науки, имеет богатую предысторию. Знакомство с именами и трудами основоположников, их научными воззрениями, даже с биографиями ученых имеет практический смысл, так как во многих случаях позволяет глубже понять смысл той или иной научной модели, избежать повторения старых ошибок. Широкое развитие автоматизированных технологий началась по-видимому, в 40-50 годах ушедшего ХХ века. Философская идея о создании живого из неживого, волновавшая Шелли и Байрона, получила наибольшее распространение в 60-80 гг. Основные теоретические положения искусственного интеллекта, а искусственный интеллект сегодня – вершина развития информационных технологий, заложены как раз в этот период. Сказанное не означает, что сегодня исследования ведутся менее активно; напротив, наблюдается бум развития компьютерных технологий, в их разработку вкладываются деньги, сопоставимые с бюджетом ресусродобывающих компаний. Тем не менее, результаты скорее количественные. Впрочем, возможно, что современные достижения в этой области не рекламируются, поскольку имеют явную военную направленность. Серьезных изменений в теории искусственного интеллекта следует ожидать, по-видимому, в 10-20 гг. нашего века. Это обусловлено необходимостью обобщения накопленных научных знаний, появление некоторой единой теории искусственного интеллекта. История развивается циклично, и новый век, тем более начало нового тысячелетия, - это своеобразный старт для народов, государств, политиков, ученых. Свидетелями, каких представлений на сцене истории мы станем? Какое государство определить лицо современного мира? Какой ресурс станет главным для мировой экономики? Сегодня это не знает никто. Возможен только более-менее точный прогноз, и он состоит в том, что одним из самым возможным после нефти и угля, станет информационный ресурс, т. е. информация плюс технология ее обработки. 1.2 Этапы развития программных средств Необходимо отметить, что представленные этапы (прил. 1) не отменяют и не заменяют один другой. На каждом из них сформировалась своя специфическая технология обработки информации (например, технология без данных). Каждая из них живет, развивается и служит основой для технологии следующего уровня. Каждая технология породила свои специфические понятия, термины и методы. Технология следующего уровня чаще всего их заимствует, однако возникают и новые понятия, образующие новую теорию. Для искусственного интеллекта таким понятием является понятие о знаниях. Таким образом, искусственный интеллект – новейшая информационная технология, имеющая специфический круг задач и базирующаяся на ранее существовавших технологиях. 1.3 Понятие «искусственный интеллект» Определение 1. Интеллектуальной называется система (рис. 1), способная целеустремленно, в зависимости от состояния информационных входов, изменять не только параметры функционирования, но и сам способ своего поведения, причем способ поведения зависит не только от текущего состояния информационных входов, но также и от предыдущих состояний системы. Изменение структуры Изменение структуры Информационные выходы (поведение системы) Информационные выходы (поведение системы) Информационные входы Информационные входы Структуры и состояние системы Структуры и состояние системы1 1 … … 2 n m Изменение параметров Рис. 1. Интеллектуальная система как «черный ящик» Определение 2. Интеллектуальной называется система, моделирующая на компьютере мышление человека. Второе определение появилось в 60-х гг., когда считалось, что мозг человека можно смоделировать на компьютере. Клетки мозга – нейроны – программно описывались специальными математическими методами. Компьютерная программа, таким образом, представляла как бы кусочек мозга человека. На вход программы подавались некоторые данные (на вход клетки мозга в живом организме подается электрический сигнал), на выходе снимались результаты, которые сверялись с эталоном. В зависимости от того, насколько полученные результаты отклонялись от эталона, в расчетные коэффициенты вносились изменения. В зависимости от количества циклов такого «обучения» результаты работы программы постепенно все более приближались к результатам работы очень маленького элемента мозга человека. Идея возможности повторить мозг на компьютере к 80-м гг. ХХ в. потерпела полную неудачу, однако теория нейронных сетей, нейросетевой подход доказали свою полезность на целом ряде практических приложений. Хорошие результаты получены в первую очередь на задачах предсказания значений параметров и распознавания образов. Определение 3. Интеллектуальной называется система, позволяющая усилить интеллектуальную деятельность человека за счет ведения с ним осмысленного диалога. К концу 80-х гг. стало совершенно очевидно, что создать универсальный искусственный разум невозможно. Более того, выяснилось, что это совершенно не нужно. Следует создавать узкоспециализированные интеллектуальные системы, которые не заменяют человека, но дополняют его. Человек имеет ряд уникальных способностей, но не свободен от недостатков. Не один человек не обладает реакцией кошки. Никто из нас не способен прочитать за минуту роман Л. Н. Толстого «Война и мир», редко кто из людей обладает энциклопедической памятью. Компьютер обладает энциклопедической памятью, компьютер совершает миллионы операций в секунду, компьютер реагирует мгновенно. Но компьютер – это просто «глупое железо», он не способен мыслить, не способен отвечать за собственные поступки. Значит, сфера разграничения интеллектуальной деятельности машины и человека состоит в том, чтобы компьютер служил советчиком человеку, быстро анализировала ситуацию, генерировал варианты действий на основе огромной памяти и предлагал их человеку, а человек рассматривал предложенные варианты и пояснял, почему тот или иной вариант плох. Компьютер, учитывая полученные разъяснения, вновь анализировал бы все варианты действий и выдавал новые, а человек выбирал подходящий вариант и нес ответственность за его реализацию. Поясним примером: система автоматического наведения ракет обнаружила цель. Цель была обнаружена практически мгновенно, человек даже не успел ее заметить. Ракета была автоматически наведена на цель. Цели был послан запрос «свой – чужой». Цель появилась на пульте управления перед оператором, человек принял решение о поражении, выбрал тип оружия и нажал на кнопку «уничтожить». В случае полностью автоматического ведения цели существовала бы реальная опасность уничтожить свой самолет. В обратном случае, если бы наведением на цель, посылкой запроса занимался человек, могло быть упущено время. Таким образом, сегодня искусственный интеллект – это самообучающий инструмент, усиливающий деятельность человека по генерации и принятию решений. Вернемся к рисунку 1. Обратим большее внимание на математические характеристики этой модели. Система имеет произвольное количество входов, отображающиеся в произвольное же количество выходов. Так, например, человек обладает пятью основными органами чувств, посредством которых он и воспринимает окружающий мир и воздействует на этот мир тысячами разных способов. 1.4 Современные области исследований в искусственном интеллекте В последнее десятилетие ушедшего века ясно обозначились следующие важные направления развития интеллектуальных систем. Системы, имитирующие творческие процессы. Создание музыкальных произведений, решение игровых задач (шахматы, шашки, домино), автоматический перевод, доказательство теорем, распознавание образов, имитация мышление и т. п. Информационные системы, основанные на знаниях (экспертные системы), т. е. консультирование малоопытных пользователей, настройка оборудования, обучение и др. Интеллектуальные информационные системы – большие и очень большие программы, предназначенные для решения задач в предметной области на основе математических и алгоритмических моделей и обладающие способностью вести осмысленный диалог с пользователем с целью упростить управление, сократить объем работы человека, повысить качество и т. п. Робототехника. С точки зрения «интеллектуальности» различают несколько поколений роботов. Первое поколение – роботы-манипуляторы, действующие по заранее утвержденной и неизменной программе (например, подающие заготовки к станку). Если в процессе работы по каким-либо причинам изменится расстояние до заготовки, робот ее потеряет. Второе поколение – адаптивные роботы. Члены таких роботов оснащены большим количеством датчиков: угломеров, тензометров, газовых анализаторов и др. Такие роботы применяются, например, для сварки кузовов автомобилей. Дело в том, что достаточно крупные технические изделия, даже выпускаемые серийно, все равно получаются уникальными. Длина двух автомобилей одной и той же марки различна. Адаптивный робот делает сварной шов не в абсолютных координатах, а относительно некоторой точки начала отсчета, которую сам же и находит на кузове автомобиля. При необходимости человек-сварщик берет управление на себя, а робот, запоминая его действие в новой ситуации, «обучается». Первые два вида роботов – промышленные роботы, сконструированные для работы в заранее определенной среде – в цехе завода. Для ориентации и точного позиционирования в пространстве в цехе имеется большое количество контрольных точек – датчиков, координаты которых неизменны. Гораздо сложнее роботу, который находится в реальном мире, например, обследует затонувший корабль. Приходится отвечать на вопросы: «где я?», «что передо мной?», «можно ли пройти к…» и др. Интеллектуальным роботам приходится обрабатывать данные своих датчиков и команды человека в реальном масштабе времени, а если предусмотрен еще и прогноз событий, то в «сверхнатуральном», (применяются, например, для управления транспортным средством). Схожие проблемы возникают у поисковых роботов – особого класса программ, предназначенных для индексирования документов в глобальной сети Интернет, что обеспечивает работу поисковых машин. 1.5 Современные теоретические проблемы искусственного интеллекта Проблема представления знаний. Разработка новых и совершенствование существующих моделей представления знаний. Проблемы нейронных сетей. Многокритериальное принятие решений. Стохастические модели принятия решений. Создание практически полезных моделей для очень узких предметных областей. Разработка компьютерной лингвистики. Разработка новых, более надежных, языков программирования. Разработка языка управления роботами на основе естественного языка. Компьютерная логика. Совершенствование архитектуры ЭВМ. Для того, чтобы получить более подробное представление об основных практических и теоретических задачах, решаемых сегодня в искусственном интеллекте, следует ознакомиться с примерными планами работ, публикуемых на сайтах общеизвестных мировых центров, таких, как, например, Лаборатория искусственного интеллекта Массачусетского технологического института. В 2001-2004 гг. лаборатория занималась примерно следующим (рис. 2). Рис 2. На рис. 2 рассмотренные вопросы представлены обобщенно. Совершенствование вычислений Совершенствование вычислений Прикладные вычислительные процедуры (биология, медицина), стохастические системы, теория вычислений, криптография. Прикладные вычислительные процедуры (биология, медицина), стохастические системы, теория вычислений, криптография. Совершенствование программного обеспечения Совершенствование программного обеспечения Базы данных, методы доступа к информации, рациональное проектирование и методологии создания программных систем, распределенные системы, программное обеспечение для Интернета, разработка алгоритмов, операционные системы (параллельные и определенные), разработка языков программирования, позволяющих повысить надежность разрабатываемого программного обеспечения (динамические языки, адаптивные системы, системы, способные «выживать»). Базы данных, методы доступа к информации, рациональное проектирование и методологии создания программных систем, распределенные системы, программное обеспечение для Интернета, разработка алгоритмов, операционные системы (параллельные и определенные), разработка языков программирования, позволяющих повысить надежность разрабатываемого программного обеспечения (динамические языки, адаптивные системы, системы, способные «выживать»). Параллельные машины, децентрализованные машины и системы, моделирование высокоскоростных электрических соединений, архитектуры сетей. Параллельные машины, децентрализованные машины и системы, моделирование высокоскоростных электрических соединений, архитектуры сетей. Примерные направления Примерные направления Тема Тема Совершенствование архитектуры компьютеров и сетей Совершенствование архитектуры компьютеров и сетей 2. ОСНОВНЫЕ ТЕОРИТИЧЕСКИЕ ЗАДАЧИ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА Искусственный интеллект – междисциплинарная область исследований Каждая область академических знаний имеет достаточно узкий круг традиционных задач. Перечень этих задач и их формулировки становятся все более узкими по мере развития данной науки. В конечном счете область исследований разбивается на десятки частных задач, часть из которых поддается решению, часть в принципе не имеет решения, и последняя часть не может быть решена современными средствами, но и не существует доказательства невозможности ее решения. Теория систем говорит нам о необходимости «междисциплинарного переноса», т. е. заимствования разными науками друг у друга формулировок задач и подходов к их решению. Очевидно, количество философских идей о способах и формах формулировки задач и подходов к их решению в этом случае возрастает, но все же остается конченым и исчисляется десятками. Проиллюстрируем эту мысль примером. В традиционной медицине существует метод нормализации давления крови в сосудах путем введения специальных «сосудорасширяющих» препаратов. Однако их применение не всегда возможно. Кроме того, есть определенный предел расширения. Для снижения давления можно также попытаться снизить вязкость крови, но это связано с нежелательными химическими сдвигами. Долгое время казалось, что задача не имеет решения. И действительно, в такой постановке «изобрести метод дальнейшего расширения сосудов» или «понижения вязкости крови» без побочных эффектов невозможно. Тем не менее необходимость в практическом решении не отпала. Инженеры-реологи, работавшие над проблемой движения жидкостей в технических системах (трубопроводы двигателей и т. п.), не знали о вышеописанных проблемах и, применительно к своей области, сформулировали задачу иначе: «Повысить пропускную способность трубопровода до определенного значения при условиях не изменяющегося во времени диаметра трубопровода и сохранения химического состава жидкости (заданная степень)». В результате был предложен метод, основанный на использовании специальных присадок (на основе высоких молекул – эффект Томса), изменяющих не диаметр трубопровода и вязкость жидкости, но характер течения – от турбулентности на ламинарной. «Обратный перенос» разработанного метода в медицину дал качественный эффект. В современном мире более сильным является тот ученый, который знает больше общих постановок задач, относящихся как к его области исследования, так и к смежным, и даже крайне отделенным, областям знаний. Для искусственного интеллекта такая концепция является просто определяющей, поскольку искусственный интеллект – это междисциплинарная прикладная область исследований. Термин «прикладная» подчеркивает тот факт, что понятие искусственного интеллекта само по себе, в отрыве от компьютерных наук и практически важных прикладных задач, не существует. 2.2. Перечень традиционных задач искусственного интеллекта Наиболее общей является, видимо, задача «заполнения пропусков», возникающая, например, при расшифровке генома. Представьте себе длинную ленту с нанесенными буквами и цифрами. На ленте имеются плохо читаемые места длиной один и более символов. Необходимо восстановить текст. Это можно сделать либо на основе похожих кусков текста, содержавшихся на ленте ранее разрыва (или, если возможно разрыв перескочить, то и после), либо на основе совершенно другой информации, не содержащейся на читаемой ленте вообще. В первом случае мы сталкиваемся с частными случаями задачи заполнения пропусков – задачей классификации и последующей интерполяции. Классификация – отнесение исследуемого объекта к одному из известных или неизвестных множеств объектов. Такая задача возникает, например, в биологии при обнаружении нового биологического вида. В случае, если речь идет о крупном животном, как правило, можно отнести обнаруженный вид к одному из известных классов. Гораздо сложнее дело обстоит с мелкими организмами, например, червями. Вновь открытые виды часто имеют признаки, характерные для нескольких разных подвидов, и отнести их к тому или иному классу можно только с некоторой степенью уверенности на основе количественного сравнения степени выраженности некоторых признаков. 2.3. Алгоритм классификации ИСОМАД (ISODATA) Для того чтобы получить начальное представление об алгоритмических подходах к решению таких задач, рассмотрим широко известный алгоритм многомерной классификации ISODATA. Существует много подобных алгоритмов. Наиболее известными (в силу результативности) являются «Метод К среднего» и аналогичный ему «ИСОМАД». ИСОМАД – Итеративный Самоорганизующийся Метод Анализа Данных; IsoData – Iterative Self-Organizing Data Analysis Techniques. Назначение алгоритма – выделение из некоторой последовательности точек (образов), не пересекающихся с другими областями (кластерами). Кластеры характеризуются своими центрами, средним расстоянием от центра точек, принадлежащих кластеру, среднеквадратичным отклонением (точек от центра). Входными параметрами для алгоритма являются: Х – исходный образ, который и надо отнести к некоторому кластеру. Представляет собой вектор с произвольным количеством координат; N – количество исходных образов; К – требуемое количество кластеров на выходе алгоритма; Qn – минимально допустимое количество образов в кластере. Кластеры с менее чем Qn образов ликвидируются, их образы распределяются между другими кластерами на следующей итерации; Qs – максимально допустимое среднеквадратичное отклонение (образов от центра кластера) – критерий для деления кластера на два; Qc – параметр, характеризующий компактность (размещения кластеров, «близость» кластеров между собой). Необходим для принятия решения об объединении двух кластеров (компактность в этом алгоритме не имеет прямой связи с математическим определением компактности); L – максимальное количество пар центров кластеров, которые можно объединить; I – допустимое число циклов итерации. Промежуточные переменные и обозначения: Т – номер текущей итерации; Sj – множество образов, входящих в кластер с номером j; Zj – центр j-го кластера. Также, как и образ Х, представляет собой вектор; Nj – количество выборочных образов, включенных в множество Sj; Nc – текущее количество кластеров. (В конце алгоритма кластеров будет К, в начале Nc обычно берется 1); n – размерность кластеризуемых образов; j – среднее расстояние между образами из Sj и центром кластера; – обобщенное среднее расстояние (по всем кластерам, вычисляется на основе j); ?i – эмпирическая величина. Применяется для определения координат новых центров (±?i) при делении кластера на два новых. Двойными прямыми скобками || X – Z || обозначено евклидово расстояние. Логическое программирование . Понятие логического программирования На протяжении многих тысячелетий человечество занимается накоплением, обработкой и передачей знаний. Для этих целей непрерывно изобретаются новые средства и совершенствуются старые: речь, письменность, почта, телеграф, телефон и т. д. Большую роль в технологии обработки знаний сыграло появление компьютеров. В октябре 1981 г. Японское министерство международной торговли и промышленности объявило о создании исследовательской организации – Института по разработке методов создания компьютеров нового поколения. Целью данного проекта было создание систем обработки информации, базирующихся на знаниях. Предполагалось, что эти системы будут обеспечивать простоту управления за счет возможности общения с пользователями при помощи естественного языка. Эти системы должны были самообучаться, использовать накапливаемые в памяти знания для решения различного рода задач, предоставлять пользователям экспертные консультации. Вскоре развитие получили американский и европейский проекты. Появление таких систем могло бы изменить технологии за счет использования баз знаний и экспертных систем. Основная суть такого качественного изменения заключается в переходе от обработки данных к обработке знаний. В 1991 г. предполагалось создать первый прототип компьютера пятого поколения, работа которого приближена к тому, как мыслит человек. Поставленные цели в полной мере так и не были достигнуты, однако подобные проекты послужили импульсом к развитию нового витка исследований в области искусственного интеллекта и обусловили появление интереса к логическому программированию. Логическим (декларативным) программированием называется метод программирования, предназначенный для решения задач искусственного интеллекта, в соответствии с которым программа описывает логическую структуру решения задачи, указывая преимущественно, что «нужно сделать», не вдаваясь в детали того, «как это делается». Логическое программирование (в широком смысле) представляет собой семейство таких методов решения проблем, в которых используются приемы логического вывода для манипулирования знаниями, представленными в декларативной форме. В узком же смысле логическое программирование понимается как использование исчисления предикатов первого порядка в качестве основы для описания предметной области и осуществления логического вывода и называется хорновским или резолюционным. Прежде всего, логическое программирование связывают с системами программирования, основанными на использования специальных классов логических формул (definite clauses – дословно – однозначных предложений, называемых хорновскими дизыонктами или клаузами Хорна) и специальных методов логического вывода (вариантов метода резолюции), - в качестве логической модели вычислений и способа исполнения логических программ. Самыми известными системами такого рода являются реализации языка Prolog, Programming in Logic (в русской транскрипции – Пролог, Программирование на основе логики), его вариантов и расширений. Центральным понятием в логическом программировании является отношение. Программа представляет собой совокупность определений отношений между объектами (в терминах условий или ограничений) и цели (запроса). Процесс выполнения программы трактуется как процесс общезначимости логической формулы, построенной из программы по правилам, установленным семантикой используемого языка. Результат вычисления является побочным продуктом этого процесса. В реляционном программировании нужно только специфицировать факты, на которых алгоритм основывается, а не определять последовательность шагов, которые требуется выполнить. Это свидетельствует о декларативности языка логического программирования. Она метко выражена в формуле Р. Ковальского: «алгоритм = логика + управление». Языки логического программирования характеризуются: Высоким уровнем; Строгой ориентацией на символьные вычисления; Возможностью инверсных вычислений, то есть переменные в процедурах не делятся на входные и выходные; Возможной логической неполнотой, поскольку зачастую невозможно выразить в программе определенные логические соотношения, а также невозможно получить из программы все выводы правильные. Логические программы, в принципе, имеют небольшое быстродействие, так как вычисления осуществляются методом проб и ошибок, поиском с возвратами к предыдущим шагам. В век компьютерных технологий компьютерная система, делающая выводы на основе заложенных в нее знаний специалистов (экспертная система), стала способна решать не только простейшие логические задачи, но быть основой важнейших практических приложений. Это могут быть задачи по определению болезней и способов их лечения, поиску полезных ископаемых, диагностики неисправностей автомобиля, управлению посадкой самолета или ориентации космической станции. Эти и еще тысяча других задач в повседневной жизни, практике и высокой науке могут быть решены на основе методов и программных средств, использующих логический вывод, т. е. при помощи логического программирования. Как писал Дж. Робинсон во введении к первому номеру журнала «Journal of Logic Programming» в 1984 г., в основе идеи логического программирования лежит описание задачи совокупностью утверждений на некотором формальном логическом языке и получение решения с помощью вывода в некоторой формальной (дедуктивной) системе. Логическое программирование сильно отклоняется от основного пути развития языков программирования. Здесь используется не некоторая последовательность преобразований, отталкивающихся от архитектуры фон Неймана и присущего ей набора операций, а теоретическая модель, никак не связанная с каким-либо типом машины. Логическое программирование базируется на следующем убеждении: не человека надо учить мышлению в терминах компьютера, а напротив, компьютер должен уметь выполнять действия, свойственные человеку. Логическое программирование подразумевает, что конкретные инструкции не задаются, вместо этого используются логические аксиомы и правила вывода, с помощью которых формулируются сведения о задаче и предположения, достаточные для ее решения. Постановка задачи формализуется в виде логического утверждения, подлежащего доказательству. Такое утверждение называется целевым утверждением или вопросом. Программа – это множество аксиом и правил вывода, а исполнение – попытка логического вывода целевого утверждения из программы. При этом используется конструктивный метод доказательства целевого утверждения, то есть в процессе доказательства находятся аргументы, которые делают истинным данное целевое утверждение. Неудивительно, что с появлением ЭВМ и созданием для них первых программ возникало желание «скрестить» логику и программирование. К 1969 году относятся первые получившие довольно широкую известность попытки создания логических языков программирования – это Absys, созданный в университете Абердина в Шотландии, и Planner – функционально-логический язык, разработка К. Хьюита из лаборатории искусственного интеллекта Массачусетского технологического института (США). Planner впоследствии породил целый ряд потомков, среди которых QA4, Popler, Conniver, QLisp и Ether. В годы, когда логическое программирование делало свои первые шаги, существенной проблемой являлась недостаточная производительность подобных систем по сравнению, например, с компилируемыми программами на Фортране или Си. Однако к настоящему времени, когда наблюдается бурный рост вычислительной мощи среднего компьютера, можно считать, что острота данной проблемы практически снята. Более глубокой и пр....................... |
Для получения полной версии работы нажмите на кнопку "Узнать цену"
Узнать цену | Каталог работ |
Похожие работы: