Bulanık mantık ve kavramları aslında Bulanık Kümeler kavramına dayanmaktadır. Normal Küme kavramını üniversite öncesi matematik derslerinden de biliyoruz. Normal küme kavramında bir elemanın bir kümeye ya ait olduğunu ya da ait olmadığını biliyoruz. Bir eleman birden çok kümeye de ait olabilir, kesişim durumları oluşabilir. Ama bir kümeye ait olma durumunu düşünürsek herhangi bir eleman ya o kümenin elemanıdır ya da elemanı değildir şeklinde çok net ve katı bir karar vermiş oluyoruz. Kısacası bir eleman bir kümeye aitse ait olma durumu 1, değilse 0 şeklinde ifade edilir.
Bulanık Küme kavramında ise herhangi bir elemanın bir kümeye ait olma durumu farklı değerlendirilir. 1 ve 0 aralığında ait olma dağılımı kurallarına göre bir elemanın bir kümeye veya başka kümelere ait olma derecesi belirlenir. Örneğin bir elemanın bir kümeye ait olma derecesi 0.02 olabilir veya 0.998 olabilir. Bu dereceleri veya ağırlıkları belirleyen matematiksel özellikler kullanılır. Bir kümeyi ve sınırlarını belirlemek için üyelik fonksiyonları (membership functions) denilen kurallar uygulanır. Matematiksel olarak farklı üyelik fonksiyonu yaklaşımları vardır: Üçgensel (triangular), Yamuksal (trapezoidal), Gaussian, Parçalı Doğrusal (piecewise linear), Singleton. Örnek gösterim:
Örneğin bir sistem kurmak istiyorsunuz, bu sistemde kümeler kurguluyorsunuz ve kimi değişkenlerin bu kümelere olan aitliklerinden yola çıkıp başka işlemler yapmak istiyorsunuz. Kuracağınız sistemdeki kurgunuza göre hangi matematiksel fonksiyonelite sizin için uygunsa kümelerinizin sınırlarını belirleyecek üyelik fonskiyonu yaklaşımlarından birisini seçiyorsunuz. Örneğin otomatik klima sistemi kurguluyorsunuz. Bu klima sistemi içerisinde bulunulan odayı sürekli olarak belirli bir sıcaklıkta tutması gerekiyor. Bu klima sistemi için sıcaklık tanımları yapıyorsunuz, yani aslında kümeler oluşturuyorsunuz. Ölçülen sıcaklık derecelerinin hangi kümede olduğuna bakarak belirli işlemler uygulayacaksınız. Örneğin Çok Soğuk adında bir tanımlama yaptınız (ya da küme). -25 ve -10 aralığındaki her sıcaklık derecesini bu kümede ifade edeceksiniz. Bu ifadeyi işte sisteminiz için uygun olan üyelik fonksiyonu yaklaşımına göre ifade etmeniz gerekiyor.
Klima örneğinden devam edersek sıcaklık dereceleri için aşağıdaki şekildeki gibi kümeler kurgulayabiliriz:
Yukarıdaki sıcaklık derecesi kümeleri Üçgensel(Triangular) yapıda kurgulanmış. Dikkat edilirse kümeye aitlik dereceleri yani ağırlıklar 0 ila 1 değeri arasında solda belirtilmiş, sıcaklık dereceleri ise altta yatay olarak belirtilmiş. Örneğin 40 F sıcaklık derecesinin Freezing kümesinin üçgensel lacivert renkli kenarına denk gelen değeri 0.34 iken Cool kümesindeki turkuaz renkli kenarına denk gelen derecesi 0.72 gibi bir değer olabilir. Diğer kümelerde ise derecesi 0'dır. Bir elemanın, burada sıcaklık derecesi, Üçgensel veya başka yapılarda kurulan kümelerdeki ağırlıklarını hesap eden hazır yazılımlar mevcuttur.
Yukarıdaki ifadelerden bulanık küme mantığını anlamış olduk. Peki bu kavramla nasıl bir sonuca ulaşacağız? Klima sistemimiz ölçülen sıcaklıkları derecelendirdikten sonra belli bir derecede sıcaklık üflemesi gerekecek. Peki bu karara nasıl varacağız? İşte burada Bulanık Mantık kavramı devreye giriyor. Bulanık Mantık kavramı tasarlanan kuralları üzerine inşaa edilir. Bu kurallar yukarıda bahsettiğimiz bulanık kümelerle elde edilecek değerleri kullanır. Bulanık mantık kurallarının çalışabilmesi için yukarıdaki gibi bulanık kümelere ihtiyacımız var. Örneğin şöyle bir kural düşünelim. Ölçülen sıcaklık değeri Freezing(Donma) seviyede yani Freezing kümesine ait bir değer ise klimamız çok sıcak hava üflemeli. Soğuk ise normal hava üflemeli gibi kuralları kurgulayalım. Teknik olarak ise şu şekilde kurallar oluşturulur:
1- IF Sıcaklık IS Freezing THEN Üfleme Derecesi IS Sıcak
2- IF Sıcaklık IS Cool THEN Üfleme Derecesi IS Normal
3- IF Sıcaklık IS Warm THEN Üfleme Derecesi IS Soğuk
Yukarıdaki kural ifadelerine benzer şekilde ifadelerin yapılabildiği hazır yapılar bulunmakta, en güzel örneklerden birisi de Matlab Simulink Fuzzy Logic Controller yapısıdır. Yine örnek kurallardan anladığımız kadarıyla bir de sonuç kümeleri mevcuttur. Örnekte 3 tane sonuç kümesi görülmekte, Soğuk, Normal ve Sıcak. Bu sonuç kümelerini de önceki gibi üçgensel veya başka şekillerde kurgulamak gerekecek. Bizim klima örneğimizde de üçgensel sonuç kümeleri aşağıdaki gibi tasarlanabilir:
Örneğimizden devam ederek 40 F sıcaklık derecesinin bulanık mantık kurallarıyla işlenmesi sonrasında nasıl bir sonuca ulaştığımıza bakalım. Değinildiği gibi sonuç kümelerine ancak kuralların işlenmesiyle ulaşılır. Yani klima sisteminin girdisi(input) vardır, burada sıcaklık derecesi ve sistemin bir de çıktısı vardır(output), burada üfleme sıcaklığı. Girdiler sürekli olarak kurallara sokulur, kurallar ile sonuç kümelerindeki değerler elde edilir ve bu değerler tercihe bağlı olarak seçilen çeşitli matematiksel yöntemlerle birleştirilir-toplanır ve sonuç değer elde edilir. Bu akışı adım adım inceleyelim.
40 F sıcaklık derecesinin sonuç Kümelerindeki değerlerini bulalım.
40 F sıcaklık derecesi 1inci kurala uymaktadır. Öyleyse ilk sonuç kümemiz Sıcak Üfle kümesidir ve aşağıdaki gibi karşılık elde edilir:
40 F sıcaklık derecesi 2inci kurala da uymaktadır ve sonuç kümesi olarak Normal Üfle kümesinde sonuç elde edilir:
Yukarıdaki alanların elde edilmesi aşamasına da terimsel olarak Implication denilmektedir.
Örnekte dikkat edilirse sadece bir tane girdi çeşidi kullanılıyor. Sıcaklık Değeri kümeleri. Farklı bir ölçüm kümeleri de kullanılabilir girdi olarak, örneğin Nem değerleri. Nem değerleri kümeleri de oluşturulabilir. Çok Nemli, Nemli, Normal, Az Nemli, Çok Az Nemli gibi. Bu durumda hem sıcaklık değeri kümeleri hem de nem değeri kümeleri kombinasyonlarıyla kurallar oluşturulabilir. Örneğin:
IF Sıcaklık IS Freezing AND/OR Nem Is Nemli THEN Üfleme Derecesi IS Sıcak.
Bu kuralda sıcaklık kümesi ile nem kümesi AND veya OR operatörü ile ilişkilendirilebilir. Bu operatörlere Fuzzy Logic Operators deniliyor. AND ve OR dışında da farklı bulanık mantık operatörleri bulunmaktadır. Operatör tipine göre farklı değerler kurala dahil olmaktadır. Bu yazıda bu operatörlere değinilmemektedir. Aşağıda Yararlanılan Kaynaklarda detaylarına ulaşılabilir.
Peki iki adet sonuç alanı elde ettik, sonuca nasıl ulaşacağız?
Tüm bu sonuçlar az önce değinildiği gibi çeşitli matematiksel yöntemlerle işleme alınır ve sonuç elde edilir. Yöntemlerden bazıları, Ağırlık Merkezi, Singleton Ağırlık Merkezi, En Sol Maksimum, En Sağ Maksimum. Matlab’ta da hali hazırda tanımlı yöntemler bulunmaktadır, Ağırlık Merkezi’nin karşılığı olarak Centroid, Bisector, Middle of Maximum, Largest of Maximum, Smallest of Maximum. Tercih edilen matematiksel ve algoritmik yöntem sonucunda tek bir sayısal sonuca ulaşılır. Bu duruma da terimsel olarak Defuzzify denilmektedir, Türkçesi Durulaştırma, bulanığın tersi olarak.
Centroid yani Ağırlık Merkezi yönetimini uygulamak istediğimizde aşağıdaki bütünleşik sonucun ağırlık merkezi değeri bizim klima sisteminin üfleyeceği sıcaklık değerini verecektir:
Yukarıdaki şekle göre Normal Üfle değerlerine yakın bir değer elde edeceğiz.
Tasarlanan bulanık kümeler, tasarlanan kurallar doğrultusunda yani Bulanık Mantık çerçevesinde geniş yelpazeli değerler elde etmek mümkündür. Bu sayede mühendislik alanlarında titreşim engelleyici veya aşırı salınım engelleyici ve doğru değerlere çabuk ulaşan sistemler kurulabilmektedir. Örneğin arabalarda hız sabitleyici sistemler gibi ve örneğimizdeki ısı sabitleyici sistemler gibi.
Yararlanılan kaynaklar:
- http://cs.bilkent.edu.tr/~zeynep/files/short_fuzzy_logic_tutorial.pdf
- https://www.mathworks.com/help/fuzzy/fuzzy-inference-process.html
- https://www.wikizeroo.org/index.php?q=aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRnV6enlfbG9naWM