Использование примитивной нечеткой логики (fuzzy logic)

Aug 04, 2009 11:28

Давеча я читал книжку про алгоритмы «исскуственного интеллекта», и наткнулся на описание алгоритмов нечеткой логики. В отличие от бинарной логики, где утверждение может быть ложным или истинным, в нечеткой логике истинность утверждения принимает значение от 0,0 до 1,0. Далее, одна и та же величина может быть основой для нескольких нечетких переменных. Вот что можно сказать про человека в возрасте 40 лет:

  • Он молодой? - Нет.
    is_young(40) = 0,0
  • Он зрелый? - Да.
    is_mature(40) = 1,0
  • Он старый? - Не очень.
    is_old(4) = 0,3

К нечетким переменным применимы правила нечеткой логики:

  • fuzzy_and(a, b) = min(a, b)
  • fuzzy_or(a, b) = max(a, b)
  • fuzzy_not(a) = 1 - a

В граничных случаях (когда a и b равны 0,0 или 1,0) правила нечеткой логики полностью соответствуют правилам бинарной логики. Например,

fuzzy_and(0, 1) = min(0, 1) = 0

Когда я прочитал все это, я подумал - а ведь всю эту замуть можно с успехом применить на сайте! :) Суть моей идеи заключалась в следующем:

1. Тянем откуда-нибудь прогноз погоды.
2. Скармливаем его набору fuzzy-правил, на выходе получаем характеристику погоды («очень жарко», «слегка прохладно»).
3. На основе характеристики «советуем» посетителям тот или иной товар.

Изначально я задумывал что-то действительно большое, но где-то по пути обломался, и набор правил получился не сильно большой. Я сделал две основные характеристики: по температуре и по влажности. Температура зависит от собственно температуры воздуха, сезона и времени суток (летним днем +5°C - это холодрыга, летней ночью - это прохладно, а зимой - довольно тепло) и силы ветра (чем сильнее ветер, тем на улице прохладней). С влажностью все намного проще, она зависит только от относительной влажности воздуха (летом сухой воздух сушит кожу так же сильно, как и зимой).

Результат можно заценить на главной странице «Техно-столицы» (блок «Погода в Киеве» и «Робот-метеоролог советует...»). Лично я им очень доволен :) За два месяца работы скрипта советами «робота-метеоролога» воспользовалось 40 человек - довольно много, учитывая, что в среднем в день на сайт заходит 120 посетителей.

штукенция, погода

Previous post Next post
Up