Это все еще нечеткая логика?

У меня есть вопрос о том, как реализовать нечеткую логику в моем приложении, но лучше объяснить на классическом примере. Если я использую нечеткую логику для управления рулевым управлением автомобиля с диапазоном выхода: -1 (слева), 0 (впереди) и +1 (справа), я могу напрямую использовать число с выхода для управления автомобиль. В случае, когда я использую нечеткую логику для управления поведением, представленным набором определенных действий, так что никаких чисел не требуется, например: -1 (зло), 0 (нейтрально), +1 (хорошо). Я могу получить выходные данные, которые могут варьироваться от -1 до 1, поэтому, если я получу 0,385 в качестве выходных данных, как я могу преобразовать его в набор действий? Я думал сделать что-то вроде:

 if output < -0.5

      evilActions()

 if output > -0.5 && output < 0.5

      neutralActions()

 if output > 0.5

      goodActions()

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

result.value = 0

 foreach (membershipFunctions mf)

      if (mf.value > result.value)

           result = mf

 if (result.label == "good")

      goodActions()

 if (result.label == "neutral")

      neutralActions()

 if (result.label == "evil")

      evilActions()

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

Спасибо за помощь.

0 ответов

Другие вопросы по тегам