ybssoftware.files.wordpress.com · web viewmatlab fuzzy logic toolbox matlab ile gelen bulanık...
TRANSCRIPT
Bulanık Mantık Kavramı ve Kullanım Alanları
Bulanık mantık kavramı Dr.Lotfi Zadeh tarafından 1960 yıllarında ortaya atılmıştır. Kontrol
ile ilgili yeni bir anlayış ortaya atan bu çalışmadan sonra tüm dünyada kullanılmaya
başlanmıştır. Zadeh bu çalışmasında insan düşüncesinin büyük çoğunluğunun bulanık
olduğunu, kesin olmadığını belirtmiştir. Bu yüzden 0 ve 1 ile temsil edilen boolean mantık bu
düşünce işlemini yeterli bir şekilde ifade edememektedir. İnsan mantığı, açık, kapalı, sıcak,
soğuk, 0 ve 1 gibi değişkenlerden oluşan kesin ifadelerin yanı sıra, az açık, az kapalı, serin,
ılık gibi ara değerleri de göz önüne almaktadır.
Kümeler teorisinde bir eleman ya bir kümeye aittir ya da değildir. Fakat bulanık kümelerde
bir eleman birden fazla kümeye ait olabilmektedir. Bulanık kümelerde kesinlik kavramı
yoktur. Bulanık mantık (Fuzzy) karar verme mekanizması olarak ta tanımlanabilecek sözel
ifadelerin bir uzman kişi tarafından belirtilen kesin olmayan sınırlar içindeki davranışını
matematiksel olarak modellemeye yarar. Modelleme kesin olmayan bulanık kümelerden
oluştuğundan Bulanık ya da Fuzzy olarak ifade edilir. Bu ismi kişisel ya da uzman kişinin
kesin çizgilerle ifade edemediği ancak bölgesel olarak yaklaşık sınırlarının belli olduğu
durumlarda anlamlı sonuçlar vermektedir.
Bulanık mantık birçok alanı ilgilendirmektedir. Bazı teknolojik uygulamalar şunlardır;
bulanık mantık kontrollü kameralar (Sanyo, Fisher firmaları tarafından), bulanık mantık ile
konfor şartlarını sağlayan iklimlendirme sistemleri (Mitsubishi firması tarafından), bulanık
mantık kontrollü çamaşır makinesi (Matsushita firması), Japonya’nın Sandai şehir metrosu
kontrolü (trenlerde operatörlerin yaptığı hızlanma ve frenlemeyi %70 azaltmıştır), bulanık
mantık transmisyon ve kaymayı önleyen frenleme sistemi (Nissan firması). Bunlara ek olarak,
bulanık mantıklı tost makinesi, pişirici, elektrik süpürgesi, otomatik araç parkı, seyir kontrolü,
yüz tanıma (fotoğraf makineleri), sınıflandırma gibi uygulamaları mevcuttur (Jamshidi, 1993).
Bulanık mantık kontrol üç temel aşamadan oluşur. Bunlar;
• Bulanıklaştırma (Fuzzification)
• Çıkarım ve Bilgi Tabanı (Inference and Knowledge Base)
• Durulaştırma (Defuzzification)
Şekil 1: Bulanık Kontrol Sistemi
1. Bulanıklaştırma: Bulanıklaştırma ham haldeki girdileri (crisp) aralıklara bölerek üyelik
fonksiyonları ile ifade etmektir. Her üyelik fonksiyonuna kontrol amacına uygun sözsel bir
ifade atanır. Belirlenen üyelik fonksiyonları uygun geometrik sekil ile ifade edilir.
1.1 Klasik ve Bulanık Kümeler
Klasik küme kuramında bir eleman o kümenin ya elemanıdır ya da değildir. Hiçbir zaman
kısmi üyelik olmaz. Nesnenin üyelik degeri 1 ise kümenin tam elemanı, 0 ise elemanı
değildir. Başka bir deyişle klasik veya yeni ürün kümelerinde elemanların üyelikleri {0,1}
değerlerini alır. Bulanık mantık, insanın günlük yaşantısında nesnelere verdiği üyelik
değerlerini, dolayısıyla insan davranışlarını taklit eder. Örneğin elini suya sokan bir kişi hiç
bir zaman tam olarak ısısını bilemez, onun yerine sıcak, az sıcak, soğuk, çok soğuk gibi dilsel
niteleyiciler kullanır.
Şekil 2-Klasik sıcaklık kümesi
Şekil-2’de, eğer sıcaklık 20 oC'nin altına düşerse sıcak değildir. Yani klasik mantık kuramına
göre 19,5 oC sıcak değildir. Doğal olarak bu mantığın hiç bir esnekliği yoktur. Gerçek
dünyada ise sınırlar bu kadar keskin değildir.
Şekil 3-Bulanık sıcaklık kümesi
Şekil-3’de, 10-40 oC arasındaki değerler sıcak kümesine üyedirler. 20-40 oC arasındaki
değerler üyelik dereceleri l'dir, 10- 20 oC derece arasındaki sıcaklıkların ise üyelik dereceleri 0
ile 1 değerleri arasında değişecektir. Başka bir ifade ile örneğin 11 oC az sıcak, 15 oC biraz
sıcak olarak değerlendirilecektir. 20 oC 'yi oda sıcaklığı kabul ederek, soğuk bulanık kümesi
oluşturulur. 15 °C 0,5 üyelik derecesi ile hem sıcak bulanık kümesine, hem de soğuk bulanık
kümesine üyedir. 10 ile 20 derece arasındaki değerler hem sıcak hem de soğuk kümesine
aittirler. Şekilde taralı olarak gösterilen bu bölge bulanık kümelerin kesişim bölgesidir ve
bulanık kümelerin örtüşümü olarak adlandırılır.
Sistemlerin verimli çalışmasını sağlamak amacıyla değişik şekillerde (üçgen,
Trapezoidal(yamuk), Gauss eğrisi... vs.) bulanık kümeler seçilebilir.
2. Çıkarım ve Bilgi Tabanı
Bulanık mantık kontrolde çıkarım birimi, birleştirme (çıkarım ve toplama) operatörleri ve
oluşturulan kural tablosunu kullanarak çıktıyı bulur. Birleştirme işlemlerini kullanım sırasına
göre dört temel çıkarım metodu oluşmuştur. Aşağıda verilen bu metodlar ilk kullanan kişinin
adıyla anılmıştır. Bunların farkı her birisinin farklı çıkarım (implication) ve toplama
(aggregation) metodu kullanmasıdır.
• Mamdani method,
• Larsen method,
• Tsukamoto method,
• Takagi-Sugeno (T-S) method
Bilgi tabanı iki kısımdan oluşur. Birincisi; bulanıklaştırma, karar verme ve durulaştırma
birimlerine ait üyelik fonksiyonu için gerekli bilgileri sağlayan veri tabanı, ikincisi; çıkarım
yapmak için gerekli önermeler topluluğunun bulunduğu kural tabanıdır.
Kural tabanı, uygulama alanındaki uzman kişilerin kontrol hedeflerini ve kontrol sırasında
takip ettikleri yöntemleri karakterize etmeyi sağlayan dilsel değişkenlerden oluşturulan
kurallar kümesidir. Oluşturulan bu kurallara bulanık kurallar denir. Bu kurallar, sistemin giriş
ve çıkışları arasındaki mantıksal ilişkileri açıklar. Bulanık mantık denetleyicinin çıkısı, durum
ve davranış bildiren kuralların değerlendirilmesi ile elde edilir. Kurallar, sistem
değişkenlerinin tanımlandığı “eğer” ve denetim değişkenlerinin tanımlandığı “ise”
komutlarıyla oluşturulur. Genellikle kurallar şart cümlelerinden (EĞER X=A İSE Y=B)
oluşur. Bir kuralın “Eğer” kısmı; bulanık kümelerin girdi kısmının üyelik derecesine
referanstır. “İse” kısmı da sonuca referanstır. Toplam kural sayısı, sistemi karakterize eden
bulanık alt kümelerin sayılarının çarpımlarının toplamına eşittir. Kuralların sayısı ve
doğruluğu sistemin performansını etkileyen en önemli faktörlerdir. Sistemin kural tabanını
oluşturmak için bugüne kadar değişik yollar kullanılmıştır.
Bunlardan birisi uygulanacak sistemi iyi tanıyan bir uzman bilgisi ile sistem giriş-çıkış
değişkenleri ve kontrol kuralları belirlenir. Kurallar giriş çıkış değişkenlerinin dilsel
ifadelerinden oluştuğundan bu işlem uzmanın kendi kontrol stratejisinin kural tabanına
aktarımının en kolay ve güvenli yoludur. Kural tabanı oluşturulduktan sonra gerekiyorsa her
kurala belirli bir ağırlık vermek veya gereksiz kuralların eliminasyonu işlemleri hızlandırmak
için gerekli olabilmektedir. Diğer bir yol ise daha önceden operatörün kontrol yönteminin
taklit edilmesidir. Bazı endüstriyel sistemlerde modellenemeyen ve ancak bir operatör
yardımıyla kontrol edilebilen süreçlerin; operatörün izlenmesiyle, yaptığı işlemlerin(bilinçli
ya da bilinçsiz) şart cümlelerine (EĞER .. İSE ) dönüştürerek kural tabanının elde edilmesidir.
3. Durulaştırma
Çıkarım mekanizması sonucu elde edilen sonuç dilsel terimler içeren bulanık bir kümedir,
bunun sistemin ihtiyaç duyduğu kesin değerlere dönüştürülmesi gereklidir. Bunun için birçok
yöntem vardır. Ağırlık merkezi metodu ve maksimum metodu gibi yöntemleri vardır.
MATLAB FUZZY LOGIC TOOLBOX
Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak,
düzenlemek ve gözlemlemek için başlıca beş grafiksel kullanıcı arabirimi aracı sunmaktadır.
Bulanık Sonuç Sistemi (FIS) Düzenleyici(FIS Editör)
Üyelik Fonksiyonu Düzenleyici (Membership Function Editor)
Kural Düzenleyici (Rule Editor)
Kural Görüntüleyici (Rule Viewer)
Yüzey Görüntüleyici (Surface Viewer)
Bu grafiksel kullanıcı arabirimleri dinamik olarak bağlantılıdır, bunlardan birini kullanarak
yaptığınız değişiklikler, diğer açık bütün grafiksel kullanıcı arabirimlerini etkileyebilir.
Herhangi bir sistem için birini ya da tamamını alabilirsiniz.
FIS Editör: Kaç adet girdi ve çıktı değişkeni vardır? Bunların isimleri nelerdir? gibi sorulara
cevap arar. Matlab fuzzy logic toolbox, girdilerin sayısını sınırlamaz. Ancak, girdilerin sayısı
bilgisayarın kullanılabilir hafızası tarafından sınırlandırılmış olabilir. Eğer girdilerin sayısı ya
da üyelik fonksiyonu sayısı çok büyükse o zaman aynı zamanda diğer grafiksel kullanıcı
arabirimi araçları FIS editör kullanımını analiz etmek zor olabilir.
Membership Function Editor: Her bir değişken ile birleşmiş tüm üyelik fonksiyonlarının
şekillerini tanımlamak için kullanılır.
Rule Editor: Sistem davranışının tanımladığı kuralların listesini düzenlemek içindir.
Rule viewer ve Surface Viewer: Bu özellikler tam anlamıyla salt-okunur araçlardır. Rule
viewer, bir tamlayıcı olarak kullanılır, (örneğin) hangi kuralların olduğunu ya da hangi kişi
üyelik fonksiyonu şekillerine etki ettiğinin sonuçlarını gösterebilir. Surface Viewer bir çıkış
yüzeyi haritası üretir ve grafiğini çizer.
Herhangi bir bulanık sonuç sistemi için beş grafiksel kullanıcı arabiriminden biri ya da
tamamı açık olabilir. Eğer tek bir sistem için bu düzenleyicilerin birden fazlası açık ise çeşitli
grafiksel kullanıcı arabirim pencereleri diğerlerinin açık olduklarının farkında olurlar ve eğer
gerekirse değişiklikler pencereler arasında ilişki kurarlar. Böylece, eğer üyelik
fonksiyonlarının isimleri Üyelik Fonksiyonu Düzenleyici kullanılarak değişirse, bu
değişiklikler Kural Düzenleyicinin içindeki kurallara da yansır. Düzenleyici herhangi farklı
bulanık sonuç sistemlerinin sayısı için eş zamanlı olarak açık olabilir. Bulanık sonuç sistemi
düzenleyici, Üyelik Fonksiyonu Düzenleyici ve Kural Düzenleyici bulanık sonuç sistemi
verilerinin tamamını okuyabilir ya da üzerinde değişiklik yapabilir; ama kural görüntüleyici
ve yüzey görüntüleyici herhangi bir şekilde bulanık sonuç sistem verilerinde değişiklik
yapamaz.
ÖRNEK: Bir otobandaki trafik ışıklarının yanma süresinin araçların ortalama hızları ve
birim alan başına düşen araç sayısına göre modellenmesi.
1. Bulanık denetleyici giriş değerleri:
HIZ: Otobandaki araçların ortalama hızı
YOĞUNLUK: Otobandaki araçların ortalama yoğunluğu
Bulanık denetleyici çıkış değerleri:
Kıs: Kırmızı ışık yanma süresi
Yıs: Yeşil ışık yanma süresi
2. Üyelik Fonksiyonları
2. Kural Tabanı
3. Matlab Uygulamasına Geçilmesi
ADIM 1: FIS Editörün Çalıştırılması(Başlat menüsü ya da Komut penceresinden fuzzy
komutu yazarak)
ADIM 2: Çıkarım metodu olarak Mamdani kullanılacaktır. Ctrl+N kısayolu ile de seçilebilir.
ADIM 3: 2 Giriş ve 1 Çıkış ekliyoruz.
ADIM 4: Giriş ve Çıkışlara name kısmından isim veriyoruz. Girişlerimiz YOĞUNLUK ve
HIZ iken çıkışımızı KISVEYIS olarak isimlendiriyoruz.
ADIM 5:Üyelik Fonksiyonlarını hazırlayacağız. CTRL+2 tuş kombinasyonu ile Membership
Function Editörü açalım.
Şekilde görüldüğü gibi çizim alanımız boş. Edit menüsünden Add MFs komutunu verelim.
Alttaki pencere açılacaktır. Buradaki MF type kısmındaki fonksiyonlar (trimf, trapmf,
gaussmf…) aşağıda görülmektedir. Biz uygulamanın başında verdiğimiz üyelik
fonksiyonlarını burada oluşturacağız. Örneğin yoğunluk üyelik fonksiyonu için; 1 adet trimf
fonksiyonu(adet sayısını Number of MFs ile belirleriz), 2 adet trapmf fonksiyonunu ayrı ayrı
eklememiz gerekiyor.
ADIM 6: İsim ve parametrelerini girerek yoğunluk giriş değeri için üçgen(trimf)
fonksiyonumuzu oluşturuyoruz. Adına orta diyoruz.
ADIM 7: İsim ve parametrelerini girerek yoğunluk giriş değeri için yamuk(trapmf)
fonksiyonumuzu oluşturuyoruz. Adına seyrek diyoruz.
ADIM 8: İsim ve parametrelerini girerek yoğunluk giriş değeri için yamuk (trapmf)
fonksiyonumuzu oluşturuyoruz. Adına sık diyoruz.
ADIM 9: Yoğunluk giriş değeri için yapılan işlemler, hız içinde aynen gerçekleştirildiğinde
aşağıdaki üyelik fonksiyonu oluşmuştur.
ADIM 10: Çıkış değerimiz için oluşan şekil ise aşağıdadır.
ADIM 11: Kuralların oluşturulmasına geçelim. Bunun için CTRL+3 tuş kombinasyonu ile
Rule editörü açalım. Burada giriş ve çıkıştaki üyelik fonksiyonları otomatik olarak listelenir.
Örneğin ilk kuralı oluşturmak için yoğunluk kısmından seyrek, hız kısmından hızlı tıklanır,
kısveyıs adlı çıkışımızdan da uzun tıklanarak daha sonra Connection kısmından and seçilir ve
add rule butonuna basılır. Çalışmanın ilk başlarında verdiğimiz kural tablosundaki bilgiler
ışığında kurallar oluşturulur.
ADIM 12: CTRL+5 tuş kombinasyonu ile Rule viewer çalıştırılıyor. Buradaki burada ki giriş
değerleri değiştirilerek çıkışın aldığı değerler izlenebilir.
ADIM 13: Ctrl+6 Tuş Kombinasyonu ile Surface viewer içine girelim.
KAYNAKLAR
Elmas, Ç., 2003, Bulanık Mantık Denetleyici, Ankara
Türk,A., Katı Yakıtlı Buhar Kazanının Bulanık Mantık Denetleyici İle Tam Otomasyonunun
Gerçekleştirilmesi, Yüksek Lisans Tezi, 2006.
Ulvi DAĞDELEN, Bulanık Mantık İle Adım Motor Kontrolü, Erciyes Üniversitesi Fen
Bilimleri Enstitüsü, Yüksek Lisans Tezi, 1996.
Nabiyev, Vasif(2010), “Yapay Zeka”, Seçkin yayınları, Ankara.
Erken,O., Bir soğutma grubunda kompresör Hızının ve elektronik genleşme vanasının
bulanık mantık algoritma ile kontrolü, Yüksek Lisans Tezi, 2009.
www.mathworks.com/products/fuzzylogic