oyun programlama (bulanık mantık)

11
HAZIRLAYAN: YRD.DOÇ.DR. EMİN BORANDAĞ Oyun Programlama (Bulanık Mantık)

Upload: mairwen-aderyn

Post on 03-Jan-2016

103 views

Category:

Documents


1 download

DESCRIPTION

Oyun Programlama (Bulanık Mantık). Hazırlayan: Yrd.Doç.Dr. Emin BORANDAĞ. Bulanık Mantık. Tarihsel Geçmişi : Bulanık küme teorisi türetilen 1965 yılında University of California, Berkeley Prof Lotfi Zadeh tarafından geliştiril miştir. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Oyun Programlama (Bulanık Mantık)

HAZIRLAYAN:YRD.DOÇ.DR. EMİN BORANDAĞ

Oyun Programlama(Bulanık Mantık)

Page 2: Oyun Programlama (Bulanık Mantık)

Bulanık Mantık

Tarihsel Geçmişi: Bulanık küme teorisi türetilen 1965 yılında University of California, Berkeley Prof Lotfi

Zadeh tarafından geliştirilmiştir. Bulanık küme teorisi geleneksel ("net") küme

teorisininden farklıdır. Geleneksel küme teorisi: Bir nesne ya bir dizi ya da aittir. Bulanık küme teorisi: bir nesne bir dizi "kısmen ait"

olabilir Örnek: Uzun ve Kısa: iki takım insanları sınıflandırmak

için Orta uzunlukta olan biri kısmen o gruba ait olarak sayilır.

Page 3: Oyun Programlama (Bulanık Mantık)

Bulanık Küme Üyeleri

Geleneksel Küme Teorisi: Bir nesne dizi üyesidir.

Bulanık Küme Teorisi: Bir nesne kısmen bir dizi üyesidir.

Page 4: Oyun Programlama (Bulanık Mantık)

Üyelik Fonksiyonu

Örneğin, Kısa, Orta ve Uzun üç grup için üyelik fonksiyonları tanımlayabilir. Kişinin boyuna göre hangi grupta olacağı belirlenir.

Kimi oyunlarda anlık yapılan yer tespiti gibi.

0.0

1.0

Membership

Height (meters)

0.5

1.4 1.5 1.6 1.8 1.9 2.0

Short

Medium

Tall

1.55

Page 5: Oyun Programlama (Bulanık Mantık)

Mantıksal Operatörler

Programlar içerisinde sürekli olarak kullanılan mantıksal operatörlerin doğru ve yerinde kullanılması. Ara değer ve eşittlik değerlerine bakılarak sistemin test edilmesi önemlidir.

A B A and B

0 0 0

0 1 0

1 0 0

1 1 1

A B A or B

0 0 0

0 1 1

1 0 1

1 1 1

A not A

0 1

1 0

Page 6: Oyun Programlama (Bulanık Mantık)

Bulanık Mantık Operatörleri

Gelen veriye göre program içerisinde kullanılan mantıksal operatörlerin kullanımları farklı olabilir.

NOT:AND:OR:

Page 7: Oyun Programlama (Bulanık Mantık)

Kurallar

Örnek olarak mavi olarak tanımlanan bir grupta bulunan bir nesne diğer mavi nesnelerine saldırmaması gerekmektedir.

Diğer nesnelerden biri kırmızıya döndüğünde saldırı yapılacak şekilde kuralın tekrardan tanımlanması gerekmektedir.

Anlık olarak durum kendi ile tutarsız olarak görünsede kendi içinde belli bir bulanık mantık sorusu olarak karşımıza çıkmaktadır.

Burada anlık duruma göre karar değişecektir. Bunun kolay bir şekilde yapılması için bir karar tablosu içeriinde bu kuralların yazıldığı bir tablo oluşturmak yararlı olacaktır.

Page 8: Oyun Programlama (Bulanık Mantık)

Bulanık Mantığın Bir Oyuna Uygulanması

Kullanılan Bulanık Mantık Yöntemi ile oyuncunun yapacağı hareketleri belirleyip ona karşı bir karşı duruşun tanımlanması gerkmektedir.

Yanda Hareket İle İlgili Tablo örneği verilmiştir.

Eğer ilk hareket yumruk,İkinci Hareket yumruksa üçüncü hareketin aşağıdan gelen bir tekme olma ihtimali daha çoktur.

3rd move

1st move 2nd move Punch Low Kick

High Kick

Punch Punch 10 15 2

Punch Low Kick 1 9 13

Punch High Kick 8 0 1

Low Kick Punch 2 3 1

Low Kick Low Kick 8 9 15

Low Kick High Kick 23 1 13

High Kick Punch 4 5 9

High Kick Low Kick 1 2 1

High Kick High Kick 0 8 9

Page 9: Oyun Programlama (Bulanık Mantık)

Kullanıcıların Hareketlerinin Tahmini

Nasıl Karar Tablosu Oluşuturulacak İlk ve ikinci Tablo

sutununa olası bütün sonuçlar yazılır.

Kullanıcı oyun sırasında yaptığı hareketler kaydedilir.

Örnek olarak kullanıcı yumruk, yüksek tekme hareketlerini yaptıktan sonra yumruk atma ihtimali ve yüksek tekme ihtimali daha fazladır.

Daha önce yaptığı hareketlere bakılarak.

3rd move

1st move 2nd move Punch Low Kick

High Kick

Punch Punch 10 15 2

Punch Low Kick 1 9 13

Punch High Kick 8 0 6

Low Kick Punch 2 3 1

Low Kick Low Kick 8 9 15

Low Kick High Kick 23 1 13

High Kick Punch 4 5 9

High Kick Low Kick 1 2 1

High Kick High Kick 0 8 9

Page 10: Oyun Programlama (Bulanık Mantık)

Kullanıcının Hareketini Tahmin Et!

3. Hamlede hangi hareketi yapacaktır?

3rd move

1st move 2nd move Punch Low Kick

High Kick

Punch Punch 10 15 2

Punch Low Kick 1 9 13

Punch High Kick 8 0 1

Low Kick Punch 2 3 1

Low Kick Low Kick 8 9 15

Low Kick High Kick 23 1 13

High Kick Punch 4 5 9

High Kick Low Kick 1 2 1

High Kick High Kick 0 8 9

Page 11: Oyun Programlama (Bulanık Mantık)

Olasılık

Eğer gelecek hareketi bilsek okuncu kanaza bilirmi?

Peki olasılı nasıl belirleyeceğiz! Örnek: 100 hareketten 30 hareket yumruksa yumruk yani

punch yüzdesi P(punch) = 0.3Matematik Nerelerde

P(AuB) = P(A) + P(B) – P(AnB)Son 100 günün; 70 günü hava kapalı ve 35 günü

yağmurlu oldu başka hava koşulun da bir günde olmadı!

Kaç gün hem kapalı hemde yağmurlu oldu?