Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабПрактикум(1-5)_ПЗ в ИС_2011 .doc
Скачиваний:
26
Добавлен:
19.11.2019
Размер:
1.56 Mб
Скачать

58

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЭКОНОМИКИ И УПРАВЛЕНИЯ - «НИНХ»

КАФЕДРА ПРИКЛАДНЫХ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

Соболева И.А.

ЛАБОРАТОРНЫЙ ПРАКТИКУМ

ПО УЧЕБНОЙ ДИСЦИПЛИНЕ

ПРЕДСТАВЛЕНИЕ ЗНАНИЙ В ИНФОРМАЦИОННЫХ СИСТЕМАХ

для студентов очной формы обучения

по направлению 010400.62 «Информационные технологии»

НОВОСИБИРСК

2011

Практическое занятие 1. Основы логического программирования

Цель практического занятия – знакомство с принципами логического программирования.

Основные парадигмы программирования

Разработка языка Prolog (Пролог) началась в 1970 г. Аланом Колмероэ и Филиппом Русселом. Они хотели создать язык, который мог бы делать логические заключения на основе заданного текста. Название является сокращением от "PROgramming in LOGic". Этот язык был разработан в Марселе в 1972г.

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

При использовании ЭВМ для решения задач можно выделить два взаимосвязанных способа представления знания:

1) процедурное представление, т. е. определение алгоритма обработки данных;

2) декларативное представление, т. е. определение отдельных понятий, их состояния в конкретные моменты времени и связей между ними.

Традиционные алгоритмические языки (Бэйсик, Паскаль, Си, Фортран) являются процедурными, поскольку их цель – описание алгоритма. Но они содержат и декларативные компоненты (описание переменных).

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

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

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

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

– доказательства теорем и вывода решений в задачах;

– создания пакетов символьной обработки при решении уравнений,

дифференцировании, интегрировании и т. д.;

– разработки упрощенных версий систем ИИ;

– создания естественно-языковых интерфейсов для существующих

программ;

– перевода текстов с одного языка на другой, в том числе – с одного

языка программирования на другой.

Программирование на языке Пролог состоит из следующих этапов:

• объявления некоторых фактов об объектах и отношениях между ними,

• определения некоторых правил об объектах и отношениях между ними;

• формулировки вопросов об объектах и отношениях между ними.