Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Dmitrieva.docx
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
2 Мб
Скачать
☆
  1. Построение нечеткой экспертной системы в программном пакете CubiCalc 2.0.

    1. Определение переменных Fuzzy Input, Output

Процесс разработки нечеткой экспертной системы в пакете CubiCalc начинается с определения переменных, которые будут использоваться в проекте project→variables→new.

Объявляем первую переменную, как Plowad (площадь), зададим атрибуты переменной: выберем её тип (Fuzzy Input), зададим диапазон изменения её значений [10;100], а также зададим начальное значение Initial Value равное 35 (рис.3).

Рисунок 3. Определение переменной Plowad

Объявляем вторую переменную, как Stoim (стоимость), задаём атрибуты переменной: выберем её тип (Fuzzy Input), зададим диапазон изменения её значений [1000;10000], а также зададим начальное значение Initial Value равное 2500 (рис.4).

Рисунок 4. Определение переменной Stoim

Объявляем третью (выходную) переменную Рейтинг как Rate, задаём атрибуты переменной: выберем её тип (Fuzzy Output), зададим диапазон изменения её значений [0;1], а также зададим начальное значение Initial Value равное 0 (рис.5).

Рисунок 4. Определение переменной Rate

    1. Построение функции принадлежности

Далее необходимо задать характеристики всех трёх переменных project→adjective editor. Выбираем переменную Plowad в окне «Adjectives for variables», нажимаем Edit. Здесь каждой входной и выходной переменной ставим в соответствие набор функций принадлежности Adjective→Change List→New. В появившемся окне «Create Adjective(s)» задаём параметры: количество функций принадлежности (Number) равное 3; вид функции принадлежности (Shape) – Trapezoid; ширина основания (base width) равная 45 (рис.6).

Рисунок 6. Задание параметров функции принадлежности.

В окне «Edit Adjective List» присвоим наименования – small, middle, big соответственно маленькой, средней и большой площади (рис.7).

Рисунок 7. Присвоение наименований для каждой переменной.

Получаем следующий функции принадлежности (рис.8):

Рисунок 8. Функции принадлежности

    1. Определение набора правил, связывающих входные переменные с выходными

Необходимо определить набор правил, которые связывают входные переменные с выходными. Для этого в редакторе правил вывода Project→Rules определяем:

IF Ploshad is Small AND Stoim is Low THEN Rate is Good;

IF Ploshad is Large AND Stoim is High THEN Rate is Bad;

IF Ploshad is Medium AND Stoim is Moderate THEN Rate is Normal;

IF Ploshad is Medium AND Stoim is Low THEN Rate is Normal;

Следующими этапами выполнения проекта в CubiCalc является предобработка и постобработка. Для этого используется функция field(), которая возвращает данные из отдельного поля текущей записи.

В Preprocessing Editor вставляем нижеследующие инструкции (рис.9):

Plowad = field( 1 )

Stoim = field ( 2 )

check = field ( 3 )

Рисунок 9. Редактор предобработки

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

If (Rate <> check) errors += 1;end

If (endoffile=TRUE) call message(errors); end

Рисунок 10. Редактор постобработки

Создадим переменные check и error и присвоим им тип Temporary (рис.11).

Рисунок 11. Создание переменных check и error.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]