Fuzzy, bulanık mantık ile çalışmak için tasarlanmış bir kütüphanedir

Bulanık mantık, doğru, sözsel bir değişken şeklinde vurgulandığında geleneksel Aristocu mantığın bir sentezidir. Klasik mantıkta olduğu gibi, bulanık mantıkta da konuya özgü –tanımlanan bulanık kümeler üzerinde– mantıksal işlemler bulunur. Bulanık kümeler üzerindeki işlemler sıradan kümelerde olduğu gibidir ama hesaplanmaları daha zordur. Ayrıca belirtmemiz gerekir ki bulanık kümelerin kompozisyonları yine bulanık kümeler oluşturur.

Bulanık mantığı klasik mantıkan ayıran ana unsurlar, gerçeğin yansımasına maksimum derecede yakınlık ve oldukça yüksek seviyede bir öznellik şeklinde tanımlanabilir. Bu durum, hesaplamalarda ciddi hatalara yol açabilmektedir.

Bulanık modeller (veya sistemler), hesaplamaları bulanık mantık temelinde gerçekleştirilen matematiksel modellerdir. Bunlar, çalışma konusunun biçimselliğinin zayıf olması veya matematiksel açıklamasının aşırı karmaşık olması durumunda kurulabilir. Bu modellerin sonuç kalitesi, modeli kuran Uzman Danışmana doğrudan bağlıdır. Hata minimizasyonu için en iyi seçenek, en eksiksiz ve en kapsamlı modelin oluşturulması ve yine bu modelin, geniş eğitim kümeleriyle çalışan makine öğrenimi ile devamlı olarak düzeltilmesiyle elde edilir.

Model oluşturma süreci üç ana aşamaya bölünebilir:

  1. Modelin girdi ve çıktı özelliklerinin tanımlanması.
  2. Bilgi temelinin kurulması.
  3. Bulanık çıkarım yöntemlerinden (Mamdani veya Sugeno) birinin seçimi.

İlk aşama, sonraki iki aşamayı da etkiler ve modelin gelecekteki işlemleri için belirleyicidir. Bilgi tabanı (veya diğer ismiyle kural tabanı), üstünde çalışılan nesnenin girdileri ve çıktıları arasındaki bağıntıyı "eğer" ve "ise" gibi işlemlerle tanımlayan bir bulanık kurallar kümesidir. Sistemdeki kuralların sayısı Uzman Danışman tarafından belirlenir ve sınırsızdır. Bulanık kuralların genel çerçevesi şu şekildedir:

Kural durumu ise, kural sonucu.

Kural durumu nesnenin mevcut durumunu, kural sonucu ise durumun nesneyi nasıl etkilediğini açıklar. Durumların ve sonuçların genel durumu kullanıcı tarafından seçilemez; bulanık çıkarım ile belirlenirler.

Sistemdeki her kuralın bir ağırlığı vardır, bu ağırlık kuralın modeldeki önemini gösterir. Kurallara atanan ağırlıklar [0, 1] aralığında olmalıdır. Bulanık modellerle ilgi literatürde rastlanan bir çok örnekte ağırlık verileri belirtilmemiştir, ama bu ağırlığın olmadığı anlamına gelmez. Aslında bu tip durumlarda veritabanındaki her bir kural için ağırlık sabittir ve bire eşittir. Her Kural için iki tip terim ve sonuç olabilir:

  1. basit — bir bulanık değişken içerir;
  2. karmaşık — birkaç bulanık değişken içerir.

Oluşturulan bilgi temeline göre, model için kullanılacak bulanık çıkarım sistemi belirlenir. Bulanık mantıksal çıkarım, bilgi tabanı ve bulanık işlemlerin kullanılmasının ardından, sonuçların, girdilerin mevcut durumunu gösteren bir bulanık küme şeklinde elde edilmesidir. Bulanık çıkarımın "Mamdani" ve "Sugeno" olmak üzere iki tipi bulunur.