Нечеткий логический вывод: дефаззификация...
От: Sender219 Россия  
Дата: 17.09.07 10:00
Оценка:
Доброе время суток!

Провожу этап фаззификации и определения степеней уверенности для посылок правила, никаких трудностей, а вот с алгоритмом аккумуляции и дефаззификации разобраться не могу… могу решить только с использованием графиков принадлежностей, так сказать графическим методом, а необходим алгоритм на Си.
Если кто-нибудь сталкивался с подобной задачей, подскажите, пожалуйста…
Re: Нечеткий логический вывод: дефаззификация...
От: vadimcher  
Дата: 18.09.07 15:44
Оценка:
Здравствуйте, Sender219, Вы писали:

S>Доброе время суток!


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

S>Если кто-нибудь сталкивался с подобной задачей, подскажите, пожалуйста…

А какой алгоритм дефазификации используется?

А вот зайца кому, зайца-выбегайца?!
Re[2]: Нечеткий логический вывод: дефаззификация...
От: Sender219 Россия  
Дата: 19.09.07 07:16
Оценка:
Здравствуйте, vadimcher, Вы писали:

V>А какой алгоритм дефазификации используется?


Импликация — по минимуму, аккумуляция — по максимуму, а дифаззификация — либо "центр тяжести", либо "первый максимум"...
Re[3]: Нечеткий логический вывод: дефаззификация...
От: vadimcher  
Дата: 19.09.07 15:42
Оценка:
Здравствуйте, Sender219, Вы писали:

S>Здравствуйте, vadimcher, Вы писали:


V>>А какой алгоритм дефазификации используется?


S>Импликация — по минимуму, аккумуляция — по максимуму, а дифаззификация — либо "центр тяжести", либо "первый максимум"...


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

А вот зайца кому, зайца-выбегайца?!
Re[4]: Нечеткий логический вывод: дефаззификация...
От: Sender219 Россия  
Дата: 20.09.07 08:44
Оценка:
Здравствуйте, vadimcher, Вы писали:

V>А какие функции принадлежности для посылок и импликаций, т.е. для левых и правых частей правил, и как Вы их задаете?


Принадлежность всех термов для лингв. переменных задаю 4 точками a, b, c, d.
Крайние задают носитель множества, две центральные (b, c) — ядро.
Т.е. функции принадлежности кусочно-линейные: либо трапецеидальная, либо треугольная (в случае b==c).
Рассматриваю пример с тремя продукционными правилами, выводы которых соответствуют трем различным термам для результирующей лингв. переменной.
Каждое правило состоит из двух посылок, со связкой либо "И", либо "ИЛИ". Для каждой посылки определяю степень уверенности, затем, в зависимости от связки между посылками в правиле, нахожу либо min, либо max. Так для каждого правила.
Т.о. получаю три числа, например: 0.37, 0.94 и 0.11.
Re[5]: Нечеткий логический вывод: дефаззификация...
От: vadimcher  
Дата: 20.09.07 17:35
Оценка:
Здравствуйте, Sender219, Вы писали:

S>Здравствуйте, vadimcher, Вы писали:


V>>А какие функции принадлежности для посылок и импликаций, т.е. для левых и правых частей правил, и как Вы их задаете?


S>Принадлежность всех термов для лингв. переменных задаю 4 точками a, b, c, d.

S>Крайние задают носитель множества, две центральные (b, c) — ядро.
S>Т.е. функции принадлежности кусочно-линейные: либо трапецеидальная, либо треугольная (в случае b==c).
S>Рассматриваю пример с тремя продукционными правилами, выводы которых соответствуют трем различным термам для результирующей лингв. переменной.
S>Каждое правило состоит из двух посылок, со связкой либо "И", либо "ИЛИ". Для каждой посылки определяю степень уверенности, затем, в зависимости от связки между посылками в правиле, нахожу либо min, либо max. Так для каждого правила.
S>Т.о. получаю три числа, например: 0.37, 0.94 и 0.11.

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

Далее для &&-правила берем min, для ||-правила -- max. Так?

В итоге три числа.

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

Например, выходная переменная -- угол, на который надо повернуть руль. Измеряется от -1 до +1. Три терма: налево, прямо, направо. Им соответствуют три функции принадлежности, например (в виде ваших четверок чисел (a, b, c, d)): (-1, -1, -0.5, 0), (-0.5, 0, 0, 0.5), (0, 0.5, 1, 1).

Вы получили из правил, к примеру, 0.7 налево, 0.5 прямо, 0.1 направо. Вам нужен теперь конкретный угол.

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

Разобьем весь интервал [-1,1] на много-много кусочков. Для каждого из них Вы смотрите максимум по всем термам выходной переменной минимума между уверенностью для этого терма и значением функции принадлежности в данной точке. После этого Вы это число умножаете на значение в этой точке, делите на длину интервала и суммируете по всем точкам -- получаем интеграл yf(y). Если не умножать на значение -- интеграл f(y). Делим первый на второй. Вроде ничего сложного.

В примере выше. Максимум обрезанных трапеций проходит через точки (-1, 0.7), (-0.35, 0.7), (-0.25, 0.5), (0.25, 0.5), (0.45, 0.1), (1, 0.1). Интегрируем умножая на значение, затем без умножения, делим одно на другое и получаем около -0.3. Рулим слегка влево.

А вот зайца кому, зайца-выбегайца?!
Re[6]: Нечеткий логический вывод: дефаззификация...
От: Sender219 Россия  
Дата: 21.09.07 07:48
Оценка:
Здравствуйте, vadimcher, Вы писали:

Большое спасибо, вроде все понятно, кроме одного нюанса:
V>"...После этого Вы это число умножаете на значение в этой точке..."

Число это я получил... какое значение имеется ввиду?
Re[7]: Нечеткий логический вывод: дефаззификация...
От: Sender219 Россия  
Дата: 21.09.07 12:56
Оценка:
Похоже разобрался: текущее значение по оси X Правильно?
Re[8]: Нечеткий логический вывод: дефаззификация...
От: vadimcher  
Дата: 21.09.07 20:12
Оценка:
Здравствуйте, Sender219, Вы писали:

S>Похоже разобрался: текущее значение по оси X Правильно?


Ну да. После взятия максимума обрезанных трапеций у Вас нечеткий вывод -- что-то вроде сложной функции принадлежности для выходной переменной f(x). Чтобы свести к четкому выводу, берем, например, среднее.
int[xf(x)]/int[f(x)]

А вот зайца кому, зайца-выбегайца?!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.