You are on page 1of 261

5111-ELEKTRİK

ELEKTRONİKTE YAPAY ZEKA


UYGULAMALARI

Hazırlayan Dr. Nihat ÖZTÜRK


Gazi Üniversitesi
Teknoloji Fakültesi Elektrik Elektronik Müh.

ozturk@gazi.edu.tr
Kaynaklar:Stuart Russell and Peter Norvig, ‘Artificial Intelligence: A Modern Approach,
Anonim Kaynaklar
1-Giriş
Dersin amacı
Dersin içeriği
Dersin işlenişi
Değerlendirme
Kaynaklar
Öğrencilerden beklenenler
Amaç

Temel Yapay zeka teknikleri konusunda altyapı


oluşturmak ve Bu tekniklerin Elektrik Elektronik
Mühendisliği alanında uygulanmasını yapmak
Genel İçerik
1. Doğal ve yapay zeka.
2. Arama Yöntemleri
3. Sezgisel problem çözümleme
4. Bulanık Mantık
5. Öğrenme ve yapay sinir ağları
6. Elektrik elektronik uygulamalarında yapay zeka tekniklerinin
kullanılması
7. Proje sunumları
Ayrıntılı Ders Kapsamı
1-Yapay Zeka
-Nedir
-Kullanım Alanları
-Tarihçesi
2-Problem Çözme Teknikleri
-Çözüm Araştırması
-Kör/Genişlik Öncelikli Arama

3-Sezgisel Arama Yöntemleri


-Best First Search ‘En iyi Arama’
-A* (A Yıldız) Arama
-İnceleme-1

4-Genetik Arama
- Temel Kavramlar
- Popülasyon, Çaprazlama, Mutasyon
-İnceleme-2
5-Bulanık Mantık
-Keskin ve Bulanık Kümeler
-Üyelik Fonksiyonları
-Bulanık Kural Tabanı
-Durulaştırma
-Örnek Uygulama
-İnceleme-3

6-Yapay sinir Ağları ve Tarihsel Gelişimi


-Yapay Hücre Modeli, Aktivasyon fonksiyonu
-İleri-Geri Beslemeli Ağlar
Perceptron ,Delta Öğrenme Kuramları
-İnceleme-4
7- -Delta Öğrenme Kuramı
-Öğrenme Kuramı Örnekleri
-Çok katmanlı Sinir Ağları
-Örnek
-İnceleme-5
Dersin İşlenişi

Önceki haftanın değerlendirilmesi


Yeni konunun anlatılması
Örnek uygulamaların yapılması
Soru ve cevapların değerlendirilmesi.
Değerlendirme

Sayısı Toplam
Katkısı (%)

Ara sınav 1 30

Ödev, Proje n 30

Dönemiçi Çalışmaların Yıl 60


İçi Başarıya Oranı (%)

Finalin +Bitirme Projesi 1 40


(%)
Kaynaklar
1. Çetin Elmas, ‘Yapay Zeka Uygulamaları’, Seçkin yayıncılık .
5.Baskı,

2- Stuart Russell and Peter Norvig, ‘Artificial


Intelligence: A Modern Approach’, (Third edition)

3. Vasif Vagifoğlu Nabiyev, Yapay Zeka - Problemler -


Yöntemler - Algoritma) Seçkin yayıncılık, 5. Baskı
Beklenenler
1-Derste ve sınavlarda yönetmeliklere uymak:

2-Düzenli konu Tekrarı, Pasif olarak dinlemekten aktif olarak yaparak


daha fazla bilgi edinebilirsiniz, :

3-Verilen ödevlerin eksiksiz ve orijinal çözülmesi

4- Temel Programlama Bilgisinin olduğu kabul edilmektedir. (Program


yazabilecek düzeyde C/C++ ve/veya Matlab Bilgisi )

.
Giriş

We call ourselves Homo sapiens,


Homo, modern insanı ve yakın atalarını içeren hominid cinsine verilen ad. Bu tür üyelerinin
tarihi günümüzden 2,5 milyon yıl öncesine kadar uzanır.

We call ourselves Homo sapiens —man the wise-because our intelligence is so important to
us.
Homo sapiens sapiens, Homo sapiens sapiens, "düşündüğünün üstüne düşünebilen insan"
demektir. Bu düşünceyi ortaya ilk Rene Descartes atmıştır. Günümüz modern insanı bu alt
türe mensuptur ancak çoğunlukla sadece Homo sapiens olarak anılır.

Binlerce yıldır, insan oğlunun nasıl düşündüğünü anlamaya çalışıyoruz, bir avuç madde
(beyin), yani sadece bir avuç madde, kendisinden çok daha büyük ve daha karmaşık bir
dünyayı nasıl algılayabilir, anlayabilir, tahmin edebilir ve manipüle edebilir.

Yapay zeka (YZ) veya AI alanı daha da ileri gider: sadece anlamaya değil, aynı zamanda
akıllı varlıkları da inşa etmeye çalışır.
Zeka ve Türleri
Zekâ, zihnin öğrenme, öğrenilenden yararlanabilme, yeni durumlara
uyabilme ve yeni çözüm yolları bulabilme yeteneğidir. Başka bir deyişle
anlak (zeka), zihnin birçok yeteneğinin uyumlu çalışması sonucu ortaya
çıkan bir yetenekler birleşimidir. TanımlarZekânın ne olduğu ile ilgili
tartışmalar yıllardan beri sürmektedir. Kullanılan Tanımlar

 Zekâ, beynin öğrenme, anlama, soyut düşünme, sebeplendirme,


planlama, problem çözme gibi zihinsel işlevlerine verilen isimdir.

 Edinilen bilgilerden faydalanarak sorunları halletme yeteneğidir

 En geniş anlamıyla, genel zihin gücü olarak da tanımlanabilir. Zihnin


algılama, bellek, düşünme, öğrenme gibi birçok işlevini içerir.

 Sözcük çok geniş anlamda kullanılsa da psikologlar
tarafından yaratıcılık, kişilik, bilgi ve akıl gibi değişik kategorilere
ayrılmıştır.

 Zekâ araştırmacılarının asıl alanı insanlardır, fakat hayvanların da


öğrenme, anlama vs. yetenekleri üzerinde çalışmalar yapılmaktadır.
Zekayı Belirleyen Etmenler
Bir kişinin zekâsını belirleyen üç temel etken vardır.
 Kalıtım: Temelde zekâ doğuştan gelir ve büyük
ölçüde kalıtımın etkisiyle belirlenir. Yapılan çalışmalarda
çocuğun zekâsı ile ana-babanın zekâsı arasında yüksek
düzeyde ilişki olduğu saptanmıştır. Çocuğun zekâ gücü
anasıyla babasının zekâ gücü ortalamasına yakındır. Biraz
altında ya da üstünde olabilir.
 Doğum ve öncesi: Kadının hamilelik döneminde uygun
beslenmesi, Zor bir doğum sırasında çocuğun soluğu uzun
süre kesilirse, beyin gözeleri ölür ve sonuçta zekâsı etkilenir.
 Çevre: Çocuk doğuştan getirdiği zihinsel yetisini
kullanabilmek ve geliştirebilmek için uyarıcılarla donatılmış
çevreye ihtiyaç duyar. Genel olarak zekânın %75'i ilk dört
yılda oluşur ve 20 yaşına kadar gelişimini sürdürür.
Zeka Ölçümü
 Zekâ standardize edilmiş, zekâ testleri ile ölçülür. Bu testlerdeki sorular
her yaşa göre özel olarak hazırlanır.

 Batıda kullanılan ilk zekâ ölçerini Fransız psikolog Alfred Binet ve Dr.
Theodor Simon üretmiştir. 1905'te yayımlanan bu testin adı "Binet-
Simon Testi"dir.

 Zekâ katsayısı (Intelligent Quotient)

 Çocuğun doğru yanıtladığı sorular dikkate alınarak zekâ yaşı


hesaplanır. Zekâ yaşının gerçek yaşa bölümünün 100 ile
çarpılmasıyla zekâ katsayısı (ZK ya da IQ) ortaya çıkar:

 ZK = (Zekâ yaşı / Gerçek yaş) x 100.

 Örneğin; 10 yaşındaki bir çocuk ölçerde yalnızca 6 yaş düzeyine kadar


olan soruları/görevleri yapabilmişse, ZK'si (6/10) x 100 = 60 olarak
belirlenir.
Çoklu Zeka Kavramı
Harvard ve Boston üniversitelerinde psikoloji profesörü olan Howard
Gardner tek zekâ tipine karşı çıkarak insanların daha başarılı olduğu değişik
alanlar bulunduğunu ve bu alanlarda zekâya dayalı büyük beceriler
gösterebildiğini ifade ederek “Çoklu Zekâ” (Multiple Intelligence) teorisini
ortaya atmıştır Prof.Dr.Howard Gardner, çoklu zeka kavramını ileri süren
bilim adamıdır. Bu teoriye göre farklı zeka türleri vardır ve çocukların sahip
oldukları yeteneklere ve ilgi duydukları alanlara göre 8 grup
oluşturmaktadır:
Çoklu Zeka Kavramı

 1. Dilsel Zeka-Konuşma ve yazma dilinde sözcükleri etkili


kullanma yeteneğidir (politikacılar,yazarlar)

 2. Görsel zeka-etraftaki nesneleri hayalinde canlandırma ve


görme yeteneğidir (ressamlar,mimarlar)

 3. İçedönük(kişinin kendine dönük) zeka-kendini yönlendirme,


idare etme ve tanıma kapasitesidir(psikologlar,
psikoterapistler). Tek başına çalışmaktan hoşlanan, hislerini
abartmadan söylemekte, ilgi duyduğu konularda
tartışmamaktadır.

 4. Doğal zeka-bu gruba dahil olanlar hayvanlara, temiz ve yeşil


çevreye, doğa olaylarına ilgi duymaktadırlar(çevreciler vs.)
 5. Müzik zekası-seslere karşı tuyarlılık gösterme kapasitesi ve
kendini müzikte ifade etme yeteneğidir(müzisyenler)

 6. Mantık-matematik zekası-sebep-sonuç ilişkisi kurabilme, sayı


ve numaraları akıllıca kullanma yeteneğidir (bilim adamları,
matematikçiler,programcılar)

 7.Dışadönük(bedensel) zeka-kişinin kendini ifade etmesinde


bedenini kullanma kapasitesi ve kişinin ellerini birşeyler
oluşturmak için kullanma yeteneğidir(atletler, aktörler,
dansçılar, heykeltıraşlar)

 8. Sosyal Zeka-diğerlerinin duygularını, ruh hallerini anlama


yeteneğidir (liderler,danışmanlar)
Zeka ve Akıl
 Akıl doğru düşünce üretmekle ilgilidir. Zekâ ise genelde
uygulayıcı olarak düşünülebilir.

 Akıl kuramlar ve kurallar ortaya çıkarırken, zekâ bunların


pratikte uygulanmasını sağlar. Başka bir açıdan bakıldığında
zekâ düşünebilme gücü ya da yeteneğidir. Doğru düşünceye
ulaşmak ya da sahip olmak ise akılla olur.

 Gerçek yalandan, iyi kötüden, doğru yanlıştan akl-ı selimle


ayırt edilebilir, zeka ile değil. Zeka realiteyi tespit eder, akıl
kişinin niyetine göre bu tespiti yorumlar ve kendince bir yere
oturtur. Akıl, hislerin önünde tutulabilirse sağlıklı muhakeme
yapabilir.

 Sonuçta zeka, aklın kullanılması için bir kapasitedir. Sonrası


kişinin niyetine kalmıştır ve ona göre şekillenir.
Yapay Zeka Tanım

 Sayısız uygulama alanı olan “Yapay Zeka” kavramının doğal olarak


pek çok tanımı da olacaktır. Aşağıda bunlardan bir bölümü
verilmiştir
 Genelde Yapay Zekanın (YZ veya AI) çok heyecan verici olduğundan
bahsedilir lakin ne olduğunda pek söz edilmez.
 YZ ile ilgili çalışmaların öncüsü olan Marvin Minsky Yapay zekanın
“hareket eden bir ufuk” gibi olduğunu ifade etmektedir.
 Kesin tanımı yok! Bazen “Hesaplamaya dayalı Zeka- Computational
Intelligence” de adlandırılır.

 Yapay Zeka kavramı 1957 yılında Dartmouth New Hampshire’de


yapılan bir konferansta ortaya atılmıştır. Bu konferansta insan
zekasının benzetişiminin oluşturulması ve düşünen bilgisayarlar
sorunları tartışılırdı
 Genelde Yapay Zeka sistemlerinin amacı/tanımım 4 kategori altında
gösterilir.
YZ yaklaşımları dört gruba ayrılabilir.

İnsan gibi düşünen sistemler Akıllı düşünen sistemler

İnsan gibi davranan sistemler Akıllı davranan sistemler

 YZ yaklaşımlarının 2 kısımdan oluşmaktadır. Tablo hem satır hem


sütün olarak incelenebilir. Üst satır düşünme süreçleri ve muhakeme
ile ilgili iken alt satır ise davranışlar ile ilgilidir. Sol sutündaki
tanımlar insan performansı ile ilgilidir bunun için doğruluk /vefa gibi
subjektif kriterlere ihtiyaç duyar. Sağ sutün ise Rasyonallik olarak
adlandırılan ‘ideal ‘ performansı ölçer, sistem kendine verilen
bilgilere göre doğru şeyi yaparsa bu sşstem rasyonel davranış
sergilemektedir.
 İnsan merkezli yaklaşım empirical <deneysel-görgül-tecrübeye
dayalı> bilim ile ilgilidir ve insan davranışları hakkında hipotezleri ve
gözlemleri içermelidir. Rasyonel yaklaşım ise matematik ve
mühendisliğin bir bileşimidir.
İnsan gibi Davranan Sistemlere örnek olarak Turing Test/Turing Makinası verilebilir 1950’de
İngiliz matematikçi kriptoloji (kod kırıcı) uzmanı Alan Turing tarafından gerçekleştirilmiştir.
Kısaca bir makina için bir makine için ‘zeki’ denilebilme standardını saptama girişimidir.
Turing makinasının bir temsili aşağıdadır.
Bu sistemin şu yeterlilikleri
sahip olması beklenir;
Doğal dil işleme, Bilgi
tabanı, anlamlandırma ve
muhakeme yeteneği.

İnsan gibi Düşünen Makinalar


Belirli bir programın bir insan gibi düşündüğünü söyleyeceksek, insanların nasıl
düşündüğünü bilmeliyiz. Programın girdi-çıktı davranışı karşılık gelen insan davranışıyla
eşleşiyorsa, bu programın bazı mekanizmalarının insanlarda da çalışabileceğinin kanıtıdır.
Dr Sbaitso, Apple Siri gibi programlar buna örnek olabilir.
Rasyonel düşünmek: “Düşünce kanunları” yaklaşımı:

Yunan filozofu Aristoteles, “doğru düşünme” yi, yani reddedilemez akıl yürütme süreçlerini
kodlayan ilk kişilerden biriydi. Örneğin “Sokrates bir insandır; tüm erkekler ölümlüdür; bu
nedenle Sokrates ölümlüdür. ”Bu düşünce yapısı mantık/logic denilen alanı başlattı. Bu
yaklaşımın iki ana engeli vardır. Birincisi, özellikle bilginin elde edilemsi. İkincisi, bir
problemi “prensipte” çözmek ve pratikte çözmek arasında büyük bir fark.

Rasyonel davranmak: Rasyonel ajan yaklaşımı

Bir ajan, sadece hareket eden bir şeydir.


Rasyonel bir ajan, en iyi sonucu veya belirsizlik olduğunda en iyi beklenen sonucu elde
edecek şekilde davranan ajandır.
YZ ilişkili olduğu bilim dalları

 YZ çok disiplinli bir alandır bir çok bilim dalı ile ilişkilidir, bunlardan
bazıları
Bilgisayar bilimleri ve mühendisliği (donanım ve yazılım)
Felsefe (muhakeme kuralları)
Matematik (mantık, algoritmalar, optimizasyon)
Kavram bilimi ve psikoloji (insanın yüksek seviyede düşünme
sürecinin modelleştirilmesi)
Sinir bilimi (Neuroscience -insanın aşağı beyin faaliyetinin
modelleştirilmesi)
Dilbilim
YZ Tarihi
Yapay Zekanın Gebeliği (1943–1955)
Şimdi AI olarak tanınan ilk çalışma Warren McCulloch ve Walter Pitts (1943)
tarafından yapıldı. Nöronların temel fizyolojisi ve işlevinden esinlenerek
yapay nöron modeli önermişlerdir.

McCulloch ve Pitts ayrıca uygun şekilde tanımlanmış ağların öğrenebileceğini


önerdiler. Donald Hebb (1949) nöronlar arasındaki bağlantı kuvvetlerini
değiştirmek için basit bir güncelleme kuralı göstermiştir. Şimdi İbranice
öğrenme (Habbien) olarak adlandırılan kuralı, günümüzde etkili bir model
olmaya devam ediyor.

Yapay Zekanın Doğuşu (1956)


McCarthy, Minsky, Claude Shannon ve Nathaniel Rochester'i, otomat teorisi,
sinir ağları ve zeka araştırmasıyla ilgilenen ABD'li araştırmacılar bir araya
geldi. 1956 yazında Dartmouth'da iki aylık bir atölye çalışması düzenlediler.
Bu alanda çalışanların biribiriyle tanışmasının yanında AI isminin kullanımı
Kabul edildi. Önümüzdeki 20 yıl boyunca, AI bu insanlar ve MIT, CMU,
Stanford ve IBM'deki öğrencileri ve meslektaşları tarafından domine edildi.
YZ Tarihi
Büyük Beklentiler ve İlk Girişimler (1952-1969)
- John McCarthy (Lisp dilinin geliştirilmesi);
- Marvin Minsky (ilk yapay sinir ağı makinesi);
- Alan Newell ve Herbert Simon (genel sorun
çözme-GPS);
- Akıllı genel sorun çözme yöntemleri
- Lisp (YZ programlama dili);
- Çözünme (Resolution);

Bir doz gerçeklik (1966-1973)


AI araştırmacıları başından beri, gelecek başarılarını cömertce tahmin etmekten
çekinmiyorlardı., Hatta, Dünya makinelerinde artık düşünen, öğrenen yapılar
olduğu bile söyleniyordu Sputnik Programının Rusca metinlerini İngilizce
Çevirmedeki yetersizlik üzerine AI destek fonalrı kesildi ve bir süre karanlığa
gömüldü
YZ Tarihi
Bilgi Tabanli Sistemler , Gücün Anahtarı (1969-1999)
AI araştırmasının ilk on yılında ortaya çıkan sorun çözme resmi, eksiksiz çözümler
bulmak için temel akıl yürütme adımlarını bir araya getirmeye çalışan genel amaçlı
bir arama mekanizmasıydı.
– DENDRAL: İlk uzman sistem olarak ifade edilir, kütle
spektrumlarını analiz ederek ve kimya bilgisini kullanarak
bilinmeyen organik molekülleri tanımlamalarında yardımcı
oldu. Kimyevi birleşmelerin 3 boyutlu yapılarının belirlenmesi.
– MYCIN: ilk kural tabanlı uzman sistemi (bulaşıcı hastalıklarda
kan tahlili için 450 kural)
EMYCIN: Uzman Sistemi (US) örtüsü
– PROSPECTOR: çok büyük yarar sağlamış ilk bilgi tabanlı
sistem (maden yataklarının aranması için jeoloji US)
Endüstri haline gelmesi (1980-sonrası)

İlk başarılı ticari uzman sistem olan R1, Digital Equipment


Corporation'da çalışmaya başladı (McDermott, 1982). Program, yeni
bilgisayar sistemleri için siparişlerin yapılandırılmasına yardımcı
oldu; 1986'ya gelindiğinde, şirket yılda tahmini 40 milyon dolar
tasarruf ediyordu. 1988'e gelindiğinde, DEC’nin yapay zeka grubunda
40 uzman sistem daha devreye sokuldu. DuPont 100 kullanımda ve
500 geliştirme aşamasındaydı ve yılda yaklaşık 10 milyon dolar
tasarruf sağladı. Neredeyse her büyük ABD şirketinin kendi AI grubu
vardı ve uzman sistemleri kullanmaya başladı.
YZ’da önemli noktalar/ dönüm noktaları
 Computer beats leading chess grand master (1997)
https://www.youtube.com/watch?v=NJarxpYyoFI
Deep Blue adı verilen bir bilgisayarla dünya satranç şampiyonu Garry
Kasparov arasında 11 Mayıs 1997'de yapılan satranç maçı, Kasparov'un
yenilgisiyle sonuçlandı. Kasparov, bilgisayarın bir hamlesinde insan
müdahalesi bulunduğunu söyleyerek sonuca itiraz etti. Bu olaydan sonra
yapay zekâ ve robotların insan yaşamı üzerinde nasıl bir etkiye sahip
olacakları tartışmaları hız kazandı.

Deep Blue 1985 senesinde 3 dakikada 9 milyon hamle hesaplayabiliyordu. Ancak


Deep Blue ile Kasparov arasında 1996 yılında ilk karşılaşmada bu kapasitenin 18
milyara çıkarılmış olmasına rağmen, 3 dakikada ancak 540 hamle hesaplayabilen
Kasparov'u yenmeye yeterli gelmemişti. 1997 senesinde bu hız iki misline (3
dakikada 36 milyar) çıkarıldı ve başka özellikler de eklendi. Bu yeni özellikler
arasında, değişik oyun stillerine göre yönlendirme yapabilmek için oyun aralarında
elle ayarlanma imkanı da bulunuyordu. Bir başka ifadeyle oyunun akışına göre
gerekli olan program kodu ve algoritması (mantığı), oyun aralarında
geliştirilebiliyordu.
Kullanım Alanları

IBM Watson Wins Jeopardy


https://www.youtube.com/watch?v=WFR3lOm_xhE
Stanford+Google Car
http://www.ted.com/talks/sebastian_thrun_google_s_driverless_car

Robots Falling Down at the 2015 DARPA Robotics Challenge


https://www.youtube.com/watch?v=g0TaYhjpOfo

Microsoft SKYPE Translator


https://www.youtube.com/watch?v=mWTySUGXR2k&list=PLD7
HFcN7LXRd4kd2XgZjIbQ8TwTC32Zc9&index=3

CS 540 Nannon© Competition


https://www.youtube.com/watch?v=b1SqrjuPrmE
Kullanım Alanları

The Rise of AI
https://www.youtube.com/watch?v=Dk7h22mRYHQ
In the Age of AI (full film) | FRONTLIN
https://www.youtube.com/watch?v=5dZ_lvDgevk
Artificial intelligence & algorithms: pros & cons | DW
Documentary (AI documentary)
https://www.youtube.com/watch?v=s0dMTAQM4cw
Who Invented A.I.? - The Pioneers of Our Future
https://www.youtube.com/watch?v=IBe2o-cZncU
Google Translate
Intelligent Agents

CHAPTER 2

Kaynak: http://sadievrenseker.com/wp/?page_id=1185
Outline

 Ajan (Temsilciler ) Ortamlar


 Rasyonellik
 PEAS (Performans ölçümü, Çevre, Aktüatörler,
Sensörler)
 Ortam Türleri
Agents

 Bir ajan, çevresini sensörler aracılığıyla algılayan


ve o ortama aktüatörler aracılığıyla etki eden bir
nesnedir.
 İnsan ajanı:
 gözler, kulaklar ve sensörler için diğer organlar;
 aktüatörler için eller, bacaklar, ağız ve diğer vücut parçaları
 Robotik ajan: sensörler için kameralar ve kızılötesi
telemetre;
 aktüatörler için çeşitli motorlar

Agents and environments

 Ajan aksiyonu için geçmişteki tecrübelerinden faydaalanabilir



[f: P*  A]

 Ajan f üretmek için fiziksel mimari üzerinde çalışır



 agent = architecture + program
Vacuum-cleaner world

Problemler

 Durum: konum ve içerik, ör., [A, Dirty]



 Hareketler: Left, Right, Suck, NoOp

Problemler

• Oyun Problemleri : Basit, fakat teori ve analizler için yararlıdır.


– Dünyayı temizleme
– N kraliçe
– N kare bulmacası vs.

• Gerçek Problemler: Bu tür çözümler daha çok kullanışlıdır, fakat


teoriye fazla faydalar değildir.
– Yol bulma
– Linear programlama
– Optimizasyon
– Oyun teorisi
– Optimal control
– Evrim
Örnek-1: Dünyayı Temizleme problemini formule etme
7

 Durumlar : Yer kirli, yer kirli değil

 Başlangıç Durumu : Problem


tarafından verilir.

 Amaç : Hiçbir yer kirli kalmayacak

 Operatör (hareket) : Sol, sağ,


temizle, işlem yok

 Yol Maliyeti : Her hareket 1 birim,


işlem yok 0 birim

 N oda için durum sayısı ?


N * 2^N
Temizlik

• Her bir durum için yol maliyeti

Durum Yol maliyeti


1 3
2 3
3 1
4 2
5 2
6 1
7 0
8 0
Temizlik

• Problemin durum uzayı


Rational agents

 Bir Ajan, neyi algılayabildiğine ve gerçekleştirebileceği


eylemlere bağlı olarak "doğru olanı yapmaya"
çalışmalıdır. Doğru eylem, ajanın başarılı olmasına
neden olacak eylemdir.

 Performans ölçümü: Bir Ajan davranışının başarısı için
objektif bir kriter

 Örneğin, bir elektrikli süpürgenin performans ölçümü,
temizlenecek kir miktarı, geçen süre, tüketilen elektrik
miktarı, üretilen gürültü miktarı, vb. Olabilir.

Rational agents

 Rational Agent: Her olası algılama döngüsü için,


rasyonel bir ajan, performans ölçüsünü en üst düzeye
çıkarması beklenen bir eylem seçmelidir..
Rational agents

 Rasyonellik her şeyi bilme bilincinden farklıdır


(sonsuz bilgi ile her şeyi bilmek)

 Ajanlar, yararlı bilgiler (bilgi toplama, keşif) elde
etmek amacıyla gelecekteki algıları değiştirmek için
eylemler gerçekleştirebilir)

 Bir ajan kendi deneyimlerine göre davranışlarına
karar veriyorsa bu otonom autonomous dur
(öğrenme ve adapte olur)

PEAS (Görev Kriterleri/çercevesi)

 PEAS: Performance measure, Environment, Actuators, Sensors

 Basit elektrikli süpürge maddesinin rasyonalitesi performans


ölçüsünü, ortamı ve ajanın aksiyonlarını ve sensörlerini
belirtmek zorunda kaldık. Tüm bunları görev ortamı başlığı
altında gruplandırıyoruz.

 Öncelikle akıllı ajan tasarımı için bu ayarlar belirtilmelidir



 an automated taxi driver ajanı tasarladığımızı göz önünde
tutalım
 Performance measure

 Environment
 Actuators
 Sensors
PEAS

 an automated taxi driver:


 Performance measure: Safe, fast, legal, comfortable trip,
maximize profits
 Environment: Roads, other traffic, pedestrians,
customers
 Actuators: Steering wheel, accelerator, brake, signal, horn
 Sensors: Cameras, sonar, speedometer, GPS, odometer,
engine sensors, keyboard
PEAS

 Agent: Medical diagnosis system


 Performance measure: Healthy patient, minimize
costs, lawsuits
 Environment: Patient, hospital, staff
 Actuators: Screen display (questions, tests,
diagnoses, treatments, referrals)

 Sensors: Keyboard (entry of symptoms, findings,
patient's answers)
PEAS
Environment types

 Fully observable (vs. partially observable): An agent's sensors


give it access to the complete state of the environment at each
point in time.

 Deterministic (vs. stochastic): The next state of the environment
is completely determined by the current state and the action
executed by the agent. (If the environment is deterministic
except for the actions of other agents, then the environment is
strategic)

 Episodic (vs. sequential): The agent's experience is divided into
atomic "episodes" (each episode consists of the agent perceiving
and then performing a single action), and the choice of action in
each episode depends only on the episode itself.

Environment types

 Static (vs. dynamic): The environment is unchanged


while an agent is deliberating. (The environment is
semidynamic if the environment itself does not change
with the passage of time but the agent's performance
score does)

 Discrete (vs. continuous): A limited number of distinct,
clearly defined percepts and actions.

 Single agent (vs. multiagent): An agent operating by
itself in an environment.

Environment types

Chess with Chess without Taxi driving


a clock a clock
Fully observable Yes Yes No
Deterministic Strategic Strategic No
Episodic No No No
Static Semi Yes No
Discrete Yes Yes No
Single agent No No No

 The environment type largely determines the agent design



 The real world is (of course) partially observable, stochastic, sequential,
dynamic, continuous, multi-agent

YAPAY ZEKA
Temel Kaynak: Dr. Rembiye Kandemir
Arama Yöntemleri
 Problemlere uygun çözümleri bulmak için birçok arama
yöntem ve stratejileri kullanılmaktadır. Bu yöntemlerin
bazıları gayri resmidir ve önsezi ya da güdülere göre
hareket etmeyi gerektirir.
 Resmi yöntemler üç kategoriye göre sınıflandırılabilir:
 1-Optimizasyon,
 2-Uninformed (blind) «Bilmeden- kör» arama ve
 3-Informed (heuristic) «Bilerek» arama
Blind arama ve heuristic sayısal ya da nitel (sembolik) analiz
gerektirirken
optimizasyon ise sayısal ve nicel analiz gerektirir.
2
Arama Temel Kavramlar
Arama Ağacı
 Bir ağaçtaki her düğüm problem
durumu (problem state) olarak
tanımlanır.
 İlk durum düğümü kök düğüm (roote
node) olarak anılır.
 Kökten diğer düğümlere uzanan bütün
yollar problem durum uzayı’nı tanımlar
(dallar).
 Eğer yeni bir düğüm oluşturulduysa
buna düğüm üretildi (generated) denir.
 Üretilen düğüm çocuk veya torun
düğüm dür.

• Bunu üreten düğüm için de düğüm araştırıldı (explored) denir.


• Eğer bir düğümün tüm çocukları üretildiyse, bu düğüm için düğüm genişledi
(expanded) denir.
• Çocuksuz düğümler yaprak düğüm veya ölü düğüm olarak ifade edilir.
3
Arama Algoritmaların Performansı
 Completeness (Bütünlük): Bir tane çözüm olduğunda arama startejisi
çözümü garanti ediyor mu?

 Optimality (En iyilik): Birkaç farklı çözüm olduğu zaman arama


stratejisi en iyi kalitede çözümü buluyor mu?

 Time complexity (Zaman karmaşıklığı): Çözümü bulmak ne kadar bir


zaman alır?

 Space complexity (Alan karmaşıklığı): Arama işlemi ne kadar bellek


gerektirir?

b : Arama ağıcının maximum dallanma faktörü


d : Amaç düğümün bulunduğu en sığ derinlik (en düşük maliyetinin
bulunduğu derinlik)
m : Durum uzayının maximum uzunluğu (∞ olabilir)

 Arama Maliyeti: Toplam maliyet


4
Arama Yöntemleri

2- Uninformed (blind) 3-Informed (heuristic)


1-Optimizasyon
«Bilmeden- kör» arama «Bilerek» arama

5
Arama Stratejileri
1-Optimizasyon
• Optimizasyon, özel durumları modelleyen matematiksel
formülleri kullanarak en iyi mümkün çözümü bulmaya
çalışır.
• Problem alanı kurallara uygun bir biçimde
yapılandırılmalıdır ve optimizasyon tek adımlı formül ya
da bir algoritma ile yönetilir. Algoritmanın, çözümlerin
üretildiği ve olası iyileştirmeler için test edildiği bir
adım-adım arama prosesi olduğunu anımsayınız.
• Mümkün olduğu durumda iyileştirme yapılır ve yeni
çözüm bir iyileştirme testine tabi tutulur. Bu proses
iyileştirme yapılamayacak duruma gelinceye kadar
devam eder.
• Optimizasyon; iş araştırması (yönetim bilimi) ve
matematik gibi yapay zeka olmayan teknolojilerde geniş
çapta kullanılmaktadır.
6
7
8
9
2-Uninformed (blind) «Bilmeden- kör» arama

Kör arama (bilgisiz arama): Durum bilgisi


önemsizdir. Arama işleminin bilmeyerek yapılması
demek, arama algoritmasının, probleme özgü
kolaylıkları barındırmaması demektir. Yani her
durumda aynı şekilde çalışan algoritmalara
uninformed search (bilmeden arama) ismi verilir.
Bu aramaların bazıları şunlardır:

-Şekiller (graflar) üzerinde çalışan algoritmalar


-Breadth first search BFS (önce genişlik-sığ
öncelikli)
-Deep First search DFS (önce derinlik)
-Metin Arama algoritmalrı vb.

10
2-Kör Arama (Blind Search) devam

 Kör arama teknikleri, alternatifleri ve bir karar çözümünün


kanıtlarını (hipotezlerini) teker teker araştırır.

 Kör aramanın iki tipi vardır.


 Ayrıntılı arama
- Tüm alternatifler değerlendirilir ve bu nedenle optimal bir
çözüm bulunur.

 Eksik (parçalı) arama


- Arama yeterli derecede iyi bir çözüm bulununcaya kadar
devam eder.
- Belirsiz durumlarda arama yolu keyfidir.
- Zaman miktarı ve bilgisayarda depolama imkanı üzerinde
pratik sınırlandırmalar vardır.
- Belirsiz arama metodu ile çözüm bulunabilmesine rağmen
metot büyük problemler için pratik değildir.
11
3-Informed search (Heuristic Strategies)
(bilerek arama-sezgisel) yaklaşımlar

 Durum bilgisinden yararlanır. Daha umut verici hareketi


tercih eder. Arama işleminin bilerek yapılması ise,
algoritmanın probleme ait bazı özellikleri bünyesinde
barındırması ve dolayısıyla arama algoritmasının problem
bazlı değişiklik göstermesi demektir. Bu algoritmaların
bazıları aşağıda listelenmiştir:
 Minimax Ağaçları
 Simulated Annealing (Benzetimli Tavlama) algoritması
 Tepe Tırmanma Algoritması (Hill Climbing Algorithm)
 Arı sürüsü arama algoritması (bees search algorithm)
 A* Araması (astar search)
 Geri izleme (backtracking)
 Işın arama (beam search) 12
3- Bilerek arama-sezgisel Arama devam

 Birçok uygulama için, arama işlemine rehberlik edecek


özel bilgilere ihtiyaç duyulur (sezgisel bilgi).

 Bu bilgileri kullanan arama prosedürlerine de sezgisel


arama metotları denir.

 Sezgisel bilgiler, bir problemin nasıl çözülmesi


gerektiği ile ilgili karar kurallarıdır.

 Sezgisel arama, bir kör aramadan daha ucuz ve daha


hızlıdır.
13
2. Kör Arama (Blind Search)

• Kör arama teknikleri, alternatif yolları teker


teker araştırır.

• Bilgisiz aramalardan bazıları


• BFS - Breath-First Search
• DFS - Depth-First Search
•UCS - Uniform Cost Search
• DLS – Depth Limited Search
• IDS – Iterative Deeping Search
• BS – Bidirectional Search

14
2.1 Breath-First Search – BFS (Genişlik Öncelikli Arama)

 Başlangıç düğümünden gidilebilecek tüm komşu düğümlere gidilmesiyle


başlanır.
 BFS yöntemi en kısa yol algoritması gibidir; bir düğümden herbir düğüme
olan en kısa yolları bulur denilebilir.
 Seçilen node’un tüm komşuları sırayla seçilir ve ziyaret edilir.
 Her komşu queue içerisine atılır.
 Komşu kalmadığında Queue içerisindeki ilk node alınır ve
 2.adıma gidilir.
15
2.1 Breath-First Search – BFS
(Genişlik Öncelikli Arama)

 b dallanma faktörü, m maximum derinlik olmak üzere, d


optimum sonuç derinliği
 Bütünlük : Var (Eğer b sonlu ise)
 Zaman Karmaşıklığı : 1+b+b2+b3+...+bd+b(bd-1)=O(bd+1) dir.
 Alan Karmaşıklığı : O(bd+1) dir (her düğümü hafızada
tutar).
 Optimallik : Her zaman çözüm bulunur. 16
Breadth-First Search (BFS) (devam)

Derinlik 0

Derinlik 1

Optimum
*
sonuç
2

3
amaç

17
Breadth-First Search (BFS) (devam)

Derinlik 0

Derinlik 1

Optimum
*
sonuç
2

3
amaç

Dallanma faktörü b = 3
Derinlik d= 2

18
Breadth-First Search (BFS) (devam)

Derinlik 0

Derinlik 1

Optimum
*
sonuç
2

3
amaç

Dallanma faktörü b = 3 Zamanı Karmaşıklık O(bd+1) = 27


Derinlik d= 2 Alan Karmaşıklığı O(bd+1) = 27

19
Breadth-First Search (BFS) (devam)

(a)
(c,b)

20
(d,e,c) (f,g,d,e)
Breadth-First Search (BFS) (devam)

(A)

(B,C)

(C,D,E) (D,E,F,G) 21
Breadth-First Search (BFS) (devam)

Adım1

Adım2 ( Node- Left-Right )


Kök (0) işlenirken queu oluşur

22
Breadth-First Search (BFS) (devam)

Adım3

23
Breadth-First Search (BFS) (devam)

Adım4

24
Breadth-First Search (BFS) (devam)

Adım5

25
Breadth-First Search (BFS) (devam)

Adım6

26
Breadth-First Search (BFS) (devam)

Adım7

27
Breadth-First Search (BFS) (devam)

Adım8

28
Breadth-First Search (BFS) (devam)

Adım9

29
Breadth-First Search (BFS) (devam)

Adım10

30
Breadth-First Search (BFS) (devam)

Adım11

31
Breadth-First Search (BFS) (devam)

Adım12

32
Genişlik Öncelikli Arama Algoritması

1. Başlangıç düğümlerin bir listesi olan N’yi yerleştir

2. Eğer N boş ise o zaman çık ve hata mesajı ver

3. N’de ilk düğüm olarak n ‘yi yerleştir ve N’den n’yi sil

4. Eğer n amaç düğümü ise o zaman çık ve başarı mesajı geri


gönder

5. Aksi durumda N’nin sonuna n’ nin coçuklarını ekle ve 2. adıma


geri dön.

33
Uniform Cost Search – UCS
(Düşük Maliyetli Arama)
 Genişlik öncelikli aramaya benzer.
 Dallar üzerinde toplam en düşük maliyetli düğümü seçer ve genişletir.
b = dallanma faktörü,
C*= en düşük maliyetli çözümün derinliği

A A A A
1 15 1 15 1 15 1 15
5 5 5 5
B C D B C D B C D B C D

5 10 10 5 10 5
E F F E F E
10 1
1 1
F F

Bütünlük : Var, eğer maliyet   > 0


Zaman Karmaşıklığı : O(b[C*/ ])
Alan Karmaşıklığı : O(b[C*/ ])
Optimallik : Var, uzaklığa göre yol maliyeti hiçbir
34
zaman azalmaz
Uniform-Cost Search Algoritması

 Başlangıç listesin N ‘ yi oluştur (kök düğüm)

 Repeat until (Liste boş ise) veya (ilk düğüm n amaç durum ise):

 Listenin başındaki ilk düğümü sil


 Bu düğümü genişlet (çocuk düğümlerini bul)
 Döngüye takılmamak için daha önce değerlendirilen çocuk
düğümleri değerlendirilmeye alma
 Çocukları Listeye ekle (her defasında azalan yol maliyetine
göre)

 Eğer n Amaç düğüm ise başarı, değilse hata değeri geri döndür

35
Romanya Ziyareti Bucharest’e kadar
olan doğrusal uzaklık

Şekil : Romanya haritası


36
Uniform Cost Search’e göre Romanya
Ziyareti
O
71 151 F
S 99
Z

75 211
80
A 140
R B
97 P
120 101
118

D 146 138
75
T 111 L 70 M
C

37
Uniform Cost Search (devam)

A
Z75 T118 S140 O
71 151
S F
T118 S140 O146 Z 99

S140 O146 L229 75 211


80
O146 R220 L229 F239 O291 A 140
R B
97 P
R220 L229 F239 O291 S297 120 101
118
L229 F239 O291 S297 P317 D340 C366
D 146 138
F239 O291 S297 P317 D340 C366 M 75
T 111 L 70
M399… C

38
3-Depth-First Search – DFS
(Derinlik Öncelikli Arama)

Seviye 0

Seviye 1

Seviye 2

Seviye 3

 b dallanma faktörü, m maximum derinlik olmak üzere


 Bütünlük : Yok, her zaman aramayı sonlandıramaz
 Zaman Karmaşıklığı : O(bm) dir.
 Alan Karmaşıklığı : O(bm)
 Optimallik : Her zaman çözüm bulunamaz.
39
Depth-First Search – DFS (Derinlik Öncelikli Arama)
Seviye 0

Seviye 1

Seviye 2

Seviye 3

-Önce bir başlangıç node’u seçilir ve ziyaret edilir.


- Seçilen node’un bir komşusu seçilir ve ziyaret edilir.
- 2.adım ziyaret edecek komşu kalmayıncaya kadar tekrar edilir.
- Komşu kalmadığında tekrar geri dönülür ve önceki ziyaret
edilmiş node’lar için adım 2 ve 3 tekrar edilir.

40
Depth-First Search – DFS (Derinlik Öncelikli Arama)

41
Depth-First Search – DFS (Derinlik Öncelikli Arama)

42
Komşuluk Matrisinin Oluşturulması ve Örnek

Komşuluk Matrisi (Adjacency&Neighborhood Matrice)

a b c d e f g
0 1 2 3 4 5 6
a 0 0 1 1 0 0 0 0
b 1 1 0 0 1 1 0 0
c 2 1 0 0 0 0 1 1
d 3 0 1 0 0 0 0 0
e 4 0 1 0 0 0 0 0
f 5 0 0 1 0 0 0 0
g 6 0 0 1 0 0 0 0

43
Komşuluk Matrisinin Oluşturulması ve Örnek
Komşuluk Matrisi (Adjacency&Neighborhood Matrice)
#include <stdlib.h>
#include <stdbool.h> a b c d e f g
#define MAX 7 0 1 2 3 4 5 6
// komsuluk matrisi a 0 0 1 1 0 0 0 0
// ABCDEFG b 1 1 0 0 1 1 0 0
// 0123456 c 2 1 0 0 0 0 1 1
int Array[MAX][MAX]= {{0,1,1,0,0,0,0}, //0-A d 3 0 1 0 0 0 0 0
{1,0,0,1,1,0,0}, //1-B e 4 0 1 0 0 0 0 0
{1,0,0,0,0,1,1}, //2-C f 5 0 0 1 0 0 0 0
{0,1,0,0,0,0,0}, //3-D g 6 0 0 1 0 0 0 0
{0,1,0,0,0,0,0}, //4-E
{0,0,1,0,0,0,0}, //5-F
{0,0,1,0,0,0,0}}; //6-G
//ziyaret edilme durumlarını tuttuğumuz dizi
bool visited[MAX];
//recursive DFS kodu
void DFS(int root, bool visited[])
{ int i;
//başlangıç düğümünü ziyaret edildi olarak işaretliyoruz.
visited[root] = true;
printf("%d ", root);
for( i = root; i < MAX; i++)
{ if(Array[root][i] == 1 && visited[i] == false)
{ DFS(i, visited); }
}
}
int main()
{
DFS(0, visited);
return 0; 44
}
Depth-First Search – DFS (Derinlik Öncelikli Arama)

45
Depth-First Search – DFS (Derinlik Öncelikli Arama)

46
Depth-First Search (DFS) (devam)

Amaç

Derinlik
d Amaç

… 47
Depth-First Search (DFS) (devam)

48
Depth-First Search (DFS) (devam)

49
Depth-First Search (DFS) (devam)

50
Depth-First Search (DFS) (devam)

51
Depth-First Search (DFS) (devam)

52
Depth-First Search (DFS) (devam)

53
Depth-First Search (DFS) (devam)

54
Depth-First Search (DFS) (devam)

55
Depth-First Search (DFS) (devam)

56
Depth-First Search (DFS) (devam)

57
Depth-First Search (DFS) (devam)

58
Derinlik Öncelikli Arama Algoritması

1. Başlangıç düğümlerin bir listesi olan N’yi yerleştir

2. Eğer N boş ise o zaman çık ve başarısızlık mesajı ver

3. N’de ilk düğüm olan n ‘yi yerleştir ve N’den n’yi sil

4. Eğer n amaç düğümü ise o zaman çık ve başarı mesajı ver

5. Eğer n=max derinlik ise o zaman 2. adıma git

6. Aksi durumda N’nin önüne n’nin coçuklarını ekle ve 2. adıma


geri dön

59
Problem : 3-bulmaca
Başlangıç : Şekil 1
Durumlar : 4 kare, 3 sayı ve boş
Amaç : En kısa çözüm (Şekil 2)
- Arama uzayı,
- Derinlemesine arama,
- Genişlemesine arama
İşlem : Yukarı, Aşağı, Sağ, Sol, boş alandan yararlanılacak, tekrar
eden hareketler göz ardı edilecek
Maliyet : Her hareket 1 birim

2 3 1 2

1 3

Şekil 1: Başlangıç Şekil 2: Amaç


60
Problem: Kırmızı ve mavi jetonların yerini değiştirme
Durumlar : 2 kırmızı, 2 mavi jeton ve 5 gözlü bir tahta

Başlangıç : Şekil 1

Amaç : Değişimi tamamlamak için gerekli en küçük sayı nedir? (Şekil 2)

Arama Ağıcı, BFS, DFS

İşlem : Kırmızı sadece sağa, Mavi sadece sola,

Sadece 1 taşıma yapılabilir ,

Taşıma işleminde boşluktan yararlanılır ,

Sadece 1 dolu göz üzerinden atlanabilir

Maliyet : 1 birim

K K M M M M K K
Şekil 1: Başlangıç Şekil 2: amaç 61
Problem : S şehrinden G şehrine ulaşmayı Bilgisiz
Arama yöntemleri ile çözme
(BFS, UC, DFS)
Başlangıç : S şehri
Amaç : G şehri
Operatör : Şehirler arası mesafe

62
3-Informed (heuristic) «Bilerek» arama

 İnsan farkında olmadan sezgisel yaklaşımlarla iç


içe yaşamaktadır
 Kısıtlı zaman içerisinde karar vermeler,
 Karmaşık olaylarda seçimin yapılması,
 Yargılar,

 Bireyler arasında olan ilişkiler,


 Düşüncelerin değişmesi vs.

63
Sezgisel Arama Stratejileri

 Best-First Search – En İyi Arama


 Gready Search (GBFS)
 A* Search (A*) – A* Arama

 Hill Climbing Search (HCS) – Tepe Tırmanma

 Simulated Annealing (SA)– Isıl İşlem Arama

 Genetik Search (GA) – Genetik Arama

64
Greedy Best First Search - GBFS
(En İyi Arama)
 En İyi Arama, bilgilendiren arama metodlarındandır.

 Bu yöntem Breath-First ile Depth-First aramalarının en iyi


yönlerini birleştirmiştir.

 Düğümler değerlendirme fonksiyonu f(n) ’e göre genişletilir.


Geleneksel olarak f bir maliyet ölçüsüdür.

 Üretilen düğümler içinden en uygunu seçilir ve bu düğüm


genişletilir. Seçme işlemi h(n) (sezgisel fonksiyon)’ e göre yapılır.

h(n) : n düğümünden amaç düğüme olan tahmini en ucuz maliyet.

 Varsayım : h(n) = 0 ise n amaç düğümdür. 65


66
67
A* Search (Toplam Yolu Azaltma)
 Belirli ve iyi tanımlanmış koşullar altında, bu sezgisel başlangıç ve
amaç noktası arasında, eğer varsa minimum maliyetli yolu en az
sayıda düğüm oluşturarak bulacağı garanti edilmiştir.

 n düğümü göstermek üzere;

f(n)=g(n)+h(n) değerlendirme fonksiyonu tanımlanır

g(n) : Başlangıç noktasından, bulunan düğüme kadar olan maliyetin


doğru ölçümü (gerçek mesafe olabilir)

h(n) : Mevcut düğümden amaç düğümüne kadar en az maliyet


tahmini. Bu fonksiyon negatif olmamalı ve asla amaç düğümüne
ulaşım maliyetinden daha fazla olmamalı.

h fonksiyonu tasarım problemine bağlı olarak değişmektedir.


68
69
Genetik Algoritmalar

Temel Kaynak: Dr. Rembiye Kandemir


Genetic Algorithm- GA
• Genetik algoritmalar, doğada gözlemlenen evrimsel sürece benzer bir
şekilde çalışan arama ve eniyileme yöntemidir. Karmaşık çok boyutlu
arama uzayında en iyinin hayatta kalması ilkesine göre bütünsel en iyi
çözümü arar.
• GA yöntemi ilk olarak, 1975 yılında Michigan Universitesinden John
Holland ın yaptığı çalışmalarda ortaya çıkmıştır.
• Genetik algoritmalar problemlere tek bir çözüm üretmek yerine farklı
çözümlerden oluşan bir çözüm kümesi üretir. Böylelikle, arama uzayında
aynı anda birçok nokta değerlendirilmekte ve sonuçta bütünsel çözüme
ulaşma olasılığı yükselmektedir. Çözüm kümesindeki çözümler birbirinden
tamamen bağımsızdır. Her biri çok boyutlu uzay üzerinde bir vektördür.
• Problem için olası pek çok çözümü temsil eden bu küme genetik algoritma
terminolojisinde Popülasyon & Nüfus adını alır.
• Popülasyon, kromozom veya birey adı verilen sayı dizilerinden oluşur.
• Kromozom & Birey içindeki her bir elemana gen adı verilir.
• GA’ların problemin çözümündeki başarısına karar vermedeki en önemli
faktör, Uygunluk & fitness & Goal & Amaç fonksiyonun seçimidir.
• Popülasyon içindeki her birey&kromozom uygunluk fonksiyonuna
gönderilir, dönen değere göre yüksek değere sahip olan bireylere,
nüfustaki diğer bireyler ile çoğalmaları için fırsat verilir. 2
Bireyler çaprazlama işlemi sonunda çocuk adı
verilen yeni bireyler üretirler. Çocuk kendisini
meydana getiren ebeveynlerin (anne, baba)
özelliklerini taşır.
Yeni bireyler üretilirken düşük uygunluk değerine
sahip bireyler daha az seçileceğinden bu bireyler
bir süre sonra nüfus dışında bırakılırlar.
Yeni nüfus, bir önceki nüfusta yer alan uygunluğu
yüksek bireylerin bir araya gelip çoğalmalarıyla
oluşur.
Böylelikle, uygunluk değeri yüksek olan ne kadar
çok birey bir araya gelip, yeni bireyler oluşturursa
arama uzayı içerisinde o kadar iyi bir çalışma
alanı elde edilir. Probleme ait en iyi çözümün
GA’nın akış şeması
bulunabilmesi için;
• Bireylerin gösterimi doğru bir şekilde yapılmalı,
• Uygunluk fonksiyonu etkin bir şekilde
oluşturulmalı,
• Doğru genetik işlemciler seçilmeli

3
GA’da ilk başlangıç bireyleri genellikle rastgele
olarak üretilirler fakat bu bir zorunluluk değildir.

Başlangıç popülasyonu oluşturulmuş GA üç evrim


operatörüyle çalışır. Bunlar; seçim, çaprazlama ve
mutasyon operatörleridir.
Seçim işlemi, popülasyondaki bireyleri uygunluk
değerlerine bağlı olarak, yeni bireyleri oluşturmak
için, ebeveyn birey seçmesi işlemidir.
Çaprazlama operatörü, seçim işleminden sonra
uygulanır ve ebeveyn bireylere ait kromozomların
belirli kısımlarının karşılıklı yer değiştirmesini ve
böylece yeni özellikte bireylerin oluşmasını ifade
eder.
Mutasyon işlemi ise yeni oluşan bireyin
kromozomlarından herhangi birinin içindeki bir geni GA’nın akış şeması
mutasyon olasılığına bağlı olarak değiştirme
işlemidir.
GA işlemini sonlandırmak için çeşitli yöntemler bulunmaktadır. Bu yöntemler;
algoritmanın çalışması esnasında istenen çözüm bulunduğunda, GA’nın
başlangıcında tanımlanan toplam iterasyon sayısına ulaşıldığında veya
uygunluk değeri sürekli olarak sabit kaldığında, bulunan en iyi bireyin temsil
ettiği çözüm, problem için bulunmuş en uygun çözüm olarak sunulur 4
Genetik algoritmalar, diğer eniyileme yöntemleri kullanılırken büyük zorluklarla
karşılaşılan, oldukça büyük arama uzayına sahip problemlerin çözümünde başarı
göstermektedir.
GA’lar bir problemin en iyi çözümünü bulmak için garanti vermezler. Ancak
problemlere makul bir süre içinde, kabul edilebilir, iyi çözümler bulurlar. GA’ların
asıl amacı, hiçbir çözüm tekniği bulunmayan problemlere çözüm aramaktır.
GA’lar;
• Arama uzayının büyük ve karmaşık olduğu,
• Mevcut bilgiyle sınırlı arama uzayında çözümün zor olduğu,
• Problemin belirli bir matematiksel modelle ifade edilemediği,
• Geleneksel eniyileme yöntemlerinden istenen sonucun alınmadığı alanlarda
etkili ve kullanışlıdır
GA Kullanım Alanları
• Parametre ve sistem tanılama
• Kontrol Sistemleri, robot uygulamaları,
• görüntü ve ses tanıma,
• mühendislik tasarımları, planlama, yapay zeka uygulamaları,
uzman sistemler, fonksiyon ve kombinasyonel eniyileme
problemleri ağ tasarım problemleri, yol bulma problemleri,
çizelgeleme problemleri, sosyal ve ekonomik planlama problemleri
için diğer eniyileme yöntemlerinin yanında başarılı sonuçlar
vermektedir.. 5
GA ile klasik optimizasyon farkları
• GA parametrelerin kendileri ile değil, parametre takımının kodlanmış
bir haliyle uğraşırlar. problemlerin çözümünü parametrelerin
değerleriyle değil, kodlarıyla arar
• Arama tek bir noktadan değil, noktalar kümesinden başlar. Bu nedenle
çoğunlukla yerel en iyi çözümde sıkışıp kalmazlar. Ancak bazı
durumlarda genetik algoritmalar yerel en iyi çözüme, genel en iyi
çözümden daha çabuk ulaşırlar ve algoritma bu noktada sonuçlanır.
• GA amaç fonksiyonunun türevlerini ve bir takım ek bilgileri değil,
doğrudan amaç fonksiyonunun kendisini kullanırlar.
• GA’da deterministlik değil rastlantısal geçiş kuralları kullanılır. (Oğuz
Akbaş)

6
Genetic Search- GA
(Genetik Arama)

• Genetik algoritmalar doğada geçerli olan en iyinin yaşaması kuralına


dayanarak sürekli iyileşen çözümler üretir.

• Bunun için kullandığı operatörler;


– uygunluk fonksiyonu (fitness) : toplumdaki her kromozomun ne kadar
iyi olduğu bulmayı amaçlayan fonksiyondur. Bu fonksiyon GA nın
beynini oluşturmaktadır.
– yeniden kopyalama (recombination) : yeni çözümler üretmek için
çaprazlama (crossover) işlemi yapılır ve bu eşleme uygunluk
fonksiyonuna göre yapılır.
– değiştirme (mutation) : sadece bir çözüm üzerinde yapılan işlemdir.

7
GA’ nın Uygulama Alanları
• Optimizasyon: Sayısal optimizasyon ve kombinetoral optimizasyon
problemleri olan devre tasarımı, doğrusal olmayan denklem sistemlerinin
çözümünde ve fabrika-üretim planlamasında kullanılır.
• Otomatik Programlama (automatic programming): Bilgisayar programları
yardımıyla network sıralamasında (sorting), ders programı hazırlanmasında
kullanılır.
• Makine öğrenmesi (machine learning): Robot sensorlerinde, yapay sinir
ağlarında, VLSI yonga tasarımı ve protein yapısal analizinde kullanır.
• Ekonomi (economics): Ekonomik modellerin geliştirilmesinde ve işlemesinde
kullanılır.
• İmmün sistemler (Immune systems): Çok-gen’li ailelerin evrimi esnasında ve
doğal immün sistem modellerinde kullanılır.
• Topluluk genetiği (population genetics): Evrim ile ilgili sorulara cevap
bulmada kullanılır.
• Evrim ve öğrenme (evolution and learning): Fertlerin öğrenmesini ve türlerin
evrilmesinde kullanılır.
• Sosyal sistemler (social systems): Sosyal sistemlerin analizinde kullanılır.

8
Uygulanması
GA basit olarak aşağıdaki temel adımlardan oluşmaktadır:

1. Başlangıç popülasyonunu rastlantısal olarak üret.


2. Popülasyon içindeki tüm kromozomların amaç fonksiyonu
değerlerini hesapla.
3. Tekrar üreme, çaprazlama ve mutasyon operatörlerini uygula.
4. Oluşturulan her yeni kromozomun amaç fonksiyonu
değerlerini bul.
5. Amaç fonksiyonu değerleri kötü olan kromozomlar
popülasyondan çıkar.
6. 3-5 arasındaki adımlar tekrar et.

9
GA Uygulanması

1 2

4 3

10
GA Tanımlar
Gen
Yapısında probleme ait en küçük bilgiyi taşıyan birime
gen denir. GA’nın kullandığı programlama yapısında bu
gen yapıları programcının tanımlamasına bağlıdır. Bir
genin yapısında sadece ikili tabandaki (binary) sayıları
içerebileceği gibi, gray, tam sayı, gerçel sayı veya ağaç
biçimini ve farklı sembolik ifadeleri de içerebilir. Kodlama
biçimi, GA’nın performansını oldukça önemli oranda
etkiler; fakat kodlama biçimi programa bağlı olduğundan
bütün problemler için geçerli en uygun kodlama biçimini
söylemek imkânsızdır.
Kromozom (Birey)
Birden fazla genin bir araya gelerek oluşturduğu diziye denir.
Kromozomlar, alternatif aday çözümleri gösterirler

Kromozom, GA yaklaşımında üzerinde durulan en


önemli birim olduğu için bilgisayar ortamında iyi ifade
edilmesi gerekir. 11
GA Tanımlar
Popülasyon (Nüfus)
Kromozomlardan oluşan topluluğa denir.
Popülasyon, geçerli alternatif çözüm kümesidir.
GA’da popülasyondaki birey sayısı ile ilgili genel bir kural yoktur.
Popülasyondaki kromozom sayısı arttıkça çözüme ulaşma süresi (iterasyon
sayısı) azalır

Popülasyon büyüklüğü problemin çözüm süresini etkilemektedir.

Popülasyondaki birey sayısının gereğinden fazla olması çözüm süresini


uzatırken, birey sayısının az olması popülasyonun istenen çözüm değerine
ulaşılamamasına sebep olabilir.

Problemin özelliğine göre seçilecek olan popülasyondaki birey sayısı


genetik algoritmayı hazırlayan kişi tarafından iyi belirlenmelidir. GA için en
uygun popülasyon büyüklüğünün 10 ile 160 birey arasında olmasının uygun
olacağını öne sürülmüştür.

12
GA Tanımlar
• Kodlama/Şifreleme
– Kodlama GA’nın çok önemli bir kısmını
oluşturmaktadır.
– Probleme GA uygulanmadan önce, verinin uygun
şekilde kodlanması gerekmektedir.
– Kurulan genetik modelin hızlı ve güvenilir
çalışması için bu kodlamanın doğru yapılması
gerekmektedir.
Kodlama yöntemleri aşağıdaki gibi sınıflandırılabilir
1-Binary kodlama
2-Gerçek sayı kodlaması
3- Tam sayı veya Permütasyon kodlama
4-Genel Veri yapısı kodlama
Bunlar tek boyutlu veya çok boyutlu veri yapıları ile
gerçekleştirilir. 13
GA Operatörler
GA’nın temel yapısını oluşturan ve algoritmanın işleyişi sırasında mevcut
popülasyon üzerinde uygulanan işlemlere, genetik operatörler denir.
Bu operatörler, seçme (selection) ya da tekrar üreme (reproduction)
operatörü, çaprazlama (crossover) operatörü ve mutasyon (mutation)
operatörüdür. Bunlara ilaveten kısıtlı eniyileme problemlerinde mutlak
suretle kullanılması gereken ve probleme özgü olarak geliştirilen diğer bir
operatör de tamir (reparation) operatörüdür. Genetik operatörler, daha iyi
özelliklere sahip nesiller üreterek çözüm uzayını genişletir. Kullanılan üç
standart operatör vardır:
1- Seçim (Selection), var olan bireyi genetik yapısında herhangi bir
değişiklik yapmadan yeni nesile kopyalar.
2- Çaprazlama (Crossover), iki bireyin yapılarının rastlantısal olarak
birleştirilerek yeni bireyler oluşturulmasıdır. İşlem, ikili dizilerin parçalarının
değiş tokuşu ile gerçekleştirilir.
3- Mutasyon (Mutation), var olan bir bireyin genlerinin bir ya da birkaçının
yerlerinin değiştirilmesi ile oluşur.

14
Kromozomun şifrelenmesi

• 1. İkili kodlama

Bu yöntem ilk GA uygulamalarında kullanıldığı için hala en çok


kullanılan yöntemlerdir. Her kromozom, 0 ve 1 lerden oluşan bit
dizisidir ve ikili diziyle ifade edilir. Bu dizideki her bit, çözümün
bir özelliğini taşır. Dizinin tümü ise bir sayıya karşılık gelir.

Kromozom A: 101110010110
Kromozom 2: 010110100000

15
Kromozomun şifrelenmesi (Devam..)

• 2. Permütasyon kodlama

Bu kodlama Gezgin Satıcı Problemi ve iş sıralama problemleri gibi


sıralam problemlerinde kullanılır. Burada her kromozom bir
numaralar dizisidir.

Kromozom A: 35127604
Kromozom B: 01562347

16
Gen takası (Çaprazlama) ve Mutasyon

• 1. İkili kodlanmış kromozom

- A) Tek noktalı gen takası.


• Kromozom-1 : 11011|00100110110
• Kromozom-2 : 11011|11000011110
• Çocuk-1 : 1101111000011110
• Çocuk-2 : 1101100100110110

- B) Çift noktalı gen takası.


• Kromozom-1 : 11011|00100|110110
• Kromozom-2 : 11011|11000|011110
• Çocuk-1 : 1101111000110110
• Çocuk-2 : 1101100100011110

17
Gen takası (Çaprazlama) ve Mutasyon (Devam..)

- C) Tek biçimli (uniform) gen takası.


• Kromozom-1 : 11011001
• Kromozom-2 : 00011110
• Çocuk-1 : 10011010
• Çocuk-2 : 01011101

Mutasyon işlemi : Mutasyon işlemi, problemin problemin


populasyondaki çözümlerin yerel optimuma düşmesini engellemek
için kullanılır. Mutasyon yeni üretilen çocuk kromozomu rasgele
değiştirir.
• Çocuk-1(orijinal) : 11011001
• Çocuk-2 : 11111001

18
Gen takası (Çaprazlama) ve Mutasyon (Devam..)

• 2. Permütasyon kodlanmış kromozom

Çaprazlama:
• Kromozom-1 : 123456789
• Kromozom-2 : 453689721
• Çocuk-1 : 123489721
• Çocuk-2 : 453656789

Mutasyon: İkitane rasgele gen seçilir ve bunların yeri


değiştirilir.
• Çocuk-1(orijinal) : 123456789
• Çocuk-2 : 183456289

19
Kromozom Seçimi
• Yaygın kromozom seçim yöntemleri şöyle
verilebilir.
• 1-Rulet Tekerleği seçimi
• 2- (m-l) mu-lamda seçimi
• 3-Turnuva seçimi
• 4-Sabit durum üretme
• 5-Paylaşım

• Rulet tekeri Holland tarafından


önerilmiş en bilinen yöntemdir. Seçilme
olasılığına karar verilir. (m-l) mu-lamda
sie deterministlik oalrak parents ve
offspring ( ebeveyn ve çocuklardan) en
iyi kromozomlar seçilir.
• Diğerleri Random veya Determinsitlik
tir. Örneğin Turnuva random toplar ve
en iyileme yapar 20
Kromozom Seçimi
• 1. Rulet tekeri seçimi
Bu yöntemde seçilme işlemi bireylerin
(kromozomların) uygunluk değerine göre
yapılmaktadır. Fakat uygunluk değeri en
büyük olanın seçileceği garanti edilmez,
yalnız seçilme şansı daha fazla olacaktır.

Bu yöntemde bütün uygunluk değerleri


bir tabloya yazılır ve toplanır. Uygunluk
değeri toplama bölünerek bireylerin
[0,1] aralığında seçilme olasılıkları
belirlenir.

Rulet tekerleği seçimi çözümlerin


uygunluk değerlerinin pozitif olması
gerekir.

21
Kromozom Seçimi (Devam..)

• 2. Sıralama seçimi
Rulet tekeri seçimi, uygunluklar çok farklıysa problemlere yol
açar. (Örneğin, en iyi kromozomun uygunluğu %90 ise diğer
kromozomlar çok az seçilme şansına sahip olacaktır.)

Sıralama seçimi önce populasyonu sıralamakta ve ardından her


kromozomun bu sıralamada uygunluğu aranmaktadır. En kötüsü 1
uygunlukta, ikinci kötüsü 2 uygunlukta vb., en iyisi ise N
uygunlukta olacaktır.

Böylelikle bütün kromozomlara seçilme şansı verilir. Fakat bu


yöntemde en iyi kromozomlar, diğerlerinden daha farklı
olmadığından çözüme yaklaşma yavaş olacaktır.

22
Kromozom Seçimi (Devam..)

• 3. Sabit durum seçimi

Bu yönteme göre ebeveyinlerin seçimi için kromozomların büyük


parçaları bir sonraki jenerasyona taşınmaktadır.

Her nesilde yeni bir birey (çocuk) oluşturmak için birkaç


kromozom seçilir (büyük uygunlukta iyi olanlar).

Az uygunlukta kötü olan kromozomlar atılır ve yeni çocuk


kromozomlar yerine getirilir. Geri kalan kromozomlar
değiştirilmeden yeni nesile aktarılır.

23
Genetik Algoritmaların Çalışma Prensibi
• Adım 1: Olası çözümlerin kodlandığı bir çözüm grubu oluşturulur
(çözüm grubu (population), çözümlerin kodları (string) da kromozom
olarak adlandırılır).
• Adım 2: Her kromozomun ne kadar iyi olduğu bulunur (fitness
function).
• Adım 3: Bu kromozomlar eşlenerek (mating), yeniden kopyalama
(recombination) ve değiştirme (crossover) operatörleri uygulanır. Bu
sayede yeni bir toplum oluşturulur.
• Adım 4: Yeni kromozomlara yer açmak için eski kromozomlar
ortadan kaldırılır.
• Adım 5: Tüm kromozomların uygunlukları tekrar hesaplanır.
• Adım 6: İşlemler tekrarlanarak verilmiş zaman içerisinde daha iyi
olan yeni nesillerin oluşturulması gerçekleştirilir (3. adıma gidilir).
• Adım 7: O ana kadar hesaplanma sırasında en iyi kromozom
bulunduğunda istenen sonuç elde edilmiş olur.

24
GA’nın Performansını Etkileyen Nedenler
• Kromozom sayısı: Kromozom sayısını arttırmak çalışma zamanını
arttırırken, azaltmak da kromozom çeşitliliğini yok eder.

• Mutasyon Oranı: Kromozomlar birbirine benzemeye başladığında hala


çözüm noktalarının uzağında bulunuyorsa mutasyon işlemi GA’nın
sıkıştığı yerden kurtulmak için tek yoludur. Ancak yüksek bir değer
vermek GA’ın kararlı bir noktaya ulaşmasını engelleyecektir.

• Kaç Noktalı Çaprazlama Yapılacağı: Normal olarak çaprazlama tek


noktada gerçekleştirilmekle beraber yapılan araştırmalar bazı
problemlerde çok noktalı çaprazlamanın çok yararlı olduğunu
göstermiştir.

• Çaprazlamanın sonucu elde edilen bireylerin nasıl değerlendirileceği:


Elde edilen iki bireyin birden kullanılıp kullanılamayacağı bazen
önemli olmaktadır.

25
• Nesillerin birbirinden ayrık olup olmadığı: Normal olarak her nesil
tümüyle bir önceki nesle bağlı olarak yaratılır. Bazı durumlarda
yeni nesli eski nesille birlikte yeni neslin o ana kadar elde edilen
bireyleri ile yaratmak yararlı olabilir.

• Parametre kodlanmasının nasıl yapıldığı: Kodlananın nasıl yapıldığı


en önemli noktalardan biridir. Örnek vermek gerekirse kimi
zaman bir parametrenin doğrusal yada logaritmik kodlanması
GA’nın performansında önemli bir farka yol açabilir.

• Kodlama gösteriminin nasıl yapıldığı: Kodlamanın nasıl olduğu


yeterince açık olmamakla beraber GA’nın performansını etkileyen
bir noktadır. İkilik düzen, kayan nokta aritmetiği ya da gray kodu
ile gösterim en yaygın yöntemlerdir.

• Başarı değerlendirmesinin nasıl yapıldığı: Akıllıca yazılmamış bir


değerlendirme işlevi, çalışma zamanını uzatabileceği gibi çözüme
hiçbir zaman ulaşmamasına da neden olabilir.

26
Örnek: Fonksiyon Maksimizasyonu
Problem : f(x)=x², x[0, 31] şeklinde verilen bir fonksiyonun.
Amaç : Verilen aralıkta fonksiyonun maksimizasyonu.

Adım 1: x’in 0 ve 1'lerden oluşan 2 tabanındaki gösterilimi


yapılmaktadır
0 : “00000” 31 : “11111” olacaktır.

Adım 2: Toplumun birey sayısı n:4 olarak seçilmiştir. Toplumu


oluşturan dört birey, her biri 5 bit uzunluğunda birer kromozomla
temsil edildiği için toplam 20 kere yazı tura atmak suretiyle
belirlenmiştir.
Birey 1: 01101, x = 13 , x² = 169
Birey 2: 11000, x = 24 , x² = 576
Birey 3: 01000, x=8, x² = 64
Birey 4: 10011, x = 19 , x² = 361

27
Adım 3: Belirlenen bireyler için f(x)=x² ile uygunluk değerlerini
hesaplanır. Dört bireyin toplam uygunluk değerleri;

169 + 576 + 64 + 361 = 1170

Her bir bireyin rulet tekerleğinde kaplayacağı alan;

Birey 1: 169 / 1170 = 0.14 : %14


Birey 2: 576 / 1170 = 0.49 : %49
Birey 3: 64 / 1170 = 0.06 : %6
Birey 4: 361 / 1170 = 0.31 : %31

Bu değerler, rulet tekerleğinin her çevrilişinde hangi olasılıkla hangi


bireyin seçileceğini belirtir.

28
Adım 4: Toplumda ki birey sayısının sabit kaldığı
varsayıldığından, rulet tekerleği 4 kere çevrilerek çiftleşme
havuzu oluşturulur.

Birey 1 : 1 kere
Birey 2 : 2 kere
Birey 3 : 0 kere
Birey 4 : 1 kere

Elde edilen çiftleşme havuzu şu şekildedir;

Aday 1 : 01101 (Birey 1)


Aday 2 : 11000 (Birey 2)
Aday 3 : 11000 (Birey 2)
Aday 4 : 10011 (Birey 4)

29
Adım 5: Çiftleşme havuzu belirlendikten sonra iki aşamalı
çaprazlama uygulanır.

İlk aşamada adaylar çiftleşmek üzere rasgele olarak


eşlenirler. Rasgele eşleştirme sonucunda ( Aday 1, Aday 2) ve
(Aday 3, Aday 4) ikili grupları oluşturulur.

İkinci aşamada her ikili grup için birer kere zar atılarak
çaprazlaşmanın oluşacağı nokta belirlenir. Zar atılarak 1. Grup
için k=4 ve 2. Grup içinde k=2 olarak belirlenmiştir.

Çiftleşme grubu 1: (k=4)


Aday 1 : 0110/1 oluşan Birey 1 : 01100
Aday 2 : 1100/0 oluşan Birey 2 : 11001
Çiftleşme grubu 2 : (k=2)
Aday 3 : 11/000 oluşan Birey 3 : 11011
Aday 4 : 10/011 oluşan Birey 4 : 10000

30
Adım 6: Son aşama olan mutasyon işlemi bitler düzeyinde uygulanır.
Birey 3’ün 2 numaralı bitinde mutasyon işlemi tapılmaktadır.
Oluşan Birey 3 : 11011
Mutasyon sonucu oluşan Birey 3 : 10011
Bu adımın tamamlanmasıyla bir sonraki kuşağı oluşturacak toplumun
bireyleri belirlenmiş olur. Yeni toplum şu şekildedir;
Birey 1 : 01100, x=12, x²=144
Birey 2 : 11001, x=25, x²=625
Birey 3 : 10011, x=19, x²=361
Birey 4 : 10000, x=16, x²=256

Bu örnekte tek bir iterasyon yapılmış ve başlangıç toplumundan bir


sonraki kuşak oluşturulmuştur ancak genetik algoritmanın
çalışmasının tam olarak gözlenebilmesi için tek bir iterasyon yeterli
değildir.

31
Maksimum Güç Aktarılması için Ryuk değerinin
GA ile bulunması
AB uçlarına göre Thevenin eşdeğeri çıkarılmış bir devreye bağlanacak Ryuk
direncine maksimum güç aktarılmak istenmektedir. Buna göre Ryuk değerini
bulalım.
- Bilindiği gibi bu durumda, Maksimum Güç Teoremi kullanılır ve Ryuk=Rth
olduğu anda yuk direncine maksimum güç aktarılmaktadır.
Thevenin eşdeğeri elde edilmiş devrede
Vth=100 volt, Rth=12 Ohm olsun
Güç hesap fonksiyonu
Değeri 0<Ryuk<50 ohm arasında
değiştirdiğimizde elde edilen Güç –
Direnç eğrisi

>> vth=100; rth=12; x=0:1:50;

y=(vth./(rth+x)).^2.*x;

>> [y_max, index] = max(y);

>> x_max=x(index);

>> plot(x, y, x_max, y_max, '-*'); grid

>> xlabel('Ryuk (Ohm)'); ylabel ('Pyuk (W)');

>> title('Maksimum Guc Aktarımı','FontSize',12);

Komut Satırından GA’nın çalıştırılması ve sonucu

>> [x fval]=ga(@Ryuk,1)
x = 12.0208
fval = 291.6668
>> 500-fval
ans = 208.3332
Optimization Toolbox’ı ile GA çalıştırılması
>> optimtool
Doğru Akım Makinası Denetimi

Dr. Nihat ÖZTÜRK,


Nisan 2020
Summary
 DA makinasının TF eldesi
 Açık Döngü Çalışma
 PID çalışma
 Genetik PID
 Program

Nihat ÖZTÜRK No. 2


Endüvi (armatür ) gerilimi denetimli DA motoru

DA motoru eşdeğer devresi


Elde edilen denklemlerin s (laplace) dönüşümü yapılırsa

Denklemin blok diyagramı


Elde edilen blok diyagramları birleştirilerek

Basitleştirmek için TL=0’a eşitlenmesi ile blok diyagramı

Burada pozisyon elde edilmiş olmasına rağmen hız (w)=dQ/dt


pozisyonun türevi alınarak kolayca hıza erişilebilir. Yani çıkışı s ile
çarpmak gerekir.
Hıza bağlı çıkış ifadesi

Sadeleştirmeler yapılması ile

Sanyo Denki R730T-042EL7, 300W, 80v., 4.8A., 2500 rpm

Bu TF birim basamak fonksiyonu


uygulayalım ve açık döngü tepkisine bakalım
Açık Çevrim Kontrol
Kapalı Çevrim Kontrol
C(s) Kontrol yapısını ilave edeceğiz
burada PID kullanalım
Kapalı Çevrim Genetik PID
BULANIK MANTIK

Dr. Nihat ÖZTÜRK


Nisan-2020
Sunu Planı
• Giriş, Tarihsel Gelişim
• Klasik Mantık
• Bulanık Değişkenler
• Bulanık Kurallar
• Bulanıklaştırma
• Çıkarım
• Durulaştırma
Birisi sizden “çok uzun bir adamı” tanımlamanızı isterse, belirli bir
yükseklik verilmemiş olsa bile bunu kolayca yapabilirsiniz. Benzer
şekilde, bir süpürge sapını (sopayı) parmağınız üzerinde,
devrilmeden (bir yönde ne kadar eğilebileceğini
hesaplamaksızın) dengeleyebilirsiniz.
Gündelik hayatta sıklıkla İyi, kötü, çirkin, güzel, uzun, kısa, soğuk
sıcak gibi ifadeleri kullanırız. Bunların sundukları bilgi her ne
kadar objektif olmasa da çelişki oluşturmaz. Söz edilen kişi
hakkında bir fikir verir.
Örneğin Orta boylu kişi dendiğinde, bu bilgiyi coğrafyaya, yaşa,
cinsiyete vb. kriterlere göre değerlendiririz. Mesela
Hollandada ortalama boy: 183cm (E) -170cm (K)
Japonya’da 170 cm (E) -158 cm(K)
Türkiye’de 174 cm (E) -158 cm(K)
Objektif Kriterler göz önünde tutulduğunda ise kesin/keskin
değerler ortaya çıkmaktadır. Polis olma şartlarına baktığımızda;
Fiziki şartlarda aranan nitelikler arasında erkek 167 cm, kadın
adayların ise 162 cm'den uzun olması gerekmektedir.
Bu durumda 166 cm boyundaki bir erkek polislik için fiziki şartları
sağlamamaktadır. Gündelik hayatta ise 1cm gibi bir buyukluğun
(hata miktarı %0.6) önemi bulunmamaktadır.

İnsanoğlunun karmaşık, yaklaşık, yetersiz, eksik ve belirsizlik içeren


veri ve bilgi ile işlem yapabilme yeteneği vardır.

Gerçek dünyada karşılaşılan bu gibi karmaşıklığın, belirsizliklerin


bilgisayar ortamında işlenmesi Fuzzy Logic ile gerçekleştirilebilir.

Bulanık Mantık Yaklaşımı, makinelere insanların özel verilerini


işleyebilme ve onların deneyimlerinden ve önsezilerinden
yararlanarak çalışabilme yeteneği verir.
Bu yeteneği kazandırırken sayısal ifadeler yerine sembolik ifadeler
kullanır. İşte bu sembolik ifadelerin makinelere aktarılması
matematiksel bir temele dayanır.
Bu matematiksel temel Bulanık Mantık Kümeler Kuramı ve buna
dayanan Bulanık Mantıktır.
TARİHCESİ

Bulanık Mantığın temeli 1965 yılında Lutfi Asker Zadeh’in yayınlamış


olduğu makaleye dayanır.
Lutfi Asker Zadeh (1921-2017)

1921’de gazeteci Rahim Aliaskerzadeh ile fizikci Fanya Korenman oğlu


olarak 1921’de Bakü Azerbeycanda dünyaya geldi. 10 yaşında İrana
taşındılar burada American Presbyterian College Eğitim gördü.
Ulusal üniversite sınavında 3. olarak girdiği Tahran Üniversitesini 1942’de
bitirdi . Elektrik Mühendisliği Alanında, 1946 ‘da Massachusetts Institute
of Technology (MIT), Cambridge, Master derecesi, 1949’da Columbia
Universitesinden Doktor ünvanı aldı. 1959 ‘da University of California,
Berkeley’de öğretim üyesi oldu. Zadeh Electromagnetic theory, Devre
Analizi, Sistem Teorisi, Z-transform, and Automata (robot) theory,
üzerine dersler ve çalışmalar yaptı, Linear System Theory: The State
Space Approach adlı bir kitap yazdı bu modern sistem analizi ve kontrolü
temeli sayılır.
1965 yılında çığır açan Fuzzy Sets adlı çalışmasını yayınladı. Bu makale
onlarca yıldır araştırmacılara yön göstermektedir. Karar –destek
sistemlerinden -Tüketim Ürünlerinden -Metro işletmelerine kadar birçok
alandaç ok sayıda uygulamalar yapılmaktadır. IEEE onur madalyası başta
olmak üzere çok sayıda ödülün almıştır.
İlk uygulamaları Asyada (satranç-tavla)
Profesör Zadeh’in bulanık kümeler teorisinin kampüsteki yürüyüşleri sırasında ortaya
çıktığı söylenmektedir. İnsanlar arabalarını park ederken, park alanına girmeden önce
tekerleklerini sezgisel olarak sola ve sonra biraz sağa döndürdüklerini fark etti. Bunun
üzerine Biraz ama ne kadar? Diye sormaya başladı, böyşece bulanık kümelerin kavramı
“biraz“, “hafif”, “uzun”, “hızlı” veya “güzel” gibi belirsiz sınırları olan herhangi bir
kavramı tanımlamak için matematiği kullanma çabası olarak başlamıştır. Profesör Zadeh
başlangıçta bulanık kümeleri basitçe dilden yararlanmak için bir çerçeve olarak
tasarladı
Bulanık mantık, Kesin verilere sahip olmadığınız sorunları ele almanın yepyeni bir
yolunu açmaktadır. Bulanık mantığın mantığı adının tersine bulanık değildir. Bulanık
kümelerle ilişkilidir.

Yöntem, aynı zamanda, birinci vitesten ikinciye sorunsuz bir şekilde geçiş yapan bir
otomobil şanzımanı veya sıcaktan soğuğa sorunsuz akan bir termostat gibi, bir
durumdan diğerine kademesiz hareket eden makine ve elektronik cihazların
oluşturulmasına yardımcı olabilir. Sıcak ve soğuk kesin olarak tanımlanmaya ihtiyaç
duymaz. Bir süreklilik içinde var olabilirler. Bu açıdan bakıldığında Analog Sinyallere
göre çalışan gerçek dünyamızdaki probemleri/değerlerin ikili sisteme göre çalışan
bilgisayar ortamına aktarılmasını sağlarlar.
1980'lerde, Profesör Zadeh’in fikirleri, Japon üreticiler arasında popüler oldu.

(Obituary for Lotfi A. Zadeh, IEEE Magazine, NYT, Lotfi Zadeh, Father of Mathematical
‘Fuzzy Logic,’ Dies at 96)
KULLANIM ALANLARI
Havacılık/Deniz/Kara İşletme /Finans

 Hava Aracının yüksek kontrolü  Karar Destek Sistemleri


 Hava araçlarında buz temizleme karışımı  Personel Değerlendirme Sistemleri
 Gemiler için otomatik pilotajda,  Bankonat transfer kontrolü
 Optimum rota seçiminde  Sermaye yönetimi
 Otomatik Deniz altı Kontrolğnde  Menkul kıymetler fiyatlandırma
 Gemi Yönetiminde Savunma/Güvenlik
 Rölanti devir kontrolü  Su altı hedef tanıma
 Otomomatik şanzuman yönetimi  Kızılötesi görüntülerin otomotik tanımlanmasında
 Zeki yol sürüş sistemlerinde  Denizcilikte karar destek sistemlerinde
 Trafik kontrolünde  Yüksek hızlı önleme uçaklarında
 Aktarım organlarının verimlerinin geliştirilmesinde  Güvenlik sistemleri için karar destek sistemlerinde
Sağlık
 Değişik Güvenlik uygulamalrında
 Teşhis destek sistemlerinde Elektronik
 Anestezi uygulamlarında
 Video kameralarda pozlama kontrolünde
 Alzheimer hastalarında nöropatolojik bulgularda
 Nem kontrolünde
Taşımacılık  Klima sistemlerinde
 Çamaşır makinası kontrolünde
 Otomatik metro sürüşlerinde
 Mikrodalgalarda
 Trafik/Hareket planlanmasında
 Elektrik Süpürgelerinde
 Taşıtların Hızlanma-Frenleme-Durdurulmasında
KULLANIM ALANLARI

Kaynak: Akı S.

https://www.amazon.com/Zojirushi-NS-ZCC10-Uncooked-Premium-1-0-
Liter/dp/B07VW61QFC
Avantajları

 Gerçek Dünyada kullanılan dilsel Değişkenleri kullanır


 Anlaması, test edilmesi ve bakımı kolaydır
 Gürbüzdür, Kural eksikliği veya yanlış kurallar olsa bile çalışırlar.
 Sistemin matematiksel tam modelinin çıkartılmasına ihtiyaç duymaz, bu
sebeple doğrusal olmayan yapıya sahip sistemlerde tercih edilir.
 Parallel çalışma mümkündür

Dezavantajları

 Kurallarının oluşturulmasının sistematik bir yöntem yoktur ve genellikle


tasarım için uzman bilgisine ihtiyaç duyar,
 Sistemlerin kararlılık, gözlemlenebilirlik ve denetlenebilirlik analizlerinin
yapılması çalışmaları sürmektedir.
 Bulanık mantık yaklaşımda tasarım değişkenleri sisteme özeldir,
 Öğrenme yeteneği olmamasıdır.
Keskin ve Bulanık Kümeler
Kontrol edilecek sistemin kontrol değişkenlerinden biri çevre sıcaklığı olsun. Ankara’da
sıcaklık değerinin değişimi aralığı -150 ile 400C arasında olduğu söylenebilir.

Bu aralık sıcaklık kümesinin Ankara için çözüm uzayını belirler. Günlük dilde bu sıcaklık
uzayının da bir takım alt aralıklardan oluştuğu düşünülür. Sıcaklık Kümesinin Alt Kümeleri:
Çok Sıcak, Sıcak, Ilık, Soğuk ve Çok Soğuk kümeleridir. Bu kümelere bir değer ya üyedir
(üyelik değeri 1 ) yada üye değildir (üyelik değeri 0)

Şekil-1 Sıcaklık Keskin kümesi


Klasik küme teorisinde SICAK kümesi için X’in bu kümeyle ilişkisi SICAK kümesinin
karakteristik fonksiyonu olarak adlandırılır;

1, 𝑖𝑓 𝑥 ∈ 𝑆𝐼𝐶𝐴𝐾
fSICAK(x): X –> 0,1 , burada
0, 𝑖𝑓 𝑥 ∉ 𝑆𝐼𝐶𝐴𝐾

İfade edilir, herhangi bir x için iki değer vardır.


Şekilde 15.10C değeri için fSICAK(15.10C) =1 iken,
Şekilde 14.90C değeri için fSICAK(14.90C) =0 iken, bulunur
14.90C ile 15.10C arasında 0.20C gibi küçük fark olmasına rağmen iki değerde farklı
kümelere üyedir. Bu keskin sınırlamanın (eksiklik?) üstesinden gelmek için Bulanık
Mantık önerilmektedir.
Bulanık Kümelerde ise sınırlar keskin değildir. 14.90C değeri %90 oranında SICAK
kümesine üyedir.
Bulanık Kümede, bir değer belirli bir derecede bir kümenin içindedir, yani
0.0<= X <=1.0 arasında bir üyelik değeri bulunur.
Bulanık teoride, X evrensel kümesinde, A bulanık kümesi, A kümesinin üyelik
fonksiyonu olarak adlandırılan μA (x) fonksiyonu ile tanımlanır.

μA (x) : X → [0, 1], where μA (x) = 1 if x tamamen A’da ise (merkezde);


μA (x) = 0 if x A’da değil ;
0< μA (x) < 1 if x is kısmen A’da.

Bu üyelik değerleri olası sürekliliği sağlar.


X evrensel kümesinin herhangi bir x öğesi için, μA (x) üyelik işlevi, x'in A kümesine ne
kadar benzer olduğunun bir derecesidir.
Bu derece, 0 ile 1 arasındaki bir değerdir.
Değişik üyelik fonksiyonları seçilebilir en yaygın kullanılan fonksiyonlar aşağıdaki şekilde
verilmektedir.
Keskin kümeler şeklinde daha önce verilen SICAK değişkenin Bulanık Kümesi şu
şekilde seçilebilir

Gaussian seçilmesinde aşağıdaki fonksiyondan


yararlanılmıştır.
1
µ 𝑥 =
1 + (0.1𝑥 − 2)2

μSICAK (14.9)=0.7936 üyedir


μSICAK (15.1)=0.8064 üyedir

Üyelik fonksiyonun yamuk seçilmesi


durumunda
μSICAK (14.9)=0.99 üyedir
μSICAK (15.1)=1 üyedir

Üyelik fonksiyonu seçimi tasarımcının


tercihine bağlıdır.
KLASİK KÜMELERDE CEBİRSEL İŞLEMLER

Evrensel küme içerisinde A v B kümelei Venn şemları ile gösterilmektedir.


a) A ∪ B Birleşimini b) A ∩ B Keşişimini ve c) (A ∪ B)’ A ∪ B tamamlayıcıs (
complement ) göstermektedir.
BULANIK KÜMELERDE CEBİRSEL İŞLEMLER
Üyelik Fonksiyonu Özellikleri

Yukarıdaki şekil için A bulanık kümesi ve onun üyelik fonksiyonu fA(x) olsun.

Bir bulanık kümenin tüm elemanlarını kapsayan kapsayan aralığa Destek,Dayanak


(support ) adı verilir. Burada fA(x)>0 ‘dir.

CORE (ÖZ): fA(x) =1 olan öğelerin toplandığı bu alt küme kısmına denir

SINIR –GEÇİŞ BÖLGESİ (Boundry) : Üyelik dereceleri 1 veya 0 eşit olmayan elemanlrın
oluşturduğu kısımlara denir tanım
1>fA(x)>0
BULANIK KÜMELERDE CEBİRSEL İŞLEMLER
Birleşme ve Keşişme işlemlerine ek olarak, bulanık kümelerin kombinasyonlarını
oluşturmak ve bunları birbirleriyle ilişkilendirmek için kurallar şöyle tanımlanabilir
X evrensel kümesindeki A bulanık kümesi üyelik (karaktersitlik ) fonksiyonu fA(x)
İle temsil edilir. Bu değer reel sayı ile ilişkilidir. Karakteristlik fonksiyonuna karşılık gelen
değer A evrensel kümesine ait x’in üyelik değeri olarak adlandırılır.
Kapsama: Aşağıdaki şekilde, B kümesi A kümesini kapsamaktadır veya A kümesi B
kümesinin bir alt kümesidir denir. Aynı zamanda A B’den küçük veya eşittir.
BİRLEŞME
A ve B bulanık Kümelerinin üyelik fonksiyonları sırasıyla fA(x) VE fB(x) bunların birleşimi
yine bir bulanık küme C olur. Şöyle yazılabilir
C=AUB üyelik fonkisyonları ile ifadesi

Kısaltılmış formda
Bilindiği gibi (AUB)UC=AU(BUC) dağılma Özelliğinden yazılabilir
Birleşme Özelliği
için şu ifadelerde
yazılabilir

A ve B D’nin alt
kümesi ise

A ve B Bulanık kümelerinin Birleşimi


KEŞİŞME
A ve B bulanık Kümelerinin üyelik fonksiyonları sırasıyla fA(x) VE fB(x) bunların keşişimi
yine bir bulanık küme C olur. Şöyle yazılabilir
C=A∩B üyelik fonkisyonları ile ifadesi

Kısaltılmış formda

-3 -2 -1 0 1 2 3 4 5

A ve B Bulanık kümeleri A ve B Bulanık kümelerinin Kesişimi


BULANIK KÜMELERDE CEBİRSEL İŞLEMLER
Cebirsel Çarpma
A ve Bnin cebirsel çarpımı AB ile gösterilir A ve B’nin üyelik fonksiyonları ile :

Veya
Cebirsel Toplama ve Çıkarma
A ve B nin cebirsel toplamı A+B ile ifade edilir, A ve B’nin üyelik fonksiyonları ile

Toplamada
Mutlak Fark. A ve B arasındaki mutlak fark
Şeklinde tanımlıdır. A O B in A U B kısaltılmasıdır
Convex Combination (DışBükey Birleşim)
A, B ve bulanık kümeler olsun bunların convex birleşimi
ÖRNEK:
ÖRNEK:
Dört kişilik aile bir ev almak istemektedir. Öncelikleri Büyük ve Konforlu bir evdir.
Bu amaçla 10 tane eve bakmışlarve yatak odası sayısı X’dir ve K Konfor bulanık
kümesi ve B’de Buyuk bulanık Kümesini göstersin
X= 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10
K= 0.2, 0.5, 0.8, 1.0, 0.7, 0.3, 0.0, 0.0, 0.0, 0. 0
B= 0.0, 0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.0, 1.0, 1.0
Konfor ve Buyukluk kümesinin kesişimi şöyle olur min(K∩B)
K∩B= 0.0, 0.0, 0.2, 0.4, 0.6, 0.3, 0.0, 0.0, 0.0, 0.0
Kesişme kümesi yorumlanırsa, en büyük üyelik değeri 0.6 olan beş yatak odası en
uygun olarak bulunmuştur. Bununla birlikte, üyelik 1'den az olduğu için tam olarak
tatmin edici değildir.
İkinci en iyi çözüm dört yatak odası, üyelik 0.4'tür. Aile muhtemelen daha iyi bir teklif
gelene kadar bekleyebilir ve böylece tam bir memnuniyet (üyelik 1) elde etmeyi
umabilir.

Konfor ve Buyukluk kümesinin birleşimi şöyle olur max(K U B)


K U B= 0.2, 0.5, 0.8, 1.0, 0.7, 0.8, 1.0, 1.0, 1.0, 1. 0
Burada dört yatak odası tamamen tatmin edicidir (üyelik 1). Ayrıca evin büyük olması
nedeniyle 7-10 yatak odası tatmin edicidir. Aile, ölçütlerden en az birinin
karşılandığından memnun olarak evi satın alabilir veya
Ailenin Çocukları önümüzdeki birkaç yıl içinde aileden uzaklaşmak üzereyse,
ebeveynler Rahat ve Büyük olmayan bir ev tercih edebilirler. Bu durumda;
Buyuk Olmayan (1-B) ve Konforlu bi rev almak siteyebilirler

B’=1-B= 1.0, 1.0, 0.8, 0.6, 0.4, 0.2, 0.0, 0.0, 0.0, 0.0

K= 0.2, 0.5, 0.8, 1.0, 0.7, 0.3, 0.0, 0.0, 0.0, 0. 0

K∩B’= 0.2, 0.5, 0.8, 0.6, 0.4, 0.2, 0.0, 0.0, 0.0, 0.0

ŞEklinde olur bu durumda en uygun ev olarak 3 odalı ev öne çıkmaktadır. Bu


örnek aynı zamanda Bulanık Mantığın Karar Destek Ssitemlerinde Çalışmasını
işaret eder.
BULANIK İLİŞKİ
Bulanık, değişkenler arasındaki etkileşimleri-ilişkileri tanımlar bu yuzden önemlidir
Herhangi bir bulanık denetleyicide, nesneler arasındaki ilişkiler temel bir rol oynar.
Bazı ilişkiler aynı evren içindeki unsurlarla ilgilidir: bir ölçüm diğerinden daha
büyüktür (x-y koordinatları eşit değildir vb), bir olay diğerinden daha önce meydana
gelir(t zamanı farklıdır) vb. Bunlar arasında bulanık ilişki kurulabilir.
Örnek:
Elimizde Donald Duck’ın yeğenlerinin benzerlikleri hakkında şu bilgiler mevcuttur.
Yeğenlerden Huey, Dewey’e 0.8 oranda benzemektedir, Huey’de Louie’yi 0.9
oranında benzemektedir. Bunu tablo haline getirirsek
Dewey Louie
R1= Huey 0.8 0.9 Donald
Dewey 0.5
Donald Duck ile Dewey ve Louie arasında benzerliği gösteren ilişki R2= Louie 0.6

İki matristeki bilgileri birleştirerek Huey'in Donald'a ne kadar benzediğini bulalım


Yukarıdan şu ifadeler türetilebilir;

i-Huey (0.8) oranında Dewey’e ve Dewey (0.5) oranında Donald'a benzer


ii-Huey (0.9) oranında Louie ve Louie’de (0.6) oranında Donald benzer.
(i) Bir ilişki zinciri içerir ve bunları bir Kesişim işlemiyle birleştirmek mümkün olur.
Tanımımızda, bu en zayıf üyeliği seçmeye karşılık gelir bu durumda
(i) için 0.5 ve ii için 0.6 seçilebilir. Bunları yeni ifade şeklinde yazalım

(iii) Huey (0.5) oranında Donald'a benzer ve


(iv) Huey Donald’a (0.6) oranında benzer.

Hem (iii) hem de (iv) eşit derecede geçerli görünmektedir, bu nedenle Birleşme işlemi
uygulanabilir. Bizim tanımımızla, bu en güçlü ilişkiyi, yani maksimum üyelik değerini
seçmeye karşılık gelir. Nihai sonuç ifadesi
(v) Huey Donald’a 0.6 benzer olur.

Bulanık ilişkileri birleştirirken veya oluştururken genel kural, bir "seri bağlantı" daki
minimum bulanık değeri ve "paralel bağlantı" daki maksimum değeri seçmektir.
Yukarda verilen R1 ve R2 tabloları için şöyle yazılabilir;

max-min kuramı (kombonisyonu) parantez içerisindeki birleşim dağıtılır. Bazen max-min


bileşimindeki min işlemi, çarpma için * ile ikame edilir; o zaman buna max-star
kompozisyonu denir.
ORNEK 2:

(X1,Z1)= 0.7 (X1,Z2)=0.6 (X1,Z3)=0.5


(X2,Z1)= 0.8 (X2,Z2)=0.6 (X2,Z3)=0.4 OLUR

(X1,Z1)= 0.63 (X1,Z2)=0.42 (X1,Z3)=0.25


(X2,Z1)= 0.72 (X2,Z2)=0.48 (X2,Z3)=0.2 OLUR
mT(1, a)= max [ min (0.1,0.9), min(0.2,0.2), min(0.0, 0.8), min(1.0, 0.4)]
=max [0.1, 0.2, 0.0, 0.4]=0.4
mT(1, b)= max [ min (0.1,0.0), min(0.2,1.0), min(0.0, 0.0), min(1.0, 0.2)]
=max [0.0, 0.2, 0.0, 0.2]=0.2 olur
mT(1, g)= max [ min (0.1,0.3), min(0.2,0.8), min(0.0, 0.7), min(1.0, 0.3)]
=max [0.1, 0.2, 0.0, 0.3]=0.3 olur
KAYNAKLAR
Obituary for Lotfi A. Zadeh, IEEE Magazine, NYT, Lotfi Zadeh, Father of
Mathematical ‘Fuzzy Logic,’ Dies at 96
https://www.nytimes.com/2017/09/11/science/lotfi-zadeh-father-of-
mathematical-fuzzy-logic-dies-at-96.html

Elmas Ç., Yapay Zeka Uygulamaları, Seçkin Yayıncılık, 4. Basım, 2011


Zadeh L.A., Fuzzy Sets, Information and Control 8, 338-353, 1965
Janetsen J. , Tutorial on Fuzzy Logic,
Yurtcu Ş., Bulanık Mantık, Afyonkarahisar Kocatepe Üniversitesi , 2007
SORULAR? 5.PERF.PDF
KONU
BULANIK MANTIK-II

Dr. Nihat ÖZTÜRK


Nisan-2020
Sunu Planı
• Bulanık Kümelerde işlemler
• Bulanık Kümelerde Cebirsel işlemler
• Bulanık Kümeler İlişkiler
• Bulanık Küme Oluşturma
• Bulanık Kurallar
BULANIK KÜMELERDE KÜME İŞLEMLERİ
Bulanık kümelerin kombinasyonlarını oluşturmak ve bunları birbirleriyle ilişkilendirmek
için kurallar şöyle tanımlanabilir
X evrensel kümesindeki A bulanık kümesi üyelik (karaktersitlik ) fonksiyonu fA(x)
İle temsil edilir. Bu değer bir reel sayıdır. Karakteristlik fonksiyonuna karşılık gelen değer
A evrensel kümesine ait x’in üyelik değeri olarak adlandırılır.

1-TÜMLEME (COMPLEMENT)

Ayrıca bundan başka iki önemli Tümleme


(complement) işlemi de mevcuttur.
1. Sugeno’s complement:

1 a
N s (a ) 
1  sa
2. Yager’s Complement:
N w ( a )  (1  a w )1/ w
2-KAPSAMA (CONTAINMENT)

Aşağıdaki şekilde, B kümesi A kümesini kapsamaktadır veya A kümesi B kümesinin bir alt
kümesidir denir. Aynı zamanda A B’den küçük veya eşittir.
3-BİRLEŞME (UNION))
A ve B bulanık Kümelerinin üyelik fonksiyonları sırasıyla fA(x) VE fB(x) bunların birleşimi
yine bir bulanık küme C olur. Şöyle yazılabilir
C=AUB üyelik fonkisyonları ile ifadesi

Kısaltılmış formda
Bilindiği gibi (AUB)UC=AU(BUC) dağılma Özelliğinden yazılabilir
Birleşme Özelliği
için şu ifadelerde
yazılabilir

A ve B D’nin alt
kümesi ise

A ve B Bulanık kümelerinin Birleşimi


4-KEŞİSME (INTERSECTION)
A ve B bulanık Kümelerinin üyelik fonksiyonları sırasıyla fA(x) VE fB(x) bunların keşişimi
yine bir bulanık küme C olur. Şöyle yazılabilir
C=A∩B üyelik fonkisyonları ile ifadesi

Kısaltılmış formda

-3 -2 -1 0 1 2 3 4 5

A ve B Bulanık kümeleri A ve B Bulanık kümelerinin Kesişimi


BULANIK KÜMELERDE CEBİRSEL İŞLEMLER

X ve Y iki bulanık küme olsun bunlar arasındaki R ilişkisi bu kümlerin alt kümesidir. A ve
B nin cebirsel çarpımı AB ile gösterilir A ve B’nin üyelik fonksiyonları ile :

R  {(( x, y ),  R ( x, y ))|( x, y )  X  Y}
R ∈ F (X × 𝑌) R ilişkisi x y nin kartezyen çarpımının elemanı ve X=Y ise R X’te binary
bulanık ilişki olarak tanımlanır.

ÖRNEK: U = 1, 2,3 kümesinde yaklaşık eşit olarak adlandırılan binary bulanık ilişki şöyle
tanımlanabilir.

R(1,1) =R(2,2)=R(3,3)= 1
R(2,1)=R(2,3)=R(3,2)=0.8
R(1,3)=R(3,1)=0.3
MaTRİS OLARAK
BULANIK KÜMELERDE CEBİRSEL İŞLEMLER

Cebirsel Çarpma
A ve Bnin cebirsel çarpımı AB ile gösterilir A ve B’nin üyelik fonksiyonları ile :

Veya
Cebirsel Toplama ve Çıkarma
A ve B nin cebirsel toplamı A+B ile ifade edilir, A ve B’nin üyelik fonksiyonları ile

Toplamada
Mutlak Fark. A ve B arasındaki mutlak fark
Şeklinde tanımlıdır. A O B in A U B kısaltılmasıdır
Convex Combination (DışBükey Birleşim)
A, B ve bulanık kümeler olsun bunların convex birleşimi
ÖRNEK:
ÖRNEK:
Dört kişilik aile bir ev almak istemektedir. Öncelikleri Büyük ve Konforlu bir evdir.
Bu amaçla 10 tane eve bakmışlarve yatak odası sayısı X’dir ve K Konfor bulanık
kümesi ve B’de Buyuk bulanık Kümesini göstersin
X= 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10
K= 0.2, 0.5, 0.8, 1.0, 0.7, 0.3, 0.0, 0.0, 0.0, 0. 0
B= 0.0, 0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.0, 1.0, 1.0
Konfor ve Buyukluk kümesinin kesişimi şöyle olur min(K∩B)
K∩B= 0.0, 0.0, 0.2, 0.4, 0.6, 0.3, 0.0, 0.0, 0.0, 0.0
Kesişme kümesi yorumlanırsa, en büyük üyelik değeri 0.6 olan beş yatak odası en
uygun olarak bulunmuştur. Bununla birlikte, üyelik 1'den az olduğu için tam olarak
tatmin edici değildir.
İkinci en iyi çözüm dört yatak odası, üyelik 0.4'tür. Aile muhtemelen daha iyi bir teklif
gelene kadar bekleyebilir ve böylece tam bir memnuniyet (üyelik 1) elde etmeyi
umabilir.

Konfor ve Buyukluk kümesinin birleşimi şöyle olur max(K U B)


K U B= 0.2, 0.5, 0.8, 1.0, 0.7, 0.8, 1.0, 1.0, 1.0, 1. 0
Burada dört yatak odası tamamen tatmin edicidir (üyelik 1). Ayrıca evin büyük olması
nedeniyle 7-10 yatak odası tatmin edicidir. Aile, ölçütlerden en az birinin
karşılandığından memnun olarak evi satın alabilir veya
Ailenin Çocukları önümüzdeki birkaç yıl içinde aileden uzaklaşmak üzereyse,
ebeveynler Rahat ve Büyük olmayan bir ev tercih edebilirler. Bu durumda;
Buyuk Olmayan (1-B) ve Konforlu bi rev almak siteyebilirler

B’=1-B= 1.0, 1.0, 0.8, 0.6, 0.4, 0.2, 0.0, 0.0, 0.0, 0.0

K= 0.2, 0.5, 0.8, 1.0, 0.7, 0.3, 0.0, 0.0, 0.0, 0. 0

K∩B’= 0.2, 0.5, 0.8, 0.6, 0.4, 0.2, 0.0, 0.0, 0.0, 0.0

ŞEklinde olur bu durumda en uygun ev olarak 3 odalı ev öne çıkmaktadır. Bu


örnek aynı zamanda Bulanık Mantığın Karar Destek Ssitemlerinde Çalışmasını
işaret eder.
BULANIK İLİŞKİ
Bulanık, değişkenler arasındaki etkileşimleri-ilişkileri tanımlar bu yuzden önemlidir
Herhangi bir bulanık denetleyicide, nesneler arasındaki ilişkiler temel bir rol oynar.
Bazı ilişkiler aynı evren içindeki unsurlarla ilgilidir: bir ölçüm diğerinden daha
büyüktür (x-y koordinatları eşit değildir vb), bir olay diğerinden daha önce meydana
gelir(t zamanı farklıdır) vb. Bunlar arasında bulanık ilişki kurulabilir.
Örnek:
Elimizde Donald Duck’ın yeğenlerinin benzerlikleri hakkında şu bilgiler mevcuttur.
Yeğenlerden Huey, Dewey’e 0.8 oranda benzemektedir, Huey’de Louie’yi 0.9
oranında benzemektedir. Bunu tablo haline getirirsek
Dewey Louie
R1= Huey 0.8 0.9 Donald
Dewey 0.5
Donald Duck ile Dewey ve Louie arasında benzerliği gösteren ilişki R2= Louie 0.6

İki matristeki bilgileri birleştirerek Huey'in Donald'a ne kadar benzediğini bulalım


Yukarıdan şu ifadeler türetilebilir;

i-Huey (0.8) oranında Dewey’e ve Dewey (0.5) oranında Donald'a benzer


ii-Huey (0.9) oranında Louie ve Louie’de (0.6) oranında Donald benzer.
(i) Bir ilişki zinciri içerir ve bunları bir Kesişim işlemiyle birleştirmek mümkün olur.
Tanımımızda, bu en zayıf üyeliği seçmeye karşılık gelir bu durumda
(i) için 0.5 ve ii için 0.6 seçilebilir. Bunları yeni ifade şeklinde yazalım

(iii) Huey (0.5) oranında Donald'a benzer ve


(iv) Huey Donald’a (0.6) oranında benzer.

Hem (iii) hem de (iv) eşit derecede geçerli görünmektedir, bu nedenle Birleşme işlemi
uygulanabilir. Bizim tanımımızla, bu en güçlü ilişkiyi, yani maksimum üyelik değerini
seçmeye karşılık gelir. Nihai sonuç ifadesi
(v) Huey Donald’a 0.6 benzer olur.

Bulanık ilişkileri birleştirirken veya oluştururken genel kural, bir "seri bağlantı" daki
minimum bulanık değeri ve "paralel bağlantı" daki maksimum değeri seçmektir.
Yukarda verilen R1 ve R2 tabloları için şöyle yazılabilir;

max-min kuramı (kombonisyonu) parantez içerisindeki birleşim dağıtılır. Bazen max-min


bileşimindeki min işlemi, çarpma için * ile ikame edilir; o zaman buna max-star
kompozisyonu denir.
ORNEK 2:

(X1,Z1)= 0.7 (X1,Z2)=0.6 (X1,Z3)=0.5


(X2,Z1)= 0.8 (X2,Z2)=0.6 (X2,Z3)=0.4 OLUR

(X1,Z1)= 0.63 (X1,Z2)=0.42 (X1,Z3)=0.25


(X2,Z1)= 0.72 (X2,Z2)=0.48 (X2,Z3)=0.2 OLUR
T(1, a)= max [ min (0.1,0.9), min(0.2,0.2), min(0.0, 0.8), min(1.0, 0.4)]
=max [0.1, 0.2, 0.0, 0.4]=0.4
T(1, b)= max [ min (0.1,0.0), min(0.2,1.0), min(0.0, 0.0), min(1.0, 0.2)]
=max [0.0, 0.2, 0.0, 0.2]=0.2 olur
T(1, g)= max [ min (0.1,0.3), min(0.2,0.8), min(0.0, 0.7), min(1.0, 0.3)]
=max [0.1, 0.2, 0.0, 0.3]=0.3 olur
En sık kullanılan bulanık içerme kuralları aşağıdaki tabloda listelenmiştir.
Tipik Bir Kapalı Döngü Denetim sitemi blok diyagramı aşağıda verilmektedir.
Burada referans sinyal, güncel sinyal ile karşılaştırılarak hata üretilir. Bu tipik tek
döngülü Regüle bir sistemi yansıtır.

Kapalı Döngü Kontrol sistemi Blok diyagramı


Denetim sistemleri kabaca iki kısıma ayrılabilir, Regülatör (Düzenleyici) tip kontrol,
belirlenmiş bir özelliği koruma işlevine sahip bir kontroldür, Gerilim regülatörü gibi,
İkinci olarak Servo (izleyici) tip kontrol bu yapıda ise zamana bağlı olarak değişen
büyüklükler izllenerek kontrol oluşturulur. Hız, Pozisyon kontrolü gibi

Tipik tek döngülü bir kontrol problemi hata sinyalini işleyerek sistemi denetler. Klasik
Kontrol sisteminde e(t) sinyali denetleyicinin girişidir. Ve yeterlidir
BULANIK MANTIK DENETLEYİCİ

Kapalı Döngü Kontrol sistemi Blok diyagramı

Bulanık Mantık Denetleyici Yapısı

Tipik tek döngülü bir kontrol problemi hata sinyalini işleyerek sistemi denetler. Klasik
Kontrol sisteminde e(t) sinyali denetleyicinin girişidir. Ve yeterlidir, Bulanık denetimde
ise bu tip kontrol doğrusal/orantısal kontrole yol açacağı için yetersizdir. Bu nedenle
Bulanık Mantık Denetleyicin girişi hata, hata_degisimi, ve hataların_toplamı gibi
değerler alır.
KURAL TABANI OLUŞTURMA

Burada giriş olarak hata ve hata_degisimi alınsın


Hata’yı Pos, Zero ve Neg olmak üzere 3 bölgeye ayıralım aynı şekilde
Hata_degisimi’nide Pos, Zero ve Neg olmak üzere 3 bölgeye ayıralım
Bu bölgelere etiket adı vereceğiz ve hepsi bir üyelik fonksiyonu ile ifade edilecek.
İki Giriş olduğundan (3x3) durum söz konusudur bunlar Kural (rule ) olarak adlandırılır,

R1: Eğer hata=Neg ve hata_degisimi=Neg ise Çıkış = -200

R2: Eğer hata=Neg ve hata_degisimi=Zero ise Çıkış = -100

R3: Eğer hata=Neg ve hata_degisimi=Pos ise Çıkış = 0

R4: Eğer hata=Zero ve hata_degisimi=Pos ise Çıkış = -100

R5: Eğer hata= Zero ve hata_degisimi=Zero ise Çıkış = 0

R6: Eğer hata= Zero ve hata_degisimi=Pos ise Çıkış = 100

R7: Eğer hata=Pos ve hata_degisimi=Pos ise Çıkış = 0

R8: Eğer hata= Pos ve hata_degisimi=Zero ise Çıkış = 100

R9: Eğer hata= Pos ve hata_degisimi=Pos ise Çıkış = 200

Dikkat edilirse nceki bilgilerden iki bulanık kümenin işlemleri sonucu bulanık küme
oluşyordu bu durumda Çıkışında bir bulanık küme olması gerekmektedir.
R1: Eğer hata=Neg ve hata_degisimi=Neg ise Çıkış = NB

R2: Eğer hata=Neg ve hata_degisimi=Zero ise Çıkış = N

R3: Eğer hata=Neg ve hata_degisimi=Pos ise Çıkış = Z

R4: Eğer hata=Zero ve hata_degisimi=Pos ise Çıkış = N

R5: Eğer hata= Zero ve hata_degisimi=Zero ise Çıkış = Z

R6: Eğer hata= Zero ve hata_degisimi=Pos ise Çıkış = P

R7: Eğer hata=Pos ve hata_degisimi=Pos ise Çıkış = Z

R8: Eğer hata= Pos ve hata_degisimi=Zero ise Çıkış = P

R9: Eğer hata= Pos ve hata_degisimi=Pos ise Çıkış = PB


KAYNAKLAR
Elmas Ç., Yapay Zeka Uygulamaları, Seçkin Yayıncılık, 4. Basım, 2011
Zadeh L.A., Fuzzy Sets, Information and Control 8, 338-353, 1965

Janetsen J. , Tutorial on Fuzzy Logic,


SORULAR? 5.PERF.PDF
KONU
BULANIK MANTIK-III

Dr. Nihat ÖZTÜRK


Mayıs-2020
Sunu Planı
• Kapalı Döngü Kontrol
• Bulanık Mantık Denetleyici
• Bulandırma
• Bilgi Tabanı=Veri +Kural Tabanı
• Bulanık Çıkarım
• Netleştirme
KAPALI DÖNGÜ KONTROL SİSTEMİ
Tipik Bir Kapalı Döngü Denetim sitemi blok diyagramı aşağıda verilmektedir.
Burada referans sinyal, güncel sinyal ile karşılaştırılarak hata üretilir. Bu tipik tek
döngülü Regüle bir sistemi yansıtır.

Kapalı Döngü Kontrol sistemi Blok diyagramı


Denetim sistemleri kabaca iki kısma ayrılabilir,
a) Regülatör (Düzenleyici) tip kontrol, belirlenmiş bir özelliği koruma işlevine sahip bir
kontroldür, Gerilim regülatörü gibi,
b) İkinci olarak Servo (izleyici) tip kontrol bu yapıda ise zamana bağlı olarak değişen
büyüklükler izlenerek kontrol oluşturulur. Hız, Pozisyon kontrolü gibi

Tipik tek döngülü bir kontrol problemi hata sinyalini işleyerek sistemi denetler.
Klasik Kontrol sisteminde e(t) sinyali denetleyicinin girişidir. Ve yeterlidir
BULANIK MANTIK DENETLEYİCİ (BMD)
Genel olarak bir BMD denetleyicili sistemin blok şeması aşağıda gösterilmektedir:

Bulanık Mantık Denetleyici Yapısı


Klasik Kontrol sisteminde e(t) sinyali denetleyicinin girişidir. Ve yeterlidir, Bulanık
denetimde ise bu tip kontrol doğrusal/orantısal kontrole yol açacağı için yetersizdir.
Bu nedenle Bulanık Mantık Denetleyicin girişi hata, hata_degisimi, ve
hataların_toplamı gibi değerler alır.
BMD sistemi çok girişli bir çıkışlı olabilir (multi-inputsingle-output) (MISO).
Veya çok girişli çok çıkışlı olabilir (multi-input-multi-output) (MIMO).
BULANIK MANTIK DENETLEYİCİ (BMD)

Şekildeki BMD dört ana kısımdan oluşur:


1-BULANDIRMA (FUZZIFICATION) :
2-BİLGİ TABANI=VERI TABANI + KURAL TABANI
3-BULANIK ÇIKARIM
4-NETLEŞTIRME METODU
a- Netleştirme operatörünün yorumlanması ve sayısal değerin elde edilmesi
BULANIK MANTIK DENETLEYİCİ (BMD)
1-BULANDIRMA (FUZZIFICATION)

Keskin değerler Üyelik fonkisyonları


vasıtasıyla Bulanıklaştırılır. Bu bloğun
önünde ölçeklendirme, Filtreleme,
Ortalama, Türev, İntegral gibi ön işlem
blokları olabilir.
Burada Kullanılan üyelik fonksiyonları
Üçgen, Sigmoid, Yamuk şeklinde olabilir.
:

Bulandırma, sistemden alınan denetim giriş bilgilerini dilsel niteleyiciler olan sembolik
değerlere dönüştürme işlemidir. Üyelik işlevinden faydalanılarak giriş bilgilerinin ait
olduğu bulanık kümeyi/kümeleri ve üyelik derecesini tespit edip, girilen sayısal
değere küçük, en küçük gibi dilsel değişken değerler atar
BULANIK MANTIK DENETLEYİCİ (BMD)

2-BİLGİ TABANI (Veri tabanı + Kural tabanı) - (Rule Base)

a- Dilsel Değişkenler;
b- Üyelik Fonksiyonları ,
c- Kural Tabanı;
d- Bulanık denetim kurallarının çıkarım bilgileri

Bilgi Tabanı : Bulanık Çıkarım- Fuzzy Inference; Kural tabanının da kullandığı bilgileri
aldığı veri tabanı (data base) ve denetim amaçlarına uygun dilsel denetim kurallarının
bulunduğu kural tabanı (rule base) olmak üzere iki kısma ayrılabilir.

Denetimi yapılan sistemle ilgili, bulandırma, bulanık çıkarım, durulama işlemleri


sırasında gerek duyulan üyelik işlevi ve kural tablosu bilgileri veri tabanından
kullanıma sunulmaktadır.
DİLSEL DEĞİŞKENLER
Bulanık kümelerin yapay zeka alanında önemli uygulamalarından biri dilsel
hesaplamalardır.

Burada amaç kesin rakamların yerine dildeki ifadeleri kullanarak mantıkta yapıldığı gibi
hesaplamaların yapılabilmesidir.

“Bu gün hava çok sıcaktır” cümlesinde “Bu günün hava sıcaklığı” bir değişken ve “çok”
onun değeri olarak ele alınabilir.

“Hava sıcaklığı” değişkeni rakam olarak 250C, 300C vs. değerler aldığında bu değişkeni
matematiksel olarak işlemek için iyi yöntemler mevcuttur.

Tablo 1. Bazı Dilsel Değişkenler ve Bunların Tipik Değerleri

Dilsel Değişkenler Tipik Değerler

Sıcaklık az, normal, çok

Sayı birkaç, az, çok

Yaş bebek, genç, yaşlı

Renk beyaz, kara, kırmızı, mavi, yeşil

Hız yavaş, orta, hızlı


DİLSEL DEĞİŞKENLER –
Fakat değişkenin değerini rakam olarak değil de kelime (“çok”) olarak ele aldığımızda bu
değişkeni işlemek için klasik matematiksel bir teori mevcut değildir. Böyle bir yöntemi
sağlamak için dilsel değişken kavramı kullanılır.

Kabaca, eğer değişkenin değeri olarak tabii dilde kullanılan kelimeler ele alınırsa bu
değişkene dilsel değişken denmektedir.

Şekil 2.1’de görüldüğü gibi dilsel değişken olan “arabanın hızı” değişkeni “yavaş”, “orta”
ve “hızlı” değerleri almaktadır. Ama bu değerlerden başka “arabanın hızı” “çok yavaş”,
“azçok yavaş”, “çok hızlı”, “az hızlı” vb gibi değerlerde alabilir.
Bu değerleri ifade edebilmek için kullanılan terimler Engeller-Çitler (Hedges) denir

Çeşitli Üyelik fonksiyonları


KURAL TABANI OLUŞTURMA

Burada giriş olarak hata ve hata_degisimi alınsın


Hata’yı Pos, Zero ve Neg olmak üzere 3 bölgeye ayıralım aynı şekilde
Hata_degisimi’nide Pos, Zero ve Neg olmak üzere 3 bölgeye ayıralım
Bu bölgelere etiket adı vereceğiz ve hepsi bir üyelik fonksiyonu ile ifade edilecek.
İki Giriş olduğundan (3x3) durum söz konusudur bunlar Kural (rule ) olarak adlandırılır,

R1: Eğer hata=Neg ve hata_degisimi=Neg ise Çıkış = -200

R2: Eğer hata=Neg ve hata_degisimi=Zero ise Çıkış = -100

R3: Eğer hata=Neg ve hata_degisimi=Pos ise Çıkış = 0

R4: Eğer hata=Zero ve hata_degisimi=Pos ise Çıkış = -100

R5: Eğer hata= Zero ve hata_degisimi=Zero ise Çıkış = 0

R6: Eğer hata= Zero ve hata_degisimi=Pos ise Çıkış = 100

R7: Eğer hata=Pos ve hata_degisimi=Pos ise Çıkış = 0

R8: Eğer hata= Pos ve hata_degisimi=Zero ise Çıkış = 100

R9: Eğer hata= Pos ve hata_degisimi=Pos ise Çıkış = 200

Dikkat edilirse nceki bilgilerden iki bulanık kümenin işlemleri sonucu bulanık küme
oluşyordu bu durumda Çıkışında bir bulanık küme olması gerekmektedir.
R1: Eğer hata=Neg ve hata_degisimi=Neg ise Çıkış = NB

R2: Eğer hata=Neg ve hata_degisimi=Zero ise Çıkış = N

R3: Eğer hata=Neg ve hata_degisimi=Pos ise Çıkış = Z

R4: Eğer hata=Zero ve hata_degisimi=Pos ise Çıkış = N

R5: Eğer hata= Zero ve hata_degisimi=Zero ise Çıkış = Z

R6: Eğer hata= Zero ve hata_degisimi=Pos ise Çıkış = P

R7: Eğer hata=Pos ve hata_degisimi=Pos ise Çıkış = Z

R8: Eğer hata= Pos ve hata_degisimi=Zero ise Çıkış = P

R9: Eğer hata= Pos ve hata_degisimi=Pos ise Çıkış = PB


3-BULANIK ÇIKARIM
Bulanık Denetimin En önemli kısmıdır.
Karar verme birimi, çıkarım motoru (Fuzzy
Engine) olarak da adlandırılır.

Bu kısım insanın karar verme ve çıkarım yapma


yeteneğinin benzeri bir yolla bulanık kavramları
işler ve çıkarım yaparak gerekli denetimi
belirler.
Bulanık çıkarım, bulanık kuralları
değerlendirmek ve her kural için bir çıktı
üretmek için bulanık vektörleri kullanır.
4-DURULAMA-NETLEŞTİRME (DE-FUZZIFICATION)
Daha önce açıklandığı gibi bulanık çıkarım motoru genellikle her biri
muhtemelen farklı bir çıktıya sahip olan birden fazla kurala sahiptir. Durulama,
bu birçok çıktıyı tek bir çıktıda birleştirmek için kullanılan yöntemi ifade eder.
Bulanıklaştırma için kullanılan ağırlık merkezi (COG) ve maxima (MOM)
ortalaması gibi çeşitli yöntemler vardır
öRNEK Bir bulanık sistemin üyelik işlevleri ve kural tablosu şekillerde verilmiştir. Sistemde hata girişi e=-1.4
hatanın değişimi de=0.3 olduğuna göre, Ağırlık Ortalama Yöntemi kullanarak durulama işlemini
gerçekleştiriniz?

me m(de) m(du)
N S 1 P N S 1 P NB N S P PB de
e N S P
N P P S
S P S N
P S N N
-2 0 2 -0.5 0 0.5 -8 -4 0 4 8
e=-1.4 de=0.3

mes= (x-a)/(b-a)=0.3 men=(c-x)/(c-b)=0.7 mdep=0.6 mdes=0.4 0lur 4 kural çalışır

de
e N S P
m(du)
N P P S NB N S P PB
S P S N 0.6
P S N N 0.4
0.3

R1: if e=S ve de=P ise min (0.3,0.6)=0.3 N -8 -4 0 4 8

R2: if e=S ve de=S ise min (0.3,0.4)=0.3 S


U=(0.3)*(-4)+(0.3)*(0)+(0.6)*(0)+(0.4)*(4)/(0.3+0.3+0.6+0.4)=0.25 OLUR
R3: if e=N ve de=P ise min (0.7,0.6)=0.6 S

R4: if e=N ve de=S ise min (0.7,0.4)=0.4 P


259
KAYNAKLAR
Elmas Ç., Yapay Zeka Uygulamaları, Seçkin Yayıncılık, 4. Basım, 2011
Zadeh L.A., Fuzzy Sets, Information and Control 8, 338-353, 1965

Prof.Dr.Novruz ALLAHVERDİ , 2001 Bulanık Mantık ve Sistemler BÖLÜM 2

Muhammad H. Rashid Power Electronics Handbook: Devices, Circuits and


Applications, 2010
Akçayol M.A ., Ders Notları
SORULAR? 5.PERF.PDF
KONU
BULANIK MANTIK-IV

Dr. Nihat ÖZTÜRK


Mayıs-2020
Sunu Planı

• Bulanık Çıkarım ve Netleştirme


• TF Bulunan Sistemin PI Denetimi
• TF Bulunan Sistemin BMD
• FIS Editörü
• Giriş ve Çıkış üyelik fonkisyonlarının
oluştruulması
• Sonuçlar
R1: Eğer hata=Neg ve hata_degisimi=Neg ise Çıkış = NB

R2: Eğer hata=Neg ve hata_degisimi=Zero ise Çıkış = N

R3: Eğer hata=Neg ve hata_degisimi=Pos ise Çıkış = Z

R4: Eğer hata=Zero ve hata_degisimi=Pos ise Çıkış = N

R5: Eğer hata= Zero ve hata_degisimi=Zero ise Çıkış = Z

R6: Eğer hata= Zero ve hata_degisimi=Pos ise Çıkış = P

R7: Eğer hata=Pos ve hata_degisimi=Pos ise Çıkış = Z

R8: Eğer hata= Pos ve hata_degisimi=Zero ise Çıkış = P

R9: Eğer hata= Pos ve hata_degisimi=Pos ise Çıkış = PB


öRNEK Bir bulanık sistemin üyelik işlevleri ve kural tablosu şekillerde verilmiştir. Sistemde hata girişi e=-1.4
hatanın değişimi de=0.3 olduğuna göre, Ağırlık Ortalama Yöntemi kullanarak durulama işlemini
gerçekleştiriniz?

me m(de) m(du)
N S 1 P N S 1 P NB N S P PB de
e N S P
N pb P S
S P S N
P S N NB
-2 0 2 -0.5 0 0.5 -8 -4 0 4 8
e=-1.4 de=0.3

mes= (x-a)/(b-a)=0.3 men=(c-x)/(c-b)=0.7 mdep=0.6 mdes=0.4 0lur 4 kural çalışır

de
e N S P
m(du)
N PB P S NB N S P PB
S P S N 0.6
P S N NB 0.4
0.3

R1: if e=S ve de=P ise min (0.3,0.6)=0.3 N -8 -4 0 4 8

R2: if e=S ve de=S ise min (0.3,0.4)=0.3 S


U=(0.3)*(-4)+(0.3)*(0)+(0.6)*(0)+(0.4)*(4)/(0.3+0.3+0.6+0.4)=0.25 OLUR
R3: if e=N ve de=P ise min (0.7,0.6)=0.6 S

R4: if e=N ve de=S ise min (0.7,0.4)=0.4 P


Örnek
Doğrusal olmayan y = 10 sin x1 fonksiyonuna yaklaşmak için dört basit bulanık kural kullanarak bulanık kural
tabanlı bir sistem geliştirelim.
Giriş değişkeni x1 için çözüm uzayı [−180◦, 180◦] ve çıktı değişkeni y için ise [−10, 10].
İlk olarak, giriş alanını x1 [−180◦, 180◦] beş bölgeye ve y çıkışı [−10, 10] için üç üyelik fonksiyonu bölgesine Şekil
a ve b de gösterildiği gibi ayıralım. Bu şekillerde, NB, NS, Z, PS ve PB kısaltmaları dilsel değişkenlere “negatif-
büyük”, “negatif-küçük”, “sıfır”, “pozitif-küçük” ve “pozitif-büyük” anlamına gelir.
İkincisi, Tablo'da listelenen, sistemin dinamiklerini taklit ettiğimizi düşündüğümüz dört basit kural
geliştiriyoruz (bu durumda sistem doğrusal olmayan denklem y = 10 sin x1 ve bu sistemin harmoniklerini
gözlemliyoruz) ve Şekil a ve b (8.9)'daki dilsel değişkenleri kullanalım. Bu kurallar için tablo Tablo 8.4'te
verilmiştir.

X
Giriş NB NS Z P PB
Y
Z NB Z PB Z
Çıkış

Kural Tablosu
Durulama için Ağırlık merkezi (centroid) yöntemini kullanalım ve Çıkış aşğaıda verilen dört üyeli
fonksiyonu Singleton olsun,
NB NS Z P PB

Z
Z NB Z PB Z

-135 -45

X1=-135 derece iken çıkış Kural 3 ü n çalışması X1=-45 derece iken çıkış Kural 1’in çalışması

X1=-135 derece iken çıkış Kural 4 ün çalışması


X1=45 derece iken çıkış Kural 2’nin çalışması
TRANSFER FONKSİYONU BULUNAN BİR SİSTEMİN PI DENETİMİ

Birim Basamak Fonksiyona tepkisi


Tepe Değer =1.4
Oturma zamanı =7 saniye
Sürekli hata =0.005
TRANSFER FONKSİYONU BULUNAN BİR SİSTEMİN BULANIK DENETİMİ

Birim Basamak Fonksiyona tepkisi


Tepe Değer =1.0
Oturma zamanı =5 saniye
Sürekli hata =0.01
BULANIK DENETİMİ GERÇEKLEŞTİRİLMESİ

1-Giriş Büyüklüklerinin sınırlarının Klasik Denetimden Belirlenmesi


Matlab Editöründe
fuzzy komutu yazılarak FIS editörüne ulaşılır. Ve Ekrana şöyle
bir görüntü gelir.

Hata (e) Girişi için üyelik fonksiyonları


Hata değişimi (de) için üyelik fonksiyonları Çıkış (u) için üyelik fonksiyonları

DE Kuralların İşlenmesi
Neg Zero Pos
E
Neg NB N Z

Zero N Z P

Pos Z P PB

Bulanık Kuralların
oluşturulması
Kuralların Çalışması Kural Yüzeyi
KAYNAKLAR
Elmas Ç., Yapay Zeka Uygulamaları, Seçkin Yayıncılık, 4. Basım, 2011
Zadeh L.A., Fuzzy Sets, Information and Control 8, 338-353, 1965

Prof.Dr.Novruz ALLAHVERDİ , 2001 Bulanık Mantık ve Sistemler BÖLÜM 2

Muhammad H. Rashid Power Electronics Handbook: Devices, Circuits and


Applications, 2010
Akçayol M.A ., Ders Notları

You might also like