Bulanık Mantık #4: Bulanık Sistem Uygulaması

Önceki yazılarda basit bir bulanık sistem oluşturmak için gerekli olan tasarım parametrelerinden bahsettik. Bu yazıda, tasarım zincirinin son halkası olan durulaştırma yönteminden bahsedeceğiz. Yazının sonunda ise klasik bir bulanık mantık problemini, şimdiye dek incelediğimiz yöntemlerle çözmeye çalışacağız.

Durulaştırma

Bahsedeceğimiz durulaştırma yöntemlerini uygulamak, çıkarım yönteminden tamamen bağımsız bir süreç olmayabilir. Örn. Sugeno çıkarım yönteminde: çıkış için oluşturulan fonksiyonlar, istenilen aralıkta değerler verecek şekilde tasarlanmışsa; bu durumda çıkarım biriminden alınan çıktılar duru değerler olacaktır ve ekstra bir durulaştırma işlemine gerek kalmayacaktır.

Literatürde önerilen çok sayıda durulaştırma yöntemi bulunmaktadır. Bunlardan en çok kullanılanları inceleyelim.

1. Ağırlık Merkezi

Image for post
Image for post
Formül 1. Ağırlık merkezinin hesaplanması

2. Ağırlıklı Ortalama

Image for post
Image for post
Formül 2. Ağırlık ortalama değeri ile durulaştırma. n, toplam kural sayıdır.

3. Alan Merkezi

Image for post
Image for post
Formül 3. Alan merkezi. n, toplam kural sayısıdır.

4. En Büyüklerin En Küçüğü ve En Büyüğü

5. En Büyüklerin Ortalaması

Image for post
Image for post
Şekil 1. Durulaştırma yöntemleri. Y ekseni, çıkış değerler için istenen aralığı tutan eksendir.

Uygulama: Çamaşır Makinesi Tasarımı

Image for post
Image for post
Görsel: kaynak

Bulanık mantığın sıkça kullanıldığı alanlardan birisi de kontrol sistemleridir. Her koşulda “A girdisine karşılık B çıktısını üret” gibi tam tanımlı ve bütün ihtimalleri değerlendiren tasarımlar mümkün olmadığı için, sistem için gözetilen kriterlere uyacak ve her girdi için en makul çıktıyı üretebilecek sistemlere ihtiyaç duyulur. İnsan mantığının çalışmasını referans alarak çıktılar üretebilen bulanık mantık da, doğal olarak, bu konuda iyi bir alternatif olarak karşımıza çıkar.

Çamaşır makinesi tasarımı, bulanık mantık anlatımında sıkça verilen bir örnektir. Bu tasarım problemi, aslında en basit anlamda bir optimizasyon (iyileme) problemidir. Çünkü geliştiriciden beklenen; kirli çamaşır miktarı ve suyun sertlik derecesine göre, makinenin devir sayısını ideal bir değerde tutarak verimliliğin sağlanmasıdır. Problemin giriş-çıkışlarının farklı olduğu çeşitli versiyonları da bulunmaktadır.

Problemimizi çözümlemeye; girişleri ve çıkışı belirleyerek başlayalım.

  • Girişler: Çamaşır miktarı (kg), sertlik derecesi (ASD)
  • Çıkış: Yıkama devri (rpm)

Not: Sertlik birimi olarak Amerikan Sertlik Derecesi (ASD) esas alınmıştır.

Adım 1: Bulanık kümelerin oluşturulması

  • Sertlik: Yumuşak, Az Yumuşak, Az Sert, Sert
  • Çamaşır: Az, Normal, Çok
  • Devir: Hassas, Hafif, Normal, Güçlü

Adım 2: Üyelik fonksiyonlarının oluşturulması

Image for post
Image for post
Şekil 2. Sertlik için üyelik fonksiyonları.
Image for post
Image for post
Şekil 3. Çamaşır miktarı için üyelik fonksiyoları.
Image for post
Image for post
Şekil 3. Devir sayısı için üyelik fonksiyonları.

Daha önce de belirttiğimiz gibi; dilsel değerler için aralıkların belirlenmesi, sistemi tanımlayan uzmanların bilgi ve tecrübelerine göre değişebilir.

Adım 3: Kuralların oluşturulması

  • Kural 1: EĞER sertlik YUMUŞAK VE çamaşır AZ İSE, O HALDE devir HASSASTIR.
  • Kural 2: EĞER su AZ YUMUŞAK VE çamaşır NORMAL İSE, O HALDE devir HAFİFTİR.
  • Kural 3: EĞER su AZ SERT VEYA çamaşır NORMAL İSE, O HALDE devir NORMALDİR.
  • Kural 4: EĞER su SERT VEYA çamaşır ÇOK İSE, O HALDE devir GÜÇLÜDÜR.

Görüldüğü gibi, her bir çıkış değeri için birer kural üretilmiştir. Tercih edilirse, aynı çıkış değerleri için birden fazla kural da üretilebilir. Fakat çözümü olabildiğince basit tutmak için gerek duyulmamıştır.

Adım 4: Giriş değerlerinin alınması ve bulanıklaştırılması

  • Sertlik: 8 ASD
  • Çamaşır miktarı: 4.5 kg

Bulanıklaştırma işlemine geçelim ve giriş değerlerini, üyelik fonksiyonlarını kullanarak, bulanık değerlere dönüştürelim. Sertlik değeri için:

  1. µYumuşak(8) = 0
  2. µAzYumuşak(8) = 0.5
  3. µAzSert(8) = 0.5
  4. µSert(8) = 0

8 ASD’lik sertlik değerinin, Az Yumuşak ve Az Sert bulanık kümelerine eşit derecede dahil olduğu görülüyor.

Çamaşır miktarı için:

  1. µAz(4.5) = 0
  2. µNormal(4.5) =0.25
  3. µÇok(4.5) = 0.75

Bulunan değerler, grafikler üzerinden çıkarılacak doğru denklemleriyle kolaylıkla hesaplanabilir.

Adım 5: Tetiklenen kuralların tespit edilmesi

  • Kural 1: min(0, 0) = 0
  • Kural 2: min(0.5, 0.25) =0.25
  • Kural 3: max(0.5, 0.25) = 0.5
  • Kural 4: max(0, 0.75) = 0.75

Sonuçlarını elde ederiz. Bu durumda, 1. kural haricindeki tüm kuralların tetiklendiğini söyleyebiliriz.

Adım 6: Çıkarımın gerçeklenmesi

  • Hassas ÇK için: 0 (Kural1)
  • Hafif ÇK için: 0.25 (Kural 2)
  • Normal ÇK için: 0.5 (Kural 3)
  • Güçlü ÇK için: 0.75 (Kural 4)

Çıkan sonuç aşağıdaki gibi (Şekil 4) olacaktır:

Image for post
Image for post
Şekil 4. Mamdani çıkarımı sonucunda ortaya çıkan alanlar.

Adım 7: Durulaştırma

  • Hassas ÇK için: min = 0, max = 0, ortalama = 0
  • Hafif ÇK için: min = 450, max = 750, ortalama = 600
  • Normal ÇK için: min = 700, max = 900, ortalama = 800
  • Güçlü ÇK için: min = 950, max = 1200, ortalama = 1075

Ortalamaları Formül 3.e göre üyelik dereceleri ile çarpıp toplarsak:

  • 600 * 0.25 + 800 * 0.5 + 1075 * 0.75 = 1356.25

değeri hesaplanır. Son olarak; elde ettiğimiz toplamı, üyelik derecelerinin toplamına bölerek durulaştırılmış değeri bulalım:

  • Kural değerleri toplamı: 0.25 + 0.5 + 0.75 = 1.5
  • Alan merkezi = 1356.25 / 1.5 = 904,16

Alan merkezi olarak hesapladığımız değer, aynı zamanda durulaştırılmış değerdir. Yani, (belirttiğimiz giriş değerleri olan) 4,5 kg’lık çamaşır ve 8 ASD sertliğe sahip yıkama suyu için, tasarladığımız bulanık sistemin bize önerdiği devir sayısı yaklaşık 904 rpm’dir. Kullanılan durulaştırma yöntemine göre, farklı sonuçlar ortaya çıkabileceğini belirtelim.

Sonuç

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store