Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций ИИС.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.86 Mб
Скачать

Листинг 2. Пример работы эс для оценки надежности поставщика

********************************

* Экспертная система *

* Оценка надежности поставщика *

******* press any key ********

Введите рентабельность (1 – есть, 2 – нет): 1

Введите задолженность (1 – есть, 2 – нет): 2

Введите рекламации (1 – есть, 2 – нет): 1 с уверенностью 30

Статус предприятия:

1 – государственное,

2 – акционерное,

3 – совместное,

4 – малое,

5 – кооперативное,

6 – индивидуальное

Укажите статус предприятия: 2

Введите удаленность поставщика км: 500

*** Ввод значений завершен ***

*** press any key ***

********************************

* Экспертная система *

* Оценка надежности поставщика *

* Вывод результатов *

******* press any key ********

Надежность поставщика – True

Фактор уверенности = 81

Пример объяснений

Rule R1 (fired)

Если рентабельность высокая и нет задолженности, то финансовое состояние достаточно высокое

(2) Рентабельность true cf 100

(3) Задолженность false cf 100

(4) Финансовое состояние true cf 100

Rule R4 (fired)

Если финансовое состояние хорошее, то надежность поставщика высокая

(4) Финансовое состояние true cf 100

(1) Надежность поставщика true cf 90

Rule R6 (fired)

Если рекламации есть, то надежность поставщика низкая

(5) Рекламации 1 cf 30

(1) Надежность поставщика true cf -18

Rule R9 (fired)

Если предприятие акционерное, то надежность высокая

(6) Статус предприятия akc cf 100

(1) Надежность поставщика true cf 70

Rule R14 (fired)

Если удаленность поставщика небольшая, то надежность высокая

(7) Удаленность поставщика 500 cf 100

(1) Надежность поставщика true cf 70

Листинг 3. Подсистема прогнозирования цен Текст программы

GOAL: PRICES

INITIAL:

e.cfjo = «M» /* факторы уверенности левой и правой частей правил объединяются по формуле Min(a, b) */

e.cfco = «P» /* факторы уверенности результатов для одной переменной объединяются по формуле a + b - (a * b) / 100 */

e.trac = «n» /* отмена трассировки; v – включить */

e.lstr = 75 /* максимальная длина строки */

? «Для начала консультации нажмите любую клавишу»

wait;

/* Исходные данные */

prodvol = {200 cf 90, 100 cf 30};

demvol = {150 cf 80, 50 cf 20};

PRICES = unknown;

DO:

? «Конец консультации»;

RULE: R1

IF: prodvol > demvol

THEN: PRICES = «падают»; cfv(PRICES, prodvol > demvol);

? «с КУ = », hicf(PRICES) , «% можно сказать, что цены»;

? «в будущем году упадут»;

wait;

RULE: R2

IF: prodvol < demvol

THEN: PRICES = «растут»; cfv(PRICES, prodvol < demvol);

? «с КУ = », hicf(PRICES) , «% можно сказать, что цены»;

? «в будущем году поднимутся»;

wait;

RULE: R3

IF: prodvol = demvol

THEN: PRICES = «6eз изменений»; cfv(PRICES, prodvol equal demvol);

? «с КУ = », hicf(PRICES) , «% можно сказать, что в будущем»

? «году цены не изменятся»;

wait;

VAR: PRODVOL

LABEL: Объем производства

VAR: DEMVOL

LABEL: Объем спроса

VAR: PRICES

END:

Пример консультации (результат работы эс)

Для начала консультации нажмите любую клавишу

с КУ = 87.00% можно сказать, что цены в будущем году упадут

Приложение 2 Листинг исходного кода эс «Выбор банка»

GOAL: KBANK

INITIAL:

E.LSTR=80

E.RIGR="A"

KBank=UNKNOWN

NADBANK=UNKNOWN

KASSRD=UNKNOWN

SBITD=UNKNOWN

ZAKD=UNKNOWN

PFORM="наличная"

PSRPLAT=3

PSRVOZ=5

PPROC=10

PPROCVK=20

INPUT TFORM STR WITH "В какой форме вы бы хотели произвести расчёты?"

INPUT TSRPLAT INT WITH "С какой срочностью вам требуется произвести расчёты?"

INPUT TSERVIS STR WITH "Обязателен ли для вас высокий сервис обслуживания?+/-"

INPUT TSRVOZ INT WITH "Требуемая срочность возврата кредита?"

INPUT TPROC INT WITH "Требуемая процентная ставка по кредиту?"

INPUT TPROCVK INT WITH "Требуемый процент по вкладам?"

INPUT REIT STR WITH "Вам обязателен высокий рейтинг банка?+/-"

INPUT EXPER INT WITH "Банк с каким опытом работы вы бы предпочли?"

INPUT GARAN STR WITH "Требуются ли вам гарантии банка?+/-"

DO:

?"Рекомендуем вам воспользоваться услугами банка:",KBank

?"Коэффициент надежности:",cfv(NADBANK,true)

RULE: R1

IF: KASSRD=TRUE AND SBITD=TRUE AND ZAKD=TRUE AND NADBANK=TRUE

THEN: KBank="ЦБРоссии"

RULE: R2

IF: KASSRD=TRUE AND NADBANK=TRUE

THEN: KBank="Мончебанк+ЦБРоссии"

RULE: R3

IF: SBITD=TRUE AND NADBANK=TRUE

THEN: KBank="ЦБанкРоссии+Альфа-Банк"

RULE: R4

IF: ZAKD=TRUE AND NADBANK=TRUE

THEN: KBank="Менатеп+ЦБРоссии"

RULE: R5

IF: KASSRD=TRUE AND SBITD=TRUE AND NADBANK=TRUE

THEN: KBank="ВнешэкономБанк+ЦБРоссии"

RULE: R6

IF: SBITD=TRUE AND ZAKD=TRUE AND NADBANK=TRUE

THEN: KBank="Банк№534+ЦБРоссии"

RULE: R7

IF: KASSRD=TRUE AND ZAKD=TRUE AND NADBANK=TRUE

THEN: KBank="Банк№701+ЦБРоссии"

RULE: R8

IF: PSrPlat<=TSrPlat and PFORM=TFORM

THEN: KASSRD+=TRUE cf 80

RULE: R9

IF: PSrPlat>TSrPlat and PFORM<>TFORM

THEN: KASSRD+=FALSE cf 20

RULE: R10

IF: TSERVIS="+"

THEN: KASSRD+=TRUE cf 40

RULE: R11

IF: TSERVIS="-"

THEN: KASSRD+=FALSE cf 60

RULE: R12

IF: PSRVOZ<=TSRVOZ

THEN: SBITD+=TRUE cf 70

RULE: R13

IF: PSRVOZ>TSRVOZ

THEN: SBITD+=FALSE cf 30

RULE: R14

IF: TPROC<=PPROC

THEN: SBITD+=TRUE cf 50

RULE: R15

IF: TPROC>PPROC

THEN: SBITD+=FALSE cf 50

RULE: R16

IF: PPROCVK>=TPROCVK

THEN: ZAKD+=TRUE CF 70

RULE: R17

IF: PPROCVK<TPROCVK

THEN: ZAKD+=FALSE CF 30

RULE: R18

IF: GARAN="+"

THEN: NADBANK+=TRUE CF 60

RULE: R19

IF: GARAN="-"

THEN: NADBANK+=FALSE CF 50

RULE: R20

IF: REIT="+"

THEN: NADBANK+=TRUE CF 70

RULE: R21

IF: REIT="-"

THEN: NADBANK+=FALSE CF 40

RULE: R22

IF: EXPER<3

THEN: NADBANK+=FALSE CF 30

RULE: R23

IF: EXPER>=3

THEN: NADBANK+=TRUE CF 70

END: