ybssoftware.files.wordpress.com · web viewmatlab fuzzy logic toolbox matlab ile gelen bulanık...

21
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

Upload: lamthuy

Post on 22-May-2018

259 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

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)

Page 2: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

Ş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

Page 3: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

Ş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ı

Page 4: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

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.

Page 5: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

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.

Page 6: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

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

Page 7: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

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ı

Page 8: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

2. Kural Tabanı

Page 9: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

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.

Page 10: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

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.

Page 11: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

Ş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.

Page 12: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

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.

Page 13: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

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.

Page 14: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

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.

Page 15: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

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.

Page 16: ybssoftware.files.wordpress.com · Web viewMATLAB FUZZY LOGIC TOOLBOX Matlab ile gelen bulanık mantık araç kutusu bize bulanık sonuç sistemlerini oluşturmak, düzenlemek ve

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