Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Введение в проблему искусственного интеллекта (ИИ)



Введение в проблему искусственного интеллекта (ИИ)

1. Понятие систем ИИ, их классификация области применения и перспективы развития.

2. Использование систем ИИ в организационном управлении.

 

ЭС как разновидность систем ИИ.

1. Структура ЭС.

2. Определение знаний и базы знаний (БЗ).

3. Определение понятий логического вывода.

4. Организация интерфейса с пользователем в ЭС.

Структура ЭС.


Определение знаний и базы знаний (БЗ).

 Основным элементом БЗ являются знания о предметной области, в которой должна функционировать ЭС.

Знание - это совокупность сведений, образующих целостное описание соответствующее определенному уровню осведомленности об описываемой проблеме.

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

В БЗ ЭС знания должны быть обязательно структурированы и описаны терминами одной из модели знаний. Выбор модели знаний - это наиболее сложный вопрос в проектировании ЭС, так как формальное описание знаний оказывает существенное влияние на конечные характеристики и свойства ЭС.

В рамках одной БЗ все знания должны быть однородно описаны и простыми для понимания. Однородность описания диктуется тем, что в рамках ЭС должна быть разработана единая процедура логического вывода, которая манипулирует знаниями на основе стандартных типовых подходов. Простота понимания определяется необходимостью постоянных контактов с экспертами предметной области, которые не обладают достаточными знаниями в компьютерной технике.

Знания подразделяются с точки зрения семантики на факты и эвристики. Факты как правило указывают на устоявшиеся в рамках предметной области обстоятельства, а эвристики основываются на интуиции и опыте экспертов предметной области.

По степени обобщенности описания знания подразделяются на:

1) Поверхностные - описывают совокупности причинно- следственных отношений между отдельными понятиями предметной области.

2) Глубинные - относят абстракции, аналогии, образцы, которые отображают глубину понимания всех процессов происходящих в предметной области. 

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

По степени отражения явлений знания подразделяются на:

1) Жесткие - позволяют получить однозначные четкие рекомендации при задании начальных условий.

2) Мягкие - допускают множественные расплывчатые решения и многовариантные рекомендации.

Тенденции развития ЭС.


М, Ж - мягкие, жесткие знания.

П, Г - поверхностные, глубинные знания.

I - медицина, управление

II - психодиагностика, планирование

III - диагностика неисправностей разного вида

IV - проектирование различных видов устройств

Обычно при проектировании БЗ проектировщик старается пользоваться стандартной моделью знаний (МЗ):

1 -  продукционная модель знаний (системы продукции)

2 -  логическая МЗ

3 -  фреймовая МЗ

4 -  реляционная МЗ

По форме описания знания подразделяются на:

1) Декларативные (факты) - это знания вида “А есть А”.

2) Процедурные - это знания вида “Если А, то В”.

Декларативные знания подразделяются на объекты, классы объектов и отношения.

Объект - это факт, который задается своим значением.

Класс объектов - это имя, под которым объединяется конкретная совокупность объектов-фактов.

Отношения - определяют связи между классами объектов и отдельными объектами, возникшие в рамках предметной области.

К процедурным знаниям относят совокупностиправил, которые показывают, как вывести новые отличительные особенности классов или отношения для объектов. В правилах используются все виды декларативных знаний, а также логические связки. При обработке правил следует отметить рекурсивность анализа отношений, т.е. одно правило вызывает глубинный поиск всех возможных вариантов объектов БЗ.

Граница между декларативными и процедурными знаниями очень подвижна, т.е. проектировщик может описать одно и то же как отношение или как правило.

Во всех видах моделей выделен еще один вид знаний - метазнания, т.е. знания о данных. Метазнания могут задавать способы использования знаний, свойства знаний и т.д., т.е. все, что необходимо для управления логическим выводом и обучением ЭС.

 

Представление знаний.

ПМ или системы продукции используют для представления знаний два понятия:

1 - “объект-атрибут-значение”

2 - “правило продукции”

С помощью (1) описываются декларативные знания в базе. Такое представление позволяет при формировании БЗ упорядочить описание объектов, соблюдая их определенную иерархию. Если к таким упорядоченным объектам в процессе логического вывода применять правила, то можно организовать обращение отдельно к объекту, отдельно к атрибуту и отдельно к значению.

Правило продукции представляет собой средство описания процедурных знаний в виде MG-> MD

MG описывает определенную ситуацию в предметной области

MD описывает собой одно действие или соволкупность действий, которые необходимо выполнить в случае обнаружения соответствующей ситуации в предметной области

Применеие каждого текущего правила изменяет ситуацию на обьекте, поэтому нужно в следующем цикле проверить весь набор правил, пока не встретится условие останова. И левая и правая часть правила строится на основе знаний в виде “объект-атрибут-значение” или более сложных конструкций, построенных на их базе.

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

В продукционных моделях предполагается полная независимость правил друг от друга, т.е. на одном уровне иерархии одно правило не может вызвать другое.

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

 

2. Особенности организации логического вывода.   

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

На каждом из перечисленных этапов интерпретатор работает с БЗ, рабочей памятью, памятью состояний интерпретатора.

Схема одного цикла работы интерпретатора следующая:


На этапе выборки производится активизация той части данных и знаний, на основании которых может быть реализован запрос пользователя.

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

На этапе сопоставления, выбранное на предыдущем этапе множество активных правил Рv приводится в соответствие выбранному множеству элементов рабочей памяти Fv и определяется конфликтный набор правил, т.е. правил из Рv и данных из Fv, на которых эти правила определены.

Конфликтный набор - упорядоченные последовательности Рv и Fv, который называется означивание.

Этап сопоставления требует проведения значительного объема операций, т.к. для конфликтного набора следует проверить все условия правил на всех сочетаниях активных элементов рабочей памяти.

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

1-я управляющая структура — упорядочивание правил

2-я управляющая структура — управляющая структура специальных случаев

3-я управляющая структура — возраста элемента

4-я управляющая структура — различий (подобия)

5-я управляющая структура — случайные стратегии

(1) — используется в качестве критерия выбора означиваний приоритеты или оценки, кот. приписываются соответствующим правилам. В этом случае вводится понятие памяти правила.

Оценочный показатель выбирается произвольно, чаще всего исходя из следующих критериев:

1 — динамический приоритет правила в зависимости от его вклада в достижение целей.

2 — динамический приоритет в зависимости от важности используемых фактов.

 (2) — исп. в качестве критерия зарание определенного отношения двух правил, такое что если первое правило является специальным случаем, то оно считается предпочтительным

(3) — исп. в качестве критерия времени нахождения элемента в рабочей памяти. Обычно возраст определяется числом циклов работы инт-ра или числом действий, кот. выполнялись после создания элемента

(4) — исп. в качестве критерия различия или подобия означиваний из текущего набора тем означиваниям, кот. были выполнены в пределах цикла

(5) — явл. нежелательной, к ним приходится прибегать в тех случаях, когда после применения других стратегий не происходит выбора ниодного правила. К (5) можно отнести и исчерпывающий перебор правил. Он допустим в небольших по размеру БЗ в тех случаях, когда необходимо провести анализ всех возможных выводов и комбинаций.

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

В продукционных системах можна выделить два подхода, исп. при выводе решений:

1 — безвозвратный

2 — пробный

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

 

Примеры использования ПМ.

MYCIN - система для диагностики и лечения инфекционных заболеваний.

Был разработан скелетный язык, иначе - оболочка ЭС. Декларативные знания системы MYCIN описываются в виде “объект-атрибут-значение” и каждой тройке приписывается коэффициент уверенности, определяющий степень надежности знаний. Процедурные знания описаны в виде классического правила продукции. Механизм логического вывода основан на обратной цепочке рассуждений. Поиск производится в иерархически упорядоченном пространстве состояний.

В системе EMYCIN (оболочка) усилена предметной области отношению к MYCIN функция редактирования БЗ, доведена до высокого уровня система объяснения хода решения задачи, а также аппарат обучения системы. Написан на ФОРТРАНе.

OPS-5. Универсальный язык инженерии знаний, предназначенный для разработки ЭС, используемых в коммерческих приложениях. Разработчик - университет Корнеги-Меллон. Декларативные знания в системе описаны в виде “объект-атрибут-значение”. Процедурные знания описаны в виде классических правил продукции. В механизме логического вывода используется стратегия прямой цепочки рассуждений, реализуется метод применения одного и того же правила в различных контекстах; для формирования конфликта набора и разрешения конфликта используются специальные методы {RETELEX}, которые позволяют добиться высокой эффективности за счет управляющей структуры, где предпочтение отдается правилам со ссылкой на самый последний сгенерированный элемент “объект-атрибут-значение”.

 

Методология построения ЭС.

1. Подход к проектированию ЭС.

2. Содержание этапов проектирования.

3. Практические аспекты разработки и внедрения ЭС.

 

Подход к проектированию ЭС.

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

В силу отмеченных особенностей при проектировании ЭС-м применяется концепция “быстрого прототипа”. Ее суть: разработчики не пытаются сразу построить законченный продукт. На начальном этапе создается прототип, к-рый должен удовлетворять двум условиям:

1) он должен решать типичные задачи предметной области;

2) с другой стороны трудоемкость его разработки должна быть очень незначительной.

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

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

Кол-во разработчиков ЭС не должно быть меньше 4 чел., из к-рых 1 явл-ся экспертом ПО, 2 - инженеры по знаниям или проектировщики ЭС, 1 - программист, осуществляющий модификацию и согласование инструментальных средств.

В дальнейшем, в процессе преобразования прототипа в конечный продукт, состав программистов должен быть увеличен.

 

Аппарат логического вывода.

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

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

“Modus ponens” - используется для создания из ППФ вида А ППФ вида В

( А  В).  (“турникет”) интерпретируется как “следовательно”.

Операция специализации. Суть — позволяет доказать, что если некоторому классу обьектов присуще к.-л. свойство, то любой обьект данного класса будет обладать этим свойством. Для всех обьектов класса исп. свойство А, следовательно

  x) W(x), A L*W(A) (? )

Операция — унификация. Использ-ся для док-ва теории, содержащих квантиоризированные формулы приводят в соответствие определенные подвыражения формы путем нахождения подстановок.

Операция резолюция. Используется для порождения новых предположений. В основе метода резолюции лежит опровержение гипотезы и доказательство, что это неверно. В процессе реализации метода используется операция исключения высказывания, если эти высказывания в даных предположениях отрицаются, а вдругих — нет. Врезультате доказательства если опровержение ложно, формируется пустая резольвента.

Для применения резолюции ППФ должны быть переведены в клаузальную форму путем упрощения, а затем представлено в форме дизьюнкции. Процесс преобразования сводится к следующ. основным этапам:

1 — исключение символов импликации из формул и ограничение области действия символа отрицания

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

3 — исключение кванторов существования путем их замены функциями, аргументами которых являются переменные, связанные квантором общности, область действия кот. включает область действия исключенного квантора существования.

4 — преобразование предположений в префиксную форму, т.е. в ППФ не остается кванторов существования. Каждый квантор общности имеет свою переменную, поэтому все кванторы общности можно переместить в начало ППФ и считать, что область действия каждого квантора включает всю ППФ.

5 — приведение матрицы к коньюнктивной нормальной форме, т.е. коньюнкции конечного множества дизьюнкций.

6 — исключение кванторов общности. Это возможно, т.к. все переменные, оставшиеся на этом этапе относятся к квантору общности.

7 — исключение символов коньюнкции. В результате матрица остается только в виде дизьюнкций, над которыми возможно проведение операций резлюции.

 

PROLOG. Реализация на ПЭВМ

1. Интегрировання Среда языка Turbo Prolog.

2. Структура программы

3. Стандартные типы доменов

4. Прототипы предиката

5. Утверждения и цели

6. Арифметические выражения.

7. Встроенные прдикаты языка

 

Рекурсия.

В механизм обработки программ на языке ТР заложена рекурсия, то есть вычисление значения функции с помощью той же функции, но с измененными параметрами. Рекурсия в ТР реализуется в 2 этапа:

1) исходная задача разбивается на более мелкие частные задачи и формируются частные решения и на основе которых затем будет получено общее решение задачи.

Процесс разбиения задачи на подзадачи наз-ся редукцией. Редукция завершается в том случае, если сформирована подзадача, которая может быть решена непосредственно.

2) сборка решения, начиная от самого (? ) последнего к самому общему. Для использования рекурсии в программах необходимо использовать следующий формат правила рекурсии:

< имя правила рекурсии с аргументами или без них> if

< список предикатов> (1)

< предикат условия выхода из рекурсии> (2)

< список предикатов> (3)

< имя правила рекурсии с аргументами или без них > (4)

< список предикатов> (5)

В структуре правила компоненты (1), (3), (5) могут присутствовать или отсутствовать с учетом специфики решаемой задачи. Компоненты (2), (4) обязательны, так как они организуют аппарат активизации правила рекурсии. Обычно компонента (1) - это предикаты, которые не влияют на рекурсию. Компонента (3) содержит предикаты, с помощью которых формируются новые значения аргументов, участвующих в рекурсии, а (5) включает предикаты, которые формируют с помощью аппарата рекурсии искомые значения. (5) - сборка решения. (2) - используется для останова рекурсии, а (4) - реализует повторный вызов рекурсивного правила для новых значений аргумента. В зависимости от заданных граничных условий различают нисходящую и восходящую рекурсию.

Пример.

Определение n-го терма последовательности 1, 1, 2, 6, 24, ...

N 0 1 2 3 4...

0 терм=1         3 терм=2*3

1 терм=1*1     4 терм=6*4

2 терм=1*2     5 терм=24*5

Для обозначения того факта, что n-й член последовательности равен V, вводится предикат следующего вида: posl (N, V)

Фрагмент программы:

domains

N, V = integer

predicates

posl = (N, V)

clauses

posl (0, 1)

posl (N, V) if

    1) N> 0

    2) M=N-1

    3) posl (M, U)

    4) V=U*N

goal

posl (3, x)

Решение задачи производится в 2 этапа:

I этап.

1. Производится попытка удовлетворить запрос пользователя, используя первое утверждение в разделе clauses (posl (3, x) сопоставляется с posl (0, 1)). Так как 0 не сопоставляется с 3, то попытка завершается неудачей. После этого posl (3, x) сопоставляется с заголовком 2-го утверждения posl (N, V). Отсюда N получает значение 3, а V связывается с х и система переходит к доказательству подцели в теле правила:

1) N> 0 согласуется при N1=3

2) M1=N1-3 согласуется при N1=3 и M1=2

3) posl (2, U1) приводит ко второму рекурсивному обращению и так как это обращение не согласовано с первым, то последнее утверждение (V=U*N) откладывается.

2. Согласование posl (2, U1) с posl (0, 1) приводит к неудаче. Происходит сопоставление с заголовком 2-го утверждения, что заканчивается удачей, при этом N2=2 и V=U1. происходит доказательство по цели этого утверждения:

1) согласуется при N2=2

2) согласуется при N2=2 и М2=1

3) posl (1, U2) приводит к повторному рекурсивному обращению

4) откладывается

3. Согласование posl (1, U2) с posl (0, 1) приводит к неудаче. Сопоставление с заголовком 2-го утверждения заканчивается неудачей, при N3=1 и V=U2. Происходит доказательство по цели этого утверждения:

1) согласуется при N3=1

2) согласуется при N3=1 и М3=0

3) posl (0, N3) приводит к повторному рекурсивному обращению.

Полученное целевое утверждение сопоставляется с первым целевым утверждением posl (0, 1), при этом U3 получает заначение 1.

На этом этап разбиения заканчивается.

II. Этап сборки решения.

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

1) U2=U3*1, так как U3=1 то U2=1

2) U1=U2*2             U1=2

3) X=U1*3               X=6

 

Возврат и отсечение.

В процессе реализации запроса интерпретатору языка необходимо анализировать множество фактов и правил, к-рые извлекаются в процессе нескольких просмотров соответственных баз фактов. При этом в процессе одного просмотра формируется частичное решение. Процесс в PROLOGе выполняется автоматически путем пометки или заполнения тех модулей, к-рые анализировались перед текущей целью, с тем, чтобы исключить полученное частное решение из дальнейнего рассмотрения. Этот механизм в PROLOGе наз-ся возвратом и реализуется через использование стандартного предиката fail, к-рый всегда имеет значение “ложь”. Этот предикат заставляет интерпретатор проанализировать ещё раз базу фактов, чтобы выполнить более целевое утверждение для других значений переменных. Он позволяет получить в базе все возможные решения.

ПРИМЕР:

domains

p, T=symbo L

predicat s

like (P, T)

poleg (T)

dauses

like (“Иванов”, ” пиво”).

like (“Иванов”, ” сок”).

poleg(“cok”)...

otv if

like (P, T) and

poleg (T), nl,

write (P),

fail.

goal

otv.

Для управления процессом выполнения программ в PROLOG имеется встроенный предикей cut, кот. кодируется в turbo-PROLOG как!. Основное назначение — остановка процесса возврата, т.е. приостановка выработки дальнейших решений.

Этот процесс в Прологе наз. ОТСЕЧЕНИЕМ. Чаще всего предикей cut используется совместно с fail.

ПРИМЕР

goal

like (P, T)

T= “кефир”,

nl,

write ( “любитель кефира найден”)

!.

fail

Отсечение используется для устранения бесконечных циклов (см. пред. пример):

clauses

posl (0, 1) if!

posl(N, V) if

         M=N-1

posl (M, U)

         V=U*N

 

Отсечение также используется для устр. взаимоисключающих утверждений.

ПРИМЕР

ball (M, ’A”) if M> so,!

ball(M, “B”) if M< so an M> 60,!.

 

ТЕМА: АГРЕГАТЫ ФАКТОВ

1.Списки

2.Динамическая база фактов

3.Структуры

 

Списки.

 Если в пр-ме необходимо организовать с переменными или заранее неопределенным количеством объектов, то испол. списки.

СПИСОК — упорядоченная последовательность эл-в одного типа неопределенной длины, кот м. состоять из 0 и более эл-в.

Константы, попавшие в список, записываются в [ ] и отделяются друг от друга запятыми.

Исходя из определения списка, два списка, сост. из одних и тех же

эл-в, но расположенных в разном порядке считаются разными. В разделе domains эл-ты списка обяз-но д.б. сопоставлены с определенным типом домена (Sp=integer*).

Список в domains м.б. опосредствован через имя переменной, эл-ты кот. собираются в список.

domains

k_fms = string, kol = integer,

Sp = kol*

predicates

fms ( k_fms, kd, ...)

 

Списки состоят из заголовка ( начала списка) и захвата (окончания списка). К заголовку относится только 1-й эл-т списка, остальное — хвост.

Список с нулевым количеством эл-в определяется как пустой список, он не имеет ни заголовка ни хвоста.

Для работы со списками в языке имеется ряд встроенных предикатов.

MEMO (< имя эл-та>, < список> ) — где < список> м.б. задан либо именем Sp, либо непосредственно константами, входящими в этот список.

Предикат определяет принадлежность эл-та к списку.

I — деление списка на голову и хвост [ Head I Tail] или [H I T]

H — или переменной для обозначения заголовка

T — — “ — хвоста

ПРИМЕР

domains

list=char*

predicates

test (List)

clouses

test ( [‘A’, ‘B’, ‘C’, ‘D’] ).

goal

test ([H/T]),

nl,

write (H)

APPEND ( [ эл-ты старого списка ], [ эл-ты нового списка ], < имя нового списка > )

— из 2-х списков, старого и нового, создают III список.

REVERS ( [ эл-ты стар. списка], < имя нового списка > )

— меняет последовательность эл-в на противоположную

FINDALL (< имя переменной >, < формат предиката >, < имя списка > )

ПРИМЕР

domains

post = string

Kol, Cena, Sum = integer

Sp = integer* ( Sp = Kol*)

Kod = string

predicates

tmc ( P, Kol, Cena)

sum ( Sp, Sum)

goal

write ( “ Введите код”),

readln ( Kod),

nl,

findall ( Kol, tmc ( Pos1, Kod, Kol, Cena), Sp),

sum (Sp, Sum),

write ( “Количество =”, Sum)

clauses

tmc ( “ 001”, “001”, 45, 80)

sum ( [ ], 0).

sum ( [ H/T ], Sum) if

         sum ( T, Sum1).

         Sum = H + Sum1.

 

В языке имеется возможность работы с динамической базой фактов, в которой м. объединяться как однородные, так и разнородные предикаты-факторы.

База фактов — нечто среднее м-у реляционной СУБД и массивом. В момент активизации все факты базы переносятся в ОЗУ с внешнего зап. устройства. Для работы с БД создается новый раздел программы, в кот. определяются прототипы предикатов-фактов, объедененных в базу.

DATABASE

прототипы в этом разделе описываются по тем же правилам, что и в predicates.

Раздел database записывается перед разделом predicates и предикаты, кот. в нем описываются не могут описываться в разделе predicates, а ис-ся в разделах clouses и goal. Активизация базы происходит в области ОЗУ, кот. по умолчанию имеет тип домена dbasedom. Этот тип программист не указывает явно в программе в разделе domains, но м. его использовать в качестве аргументов встроенных предикатов языка, что позволяет сократить текст программы при работе с базой.

 

domains

dbasedom = tms(Post, Kod, Kol, Cena)

database

         tmc (Post, Kod, Kol, Cena)

 

Возможно дополнение базы новыми фактами, удаление устаревших, корректировка отдельных фактов. Все операции в базе фактов производятся с помощью стандартных встроенных предикатов:

asserta

         ( < факт > ) ( dbasedom): (i)

assertz

— используется для добавления нового факта в базу. Факт д.б. обязательно определен и относится к области dbasedom. При использовании предиката asserta факт добавляется перед остальными фактами имеющегося предиката.

assertz — добавление после — “ —

retraсt(< факт> )( dbasedom): (i) — удаление из БД первого факта, кот. сопоставляется с указанным в retraсt фактом. Возможно удаление группы. При этом в факте указывается общее для удаления фактов значение, а на месте всех остальных переменных записываются те переменные, кот. нет в этом предикате.

SAVE(< имя файла > ) — сокращает все факты дин. базы из ОЗУ на магн. диск под именем

string: (i)        заданным в предикате save/

CONSULT(< имя файла > ) — добавляет в опер. дин. базу все факты из файла на диске с string: (i)               указанным именем.

 

Структуры.

СТР-РА — набор объектов, логически связанных между собой в процессе решения задачи и объединенных под одним именем. Стр-ра в П. используется при создании сложной базы фактов и правил.

Если объекты стр-ры относятся к одному типу доменов. то стр-ра наз. однодоменной. Допускается исп-е доменов разного типа, в этом случае стр-ра наз. разнодоменной.

Исп-е стр-ры в программах позволяет упорядочить базу, разрешается обращение к стр-рам по имени.

 

Определение файлов.

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

1.Входной с экрана дисплея keyboard

2.Выходная форма на экран screen

3.Вых. ф-ма на устройство печати printer

4. — “ — на порт com1

По умолчанию наз-ся файлы (1) и (2). Для переопределения стандартных файлов и файлов пользователя исп-ся станд. предикаты

readdevice

 (< символьное имя файла> )

(file): (i)

writedevice

ПРИМЕР

readdevice (printer),

write (“Работа завершена”),

readdevice (screen),

...

Файлы пользователя в П. м. представлять собой как Д. так и факты в виде предикатов, при этом 1-я запись файла д. соответствовать 1-му предикату-факту.

 

2. Порядок работы с файлами пользователя в программах следующие:

1.Определение символьного имени файла

2.Открытие соответствующего вида доступа

3.Определение или переопределение уст-ва, используемого для обработки файла

4.Закрытие файла после обработки с возможным переопределением устройств ввода-вывода

Для определения символьного имени в П. используется стандартный домен file, определенный в разделе domaines.

Символьное имя м. совпадать, а м. не совпадать с его именем в ОС. Символьное имя действует также в пределах той пр-мы, кот. его описывает. В зависимости от порядка работы с файлом, его открытие м производиться с помощью след. стан. предикатов:

OPENWRITE( < сим. имя файла>, < имя файла в ОС> )

 ( file, string): ( i, i)

— открывает файл с указаным именем для операции записи. Если этот файл реально существует под указаным именем в среде ОС, то он уничтожается.

OPENREAD( < сим. имя файла >, < имя файла в ОС > )

 ( file, string): ( i, i)

— открывает файл с указаным именем для чтения

OPENAPPEND (< > < > )( file, string): ( i, i)

— открывает файл для дозаписи. Если при использовании предиката OPENREAD и OPENAPPEND файл не найден, то это интерпр. как ошибка. Если при использовании предикатов OPENWRITE и OPENMOCLIFY файл не найден, то происходит создание нового файла. Для проверки наличия файла в П. имеется след. стан. предикат:

EXISTEFILE(< имя файла в ОС> )

( string): ( i)

Если файл с указанным именем не сущ., то предикат принимает значение.t., если нет- ложь. Переопределение устройств для работы с файлами пользователя производится с помощью readdevice и writedevice

FILE_STR (< имя файла в ОС>, < строка> )

(string, string): (i, 0) ( i, i)

— читает знаки до 64кб из файла в перем. памяти, если задано (i, 0). Если задано ( i, i), то знаки из пер.памяти зап-ся в файл. Чтение и запись прекращается, если встретиться признак конца файла. Этот предикат работает без определения символьного имени файла.

READTERM (< Имя области памяти>, < терм> )

 (< имя области>, < терм> ): (i, 0)

После открытия файла этот предикат читает факты из него. Первый аргумент предиката д.б. описан в разделе domains программы

EOF (< символьное имя файла> )

(file): (i)

Предикат имеет значение “ Истина”, если указатель файлов позиции установлен на конце файла

FILEPOS (< сим. имя файла>, < позиция>, < режим> )

(file, real, integer): (i, i, i) (i, 0, i)

RENAME (< имя файла1 в ОС>, < имя файла2 в ОС> ) — переим. файла

 (string, string): (i, i)

DELETE (< имя файла в ОС> ) — удаление файла

(string): (i)

DISK (< маршрут> )

(string): (i) (0) — устанавливает, если (1) или возвращает, если задана (0) дисковод или тех. каталог, подкаталог...

CLOSEFILE (< сим. имя файла> )

 (file): (i)

 

Введение в проблему искусственного интеллекта (ИИ)

1. Понятие систем ИИ, их классификация области применения и перспективы развития.

2. Использование систем ИИ в организационном управлении.

 


Поделиться:



Последнее изменение этой страницы: 2019-10-03; Просмотров: 147; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.216 с.)
Главная | Случайная страница | Обратная связь