Teknolojinin bu denli gelişimini, onlarca yıldır kullanılan ve genelde sahne arkasında kalan matematiksel çıkarımlara borçluyuz. Bilgisayar dünyasında da ikilik sayı sistemlerinin kullanımına dayanan bir çok modelin önüne farklı bir tasarım çıktı. Bulanık Mantık artık tüm dünyada kabul görmüş ve ürünlerini görebildiğimiz bir teori. Bu yazımızda Bulanık Mantık teorisini ve uygulamalarını açıklamaya çalışacağız.
07.01.2015 tarihli yazı 9846 kez okunmuştur.
Bulanık Mantık Nedir? Nasıl Çalışır?
Dijital sistemler, bazen insan beyni ve davranışlarını analiz ederek bazen de doğanın işleyişini örnek alarak kendine model oluşturuyor. Bilgisayar biliminin kurucusu kabul edilen Alan Turing'in "Makineler düşünebilir mi?" sorusunu ortaya atmasıyla Yapay Zeka kavramı doğdu. Makinelerin, insanın düşünme yöntemlerine yaklaştırılması fikri, 2. Dünya Savaşı sırasında Nazilerin kullandığı ünlü şifreleme makinesi Enigma'yı çözmeye çalışan matematikçilere kadar dayanıyor. Zaman içinde bir çok araştırma ve çalışma sonucu yapay zeka alt dallara ayrılarak geliştirilmeye devam etmekdedir. Bu yazımızda her biri birbirinden geniş ve değerli dallardan biri olan bulanık mantık teorisini inceleyeceğiz.
1961 yılında Azeri matematikçi Lütfi Zade tarafından ortaya atılan bulanık mantık, geçmişten bugüne geniş bir çevrede kabul görmüş klasik Aristo mantığının karşısında konumlanmaktadır. Klasik mantığa göre bir önerme doğru (1) ya da yanlış (0) olarak kabul edilir. Bunun dışında kabul edilebilir durumu kesinlikle yoktur. Bilgisayarların ikili sayı mantığına dayanan Boole cebri ile çalışması, klasik mantığın uygulamalarından sadece biridir. Ancak insan beyninin işleyişine baktığımızda olayları bu şekilde algılamadığını görürüz. Sosyal ilişkilerde birbiriyle anlaşmazlık içinde olan tüm insanların 0 durumunu, sadece iyi anlaşabildiğinde 1 durumunu seçerek davranış sergilediği bir dünyayı hayal edebilir miyiz? Şüphesiz büyük bir kaos yaşanırdı. Bulanık mantık bize böyle bir örnek için derecelendirme imkanı sağlar. Doğru ve yanlış yerine, çok doğru, doğru, yaklaşık doğru, yaklaşık yanlış, yanlış, çok yanlış gibi ikiden fazla durum sunar. Bu durumların oluşturduğu kümeler ve durumların kümelere olan yakınlık-uzaklık dereceleri, bulanık mantığın karar mekanizmasını oluşturmaktadır. Bulanık kelimesi, belirsizliği temsil etmektedir.
►İlginizi Çekebilir: Bilgisayarlar Neden 2'lik Sayı Sistemini Kullanır?
Bulanık mantığın, klasik mantıktaki kesinlik düşüncesini içermemesi Batı kültüründe ilk dönemlerde reddedilmiştir. Bugüne kadar yapılan bilimsel çalışmaların çoğunun da tüm belirsizlikleri reddeden klasik mantık üzerine oturdulduğunu görürüz. Binlerce yıl önce Farabi, Aristo'cu olmasına rağmen mutlak bilimlerin tamamen kesinliğe bağlı olmadığı düşüncesiyle sonraki düşünürlere farklı bir yol göstermiştir. Albert Einstein, ünlü görelilik kuramı ile kesinliği değil kesin olmayanı sorgulamıştır. "Matematik kanunları gerçeği yansıttıklarında kesin değildir. Kesin olduklarında gerçeği yansıtmazlar." sözüyle de sistemlerin kararsız durumlarla da baş edebileceğini ve kesinliğe verilen aşırı önemin yersiz olduğunu vurgulamıştır.
Bulanık mantığı temel alan sistemlere bulanık sistemler diyoruz. Bu sistemlerde elemanlar ve kümelere olan yakınlık derecesi önem kazanıyor. Klasik mantığa göre Cuma günü elemanı, Haftasonu kümesine ait değildir ve 0 durumunu almaktadır. Aynı şekilde Cumartesi günü, Haftasonu kümesinde bulunduğundan 1 durumunu alır. Bulanık mantıkta ise elemanları derecelendirmeye giderek bir elemanın birden fazla kümeye ait olmasını sağlıyoruz. Buna göre Cuma günü %45 oranıyla Haftasonu kümesine, %55 oranıyla Haftaiçi kümesine dahil olurken, Pazar günü elemanı %95 Haftasonu kümesinde, bir sonraki günden ötürü %5 oranıyla Haftaiçi kümesine dahil olabiliyor. Bu oranları ise önceden belirlediğimiz kurallar vasıtasıyla sisteme öğretiyoruz. Nitekim bir bulanık sistemde iki temel öge bulunmaktadır.
► Bulanık kümeler
Bulanık kümelerle belirlenen kurallarla sistem girdileri, istenen çıktılara dönüştürülüyor. Girdiler sırayla, bulanıklaştırma, kontrol ve durulaştırma aşamalarından geçiyor. Bulanık kümeler, kurallar ve üç aşamayı tek yapı halinde gösterirsek aşağıdaki tabloyu kullanabiliriz.
Son yılların popüler konularından sürücüsüz araçlar üzerinden bir bulanık sistemi anlatacağız. Problemimiz, trafik ışıklarında doğru zamanda doğru karar verebilmek üzerine şekillenecek. İlk olarak giriş değerlerini, çıkış değerini ve kural dizisini oluşturalım. Giriş değerlerimiz, araç hızı, trafik ışıklarına olan mesafe ve trafik ışığı, çıkış değeri de araç hızı olsun.
Tanımlanacak kurallar, sürücüsüz aracın giriş değerlerine göre vereceği karar mekanizmasını oluşturur. Giriş değerlerine verilen derecelerle de üyelik fonksiyonları hazırlanır. Üyelik fonksiyonları, bir elemanın, bir alt kümeye olan yakınlığını [0,1] arasında ölçümlemeye yarar. Aşağıda bir kaç kural örneği verilmiştir. Eğer araç hızı yüksek, mesafe kısa ve ışık kırmızı ise araç hızını düşür.
Eğer araç hızı yüksek, mesafe kısa, ışık yeşil ise araç hızı sabit.
Eğer araç hızı normal, mesafe uzun ise araç hızı sabit.
Eğer araç hızı düşük, mesafe kısa, ışık sarı ise araç hızını yükselt.
Bulanıklaştırma - Durulaştırma
Eldeki bilgileri ve tanımlanan kuralları kullanarak aralarında bağlantı kurma ve bulanık değerlere sahip kümeler oluşturma sürecine bulanıklaştırma denir. Bu aşama sonrasında istenen sonuç bilgisinin bulanık hali ortaya çıkar. Araç hızı elemanının sayısal değere dönüştürülmesi süreci de durulaştırma ya da netleştirme aşaması ile olur. Üyelik fonksiyonlarının sunduğu en iyi noktaya karşılık gelen değer problemin çözümüdür. Aşamaları tekrar gözden geçirirsek, bulanık sistem, dışarıdan aldığı değişkenlerle karar verme mekanizmasını sağlayan üyelik fonksiyonlarını hazırlayarak ve kurallar süzgecinden geçirerek en uygun çıktıyı almayı sağlamaktadır. Örnek olarak araç hızı için değişkenler düşük, normal, yüksek olabilmektedir. Hazırlanan üyelik fonksiyonlarında ise bu değişkenler, elemanların kümelere olan yakınlık-uzaklık derecelerini belirler. Örneğin yüksek değişkeni 100 ile 160 arasında derecelendirilen bir elemansa, bir aracın hızı 160 ise üyelik değeri 1 iken 140 ise bu değer 0.7 olabilir. Diğer girdiler de kümelere olan yakınlıklarına göre [0,1] arasında değerler alır.
2. Bölüme ulaşmak için tıklayın Kaynak :