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

УЧЕБНАЯ ЭКСПЕРТНАЯ СИСТЕМА

СИТУАЦИОННОГО УПРАВЛЕНИЯ

«Малый Решатель Проблем»

Версия 2.04 / 2.05

Описание системы и

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

1. Определение

«Малый Решатель Проблем» («Решатель») представляет собой учебный программный комплекс и является упрощенным функциональным аналогом современных коммерческих оболочек для создания прикладных экспертных систем ситуационного управления (ЭССУ).

2. Назначение

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

- методика построения концептуальной модели предметной области;

- методика построения продукционной базы знаний на основе концептуальной модели;

- методика описания моделей проблемных и целевых ситуаций;

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

Изучение данных методик поддерживается «Решателем». Успешное выполнение заданий на «Решателе» будет свидетельствовать о выработке у обучаемого навыков системного мышления различной глубины. «Решатель» используется для поддержки лабораторного практикума по дисциплине “Системы Искусственного Интеллекта”, читаемой на кафедрах ВТ и МОВС МИРЭА, а также для дипломного проектирования.

3. Функциональные возможности

ЭССУ «Решатель» поддерживает следующий набор функций:

· создание, хранение, модификация, тестирование целостности, слияние пользовательских баз знаний продукционного типа;

· организация проведение и некоторая оптимизация прямого логического вывода;

· генерация отчетов с текстовыми описаниями баз знаний и результатами анализа проблемных ситуаций.

Для выполнения этих функций в состав «Решателя» входит набор специальных инструментальных средств.

4. Недостатки

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

· работа только с четкой логикой;

· описание объектов на уровне экземпляров, а не на уровне классов;

· отсутствие поддержки наследования;

· поддержка только прямого логического вывода.

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

5. Достоинства

К достоинствам ЭССУ «Решатель» следует отнести довольно неплохой баланс «функциональность - простота», что позволяет эффективно использовать его именно на начальном этапе обучения системному мышлению и принятию решений. Эксперементальные исследования, проведенные на нескольких группах студентов (ВВ -ХХ - 98), свидетельствуют о повышении качества усвоения учебного материала при практической поддержке ЭССУ «Решатель».

6.Состав

Как программный комплекс, ЭССУ «Решатель» состоит из следующих компонентов:

· Модуля интеграции и управления (МИУ);

· Блока формализации знаний (БФЗ), состоящего из следующих модулей:

- Редактор условия задачи (РУЗ);

- Редактора объектов предметной области (РОБ);

- Редактора отношений между объектами (РОТ);

- Редактора базы правил (РБП);

- Редактора моделей ситуаций (РМС);

- Модуля просмотра базы знаний (МПБЗ);

· Блока организации и проведения логического вывода (БОПЛВ), в который входят:

- Редактор стратегий управления правилами (РСУП);

- Анализатор ситуаций (АС);

- Модуль проведения прямого логического вывода (МПЛВ);

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

- МДБО - модуль доступа к базе объектов (БО);

- МДБОТ - модуль доступа к базе отношений (БОТ);

- МДБП - модуль доступа к базе правил (БП);

- МДМС - модуль доступа к модели ситуации (МПС – модель проблемной ситуации, МТС – модель текущей ситуации, МЦС – модель целевой ситуации, БФ - база факторов).

Взаимодействие компонентов «Решателя» можно представить себе, воспользовавшись структурной схемой, приведенной на рисунке 1.

Далее будут описаны основные модули и рассмотрена работа с лабораторным комплексом в целом.

7. Описание программных модулей

7.1. Модуль Интеграции и Управления

7.1.1. Назначение МИУ и выполняемые функции

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

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

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

- выводит диагностические сообщения пользователю;

- отвечает за хранение пользовательских баз знаний во внешней памяти;

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

7.1.2. Описание интерфейса МИУ

МИУ имеет пользовательский интерфейс, который представляет собой главное окно «Решателя». Внешний вид этого окна представлен на рисунке №2.

Данное окно содержит текстовое поле для вывода диагностических сообщений пользователю и полосу меню для доступа к инструментам «Решателя». Меню «Проект» содержит пункты для сохранения, загрузки и слияния баз знаний. Меню «Инструменты» предоставляет доступ к средствам разработки баз знаний и настройки логического вывода таким, как: редактор условия задачи, радактор объектов предметной области, редактор отношений между объектами, редактор базы правил, редактор базы факторов, редактор стратегий управления правилами. Меню «Ситуация» содержит пункты, позволяющие сохранять, загружать и анализировать проблемные ситуации. Отсюда можно вызвать анализатор ситуаций. Меню «Просмотр» позволяет вывести созданную базу знаний для просмотра в структурированной текстовой форме. Меню «Опции» позволяет осуществить настройку формы диалога при анализе ситуации и форму представления результатов анализа. Меню «?» позволяет посмотреть краткие сведения о назначении программы и ее авторах.

7.2. Блок Формализации Знаний

7.2.1. Редактор Условия Задачи

7.2.1.1. Назначение РУЗ

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

7.2.1.2. Описание интерфейса РУЗ

Интерфейс РУЗ представлен на рисунке 3.

Приведенное на данном рисунке окно РУЗ демонстрирует постановку задачи для оценки дефицита кадров в сфере бытового обслуживания города и выработки рекомендаций по его устранению, на которой в дальнейшем будет иллюстрироваться работа модулей «Решателя». С полным текстом базы знаний для решения данной задачи можно ознакомится в разделе 8.

Окно содержит текстовое поле ввода, опцию включения-выключения автоматического переноса слов, и кнопку «Готово» для закрытия окна после описания задачи.

7.2.2. Редактор Объектов предметной области

7.2.2.1. Назначение РОБ

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

7.2.2.2. Понятие объекта

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

7.2.2.3. Представление объектов в «Решателе»

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

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

8.2.2.4 Формат базы объектов

Получаемая в результате работы с РОБ база объектов, представляет собой множество ИСт следующего вида:

…………

<Имя_Объекта N>

<Имя_Свойства 1>

<Тип_Свойства>

<Область_значений>

(значение1,…, значение M)

<Значение_поумолчанию>

…………….

<Имя_Свойства K>

………….

Где имя объекта и имя свойства представляют собой любые символьные последовательности. Единственное исключение - в имени объекта запрещается использование точки, т.к. этот символ является служебным и применяется в имени фактора для отделения имени объекта от имени свойства. В «Решателе» свойства объектов могут принимать значения трех типов: числового, строкового и логического. При этом в числовой тип входят как целые, так и вещественные числа со знаком. По умолчанию область значений каждого добавляемого свойства не ограничена, однако на практике полезно ограничивать ее некоторым перечисляемым множеством. Это облегчит в дальнейшем процессы создания базы правил и описания моделей проблемной и целевой ситуаций. Для каждого свойства также может быть назначено значение по умолчанию.

7.2.2.5. Описание интерфейса РОБ

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

На рисунке 4 показан вид редактора объектов для рассматриваемой демонстрационной задачи. Из списка объектов выбран объект «Прачечная района 1» и показано его описание через свойства.

7.2.2.6. Работа с РОБ

Добавление объектов

Чтобы добавить объект, необходимо:

· набрать его имя в поле ввода, расположенном под списковой рамкой имен объектов;

· нажать кнопку «Добавить», находящуюся чуть ниже поля ввода.

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

Примечание:

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

Добавление свойств

Добавление свойств происходит аналогично добавлению объектов:

· в поле ввода, расположенном под списковой рамкой свойств, необходимо ввести имя добавляемого свойства;

· нажать кнопку «Добавить», расположенную внизу экранной формы редактора, под полем ввода имени свойства.

После этого программа запросит тип добавляемого свойства.

Присваивание свойствам значений по умолчанию

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

· выбрать это свойство в списке свойств;

· нажать кнопку «Обозначить»;

· в появившемся диалоговом окне ввести нужное значение в соответствии с типом свойства.

При вводе вещественных чисел необходимо иметь ввиду, что в качестве символа, отделяющего дробную часть от целой, используется точка. Значения строкового типа следует вводить без кавычек, а значения логического типа могут иметь три формы представления: 1 / 0; истина / ложь; true / false. При вводе значений программа контролирует соответствие типов и не позволит ввести значение, не совпадающее с типом обозначаемого свойства.

Удаление объектов

Чтобы удалить некоторый объект, необходимо:

· выбрать его из списка существующих объектов;

· нажать кнопку «Удалить», расположенную внизу экранной формы, под полем ввода имен объектов.

Примечание

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

Копирование объектов с новым именем

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

Удаление свойств

Удаление свойств происходит аналогично удалению объектов:

· необходимо выбрать имя свойства в списке свойств;

· нажать кнопку «Удалить», расположенную внизу экранной формы редактора, под полем ввода имен свойств.

Примечание

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

Переименование свойств и объектов

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

Изменения типа свойства

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

Задание области значений свойства

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

Данное окно состоит из текстового поля ввода значений, списка, содержащего перечисляемые значения данного свойства и кнопок редактирования этого списка. Чтобы добавить новое значение в область значений необходимо ввести его в поле ввода и нажать кнопку «Добавить значение». Чтобы удалить значение из области, необходимо выбрать его из списка и нажать кнопку «Удалить значение».

7.2.3. Редактор отношений между объектами.

7.2.3.1. Назначение РОТ

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

7.2.3.2. Понятие отношения

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

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

7.2.3.3. Представление отношений в «Решателе»

При описании концептуальной модели предметной области, посредством РОТ в «Решателе» можно создавать n-мествые четкие отношения между объектами. Получающиеся в результате отношения, имеют следующее представление.

R(t1, t2, …, tn); n Î {1…m},

где:

- R - предикатный символ, обозначающий имя отношения;

- tn - термы, являющиеся именами соотносимых объектов;

- m - соответствует общему количеству существующих объектов в данной задаче.

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

7.2.3.4. Формат базы отношений

В результате работы с РОТ получается совокупность ИСт, которые составляют базу отношений. Эти ИСт имеют следующую структуру.

<Имя_отношения>

<Список_соотносимых_объектов>

(объект1,…,объектN)

<Значение_поумолчанию>

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

7.2.3.5. Интерфейс РОТ

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

7.2.3.6. Работа с РОТ

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

Добавление отношений

Чтобы добавить отношение необходимо выполнить следующую последовательность действий:

· напечатать имя добавляемого отношения в поле ввода имени отношения;

· поместить соотносимые объекты в поле ввода объектов, для чего необходимо удерживая клавишу «Ctrl», отметить объекты в требуемой последовательности при помощи левой кнопки мышки;

· нажать кнопку «Добавить».

Созданное отношение появится в списке установленных отношений.

Примечание

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

Удаление отношений

Чтобы удалить отношение необходимо:

· выбрать требуемое отношение в списке установленных отношений;

· нажать кнопку «Удалить».

Примечание

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

Присваивание значений по умолчанию

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

7.2.4. Редактор Базы Правил

7.2.4.1. Назначение

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

7.2.4.2. Выполняемые функции

РБП предназначен для выполнения следующих функций:

- предоставления средств для создания и модификации продукционной базы правил;

- автоматического поиска недоопределенных правил и предоставления помощи в их доопределении;

- автоматического «связывания» отдельных правил в базе с целью повышения скорости логического вывода.

7.2.4.3. Понятие правила

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

7.2.4.4. Типы правил

«Решатель» работает с правилами двух типов, которые благодаря принятому при разработке «Решателя» внутреннему соглашению называются:

· правилами-действиями;

· вспомогательными правилами.

Различные типы правил по-разному обрабатываются механизмом логического вывода.

Правила-действия

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

Вспомогательные правила

Правила данного типа отслеживают взаимосвязи между отдельными факторами и не являются решениями. При помощи вспомогательных правил можно автоматически изменять значения одних факторов, при изменении других. Приведем отвлеченный пример. Пусть у нас есть ведро, которое характеризуется общим объемом, текущим наполнением и свободным объемом. Тогда при помощи вспомогательного правила можно автоматически уменьшить значение свободного объема после выполнения действия «Долить», увеличивающего наполнение ведра. Если значение некоторого отношения может быть определено через значения свойств, то для этого необходимо использовать вспомогательное правило. Например, может быть сформулировано следующее вспомогательное правило: если координаты ящика и обезьяны не совпадают, то обезьяна не рядом с ящиком.

Форматы вспомогательных правил и правил-действий немного различаются. Рассмотрим их по отдельности.

7.2.4.5. Форматы правил

Формат правил-действий

Информационная структура правила-действия имеет следующий формат:

· Имя правила;

· ЕСЛИ (левая часть правила):

· Конъюнкт №1:

· Фактор, или константа 1;

· Математическое отношение;

· Фактор, или константа 2;

· Конъюнкт №2:

· ....

· ....

· Конъюнкт №N:

· ....

· ТО (правая часть правила):

· Операция № 1:

· Место хранения результата операции;

· Имя математической операции;

· Список операндов;

· Операция № 2:

· ....

· ....

· Операция № N:

· ....

· Дополнительные характеристики правила:

· Приоритет;

· Заключение правила;

· Локальные переменные правила.

Формат вспомогательных правил

Информационная структура вспомогательного правила выглядит так:

· Имя правила;

· ЕСЛИ (левая часть правила):

· Конъюнкт №1:

· Фактор, или константа 1;

· Математическое отношение;

· Фактор, или константа 2;

· Конъюнкт №2:

· ....

· ....

· Конъюнкт №N:

· ....

· ТО (правая часть правила):

· Операция № 1:

· Место хранения результата операции;

· Имя математической операции;

· Список операндов;

· Операция № 2:

· ....

· ....

· Операция № N:

· ....

· ИНАЧЕ (альтернативная правая часть правила):

· Операция № 1:

· Место хранения результата операции;

· Имя математической операции;

· Список операндов;

· Операция № 2:

· ....

· ....

· Операция № N:

· ....

· Дополнительные характеристики правила:

· Приоритет;

· Заключение правила;

· Локальные переменные правила.

Рассмотрим назначение отдельных слотов в ИСт правил.

Имя правила

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

Предусловие правила

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

(k1 & k2 &...& kn) v…v (kn+1 & k n+2 &...& k n+m)

Иными словами, предусловие это логическая функция, представленная в виде ДНФ, где каждое ki - элементарный конъюнкт предусловия, тоже является логической функцией. Совокупность элементарных конъюнктов, объединенных по «и», представляет собой элементарный дизъюнкт. В каждом конъюнкте проверяется некоторое математическое неравенство (или равенство). Значение ki равно значению истинности математического отношения, проверяемого в нем. Иными словами, ki имеет вид:

(x1 rel x2),

где x1,x2 - имена факторов, или константы, а rel - проверяемое математическое отношение.

Всего могут быть использованы шесть математических отношений: >, <, =>, <=, =, < >.

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

Правая часть правила

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

Место хранения результата операции := имя операции (аргумент1, аргумент2, ... , аргументN).

Если имя операции опустить и задать всего один аргумент, то получится операция присвоения. Например, y:=(1). Указанный выше формат операции вида y:=+(x,a,b,c) эквивалентен записи вида у:=x+a+b+c, поэтому выполнение операции будет происходить следующим образом: сначала выполнится операция между первым и вторым аргументами, потом - между полученным результатом и третьим аргументом и т.д. В конце концов, результат операции над несколькими аргументами будет помещен в указанное место. В качестве места хранения результата операции может фигурировать имя фактора в МТС (т.е. имя свойства или отношения), или имя локальной переменной правила (см. далее). В качестве операций в правой части правила может быть использована одна из следующих:

· сложение (+);

· вычитание (-);

· умножение (*);

· деление (/);

· получение целой части частного (//);

· получение остатка от деления (\\);

· получение абсолютной величины (abs);

· основные тригонометрические функции (sin, cos, tg, ctg, arcCos, arcSin, arcTg);

· основные логарифмические функции (Log2, Log10, Ln);

· степенные функции (sqrt, e^x, x^y);

· операция округления до целого (round);

· операция преобразования числа в строку (str);

· конъюнкция (И);

· дизъюнкция (ИЛИ);

· отрицание (НЕ);

· операция печати значения фактора или константы (print).

Аргументами операций могут быть как имена факторов, так и имена локальных переменных, или просто константы.

Отличие форматов вспомогательных правил от правил-действий в том, что вспомогательные правила могут иметь две правых части. Это обусловлено тем, что вспомогательные правила должны иметь возможность срабатывать одним способом в случае выполнения предусловия, и другим способом в случае его невыполнения. Для обеспечения этой возможности в структуре вспомогательных правил предусмотрено поле «ИНАЧЕ», в котором хранится альтернативная правая часть. Если грамотно использовать эту особенность вспомогательных правил, то в некоторых задачах их число может быть уменьшено в 2 раза.

Например, можно написать два вспомогательных правила:

1) ЕСЛИ (Ящик.координаты = Бананы.координаты)

ТО Под(Ящик, Бананы):=Истина;

2) ЕСЛИ (Ящик.координаты < > Бананы.координаты)

ТО Под(Ящик, Бананы):=Ложь.

Или, можно написать одно эквивалентное им правило:

1) ЕСЛИ (Ящик.координаты = Бананы.координаты)

ТО Под(Ящик, Бананы):=Истина

ИНАЧЕ Под(Ящик, Бананы):=Ложь.

Дополнительные характеристики правил

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

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

В «Решателе» значение наивысшего приоритета равно нулю.

Заключение правила

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

Локальные переменные правила

Локальные переменные предназначены для организации многошаговых вычислений в правой части правила. Например, пусть в правой части правила необходимо вычислить следующее выражение a:=(b + c + d)/e. Упрощенная запись операций не позволяет сделать это непосредственно. Однако, если использовать локальную переменную, то данное выражение можно вычислить по действиям. Допустим, что мы завели локальную переменную «x», тогда процесс вычисления выражение распадается на 2 шага, которые в правой части правила будут записаны следующим образом:

x:= +(b, c, d);

a:= /(x, e)

Локальные переменные имеют смысл только внутри конкретного правила. Локальные переменные одного правила не доступны и правой части другого.

7.2.4.6. Описание интерфейса РБП

Редактор правил может быть вызван из меню «Инструменты» главного окна «Решателя» только если в базе знаний существует хотя бы один факт (описано хотя бы одно свойство или отношение). Запуск РБП может осуществляться с проверкой базы правил на целостность или без таковой. Если проверка показывает, что в базе правил существуют недоопределенные правила, то вместе с основным окном РБП откроется дополнительное окно, содержащее имена проблемных правил и описание обнаруженных проблем. Оконные формы редактора правил представлены на рисунках 7 -11.

Главная оконная форма РБП содержит:

- полосу меню;

- список имен существующих в системе правил (в левой части окна);

- основную рабочую область редактора, разделенную по элементам редактирования на три страницы - для редактирования левой части правила, правой части правила и свойств правила;

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

Полоса меню РБП содержит пункты, позволяющие выполнять такие операции, как:

- добавление, удаление, переименование правил;

- копирование правил с новым именем;

- просмотр отдельных правил и базы в целом в виде структурированного текста (см. рис. 11);

- управление содержанием списка имен в зависимости от типа правил;

- поиск недоопределенных правил;

-

«связывание» и разъединение правил.

На рисунке 7 показана страница «Левая часть», предлагающая средства для редактирования предусловия. Она содержит 3 поля ввода для задания соотносимых факторов конъюнкта и задания проверяемого математического отношения. Напротив каждого поля ввода расположена кнопка '…', посредством которой можно выбирать элементы (имена факторов, константы, математические отношения) для занесения их в соответствующие поля (см. рис. 10). Поля ввода, кнопки выбора и кнопки выполнения операций над конъюнктами (добавление, удаление, изменение) объеденены в группу «Конъюнкт предусловия». Под этой группой располагается списковая рамка, в которой изложено содержание правила в виде отдельных конъюнктов и их объединений в дизъюнкты.

На рисунке 8 приведена страница «Правая часть». На этой странице в группу «Операция» объеденены элементы управления, аналогичные элементам группы «Конъюнкт предусловия» страницы «Левая часть», но ориентированные на описание операций над объектами предметной области. Сразу под этой группой находятся кнопка переключения альтернативных правых частей, активная в случае редактирования вспомагательного правила, и кнопка, вызывающая служебной окно, предназначенное для создания и удаления локольных переменных. Ниже находится списковая рамка, содержащая множество существующих в данном правиле операций. Справа от этого списка находятся кнопки управления местоположением операции, т.е. очередностью ее выполнения в случае срабатывания правила. Снизу от этого списка находится поле ввода для описания заключения правила.

На рисунке 9 показано содержание страницы «Свойства правила». Она содержит элементы управления для определения типа создаваемого правила и его приоритета.

7.2.4.7. Работа с РБП

Создание правил

Чтобы создать новое правило необходимо:

· нажать кнопку «Добавить»;

· в появившемся диалоговом окне ввести имя нового правила и нажать «Ок».

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

Любые изменения, производимые в структуре правил фиксируются редактором автоматически, поэтому в РБП нет кнопки «ОК», или ее аналога, которая использовалась бы для подтверждения запоминания сделанных в правиле изменений.

Изменение типа правила

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

Описание заключения правила

На следующем шаге создания правила рекомендуется описать его смысл ввиде формируемого правилом заключения. Заключение будет выводиться пользователю в качестве комментария-объяснения к срабатывающим правилам-действиям. Поэтому необходимо описывать заключение правил максимально подробно и понятно. Правила с неописанной семантикой счиаются недоопределенными, а база правил с недоопределенными правилами - недоделанной. Логический вывод не недоделанной базе правил проводить нельзя.

Описание предусловия правила

Как было сказано ранее, предусловие правила состоит из элементарных конъюнктов и дизъюнктов. Для добавления конъюнкта в предусловие необходимо:

· заполнить поля факторов;

· поле метематического отношения;

· нажать кнопку «Добавить», расположенную внутри соотетстующей группирующей рамки.

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

Вводимая информация автоматически контролируется РБП на соответствие типов.

Для удаления конъюнкта из предусловия необходимо:

· выбрать его из списка конъюнктов предусловия;

· нажать кнопку «Удалить», расположенную внутри соответствующей группирующей рамки.

Для удаления диъюнкта из предусловия необходимо:

· выбрать символ диъюнкции, предшествующий удаляемому дизъюнкту, из списковой рамки левой части;

· нажать кнопку «Удалить», расположенную внутри соответствующей группирующей рамки.

Описание правой части правила

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

· заполнить поле результата;

· заполнить поле имени операции;

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

Для удаления операции из правой части необходимо:

· выбрать ее из списка операций постусловия;

· нажать кнопку «Удалить», расположенную внутри соответствующей группирующей рамки.

Особенности создания вспомогательных правил

Всопогательные правила могут содержать две правых части. Для переключения между ними в процессе редактирования правила необходимо пользоваться кнопкой «ИНАЧЕ / ТО».

Локальные переменные

Чтобы определить или удалить в правиле локальную переменную, необходимо нажать кнопку «ПЕРЕМЕННЫЕ». Появившееся окно содержит список объявленных к текущему моменту переменных. Далее для добавления переменной необходимо нажать кнопку «Добавить», для удаления - выбрать переменную из списка и нажать кнопку «Удалить». При удалении переменной будут также удалены все операции, в которых она участвует.

Удаление правила

Чтобы удалить правило, достаточно нажать соответствующую кнопку в правом нижним углу РБП.

7.2.5. Редактор моделей ситуаций.

7.2.5.1. Назначение

Непосредственно перед проведением логического вывода, содержимое базы объектов и базы отношений будет трансформировано в модели проблемной, текущей и целевой ситуаций, и помещено в рабочую базу данных. Процесс трансформации будет выполнен «Решателем» автоматически, но прежде, чем эти модели будут использоваться в процессе логического вывода, они должны быть соответствующим образом настроены. Для этого в «Решателе» существует редактор моделей ситуаций.

7.2.5.2. Понятие ситуации

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

Факторы - это элементарные переменные, описывающие лишь маленький фрагмент ситуации. Каждый фактор представляет собой либо имя некоторого отношения, либо пару <Имя_объекта.Имя_свойства>. Для каждого фактора может быть указана роль, которую он играет в решении задачи. Это может быть определяющая роль, если фактор используется для описаниия проблемной или целевой ситуации, а также роль некоторой вспомогательной переменной или константы - в противном случае. Наблюдение вспомогательных факторов вперемешку с определяющими при описании МПС и МЦС будет только мешать. Поэтому для процесса анализа проблемных ситуаций будет лучше, если вспомогательные факторы будут скрыты для пользователя. Также полезно отделять факторы, которые участвуют только в описании МПС от тех, которые участвуют только в описании МЦС.

7.2.5.3. Функции РМС

РМС выполняет следующие функции:

- определение факторов, участвующих в описании МПС;

- определение факторов, участвующих в описании МЦС;

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

7.2.5.4. Форматы моделей ситуации

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

1) ИСт базы объектов

…………

<Имя_Объекта N>

<Имя_Свойства 1>

<Тип_Свойства>

<Область_значений>

(значение1,…, значение M)

<Значение_поумолчанию>

<Роль>

<Вопрос>

…………….

<Имя_Свойства K>

………….

2) ИСт базы отношений

…………

<Имя_отношения N>

<Список_соотносимых_объектов>

(объект1,…,объектM)

<Значение_поумолчанию>

<Роль>

<Вопрос>

……….

А ИСт модели ситуации состоит из записей вида:

……….

<Имя_фактора>

<Тип_фактора>

<Математическое_отношение>

<Значение>

………

Как только поля <Математическое_отношени> и <Значение> получают свою интерпретацию, то получается та или иная модель ситуации.

7.2.5.5. Интрерфейс РМС

Внешний вид окна РМС представлен на рисунке 12. Данное окно имеет следующие элементы управления:

- cписковая рамка содержит имена фактов и поддерживает множественный выбор;

- кнопки для отнесения факторов к той или иной категории;

- кнопка для определения задаваемого вопроса;

- кнопкп «Готово» для закрытия окна.

7.2.5.6. Работа с РМС

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

7.2.6. Модуль просмотра базы знаний

7.2.6.1. Назначение

МПБЗ предназначен для просмотра всей созданной базы знаний в структурированном текстовом виде.

7.2.6.2. Выполняемые функции

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

7.2.6.3. Описание интерфейса МПБЗ

Интерфейс МПБЗ очевиден, и в дополнительных комментариях не нуждается.

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

На данном рисунке виден фрагмент базы знаний.

7.2.7. Редактор стратегий управления правилами

7.2.7.1. Понятие стратегии управления правилами

В процессе логического вывода могут возникать моменты, когда к одной и той же ситуации могут быть применены несколько правил-действий. Такая ситуация называется конфликтной, потому, что не ясно, какое именно правило необходимо применить. Для разрешения конфликта необходимо использовать дополнительные знания о предметной области, правилах, ситуациях, и процессе логического вывода в целом. На основе этих дополнительных знаний строятся стратегия разрешения конфликтов среди правил-действий и стратегия управления вспомагательными правилами. Задача стратегии разрешения конфликтов состоит в том, чтобы из множества конфликтующих правил-действий выбрать то, по которому процесс логического вывода пойдет далее. Задача стратегии управления вспомагательными правилами состоит в том, чтобы установить порядок последовательного срабатывания правил данного типа. Понятие стратегии в «Решателе» интерпретируется как набор конкретных процедур (по большей части эвристических) и последовательность их применения. При обработке правил-действий процедуры срабатывают одна за другой, в заданной последовательности, постепенно сужая множество конфликтующих правил при помощи критериев отбора, используемых внутри процедур. Для управлении вспомагательными правилами на данный момент используется упрощенная стратегия. Она может состоять только из одной процедуры.

7.2.7.2. Назначение РСУП

РСУП предназначен для:

- определения стратегии разрешения конфликтов между правилами-действиями;

- определения стратегии управления вспомагательными правилами;

- реализация перечисленных стратегий в процессе логического вывода.

7.2.7.3.Состав РСУП

Как программный модуль РСУП состоит из двух компонент более низкого уровня:

- редактора, при помощи которого осуществляется подбор стратегии управления правилами под конкретную задачу;

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

7.2.7.4. Реализуемые стратегии управления правилами

Для разрешения конфликтов среди правил-действий на данный момент реализованы следующие процедуры:

· «Высший приоритет» - из конфликтующего множества выбирается подмножество правил, обладающее максимально высоким приоритетом.

· «Длиннейшее предусловие» - из конфликтующего множества выбирается подмножество правил, обладающее максимальным числом конъюнктов в сработавшем дизъюнкте левой части. Считается, что чем более конъюнктов входит в дизъюнкт, тем больше нюансов ситуации он учитывает, а следовательно больше вероятность, что именно данное правило приведет к целевой ситуации.

· «Еще не использованные» - из конфликтующего множества выбирается подмножество правил, которые еще не использовались в текущем сеансе логического вывода.

· «Часто используемые» - из конфликтующего множества выбирается подмножество правил, которые использовались в текущем сеансе логического вывода чаще всего.

· «Редко используемые» - из конфликтующего множества выбирается подмножество правил, которые использовались в текущем сеансе логического вывода реже всего.

· «Приближающие к цели» - из конфликтующего множества выбирается подмножество правил, применение которых приведет к ситуации максимально похожей на целевую. «Похожесть» оценивается при помощи расстояния Хэмминга. Чем оно меньше, тем две ситуации более похожи друг на друга.

· «Не приводящие к ситуации» - из конфликтующего множества выбирается подмножество правил, которые не приводят к запрещенным ситуациям. Данная стратегия подразумевает предварительное описание запрещенных ситуаций.

· «Выбрать первое правило» - из конфликтующего множества выбирается первое правило.

· «Выбрать последнее правило» - из конфликтующего множества выбирается последнее правило.

· «Выбрать случайное правило» - из конфликтующего множества выбирается случайное правило.

· «Не приводящие к циклам» - из конфликтующего множества выбираются правила, которые не приводят к ситуациям, уже возникавшим ранее на текущем сеансе логического вывода. При этом используется буфер расчитанный на 50 ситуаций.

Использование процедуры «Не приводящие к ситуации» подразумевает ее предварительную настройку. Настройка заключается в описании шаблонов запрещенных ситуаций. Данная процедура может отслеживать N запрещенных ситуаций одновременно.

Для управления вспомагательными правилами существуют следующие альтернативные процедуры:

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

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

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

7.2.7.5. Описание интерфейса РСУП

Интерфейс РСУП представлен на рисунках 14,15,16.

На рисунке 14 представлена панель редактора для настройки стратегии разрешения конфликтов среди правил-действий; на рис. 15 - панель для настройки стратегии управления вспомагательными правилами; на рис. 16 - окно настройки процедуры разрешения конфликтов «Не приводящие к ситуации».

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

· списковую рамку с именами известных РСУП процедур разрешения конфликтов, которая находится в левой панели;

· списковую рамку, расположенную в верхней правой части панели, и содержащую имена установленных процедур, из которых состоит текущая стратегия;

· набор кнопок, позволяющих выполнять различные операции над процедурами.

На рисунке 15 изображена панель с группой радио-кнопок для выбора альтернативных процедур управления вспомагательными правилами.

Экранная форма на рисунке 16 содержит:

· списковую рамку с именами запрещенных ситуаций - в левом верхнем углу;

· списковую рамку с описанием конкретной запрещенной ситуации через имена и значения факторов - по центру экранной формы;

· кнопку-счетчик с именами математических отношений;

· поле ввода значения факта с кнопкой выбора возможных значений справа от него;

· кнопки присвоения и сброса значений фактов;

· кнопку «Готово!», закрывающую окно настройки.

7.2.7.6. Работа с РСУП

Добавление процедуры в стратегию разрешения конфликтов правил-действий

Чтобы добавить некоторую процедуру в стратегию разрешения конфликтов необходимо:

· выбрать имя необходимой процедуры из списка существующих процедур;

· нажать кнопку «>«, находящуюся между списковыми рамками;

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

· если после добавления процедуры станет активна кнопка «Настроить» это означает, что для того, чтобы процедура могла работать, она должна быть настроена.

Примечание

Чем процедура в списке установленных процедур стоит выше, тем раньше она будет выполнена в процессе работы стратегии.

Удаление процедуры из стратегии

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

· выбрать процедуру из списка установленных процедур;

· нажать кнопку «<«, расположенную между двумя списковыми рамками.

Примечание

Если удаляется процедура, которая уже настроена, то вместе с ее удалением пропадет и ее настройка.

Определение запрещенных ситуаций для процедуры «Неприводящие к ситуации»

Чтобы добавить новую запрещенную ситуацию (см. рис. 16) необходимо:

· нажать кнопку «Добавить ситуацию», после чего в списке запрещенных ситуаций появится имя новой ситуации в формате «СитуацияM», где M - номер ситуации, а в центральной списковой рамке появится пустой шаблон ситуации, заданный посредством имен факторов;

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

· выбрать имя фактора из центральной списковой рамки;

· установить необходимое математическое отношение при помощи кнопки-переключателя;

· в поле ввода, расположенное ниже центральной списковой рамки, ввести значение, с которым будет сравниваться выбранный фактор;

· нажать кнопку «Задать значение».

Кнопка «Сбросить значение» позволяет отказаться от отслеживания значения фактора в указанной запрещенной ситуации.

Удаление запрещенных ситуаций

Чтобы удалить некоторую запрещенную ситуацию из списка необходимо:

· выбрать ситуацию из списка запрещенных ситуаций;

· нажать кнопку «Удалить»

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

7.2.8. Анализатор ситуаций

7.2.8.1. Назначение АС

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

7.2.8.2. Описание интерфейса

В зависимости от настроек, произведенных в МИУ (см. рис17), интерфейс АС может принимать две формы (см. рис 18,19).

На рис. 18 показана форма, предназначенная для вопрос-ответного режима конкретизации МПС и МЦС. Данный вариант диалога не перегружает пользователя большим количеством единовременно выводимой на экран информации, отличается простотой организации, и возможностью формулировать содержательные вопросы к пользователю относительно значений факторов. Однако, при больших моделях ситуаций данный вариант опроса может занять много времени и утомить пользователя.

На рис. 19 приведена списковая форма опроса пользователя. Она отличается достаточно сложной организацией, однако предоставляет доступ сразу ко всем факторам МПС и МЦС, что резко повышает скорость конкретизации ситуаций по сравнению с предыдущим вариантом диалога.

7.2.9. Модуль проведения логического вывода

7.2.9.1.Назначение МПЛВ

МПЛВ предназначен для анализа проблемной ситуации и поиска пути ее перевода в целевую ситуацию методом прямого логического вывода.

7.2.9.2. Алгоритм работы МПЛВ

МПЛВ работает по следующему алгоритму.

1) Скопировать МПС во временную область памяти и сформировать, таким образом, МТС.

2) Считать из базы правил множество правил-действий.

3) Считать из базы правил множество вспомогательных правил и упорядочить его согласно приоритетам.

4) Начало цикла перебора упорядоченного множества вспомогательных правил в соответствии со стратегией управления.

5) Взять очередное вспомогательное правило и проверить МТС на соответствие предусловию этого правила.

6) Если предусловие выполняется, то применить правую часть вспомогательного правила к МТС.

7) Если предусловие не выполняется и у вспомагательного правила есть альтернативная правая часть, то применить ее к МТС.

8) Конец цикла перебора вспомогательных правил. Если перебрано все множество вспомогательных правил, то перейти к пункту 9, иначе вернуться к пункту 6.

9) Проверить МТС после применения вспомогательных правил на совпадение с МЦС. Если целевая ситуация достигнута, то закончить вывод.

10)Начало цикла перебора правил-действий.

11)В соответствии с наличием, или отсутствием внутренних связей между правилами, взять очередное правило-действие и проверить МТС на соответствие предусловию этого правила.

12)Если предусловие выполняется, то добавить данное правило в конфликтующее множество.

13)Конец цикла перебора правил-действий. Если перебрано все множество правил-действий, то перейти к пункту 14, иначе вернуться к пункту 11.

14)Если конфликтующее множество оказалось пусто, то это означает, что существуют ситуации, на которые система не знает как реагировать, т.е. база правил не полна. Это является признаком останова процесса вывода.

15)Если конфликтующее множество не пусто, то передать его вместе с описанием МПС и МТС в РСУП.

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

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

18)Применить выбранное правило-действие к МТС, т.е. выполнить операции, содержащиеся в его правой части.

19)Проверить МТС после на совпадение с МЦС. Если целевая ситуация достигнута, то закончить вывод. Иначе прейти к пункту 4

20)Конец алгоритма вывода. Вывести результаты анализа ситуации на экран.

Отчет о проведения логического вывода в соответствии с формой, определяемой настройками в МИУ (см. рис. 20), предъявляются пользователю (см. рис 21).

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

8. Описание базы знаний для задачи «Дефицит кадров в сфере бытового обслуживания населения»

8.1.Постановка задачи

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

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

8.2. Описание концептуальной модели

Основа Базы Знаний - это концептуальная модель предметной области которая формализуется следующим образом:

Мпо = {X, C, R, G}, где:

X - множество объектов предметной области;

C - множество существенных свойств всех объектов;

R - множество существенных отношений между объектами

G - множество возможных решений.

G = { ПрогнозПоПарикУсл,

ПрогнозПоУслПрач,

ПрогнозПоУслРемОб,

ПрогнозПоУслХимч,

РекомендацииСформированы?,

Реком3ПоПарикУсл,

Реком3ПоУслПрач,

Реком3ПоУслРемОб,

Реком3ПоУслХимч,

Реком4ПоПарикУсл,

Реком4ПоУслПрач,

Реком4ПоУслРемОб,

Реком4ПоУслХимч,

7.1.Реком1ПоПарикУслРн1,

7.2.Реком1ПоПарикУслРн2,

7.3.Реком1ПоУслПрачРн1,

7.4.Реком1ПоУслПрачРн2,

7.5.Реком1ПоУслРемОбРн1,

7.6.Реком1ПоУслРемОбРн2,

7.7.Реком1ПоУслХимчРн1,

7.8.Реком1ПоУслХимчРн2,

8.1.Реком2ПоПарикУслРн1,

8.2.Реком2ПоПарикУслРн2,

8.3.Реком2ПоУслПрачРн1,

8.4.Реком2ПоУслПрачРн2,

8.5.Реком2ПоУслРемОбРн1,

8.6.Реком2ПоУслРемОбРн2,

8.7.Реком2ПоУслХимчРн1,

8.8.Реком2ПоУслХимчРн2 }

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

X = { Мастерская по ремонту обуви района2,

Парикмахерская №1 района1,

Парикмахерская №2 района1,

Парикмахерская района2,

Прачечная района1,

ПТУ работников бытового обслуживания,

Район1,

Район2,

Решение,

Рынок бытовых услуг,

Рынок труда,

Субъект управления,

Услуга Парикмахерская,

Услуга Ремонт обуви,

Услуга Стирка белья,

Услуга Химическая чистка,

Химчистка района2 }

Существующие объекты Х описываются через свойства следующим образом:

Все объекты, которые можно отнести к классу «Предприятие бытового обслуживания», характеризуются следующими свойствами:

- рабочая неделя; Множество значений: {Все действительные числа }

- объем вакансий; Множество значений: {Все действительные числа }

- потребность в специалистах; Множество значений: {Все действительные числа }

- возможный объем оказываемых услуг; Множество значений: {Все действительные числа }

- вид услуг; Множество значений: { ремонт обуви, стирка белья, стрижка, чистка }

- уровень квалификации специалистов; Множество значений: { высокий, низкий, средний }

- посещаемость; Множество значений: {Все действительные числа }

- число специалистов; Множество значений: {Все действительные числа }

- число рабочих мест; Множество значений: {Все действительные числа }

- среднее время оказания одной услуги; Множество значений: {Все действительные числа }

- потребность в рабочих местах; Множество значений: {Все действительные числа }

- стоимость одной услуги; Множество значений: {Все действительные числа }

- рабочее время; Множество значений: {Все действительные числа }

- обеспеченность специалистами; Множество значений: {Все действительные числа }

- обеспеченность рабочими местами; Множество значений: {Все действительные числа }

- максимальное число рабочих мест; Множество значений: {Все действительные числа }

Объект «ПТУ работников бытового обслуживания»:

- средний выпуск спец. по парик. услугам; Множество значений: {Все действительные числа }

- средний выпуск спец. по услугам стирки белья; Множество значений: {Все действительные

числа }

- средний выпуск спец. по услугам хим. чистки; Множество значений: {Все действительные

числа }

- средний выпуск спец. по услугам рем. обуви; Множество значений: {Все действительные

числа }

Объекты класса «Район»:

- потребность в услугах химической чистки; Множество значений:{Все действительные числа}

- потребность в услугах по ремонту обуви; Множество значений: {Все действительные числа }

- обеспеченность услугами химической чистки; Множество значений: {Все действительные

числа }

- потребность в услугах по стирке белья; Множество значений: {Все действительные числа }

- уровень доходов населения; Множество значений: {Все действительные числа }

- численность ищущих работу; Множество значений: {Все действительные числа }

- численность населения; Множество значений: {Все действительные числа }

- количество парикмахерских; Множество значений: {Все действительные числа }

- уровень безработицы; Множество значений: {Все действительные числа }

- уровень занятости; Множество значений: {Все действительные числа }

- нехватка специалистов по парикмахерским услугам; Множество значений: {Все

действительные числа }

- количество прачечных; Множество значений: {Все действительные числа }

- обеспеченность парикмахерскими услугами; Множество значений: {Все действительные

числа }

- нехватка специалистов по услугам стирки белья; Множество значений: {Все действительные

числа }

- норма обеспеченности услугами по стирке белья; Множество значений: {Все действительные

числа }

- обеспеченность услугами по стирке белья; Множество значений: {Все действительные числа }

- норма обеспеченности услугами химической чистки; Множество значений: {Все действительные числа }

- норма обеспеченности парикмахерскими услугами; Множество значений: {Все действительные числа }

- количество мастерских по ремонту обуви; Множество значений: {Все действительные числа }

- количество химчисток; Множество значений: {Все действительные числа }

- обеспеченность услугами по ремонту обуви; Множество значений: {Все действительные числа }

- норма обеспеченности услугами по ремонту обуви; Множество значений: {Все действительные числа }

- плотность населения; Множество значений: {Все действительные числа }

- потребность в парикмахерских услугах; Множество значений: {Все действительные числа }

- площадь; Множество значений: {Все действительные числа }

- численность трудоспособного населения; Множество значений: {Все действительные числа }

- нехватка специалистов по услугам ремонта обуви; Множество значений: {Все действительные числа }

- платежеспособность населения по бытовым услугам; Множество значений: {Все действительные числа }

- нехватка специалистов по услугам химической чистки; Множество значений: {Все действительные числа }

Объект «Решение»:

- шаг; Множество значений: {Все действительные числа }

- затраты на реализацию; Множество значений: {Все действительные числа }

Объект «Рынок бытовых услуг»:

- объем услуг стирки белья в районе1; Множество значений: {Все действительные числа }

- объем парикмахерских услуг в районе1; Множество значений: {Все действительные числа }

- объем услуг по ремонту обуви в районе1; Множество значений: {Все действительные числа }

- объем услуг стирки белья в районе2; Множество значений: {Все действительные числа }

- качество услуг стирки белья; Множество значений: { высокое, низкое, среднее }

- качество парикмахерских услуг; Множество значений: { высокое, низкое, среднее }

- качество услуг химической чистки; Множество значений: { высокое, низкое, среднее }

- объем парикмахерских услуг в районе2; Множество значений: {Все действительные числа }

- объем услуг химической чистки в районе1; Множество значений: {Все действительные числа}

- качество услуг по ремонту обуви; Множество значений: { высокое, среднее, низкое }

- объем услуг по ремонту обуви в районе2; Множество значений: {Все действительные числа }

- объем услуг химической чистки в районе2; Множество значений: {Все действительные числа}

- средняя стоимость предлагаемых услуг; Множество значений: {Все действительные числа }

Объект «Рынок труда»:

- прогнозируемый дефицит спец. по парик. услугам; Множество значений: {Все действительные числа }

- средняя текучесть кадров в сфере БО; Множество значений: {Все действительные числа }

- потребность района2 в спец. по услугам хим. чистки; Множество значений: {Все действительные числа }

- прогнозируемый дефицит спец. по ремонту обуви; Множество значений: {Все действительные числа }

- потребность района1 в спец. по услугам хим. чистки; Множество значений: {Все действительные числа }

- прогнозируемая численность спец. по услугам хим. чистки; Множество значений: {Все действительные числа }

- прогнозируемый дефицит спец. по услугам хим. чистки; Множество значений: {Все действительные числа }

- потребность района2 в спец. по услугам стирки белья; Множество значений: {Все действительные числа }

- объем предложений по услугам химической чистки; Множество значений: {Все действительные числа }

- прогнозируемая численность спец. по услугам стирки белья; Множество значений: {Все действительные числа }

- объем предложений по услугам стирки белья; Множество значений: {Все действительные числа }

- потребность района1 в спец. по услугам стирки белья; Множество значений: {Все действительные числа }

- прогнозируемая численность спец. по ремонту обуви; Множество значений: {Все действительные числа }

- прогнозируемый дефицит спец. по услугам стирки белья; Множество значений: {Все действительные числа }

- потребность района2 в спец. по ремонту обуви; Множество значений: {Все действительные числа }

- прогнозируемая численность спец. по парик. услугам; Множество значений: {Все действительные числа }

- объем предложений по ремонту обуви; Множество значений: {Все действительные числа }

- потребность района1 в спец. по ремонту обуви; Множество значений: {Все действительные числа }

- потребность района2 в спец. по парик. услугам; Множество значений: {Все действительные числа }

- потребность района1 в спец. по парик. услугам; Множество значений: {Все действительные числа }

- объем предложений по парикмахерским услугам; Множество значений: {Все действительные числа }

Объект «Субъект управления»:

- средства на развитие района; Множество значений: {Все действительные числа }

Объект «Услуга Парикмахерская»:

- норматив среднего времени выполнения; Множество значений: {Все действительные числа }

Объект «Услуга Ремонт обуви»:

- норматив среднего времени выполнения; Множество значений: {Все действительные числа }

Объект «Услуга Стирка белья»:

- норматив среднего времени выполнения; Множество значений: {Все действительные числа }

Объект «Услуга Химическая чистка»:

- норматив среднего времени выполнения; Множество значений: {Все действительные числа }

Для вспомагательных целей потребовалось установить следующие отношения между объектами:

R = { РекомендацииПоПарикмахерским(Район1),

РекомендацииПоПарикмахерским(Район2),

РекомендацииПоПарикмахерскимСУчетомПрогноза(Рынок труда),

РекомендацииПоПрачечным(Район1),

РекомендацииПоПрачечным(Район2),

РекомендацииПоПрачечнымСУчетомПрогноза(Рынок труда),

РекомендацииПоРемонтуОбуви(Район1),

РекомендацииПоРемонтуОбуви(Район2),

РекомендацииПоРемонтуОбувиСУчетомПрогноза(Рынок труда),

РекомендацииПоХимчисткам(Район1),

РекомендацииПоХимчисткам(Район2),

РекомендацииПоХимчисткамСУчетомПрогноза(Рынок труда),

Рекомендовано(Решение, Субъект управления) }

9.3. Описание базы правил

A) Правила, эквивалентные действиям над объектами предметной области:

A.1) ИМЯ ПРАВИЛА: «ПрогнозПоПарикУсл»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( ПТУ работников бытового обслуживания.средний выпуск спец. по парик.

услугам <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

текущееКоличСпец := Парикмахерская №1 района1.число специалистов +

+ Парикмахерская №2 района1.число специалистов + Парикмахерская

района2.число специалистов

текучесть := Рынок труда.средняя текучесть кадров в сфере БО *

* текущееКоличСпец

текучесть := текучесть / 100

текучесть := round (текучесть)

Рынок труда.прогнозируемая численность спец. по парик. услугам :=

:= текущееКоличСпец - текучесть

Рынок труда.прогнозируемая численность спец. по парик. услугам := Рынок

труда.прогнозируемая численность спец. по парик. услугам + ПТУ работников

бытового обслуживания.средний выпуск спец. по парик. услугам

print ()

print (По результатам прогноза общая численность специалистов по парик.

услугам ожидается равной ; Рынок труда.прогнозируемая численность

спец. по парик. услугам; чел.)

потребность := Рынок труда.потребность района1 в спец. по парик. услугам +

Рынок труда.потребность района2 в спец. по парик. услугам

Рынок труда.прогнозируемый дефицит спец. по парик. услугам := потребность -

Рынок труда.прогнозируемая численность спец. по парик. услугам

Рынок труда.прогнозируемый дефицит спец. по парик. услугам := round (Рынок

труда.прогнозируемый дефицит спец. по парик. услугам)

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 3

Локальные переменные: текучесть, потребность, текущееКоличСпец

Заключение: Проведена обработка результатов прогноза ожидаемой численности

специалистов по парик. услугам.

A.2) ИМЯ ПРАВИЛА: «ПрогнозПоУслПрач»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( ПТУ работников бытового обслуживания.средний выпуск спец. по услугам стирки белья <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

текущееКоличСпец := Прачечная района1.число специалистов

текучесть := Рынок труда.средняя текучесть кадров в сфере БО

* текущееКоличСпец

текучесть := текучесть / 100

текучесть := round (текучесть)

Рынок труда.прогнозируемая численность спец. по услугам стирки белья :=

текущееКоличСпец - текучесть

Рынок труда.прогнозируемая численность спец. по услугам стирки белья :=

Рынок труда.прогнозируемая численность спец. по услугам стирки белья + ПТУ работников бытового обслуживания.средний выпуск спец. по услугам стирки белья

print (По результатам прогноза общая численность специалистов по услугам

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

потребность := Рынок труда.потребность района1 в спец. по услугам стирки

белья + Рынок труда.потребность района2 в спец. по услугам стирки белья

Рынок труда.прогнозируемый дефицит спец. по услугам стирки белья :=

потребность - Рынок труда.прогнозируемая численность спец. по услугам

стирки белья

Рынок труда.прогнозируемый дефицит спец. по услугам стирки белья := round (Рынок труда.прогнозируемый дефицит спец. по услугам стирки белья)

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 3

Локальные переменные: текучесть, текущееКоличСпец, потребность

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

A.3) ИМЯ ПРАВИЛА: «ПрогнозПоУслРемОб»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( ПТУ работников бытового обслуживания.средний выпуск спец. по услугам

рем. обуви <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

текущееКоличСпец := Мастерская по ремонту обуви района2.число

специалистов

текучесть := Рынок труда.средняя текучесть кадров в сфере БО

* текущееКоличСпец

текучесть := текучесть / 100

текучесть := round (текучесть)

Рынок труда.прогнозируемая численность спец. по ремонту обуви :=

текущееКоличСпец - текучесть

Рынок труда.прогнозируемая численность спец. по ремонту обуви := Рынок труда.прогнозируемая численность спец. по ремонту обуви + ПТУ работников бытового обслуживания.средний выпуск спец. по услугам рем. обуви

print (По результатам прогноза общая численность специалистов по ремонту обуви ожидается равной ; Рынок труда.прогнозируемая численность спец. по ремонту обуви; чел.)

потребность := Рынок труда.потребность района1 в спец. по ремонту обуви + Рынок труда.потребность района2 в спец. по ремонту обуви

Рынок труда.прогнозируемый дефицит спец. по ремонту обуви := потребность - Рынок труда.прогнозируемая численность спец. по ремонту обуви

Рынок труда.прогнозируемый дефицит спец. по ремонту обуви := round (Рынок труда.прогнозируемый дефицит спец. по ремонту обуви)

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 3

Локальные переменные: текучесть, потребность, текущееКоличСпец

Заключение: Проведена обработка результатов прогноза ожидаемой численности специалистов по ремонту обуви.

A.4) ИМЯ ПРАВИЛА: «ПрогнозПоУслХимч»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( ПТУ работников бытового обслуживания.средний выпуск спец. по услугам хим. чистки <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

текущееКоличСпец := Химчистка района2.число специалистов

текучесть := Рынок труда.средняя текучесть кадров в сфере БО * текущееКоличСпец

текучесть := текучесть / 100

текучесть := round (текучесть)

Рынок труда.прогнозируемая численность спец. по услугам хим. чистки := текущееКоличСпец - текучесть

Рынок труда.прогнозируемая численность спец. по услугам хим. чистки := Рынок труда.прогнозируемая численность спец. по услугам хим. чистки + ПТУ работников бытового обслуживания.средний выпуск спец. по услугам хим. чистки

print (По результатам прогноза общая численность специалистов по услугам хим. чистки ожидается равной ; Рынок труда.прогнозируемая численность спец. по услугам хим. чистки; чел.)

потребность := Рынок труда.потребность района1 в спец. по услугам хим. чистки + Рынок труда.потребность района2 в спец. по услугам хим. чистки

Рынок труда.прогнозируемый дефицит спец. по услугам хим. чистки := потребность - Рынок труда.прогнозируемая численность спец. по услугам хим. чистки

Рынок труда.прогнозируемый дефицит спец. по услугам хим. чистки := round (Рынок труда.прогнозируемый дефицит спец. по услугам хим. чистки)

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 3

Локальные переменные: текучесть, потребность, текущееКоличСпец

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

A.5) ИМЯ ПРАВИЛА: «РекомендацииСформированы?»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( РекомендацииПоПарикмахерским(Район1) = ДА ) И

( РекомендацииПоПарикмахерским(Район2) = ДА ) И

( РекомендацииПоПрачечным(Район2) = ДА ) И

( РекомендацииПоПрачечным(Район1) = ДА ) И

( РекомендацииПоРемонтуОбуви(Район1) = ДА ) И

( РекомендацииПоРемонтуОбуви(Район2) = ДА ) И

( РекомендацииПоХимчисткам(Район1) = ДА ) И

( РекомендацииПоХимчисткам(Район2) = ДА ) И

( РекомендацииПоПарикмахерскимСУчетомПрогноза(Рынок труда) = ИСТИНА ) И

( РекомендацииПоПрачечнымСУчетомПрогноза(Рынок труда) = ИСТИНА ) И

( РекомендацииПоРемонтуОбувиСУчетомПрогноза(Рынок труда) = ИСТИНА ) И

( РекомендацииПоХимчисткамСУчетомПрогноза(Рынок труда) = ИСТИНА )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Рекомендовано(Решение, Субъект управления) := ДА

print ()

print ()

print (ЛОГИЧЕСКИЙ ВЫВОД ЗАВЕРШЕН.)

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: Отсутствуют

Заключение: Выводим результаты анализа и формируем признак останова логического вывода.

A.6) ИМЯ ПРАВИЛА: «Реком3ПоПарикУсл»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Рынок труда.прогнозируемый дефицит спец. по парик. услугам > 0 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print (С учетом данных прогноза требуется подготовить ; Рынок труда.прогнозируемый дефицит спец. по парик. услугам; спец. по парик. услугам)

РекомендацииПоПарикмахерскимСУчетомПрогноза(Рынок труда) := ИСТИНА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

Заключение: Проведен анализ данных прогноза ожидаемой численности специалистов по парик. услугам.

A.7) ИМЯ ПРАВИЛА: «Реком3ПоУслПрач»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Рынок труда.прогнозируемый дефицит спец. по услугам стирки белья > 0 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print (С учетом данных прогноза требуется подготовить ; Рынок труда.прогнозируемый дефицит спец. по услугам стирки белья; спец. по услугам стирки белья)

РекомендацииПоПрачечнымСУчетомПрогноза(Рынок труда) := ИСТИНА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

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

A.8) ИМЯ ПРАВИЛА: «Реком3ПоУслРемОб»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Рынок труда.прогнозируемый дефицит спец. по ремонту обуви > 0 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print (С учетом данных прогноза требуется подготовить ; Рынок труда.прогнозируемый дефицит спец. по ремонту обуви; спец. по ремонту обуви)

РекомендацииПоРемонтуОбувиСУчетомПрогноза(Рынок труда) := ИСТИНА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

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

A.9) ИМЯ ПРАВИЛА: «Реком3ПоУслХимч»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Рынок труда.прогнозируемый дефицит спец. по услугам хим. чистки > 0 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print (С учетом данных прогноза требуется подготовить ; Рынок труда.прогнозируемый дефицит спец. по услугам хим. чистки; спец. по услугам хим. чистки)

РекомендацииПоХимчисткамСУчетомПрогноза(Рынок труда) := ИСТИНА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

Заключение: Проведен анализ данных прогноза ожидаемой численности специалистов по услугам хим. чистки.

A.10) ИМЯ ПРАВИЛА: «Реком4ПоПарикУсл»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Рынок труда.прогнозируемый дефицит спец. по парик. услугам <= 0 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print (По данным прогноза дополнительной подготовки специалистов по парик. услугам в настоящий момент не требуется)

РекомендацииПоПарикмахерскимСУчетомПрогноза(Рынок труда) := ИСТИНА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

Заключение: Проведен анализ данных прогноза ожидаемой численности специалистов по парик. услугам.

A.11) ИМЯ ПРАВИЛА: «Реком4ПоУслПрач»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Рынок труда.прогнозируемый дефицит спец. по услугам стирки белья <= 0 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print (По данным прогноза дополнительной подготовки специалистов по услугам стирки белья в настоящий момент не требуется)

РекомендацииПоПрачечнымСУчетомПрогноза(Рынок труда) := ИСТИНА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

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

A.12) ИМЯ ПРАВИЛА: «Реком4ПоУслРемОб»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Рынок труда.прогнозируемый дефицит спец. по ремонту обуви <= 0 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print (По данным прогноза дополнительной подготовки специалистов по ремонту обуви в настоящий момент не требуется)

РекомендацииПоРемонтуОбувиСУчетомПрогноза(Рынок труда) := ИСТИНА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

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

A.13) ИМЯ ПРАВИЛА: «Реком4ПоУслХимч»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Рынок труда.прогнозируемый дефицит спец. по услугам хим. чистки <= 0 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

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

РекомендацииПоХимчисткамСУчетомПрогноза(Рынок труда) := ИСТИНА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

Заключение: Проведен анализ данных прогноза ожидаемой численности специалистов по услугам хим. чистки.

A.14) ИМЯ ПРАВИЛА: «7.1.Реком1ПоПарикУслРн1»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.обеспеченность парикмахерскими услугами < 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

числоСпец := Парикмахерская №1 района1.число специалистов + Парикмахерская №2 района1.число специалистов

Район1.нехватка специалистов по парикмахерским услугам := Рынок труда.потребность района1 в спец. по парик. услугам - числоСпец

Район1.нехватка специалистов по парикмахерским услугам := round (Район1.нехватка специалистов по парикмахерским услугам)

print (Требуется подготовить ; Район1.нехватка специалистов по парикмахерским услугам; спец. по парик. услугам для района1)

РекомендацииПоПарикмахерским(Район1) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по парикмахерским услугам в районе1 подсчитана.

A.15) ИМЯ ПРАВИЛА: «7.2.Реком1ПоПарикУслРн2»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.обеспеченность парикмахерскими услугами < 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

числоСпец := Парикмахерская района2.число специалистов

Район2.нехватка специалистов по парикмахерским услугам := Рынок труда.потребность района2 в спец. по парик. услугам - числоСпец

Район2.нехватка специалистов по парикмахерским услугам := round (Район2.нехватка специалистов по парикмахерским услугам)

print (Требуется подготовить ; Район2.нехватка специалистов по парикмахерским услугам; спец. по парик. услугам для района2)

РекомендацииПоПарикмахерским(Район2) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по парикмахерским услугам в районе2 подсчитана.

A.16) ИМЯ ПРАВИЛА: «7.3.Реком1ПоУслПрачРн1»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.обеспеченность услугами по стирке белья < 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

числоСпец := Прачечная района1.число специалистов

Район1.нехватка специалистов по услугам стирки белья := Рынок труда.потребность района1 в спец. по услугам стирки белья - числоСпец

Район1.нехватка специалистов по услугам стирки белья := round (Район1.нехватка специалистов по услугам стирки белья)

print ()

print (Требуется подготовить ; Район1.нехватка специалистов по услугам стирки белья; спец. по услугам стирки белья для района1)

РекомендацииПоПрачечным(Район1) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по услугам стирки белья в районе1 подсчитана.

A.17) ИМЯ ПРАВИЛА: «7.4.Реком1ПоУслПрачРн2»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.обеспеченность услугами по стирке белья < 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

числоСпец := 0

Район2.нехватка специалистов по услугам стирки белья := Рынок труда.потребность района2 в спец. по услугам стирки белья - числоСпец

Район2.нехватка специалистов по услугам стирки белья := round (Район2.нехватка специалистов по услугам стирки белья)

print (Требуется подготовить ; Район2.нехватка специалистов по услугам стирки белья; спец. по услугам стирки белья для района2)

РекомендацииПоПрачечным(Район2) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по услугам стирки белья в районе2 подсчитана.

A.18) ИМЯ ПРАВИЛА: «7.5.Реком1ПоУслРемОбРн1»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.обеспеченность услугами по ремонту обуви < 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

числоСпец := 0

Район1.нехватка специалистов по услугам ремонта обуви := Рынок труда.потребность района1 в спец. по ремонту обуви - числоСпец

Район1.нехватка специалистов по услугам ремонта обуви := round (Район1.нехватка специалистов по услугам ремонта обуви)

print (Требуется подготовить ; Район1.нехватка специалистов по услугам ремонта обуви; спец. по услугам ремонта обуви для района1)

РекомендацииПоРемонтуОбуви(Район1) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по ремонту обуви в районе1 подсчитана.

A.19) ИМЯ ПРАВИЛА: «7.6.Реком1ПоУслРемОбРн2»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.обеспеченность услугами по ремонту обуви < 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

числоСпец := Мастерская по ремонту обуви района2.число специалистов

Район2.нехватка специалистов по услугам ремонта обуви := Рынок труда.потребность района2 в спец. по ремонту обуви - числоСпец

Район2.нехватка специалистов по услугам ремонта обуви := round (Район2.нехватка специалистов по услугам ремонта обуви)

print (Требуется подготовить ; Район2.нехватка специалистов по услугам ремонта обуви; спец. по услугам ремонта обуви для района2)

РекомендацииПоРемонтуОбуви(Район2) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по ремонту обуви в районе2 подсчитана.

A.20) ИМЯ ПРАВИЛА: «7.7.Реком1ПоУслХимчРн1»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.обеспеченность услугами химической чистки < 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

числоСпец := 0

Район1.нехватка специалистов по услугам химической чистки := Рынок труда.потребность района1 в спец. по услугам хим. чистки - числоСпец

Район1.нехватка специалистов по услугам химической чистки := round (Район1.нехватка специалистов по услугам химической чистки)

print (Требуется подготовить ; Район1.нехватка специалистов по услугам химической чистки; спец. по услугам хим. чистки для района1)

РекомендацииПоХимчисткам(Район1) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по услугам хим. чистки в районе1 подсчитана.

A.21) ИМЯ ПРАВИЛА: «7.8.Реком1ПоУслХимчРн2»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.обеспеченность услугами химической чистки < 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

числоСпец := Химчистка района2.число специалистов

Район2.нехватка специалистов по услугам химической чистки := Рынок труда.потребность района2 в спец. по услугам хим. чистки - числоСпец

Район2.нехватка специалистов по услугам химической чистки := round (Район2.нехватка специалистов по услугам химической чистки)

print (Требуется подготовить ; Район2.нехватка специалистов по услугам химической чистки; спец. по услугам хим. чистки для района2)

РекомендацииПоХимчисткам(Район2) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по услугам хим. чистки в районе2 подсчитана.

A.22) ИМЯ ПРАВИЛА: «8.1.Реком2ПоПарикУслРн1»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.обеспеченность парикмахерскими услугами => 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print (Для района1 дополнительной подготовки специалистов по парикмахерским услугам не требуется.)

РекомендацииПоПарикмахерским(Район1) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по парикмахерским услугам в районе1 подсчитана.

A.23) ИМЯ ПРАВИЛА: «8.2.Реком2ПоПарикУслРн2»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.обеспеченность парикмахерскими услугами => 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print (Для района2 дополнительной подготовки специалистов по парикмахерским услугам не требуется.)

РекомендацииПоПарикмахерским(Район2) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по парикмахерским услугам в районе2 подсчитана.

A.24) ИМЯ ПРАВИЛА: «8.3.Реком2ПоУслПрачРн1»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.обеспеченность услугами по стирке белья => 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print (Для района1 дополнительной подготовки специалистов по услугам стирки белья не требуется)

РекомендацииПоПрачечным(Район1) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по услугам стирки белья в районе1 подсчитана.

A.25) ИМЯ ПРАВИЛА: «8.4.Реком2ПоУслПрачРн2»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.обеспеченность услугами по стирке белья => 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print (Для района2 дополнительной подготовки специалистов по услугам стирки белья не требуется)

РекомендацииПоПрачечным(Район2) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по услугам стирки белья в районе2 подсчитана.

A.26) ИМЯ ПРАВИЛА: «8.5.Реком2ПоУслРемОбРн1»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.обеспеченность услугами по ремонту обуви => 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print (Для района1 дополнительной подготовки специалистов по услугам ремонта обуви не требуется.)

РекомендацииПоРемонтуОбуви(Район1) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по ремонту обуви в районе1 подсчитана.

A.27) ИМЯ ПРАВИЛА: «8.6.Реком2ПоУслРемОбРн2»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.обеспеченность услугами по ремонту обуви => 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print (Для района2 дополнительной подготовки специалистов по услугам ремонта обуви не требуется.)

РекомендацииПоРемонтуОбуви(Район2) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по ремонту обуви в районе2 подсчитана.

A.28) ИМЯ ПРАВИЛА: «8.7.Реком2ПоУслХимчРн1»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.обеспеченность услугами химической чистки => 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print (Для района1 дополнительной подготовки специалистов по услугам химической чистки не требуется.)

РекомендацииПоХимчисткам(Район1) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по услугам хим. чистки в районе1 подсчитана.

A.29) ИМЯ ПРАВИЛА: «8.8.Реком2ПоУслХимчРн2»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.обеспеченность услугами химической чистки => 95 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print (Для района2 дополнительной подготовки специалистов по услугам химической чистки не требуется.)

РекомендацииПоХимчисткам(Район2) := ДА

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: числоСпец

Заключение: Нехватка специалистов по услугам хим. чистки в районе2 подсчитана.

B) Вспомогательные правила

B.1) ИМЯ ПРАВИЛА: «Начало»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Решение.шаг = 0 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

print ()

print (ПРОВЕДЕННЫЙ АНАЛИЗ ПОКАЗАЛ, ЧТО)

print ()

Решение.шаг := 1

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: Отсутствуют

Заключение: Начало работы.

B.2) ИМЯ ПРАВИЛА: «1.1.ВозмОбъемОказУслугПарикРн2»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Парикмахерская района2.число специалистов <> НЕИЗВЕСТНО ) И

( Парикмахерская района2.рабочее время <> НЕИЗВЕСТНО ) И

( Парикмахерская района2.рабочая неделя <> НЕИЗВЕСТНО ) И

( Парикмахерская района2.среднее время оказания одной услуги <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

х := Парикмахерская района2.рабочая неделя * Парикмахерская района2.рабочее время * Парикмахерская района2.число специалистов * 52

Парикмахерская района2.возможный объем оказываемых услуг := х / Парикмахерская района2.среднее время оказания одной услуги

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: х

Заключение: Возможный объем оказываемых услуг для Парикмахерской района2 подсчитан.

B.3) ИМЯ ПРАВИЛА: «1.2.ВозмОбъемОказУслугПарик1Рн1»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Парикмахерская №1 района1.число специалистов <> НЕИЗВЕСТНО ) И

( Парикмахерская №1 района1.рабочее время <> НЕИЗВЕСТНО ) И

( Парикмахерская №1 района1.рабочая неделя <> НЕИЗВЕСТНО ) И

( Парикмахерская №1 района1.среднее время оказания одной услуги <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

х := Парикмахерская №1 района1.рабочая неделя * Парикмахерская №1 района1.рабочее время * Парикмахерская №1 района1.число специалистов * 52

Парикмахерская №1 района1.возможный объем оказываемых услуг := х / Парикмахерская №1 района1.среднее время оказания одной услуги

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: х

Заключение: Возможный объем оказываемых услуг для Парикмахерской №1 района1 подсчитан.

B.4) ИМЯ ПРАВИЛА: «1.3.ВозмОбъемОказУслугПарик2Рн1»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Парикмахерская №2 района1.число специалистов <> НЕИЗВЕСТНО ) И

( Парикмахерская №2 района1.рабочее время <> НЕИЗВЕСТНО ) И

( Парикмахерская №2 района1.рабочая неделя <> НЕИЗВЕСТНО ) И

( Парикмахерская №2 района1.среднее время оказания одной услуги <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

х := Парикмахерская №2 района1.рабочая неделя * Парикмахерская №2 района1.рабочее время * Парикмахерская №2 района1.число специалистов * 52

Парикмахерская №2 района1.возможный объем оказываемых услуг := х / Парикмахерская №2 района1.среднее время оказания одной услуги

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: х

Заключение: Возможный объем оказываемых услуг для Парикмахерской №2 района1 подсчитан.

B.5) ИМЯ ПРАВИЛА: «1.4.ВозмОбъемОказУслугПрачРн1»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Прачечная района1.рабочее время <> НЕИЗВЕСТНО ) И

( Прачечная района1.рабочая неделя <> НЕИЗВЕСТНО ) И

( Прачечная района1.среднее время оказания одной услуги <> НЕИЗВЕСТНО ) И

( Прачечная района1.число специалистов <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

х := Прачечная района1.рабочая неделя * Прачечная района1.рабочее время * Прачечная района1.число специалистов * 52

Прачечная района1.возможный объем оказываемых услуг := х / Прачечная района1.среднее время оказания одной услуги

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: х

Заключение: Возможный объем оказываемых услуг для Прачечной района1 подсчитан.

B.6) ИМЯ ПРАВИЛА: «1.5.ВозмОбъемОказУслугРемОбРн2»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Мастерская по ремонту обуви района2.число специалистов <> НЕИЗВЕСТНО ) И

( Мастерская по ремонту обуви района2.среднее время оказания одной услуги <> НЕИЗВЕСТНО ) И

( Мастерская по ремонту обуви района2.рабочее время <> НЕИЗВЕСТНО ) И

( Мастерская по ремонту обуви района2.рабочая неделя <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

х := Мастерская по ремонту обуви района2.рабочая неделя * Мастерская по ремонту обуви района2.рабочее время * Мастерская по ремонту обуви района2.число специалистов * 52

Мастерская по ремонту обуви района2.возможный объем оказываемых услуг := х / Мастерская по ремонту обуви района2.среднее время оказания одной услуги

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: х

Заключение: Возможный объем оказываемых услуг для Мастерской по ремонту обуви района2 подсчитан.

B.7) ИМЯ ПРАВИЛА: «1.6.ВозмОбъемОказУслугХимчРн2»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Химчистка района2.число специалистов <> НЕИЗВЕСТНО ) И

( Химчистка района2.рабочее время <> НЕИЗВЕСТНО ) И

( Химчистка района2.рабочая неделя <> НЕИЗВЕСТНО ) И

( Химчистка района2.среднее время оказания одной услуги <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

х := Химчистка района2.рабочая неделя * Химчистка района2.рабочее время * Химчистка района2.число специалистов * 52

Химчистка района2.возможный объем оказываемых услуг := х / Химчистка района2.среднее время оказания одной услуги

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: х

Заключение: Возможный объем оказываемых услуг для Химчистки района2 подсчитан.

B.8) ИМЯ ПРАВИЛА: «2.1.ОбъемПарикУслугРайона1»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Парикмахерская №1 района1.возможный объем оказываемых услуг <> НЕИЗВЕСТНО ) И

( Парикмахерская №2 района1.возможный объем оказываемых услуг <> НЕИЗВЕСТНО ) И

( Район1.количество парикмахерских <> НЕИЗВЕСТНО ) И

( Район1.количество парикмахерских > 0 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Рынок бытовых услуг.объем парикмахерских услуг в районе1 := Парикмахерская №1 района1.возможный объем оказываемых услуг + Парикмахерская №2 района1.возможный объем оказываемых услуг

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

Заключение: Предлагаемый рынком объем парикмахерских услуг в районе1 определен.

B.9) ИМЯ ПРАВИЛА: «2.2.ОбъемПарикУслугРайона2»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Парикмахерская района2.возможный объем оказываемых услуг <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Рынок бытовых услуг.объем парикмахерских услуг в районе2 := Парикмахерская района2.возможный объем оказываемых услуг

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

Заключение: Предлагаемый рынком объем парикмахерских услуг в районе2 определен.

B.10) ИМЯ ПРАВИЛА: «2.3.ОбъемУслугПрачРайона1»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Прачечная района1.возможный объем оказываемых услуг <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Рынок бытовых услуг.объем услуг стирки белья в районе1 := Прачечная района1.возможный объем оказываемых услуг

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

Заключение: Предлагаемый рынком объем услуг стирки белья в районе1 определен.

B.11) ИМЯ ПРАВИЛА: «2.4.ОбъемУслугПрачРайона2»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.количество прачечных = 0 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Рынок бытовых услуг.объем услуг стирки белья в районе2 := 0

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

Заключение: Предлагаемый рынком объем услуг стирки белья в районе2 определен.

B.12) ИМЯ ПРАВИЛА: «2.5.ОбъемУслугРемОбРайона1»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.количество мастерских по ремонту обуви = 0 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Рынок бытовых услуг.объем услуг по ремонту обуви в районе1 := 0

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

Заключение: Предлагаемый рынком объем услуг по ремонту обуви в районе1 определен.

B.13) ИМЯ ПРАВИЛА: «2.6.ОбъемУслугРемОбРайона2»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Мастерская по ремонту обуви района2.возможный объем оказываемых услуг <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Рынок бытовых услуг.объем услуг по ремонту обуви в районе2 := Мастерская по ремонту обуви района2.возможный объем оказываемых услуг

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

Заключение: Предлагаемый рынком объем услуг по ремонту обуви в районе2 определен.

B.14) ИМЯ ПРАВИЛА: «2.7.ОбъемУслугХимчРайона1»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.количество химчисток = 0 )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Рынок бытовых услуг.объем услуг химической чистки в районе1 := 0

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

Заключение: Предлагаемый рынком объем услуг химической чистки в районе1 определен.

B.15) ИМЯ ПРАВИЛА: «2.8.ОбъемУслугХимчРайона2»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Химчистка района2.возможный объем оказываемых услуг <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Рынок бытовых услуг.объем услуг химической чистки в районе2 := Химчистка района2.возможный объем оказываемых услуг

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: Отсутствуют

Заключение: Предлагаемый рынком объем услуг химической чистки в районе2 определен.

B.16) ИМЯ ПРАВИЛА: «3.1.ПотребРн1ВПарикУсл»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.норма обеспеченности парикмахерскими услугами <> НЕИЗВЕСТНО ) И

( Район1.численность населения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район1.потребность в парикмахерских услугах := Район1.норма обеспеченности парикмахерскими услугами * Район1.численность населения

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: Отсутствуют

Заключение: Потребность в парикмахерских услугах для района1 определена.

B.17) ИМЯ ПРАВИЛА: «3.2.ПотребРн1ВУслПрач»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.норма обеспеченности услугами по стирке белья <> НЕИЗВЕСТНО ) И

( Район1.численность населения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район1.потребность в услугах по стирке белья := Район1.норма обеспеченности услугами по стирке белья * Район1.численность населения

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: Отсутствуют

Заключение: Потребность в услугах по стирке белья для района1 определена.

B.18) ИМЯ ПРАВИЛА: «3.3.ПотребРн1ВУслРемОб»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.норма обеспеченности услугами по ремонту обуви <> НЕИЗВЕСТНО ) И

( Район1.численность населения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район1.потребность в услугах по ремонту обуви := Район1.норма обеспеченности услугами по ремонту обуви * Район1.численность населения

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: Отсутствуют

Заключение: Потребность в услугах по ремонту обуви для района1 определена.

B.19) ИМЯ ПРАВИЛА: «3.4.ПотребРн1ВУслХимч»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.норма обеспеченности услугами химической чистки <> НЕИЗВЕСТНО ) И

( Район1.численность населения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район1.потребность в услугах химической чистки := Район1.норма обеспеченности услугами химической чистки * Район1.численность населения

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: Отсутствуют

Заключение: Потребность в услугах химической чистки для района1 определена.

B.20) ИМЯ ПРАВИЛА: «3.5.ПотребРн2ВПарикУсл»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.норма обеспеченности парикмахерскими услугами <> НЕИЗВЕСТНО ) И

( Район2.численность населения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район2.потребность в парикмахерских услугах := Район2.норма обеспеченности парикмахерскими услугами * Район2.численность населения

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: Отсутствуют

Заключение: Потребность в парикмахерских услугах для района2 определена.

B.21) ИМЯ ПРАВИЛА: «3.6.ПотребРн2ВУслПрач»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.норма обеспеченности услугами по стирке белья <> НЕИЗВЕСТНО ) И

( Район2.численность населения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район2.потребность в услугах по стирке белья := Район2.норма обеспеченности услугами по стирке белья * Район2.численность населения

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: Отсутствуют

Заключение: Потребность в услугах по стирке белья для района2 определена.

B.22) ИМЯ ПРАВИЛА: «3.7.ПотребРн2ВУслРемОб»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.норма обеспеченности услугами по ремонту обуви <> НЕИЗВЕСТНО ) И

( Район2.численность населения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район2.потребность в услугах по ремонту обуви := Район2.норма обеспеченности услугами по ремонту обуви * Район2.численность населения

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: Отсутствуют

Заключение: Потребность в услугах по ремонту обуви для района2 определена.

B.23) ИМЯ ПРАВИЛА: «3.8.ПотребРн2ВУслХимч»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.норма обеспеченности услугами химической чистки <> НЕИЗВЕСТНО ) И

( Район2.численность населения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район2.потребность в услугах химической чистки := Район2.норма обеспеченности услугами химической чистки * Район2.численность населения

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 1

Локальные переменные: Отсутствуют

Заключение: Потребность в услугах химической чистки для района2 определена.

B.24) ИМЯ ПРАВИЛА: «4.1.ОбеспечРн1ПарикУсл»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.потребность в парикмахерских услугах <> НЕИЗВЕСТНО ) И

( Рынок бытовых услуг.объем парикмахерских услуг в районе1 <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район1.обеспеченность парикмахерскими услугами := Рынок бытовых услуг.объем парикмахерских услуг в районе1 / Район1.потребность в парикмахерских услугах

Район1.обеспеченность парикмахерскими услугами := Район1.обеспеченность парикмахерскими услугами * 100

Район1.обеспеченность парикмахерскими услугами := round (Район1.обеспеченность парикмахерскими услугами)

print (Обеспеченность района1 парик. услугами равна примерно ; Район1.обеспеченность парикмахерскими услугами; проц.)

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 3

Локальные переменные: Отсутствуют

Заключение: Обеспеченность парикмахерскими услугами района1 определена.

B.25) ИМЯ ПРАВИЛА: «4.2.ОбеспечРн1УслПрач»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.потребность в услугах по стирке белья <> НЕИЗВЕСТНО ) И

( Рынок бытовых услуг.объем услуг стирки белья в районе1 <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район1.обеспеченность услугами по стирке белья := Рынок бытовых услуг.объем услуг стирки белья в районе1 / Район1.потребность в услугах по стирке белья

Район1.обеспеченность услугами по стирке белья := Район1.обеспеченность услугами по стирке белья * 100

Район1.обеспеченность услугами по стирке белья := round (Район1.обеспеченность услугами по стирке белья)

print (Обеспеченность района1 услугами по стирке белья равна примерно ; Район1.обеспеченность услугами по стирке белья; проц.)

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 3

Локальные переменные: Отсутствуют

Заключение: Обеспеченность услугами по стирке белья района1 определена.

B.26) ИМЯ ПРАВИЛА: «4.3.ОбеспечРн1УслРемОб»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.потребность в услугах по ремонту обуви <> НЕИЗВЕСТНО ) И

( Рынок бытовых услуг.объем услуг по ремонту обуви в районе1 <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район1.обеспеченность услугами по ремонту обуви := Рынок бытовых услуг.объем услуг по ремонту обуви в районе1 / Район1.потребность в услугах по ремонту обуви

Район1.обеспеченность услугами по ремонту обуви := Район1.обеспеченность услугами по ремонту обуви * 100

Район1.обеспеченность услугами по ремонту обуви := round (Район1.обеспеченность услугами по ремонту обуви)

print (Обеспеченность района1 услугами по ремонту обуви равна примерно ; Район1.обеспеченность услугами по ремонту обуви; проц.)

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 3

Локальные переменные: Отсутствуют

Заключение: Обеспеченность услугами по ремонту обуви района1 определена.

B.27) ИМЯ ПРАВИЛА: «4.4.ОбеспечРн1УслХимч»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.потребность в услугах химической чистки <> НЕИЗВЕСТНО ) И

( Рынок бытовых услуг.объем услуг химической чистки в районе1 <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район1.обеспеченность услугами химической чистки := Рынок бытовых услуг.объем услуг химической чистки в районе1 / Район1.потребность в услугах химической чистки

Район1.обеспеченность услугами химической чистки := Район1.обеспеченность услугами химической чистки * 100

Район1.обеспеченность услугами химической чистки := round (Район1.обеспеченность услугами химической чистки)

print (Обеспеченность района1 услугами хим. чистки равна примерно ; Район1.обеспеченность услугами химической чистки; проц.)

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 3

Локальные переменные: Отсутствуют

Заключение: Обеспеченность услугами химической чистки района1 определена.

B.28) ИМЯ ПРАВИЛА: «4.5.ОбеспечРн2ПарикУсл»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.потребность в парикмахерских услугах <> НЕИЗВЕСТНО ) И

( Рынок бытовых услуг.объем парикмахерских услуг в районе2 <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район2.обеспеченность парикмахерскими услугами := Рынок бытовых услуг.объем парикмахерских услуг в районе2 / Район2.потребность в парикмахерских услугах

Район2.обеспеченность парикмахерскими услугами := Район2.обеспеченность парикмахерскими услугами * 100

Район2.обеспеченность парикмахерскими услугами := round (Район2.обеспеченность парикмахерскими услугами)

print (Обеспеченность района2 парик. услугами равна примерно ; Район2.обеспеченность парикмахерскими услугами; проц.)

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 4

Локальные переменные: Отсутствуют

Заключение: Обеспеченность парикмахерскими услугами района2 определена.

B.29) ИМЯ ПРАВИЛА: «4.6.ОбеспечРн2УслПрач»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.потребность в услугах по стирке белья <> НЕИЗВЕСТНО ) И

( Рынок бытовых услуг.объем услуг стирки белья в районе2 <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район2.обеспеченность услугами по стирке белья := Рынок бытовых услуг.объем услуг стирки белья в районе2 / Район2.потребность в услугах по стирке белья

Район2.обеспеченность услугами по стирке белья := Район2.обеспеченность услугами по стирке белья * 100

Район2.обеспеченность услугами по стирке белья := round (Район2.обеспеченность услугами по стирке белья)

print (Обеспеченность района2 услугами по стирке белья равна примерно ; Район2.обеспеченность услугами по стирке белья; проц.)

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 4

Локальные переменные: Отсутствуют

Заключение: Обеспеченность услугами по стирке белья района2 определена.

B.30) ИМЯ ПРАВИЛА: «4.7.ОбеспечРн2УслРемОб»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.потребность в услугах по ремонту обуви <> НЕИЗВЕСТНО ) И

( Рынок бытовых услуг.объем услуг по ремонту обуви в районе2 <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район2.обеспеченность услугами по ремонту обуви := Рынок бытовых услуг.объем услуг по ремонту обуви в районе2 / Район2.потребность в услугах по ремонту обуви

Район2.обеспеченность услугами по ремонту обуви := Район2.обеспеченность услугами по ремонту обуви * 100

Район2.обеспеченность услугами по ремонту обуви := round (Район2.обеспеченность услугами по ремонту обуви)

print (Обеспеченность района2 услугами по ремонту обуви равна примерно ; Район1.обеспеченность услугами по ремонту обуви; проц.)

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 4

Локальные переменные: Отсутствуют

Заключение: Обеспеченность услугами по ремонту обуви района2 определена.

B.31) ИМЯ ПРАВИЛА: «4.8.ОбеспечРн2УслХимч»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.потребность в услугах химической чистки <> НЕИЗВЕСТНО ) И

( Рынок бытовых услуг.объем услуг химической чистки в районе2 <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Район2.обеспеченность услугами химической чистки := Рынок бытовых услуг.объем услуг химической чистки в районе2 / Район2.потребность в услугах химической чистки

Район2.обеспеченность услугами химической чистки := Район2.обеспеченность услугами химической чистки * 100

Район2.обеспеченность услугами химической чистки := round (Район2.обеспеченность услугами химической чистки)

print (Обеспеченность района2 услугами хим. чистки равна примерно ; Район2.обеспеченность услугами химической чистки; проц.)

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 4

Локальные переменные: Отсутствуют

Заключение: Обеспеченность услугами химической чистки района2 определена.

B.32) ИМЯ ПРАВИЛА: «6.1.ПотребРн1ВСпецПоПарикУсл»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.потребность в парикмахерских услугах <> НЕИЗВЕСТНО ) И

( Услуга Парикмахерская.норматив среднего времени выполнения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

х := Район1.потребность в парикмахерских услугах * Услуга Парикмахерская.норматив среднего времени выполнения

у := 5.5 * 8 * 52

Рынок труда.потребность района1 в спец. по парик. услугам := х / у

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: х, у

Заключение: Потребность района1 в специалистах по парикмахерским услугам определена

B.33) ИМЯ ПРАВИЛА: «6.2.ПотребРн1ВСпецПоУслПрач»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.потребность в услугах по стирке белья <> НЕИЗВЕСТНО ) И

( Услуга Стирка белья.норматив среднего времени выполнения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

х := Район1.потребность в услугах по стирке белья * Услуга Стирка белья.норматив среднего времени выполнения

у := 5.5 * 8 * 52

Рынок труда.потребность района1 в спец. по услугам стирки белья := х / у

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: х, у

Заключение: Потребность района1 в специалистах по стирке белья определена

B.34) ИМЯ ПРАВИЛА: «6.3.ПотребРн1ВСпецПоУслРемОб»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.потребность в услугах по ремонту обуви <> НЕИЗВЕСТНО ) И

( Услуга Ремонт обуви.норматив среднего времени выполнения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

х := Район1.потребность в услугах по ремонту обуви * Услуга Ремонт обуви.норматив среднего времени выполнения

у := 5.5 * 8 * 52

Рынок труда.потребность района1 в спец. по ремонту обуви := х / у

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: х, у

Заключение: Потребность района1 в специалистах по ремонту обуви определена

B.35) ИМЯ ПРАВИЛА: «6.4.ПотребРн1ВСпецПоУслХимч»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район1.потребность в услугах химической чистки <> НЕИЗВЕСТНО ) И

( Услуга Химическая чистка.норматив среднего времени выполнения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

х := Район1.потребность в услугах химической чистки * Услуга Химическая чистка.норматив среднего времени выполнения

у := 5.5 * 8 * 52

Рынок труда.потребность района1 в спец. по услугам хим. чистки := х / у

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: х, у

Заключение: Потребность района1 в специалистах по химической чистке определена

B.36) ИМЯ ПРАВИЛА: «6.5.ПотребРн2ВСпецПоПарикУсл»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.потребность в парикмахерских услугах <> НЕИЗВЕСТНО ) И

( Услуга Парикмахерская.норматив среднего времени выполнения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

х := Район2.потребность в парикмахерских услугах * Услуга Парикмахерская.норматив среднего времени выполнения

у := 5.5 * 8 * 52

Рынок труда.потребность района2 в спец. по парик. услугам := х / у

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: х, у

Заключение: Потребность района2 в специалистах по парикмахерским услугам определена

B.37) ИМЯ ПРАВИЛА: «6.6.ПотребРн2ВСпецПоУслПрач»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.потребность в услугах по стирке белья <> НЕИЗВЕСТНО ) И

( Услуга Стирка белья.норматив среднего времени выполнения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

х := Район2.потребность в услугах по стирке белья * Услуга Стирка белья.норматив среднего времени выполнения

у := 5.5 * 8 * 52

Рынок труда.потребность района2 в спец. по услугам стирки белья := х / у

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: х, у

Заключение: Потребность района2 в специалистах по стирке белья определена

B.38) ИМЯ ПРАВИЛА: «6.7.ПотребРн2ВСпецПоУслРемОб»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.потребность в услугах по ремонту обуви <> НЕИЗВЕСТНО ) И

( Услуга Ремонт обуви.норматив среднего времени выполнения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

х := Район2.потребность в услугах по ремонту обуви * Услуга Ремонт обуви.норматив среднего времени выполнения

у := 5.5 * 8 * 52

Рынок труда.потребность района2 в спец. по ремонту обуви := х / у

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: х, у

Заключение: Потребность района2 в специалистах по ремонту обуви определена

B.39) ИМЯ ПРАВИЛА: «6.8.ПотребРн2ВСпецПоУслХимч»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Район2.потребность в услугах химической чистки <> НЕИЗВЕСТНО ) И

( Услуга Химическая чистка.норматив среднего времени выполнения <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

х := Район2.потребность в услугах химической чистки * Услуга Химическая чистка.норматив среднего времени выполнения

у := 5.5 * 8 * 52

Рынок труда.потребность района2 в спец. по услугам хим. чистки := х / у

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 2

Локальные переменные: х, у

Заключение: Потребность района2 в специалистах по химической чистке определена

B.40) ИМЯ ПРАВИЛА: «9.1.ОбеспечПарикРн2РМ»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Парикмахерская района2.число рабочих мест <> НЕИЗВЕСТНО ) И

( Парикмахерская района2.максимальное число рабочих мест <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Парикмахерская района2.обеспеченность рабочими местами := Парикмахерская района2.число рабочих мест / Парикмахерская района2.максимальное число рабочих мест

Парикмахерская района2.обеспеченность рабочими местами := Парикмахерская района2.обеспеченность рабочими местами * 100

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: Отсутствуют

Заключение: Обеспеченность Парикмахерской района2 рабочими местами подсчитана.

B.41) ИМЯ ПРАВИЛА: «9.2.ОбеспечПарик1Рн1РМ»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Парикмахерская №1 района1.число рабочих мест <> НЕИЗВЕСТНО ) И

( Парикмахерская №1 района1.максимальное число рабочих мест <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Парикмахерская №1 района1.обеспеченность рабочими местами := Парикмахерская №1 района1.число рабочих мест / Парикмахерская №1 района1.максимальное число рабочих мест

Парикмахерская №1 района1.обеспеченность рабочими местами := Парикмахерская №1 района1.обеспеченность рабочими местами * 100

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: Отсутствуют

Заключение: Обеспеченность Парикмахерской №1 района1 рабочими местами подсчитана.

B.42) ИМЯ ПРАВИЛА: «9.3.ОбеспечПарик2Рн1РМ»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Парикмахерская №2 района1.число рабочих мест <> НЕИЗВЕСТНО ) И

( Парикмахерская №2 района1.максимальное число рабочих мест <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Парикмахерская №2 района1.обеспеченность рабочими местами := Парикмахерская №2 района1.число рабочих мест / Парикмахерская №2 района1.максимальное число рабочих мест

Парикмахерская №2 района1.обеспеченность рабочими местами := Парикмахерская №2 района1.обеспеченность рабочими местами * 100

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: Отсутствуют

Заключение: Обеспеченность Парикмахерской №2 района1 рабочими местами подсчитана.

B.43) ИМЯ ПРАВИЛА: «9.4.ОбеспечПрачРн1РМ»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Прачечная района1.число рабочих мест <> НЕИЗВЕСТНО ) И

( Прачечная района1.максимальное число рабочих мест <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Прачечная района1.обеспеченность рабочими местами := Прачечная района1.число рабочих мест / Прачечная района1.максимальное число рабочих мест

Прачечная района1.обеспеченность рабочими местами := Прачечная района1.обеспеченность рабочими местами * 100

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: Отсутствуют

Заключение: Обеспеченность Прачечной района1 рабочими местами подсчитана.

B.44) ИМЯ ПРАВИЛА: «9.5.ОбеспечРемОбРн2РМ»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Мастерская по ремонту обуви района2.число рабочих мест <> НЕИЗВЕСТНО ) И

( Мастерская по ремонту обуви района2.максимальное число рабочих мест <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Мастерская по ремонту обуви района2.обеспеченность рабочими местами := Мастерская по ремонту обуви района2.число рабочих мест / Мастерская по ремонту обуви района2.максимальное число рабочих мест

Мастерская по ремонту обуви района2.обеспеченность рабочими местами := Мастерская по ремонту обуви района2.обеспеченность рабочими местами * 100

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: Отсутствуют

Заключение: Обеспеченность Мастерской по ремонту обуви района2 рабочими местами подсчитана.

B.45) ИМЯ ПРАВИЛА: «9.6.ОбеспечХимчРн2РМ»

СОДЕРЖАНИЕ ПРАВИЛА :

ЕСЛИ ( Химчистка района2.число рабочих мест <> НЕИЗВЕСТНО ) И

( Химчистка района2.максимальное число рабочих мест <> НЕИЗВЕСТНО )

ТО ВЫПОЛНИТЬ СЛЕДУЮЩИЕ ОПЕРАЦИИ:

Химчистка района2.обеспеченность рабочими местами := Химчистка района2.число рабочих мест / Химчистка района2.максимальное число рабочих мест

Химчистка района2.обеспеченность рабочими местами := Химчистка района2.обеспеченность рабочими местами * 100

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ О ПРАВИЛЕ:

Приоритет: 0

Локальные переменные: Отсутствуют

Заключение: Обеспеченность Химчистки района2 рабочими местами подсчитана.

Для разрешения конфликтов в процессе логического вывода была использована стратегия «P»,

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

P = { Еще не использованные,

Высший приоритет,

Длиннейшее предусловие,

Выбрать первое правило,

}

[1] В настоящее время ведутся исследования в области автоматизации приобретения знаний, в том числе на кафедрах ВТ и МОВС. Разработан прототип модуля приобретения знаний, названный «Помошник Эксперта», который может взаимодействовать с «Решателем» и несколько облегчает процесс создания продукционной базы знаний «Решателя».