Искусственный разум | страница 29
Если нужна полная запись нечеткого алгоритма, то, пожалуй, не сыщешь лучше этой.
Тот, кто не знает и не знает, что он не знает,
- глупец, избегай его.
Тот, кто не знает и знает, что он не знает,
- может научиться, научи его.
Тот, кто знает и не знает, что он знает,
- спит, разбуди его.
Тот, кто знает и знает, что он знает,
- пророк, учись у него.
Придадим старинному персидскому поучению формальный вид; оно станет менее поэтичным, зато более строгим.
1. Он что-нибудь знает? Неть да! (запомнить).
2. Он знает, что ничего не знает? Нет2, да2 (запомнить).
3. Если нет1 и нет2, то "глупец, избегай его".
4. Если нет1 и да2, то "может научиться, научи его".
5. Если да1 и нет2, то "спит, разбуди его".
6. Если да1 и да2, то "пророк, учись у него".
Персидский алгоритм содержит целую гроздь размытых понятий (выделены курсивом). Он относится к числу алгоритмов распознавания, но распознаванием дело не ограничивается; перед нами еще и алгоритм действий: избегай его, научи его, разбуди его, учись у него.
Каждое действие не детализировано, названо в общем. Оно детализируется другим размытым алгоритмом. Скажем, алгоритм "Избегай его":
Прочитать эту запись легче легкого. Возможные ответы на вопросы образуют две колонки. Если ваш очередной ответ из левой колонки, переходите к следующей строке, к очередному шагу алгоритма, а если из правой колонки, указано, к какому шагу переходить.
Например, когда глупца нет поблизости, мы, минуя все шаги алгоритма, переходим к его 10-му, последнему, шагу: радуемся и вздыхаем свободно.
Совсем другой оборот принимает дело, когда глупец настигает вас (ответ "да" на шаге 9 алгоритма). Приходится возвращаться к шагу 2 - вновь прятаться, пережидать опасность. В нечетком алгоритме прорастает цикл. А за ним и второй: от шага 4 к шагу 1.
Все алгоритмы, о которых шла до сих пор речь, я бы назвал получеткими: переменные в них действительно размытые, а логика (ответы на вопросы) строгая: только "да" или "нет", "истина" или "ложь", 1 или 0.
Размывать так размывать! Размоем саму логику. Когда-то остроумный философ сравнил логику с перилами моста; она хотя и не руководит процессом мышления, но ограждает человека от ошибок. Как вам правится, читатель, размытый мост с нечеткими перилами? Сохраним обозначение 1 для полной истины и 0 для совершенной лжи. Тогда приблизительная истина будет
числом, близким к 1, а несовершенная ложь - к 0. Запишем:
да=1/1+0,8/0,9+0,7/0,8.