- •Методическое пособие
- •1. Структура программы и синтаксис языка пролог
- •Структура программы на языке Пролог
- •2. Лабораторная работа №1. «вычисление целей. Откат»
- •Задания на лабораторную работу №1
- •3. Лабораторная работа №2. «рекурсия. Работа со списками».
- •3.1 Использование рекурсии
- •3.2 Списки
- •3.3. Использование структур в Прологе
- •3.4 Задания на лабораторную работу №2
- •4. Лабораторная работа № 3. «применение пролога для решения интеллектуальных задач»
- •4.1 Организация поиска в глубину
- •4.2 Организация повторения с использованием предиката fail
- •4.3 Задания на лабораторную работу №3
- •5. Лабораторная работа №4. «проектирование простейшей экономической советующей системы».
- •Список рекомендованной литературы
4.2 Организация повторения с использованием предиката fail
Одним из способов организации повторяющихся операций на Прологе является рекурсия. Однако реализация рекурсии обычно требует много оперативной памяти для хранения стека. Поэтому следует использовать другие способы реализации повторений.
Рассмотрим простую БД, содержащую информацию о книгах.
clauses
book(“F_K”,“Posledniu iz mogikan”).
book(“F_K”,“Sledopyt”).
book(“Stivenson”,“Ostrov sokrovish”).
book(“F_K”,“Shpion”).
Цель: book(“F_K”,Y)
Пролог найдет все решения для переменной Y.
Посмотрим, как будет работать программа, если эту цель задать как внутреннюю в разделе goal.
goal
book(“F_K”,Y), write(Y), nl.
В этом случае получим только одно решение. Чтобы получить все решения при ответе на запрос из раздела goalможно воспользоваться предикатомfailследующим образом:
Предикат failможно рассматривать как цель, которая никогда не удовлетворяется, и, таким образом, Пролог выдает все решения. Этот метод носит название метода отката после неудачи.
Общий вид правила, использующего этот метод:
правило для повторения:-
предикаты,
fail.
4.3 Задания на лабораторную работу №3
Задача 6.Для линейного ориентированного графа с взвешенными ребрами, заданного в виде некоторого списка перечислить все его ребра вместе с весами и определить их суммарный вес.
Задача 7.Для произвольного ориентированного графа с взвешенными ребрами и имеющего по одной входной и выходной вершине найти и вывести все пути (в виде списков).
Задача 8.Для графа из задачи 7 определить длину всех путей и выбрать из них минимальный.
Внимание! Возможно объединение задач 7 и 8 в одну.
5. Лабораторная работа №4. «проектирование простейшей экономической советующей системы».
Данная лабораторная работа является фактически завершающей стадией индивидуального задания студента, изучающего дисциплину «Информационные системы». В рамках этого задания студентам предлагается спроектировать простейшую экономическую советующую систему ( ЭСС ) расчетно-диагностического характера.
Под экономической советующей системой будем понимать программный продукт, который отражает знания специалиста-профессионала, его опыт и навыки и служит для выдачи другим специалистам (как профессионалам, так и нет) определенных советов и решений в области экономики [3].
В классификации ЭСС выделяются два больших класса:
1. Советующие системы, которые отражают осознанные мыслительные действия человека, т.е. действия, реализующие знания, опыт и навыки человека.
2. ЭСС, которые пытаются реализовать неосознанные мыслительные действия человека.
Системы первого класса делятся на 3 группы:
расчетно-диагностические ЭСС;
экспертные системы приближенных рассуждений;
системы поддержки исполнения решений (СПИР)
В настоящей лабораторной работе студентам предлагается реализовать проект простейшей ЭСС, относящейся к первой из групп, а именно – ЭСС расчетного характера.
В основе создания таких ЭСС лежит допущение о том, что в этой системе присутствует достаточно точное и четкое понимание целей проведения тех или иных расчетов. Эти расчеты связаны с выявлением эффективности деятельности организации в той или иной экономической сфере, с расчетом одного или нескольких экономических показателей. В системах такого рода обязательно присутствует т. н. «синтезированное» дерево «цель – показатель», которое состоит из двух наложенных друг на друга деревьев. Одно из них – классическое дерево целей функционирования организации, а второе дерево реализует совокупность взаимосвязанных показателей и параметров, позволяющих рассчитать или оценить цели первого дерева.
На входе системы – формулировка цели, которая должна быть достигнута. На выходе: должна появиться совокупность значений экономических показателей, позволяющая достичь этих целей.
Студентам на выбор предлагается одна из экономических целей, как - то: повышение уровня прибыли на определенную величину, снижение издержек на основное производство фирмы до заданного уровня или повышения уровня фондоотдачи на указанный процент. Студент может предложить по согласованию с преподавателем и свою цель. Главное при этом – наличие четких формульных выражений для определения степени достижения как данной цели, так и возможных подцелей, достижение которых также может понадобиться при реализации заданной ЭСС.
Такие ЭСС относятся к простейшему типу подобных систем. Они базируются на детерминированных зависимостях, которые формируются для достижения хорошо определенных целей. Базой подобных систем является дерево целей:
Здесь КОВi– коэффициент относительной важности той или иной подцели в отношении реализации главной цели. В рамках данной работы для упрощения задачи предлагается задать все КОВi= 1.
Цели четко сформулированы относительно задач: привязать к ним характеристики, экономические показатели и параметры, которые позволили бы оценить ценность той или иной цели (подцелей). Должна быть установлена явная связь между целями. Система позволяет выявить (рассчитать) основные параметры, характеристики управляемого предприятия; на основе таких расчетов сделать выводы о степени достижения ( или наоборот ), тех или иных целей и подцелей; наметить при помощи изменений каких показателей ЭСС и в каком направлении можно добиться поставленных целей
Данные системы должны позволять пополнять запас экспертных знаний, связанных с этими целями, процессами, параметрами и характеристиками;
Реализация всех перечисленных функций диктует следующую структурную схему ЭСС.
При выполнении данной лабораторной работы рекомендуется использовать приемы программирования и предикаты Пролога, применяемые в предыдущих работах и лишь в крайних случаях прибегать к методике проектирования экспертных систем, приведенной в [1] или [2], ввиду их сложности и громоздкости при выполнении данной лабораторной работы.