Как применять метод Расчески?
Я изучаю метод расчески, чтобы уменьшить "комбинаторный взрыв" правил нечеткой логики. Вот пример, взятый из "Программирования игрового AI из примера" (написанный Мэттом Баклендом):
Теория, лежащая в основе метода Расчески, работает по принципу:
IF Target_Far и Ammo_Loads THEN желательно
логически эквивалентно: ЕСЛИ Target_Far THEN желательно или IF Ammo_Loads THEN желательно
Используя этот принцип, можно определить базу правил, которая содержит только одно правило на каждый последующий набор элементов. Например, девять правил желательности ракетной установки приведены ранее:
Правило 1. ЕСЛИ Target_Far И Ammo_Loads THEN желательно
Правило 2. ЕСЛИ Target_Far И Ammo_Okay THEN нежелательны
Правило 3. ЕСЛИ Target_Far И Ammo_Low THEN нежелательны
Правило 4. ЕСЛИ Target_Medium И Ammo_Loads THEN VeryDesiable
Правило 5. ЕСЛИ Target_Medium AND Ammo_Okay THEN VeryDesiable
Правило 6. ЕСЛИ Target_Medium И Ammo_Low THEN желательно
Правило 7. ЕСЛИ Target_Close AND Ammo_Loads THEN нежелательно
Правило 8. ЕСЛИ Target_Close AND Ammo_Okay THEN нежелательно
Правило 9. ЕСЛИ Target_Close AND Ammo_Low THEN нежелательно
можно сократить до шести правил:
Правило 1. ЕСЛИ Target_Close THEN нежелательно
Правило 2. ЕСЛИ Target_Medium THEN Очень желательно
Правило 3. ЕСЛИ Target_Far THEN нежелателен
Правило 4. IF Ammo_Low THEN нежелательно
Правило 5. IF Ammo_Okay THEN Желательно
Правило 6. ЕСЛИ Боеприпасы_Загрузки ТОГДА Очень желательно
Я не понимаю, как он сократил эти правила! Я разбил каждое начальное правило на две части (применение принципа, записанного в начале A и B => C, эквивалентно A => C ИЛИ B => C). Есть ли образец для подражания, или последние 6 правил не зависят от начальных 9?
1 ответ
Первая проблема - оператор. это не просто, а ЕСЛИ ТОГДА... здесь вы можете узнать больше об операторе IF/THEN: http://www.math.hawaii.edu/~ramsey/Logic/IfThen.html
но вопрос "как уменьшить" остается открытым