Основы построения и функционирования интеллектуальных информационных систем. Былкин В.Д - 85 стр.

UptoLike

85
End If
value(bestvar) - Clnt(tmp)
varflag(bestvar) = 0: Rem Установка флажка на нуль, т.к.
значение переменной уже получено Rem
Коррекция массива decision
For J = 1 То outcomes
X = value(bestvar)*rules(bestvar, J): decisions(J) = decisions(J) + X Next
Rem Нахождение максимального значения decision
p
т.е. decisions(best) , как
лучшего текущего значения решения decision = -10000
For J = 1 То outcomes
If decisions(J) >= decision Then decision = decisions(J): best = J Next
Rem Коррекция массива
possible For J = 1 To outcomes
possibleO) = decisions(J)
For I - 1 To var
If varflag(I) Then If mles(I, J) > rules(l, best) Then possible(J) =
Possible(J) + (rules(I, J) rules(I, best)) * maxi(I) Else
Possible(J) = possiblJ) - (rules(I, best) - rules(I, J)) * mini(I)
Next: Next
Rem Нахождение максимального значения possible,
т. е. possible (bestposs) наилучшего текущего значения
maxposs=~ possible(best)
bestposs = best
For J = 1 To outcomes
If possible(J)
>=
maxposs Then maxsposs = possible(J): bestposs =J
If possible(J) < possible(best) Then outflag(J) = 0: MsgBox "Это не может быть" & outcomes(J):
Rem Этот исход больше нельзя считать ожидаемым
Next
If bestposs <> best Then GoTo 400: Rem Пока ещѐ существует
неопределѐнность, поэтому введите другую переменную
If MsgBox("Ожидаемый исход " & myoutcomes$(best) & "?",
vbYesNo) = vbYes Then GoTo 820
MsgBox "ПрекрасноГ
GoTo 230: Rem Введи другой пример
820: Rem Спроси правильный ответ
tmp$ = ""
For I = 1 То outcomes
    End If
    value(bestvar) - Clnt(tmp)
    varflag(bestvar) = 0: Rem Установка флажка на нуль, т.к.
    значение переменной уже получено Rem
Коррекция массива decision
     For J = 1 То outcomes
    X = value(bestvar)*rules(bestvar, J): decisions(J) = decisions(J) + X Next
    Rem Нахождение максимального значения decisionp т.е. decisions(best) , как
лучшего текущего значения решения decision = -10000
    For J = 1 То outcomes
    If decisions(J) >= decision Then decision = decisions(J): best = J Next
    Rem Коррекция массива
possible For J = 1 To outcomes
    possibleO) = decisions(J)
    For I - 1 To var
    If varflag(I) Then If mles(I, J) > rules(l, best) Then possible(J) =
    Possible(J) + (rules(I, J) – rules(I, best)) * maxi(I) Else
    Possible(J) = possiblJ) - (rules(I, best) - rules(I, J)) * mini(I)
    Next: Next
    Rem Нахождение максимального значения possible,
    т. е. possible (bestposs) — наилучшего текущего значения
    maxposs=~ possible(best)
    bestposs = best
    For J = 1 To outcomes
    If possible(J) >= maxposs Then maxsposs = possible(J): bestposs =J
     If possible(J) < possible(best) Then outflag(J) = 0: MsgBox "Это не может быть" & outcomes(J):
Rem Этот исход больше нельзя считать ожидаемым
    Next
    If bestposs <> best Then GoTo 400: Rem Пока ещѐ существует
    неопределѐнность, поэтому введите другую переменную
    If MsgBox("Ожидаемый исход " & myoutcomes$(best) & "?",
    vbYesNo) = vbYes Then GoTo 820
    MsgBox "ПрекрасноГ
    GoTo 230: Rem Введи другой пример
    820: Rem Спроси правильный ответ
    tmp$ = ""
    For I = 1 То outcomes

                                                    85