Yazar |
|
patoshik
ist
Kayıt: 06.04.2009 |
|
c# yapay zeka ile oluşturacağım bi oyun için min max algoritması kullanmam gerekiyor. bu konuyla ilgili elinde kaynak ve örnek kod olan var mı acaba? internette yaptığım aramalarda açıklayıcı bilgiler bulamadım fazla. graph olayları giriyo işin içine, kodlara dönüştürme olayı, min'di max'tı epey karışıyo galiba. yardımcı olabilecek varsa şimdiden teşekkürler
bi gün herkes 10 dakkaligina da olsa FAiK olacak...
|
|
Yazar |
|
sis***
Kayıt: 15.01.2006 |
|
Algoritmanızı, daha doğrusu minimize etmek istediğiniz denklemi yazıp detay verirseniz belki yardımcı olabiliriz. Problemin ne olduğunu bilmeden problem çözemeyiz.
University Of Minnesota- Minnesota(ABD)
|
|
Yazar |
|
patoshik
ist
Kayıt: 06.04.2009 |
|
c#'ta çin daması yazmam gerekiyor, 2 oyuncu tarafından oynanacak oyunda ben hamle yap dediğimde oyun en uygun hamleyi seçip yapacak. ama bu hamleler ai ile yapılacak. yani ben hamle yap dediğimde program gördüğü hamlelerden en uygun olanını yapacak. hamlelere de bunu yaptırmak içim min-max algoritması en basiti imiş, onun için de onu kullanmak istiyorm. şu an için problemin anahatları bunlar...
bi gün herkes 10 dakkaligina da olsa FAiK olacak...
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
Şimdi önce senin bir fonksiyon oluşturman lazım.
Örneğin X taşını a noktasından nerelere sürükleyebilirsin. Sürüklediğin her nokta için bir puan oluşturduğunu düşünelim. Puan oluşturma algoritmamız da şu şekilde olsun. noktayı taşıdığın yerde o noktanın etrafındaki rakip noktaların sayısı kadar olsun. Bunlardan bir tree oluşturup tree da sağa sola dallanman lazım.
N/A
|
|
Yazar |
|
kellad
istanbul
Kayıt: 21.01.2006 |
|
Orhan'ın söylediği gibi olmalı. Ben şöyle yapardım,
Senin yapabileceğin ve karşı tarafın yapabileceği her türlü hamleyi bir ağaca girersin. Her bir hamle kaydına puan olarak (senin taş adedin - rakibinin taş adedini) girersin. 5-6 hamle sonrasına kadar bu ağacı olşturduktan sonra. Son seviyeden (yapraklardan) en yüksek puanlı bir tanesini seçip o yöne giden hamleni yaparsın. Bir sonraki hamlede elinde n-1. hamlelere kader ağacın zaten var olduğundan sadece n. hamleyi tekrar hesaplar ve yine en yüksek puanlı yöne doğru işleme devam edersin.
Ayrıca ağacın artık ihtiyacın olmayacak dallarını hafızadan silmeli. Hamle kayıtlarını mümkün olduğunca küçük formatta kaydetmelisin ki hafızan mümkün olduğunca çok hamle alsın ve işlemin hızlı olsun. Çünkü Dama için 5. 6. hamlede milyonlarca alternatifin olabilir.
Decompiling the code of universe.
Listening the cosmic background radiation.
Swimming in Inter Stellar Medium.
|
|
Yazar |
|
patoshik
ist
Kayıt: 06.04.2009 |
|
| Senin yapabileceğin ve karşı tarafın yapabileceği her türlü hamleyi bir ağaca girersin. Her bir hamle kaydına puan olarak (senin taş adedin - rakibinin taş adedini) girersin. 5-6 hamle sonrasına kadar bu ağacı olşturduktan sonra. Son seviyeden (yapraklardan) en yüksek puanlı bir tanesini seçip o yöne giden hamleni yaparsın. Bir sonraki hamlede elinde n-1. hamlelere kader ağacın zaten var olduğundan sadece n. hamleyi tekrar hesaplar ve yine en yüksek puanlı yöne doğru işleme devam edersin.
Ayrıca ağacın artık ihtiyacın olmayacak dallarını hafızadan silmeli. Hamle kayıtlarını mümkün olduğunca küçük formatta kaydetmelisin ki hafızan mümkün olduğunca çok hamle alsın ve işlemin hızlı olsun. Çünkü Dama için 5. 6. hamlede milyonlarca alternatifin olabilir. |
ağaç yapısını nasıl oluşturacağımı bilmiyorum. bu ağaç yapısını tüm hamlelere uygulamam gerekecek değil mi? hamleye göre ağaç yapısını nasıl kontrol edeceğimi kafamda tam oluşturamıyorum. örnek kod veya kaynak paylaşabilecek varsa memnun olurum.
| orhan yazdı, kellad yazdı | çok teşekkürler ayrıca verdiğiniz bilgiler için
bi gün herkes 10 dakkaligina da olsa FAiK olacak...
|
|
Yazar |
|
orhan
istanbul
admin
Kayıt: 17.11.2005 |
|
tüm hamlelere uygulaman zor. 2-3 seviye kadar hesaplar gerisini bırakırsın.
basit bir ağaç yapısı şöyledir.
________________________________
| sag node | ust node | sol node |
--------------------------------------
her node un altında yine bu elemanlardan var
şu resim deki gibi
N/A
|
|
Yazar |
|
serdr
Istanbul
Kayıt: 13.07.2006 |
|
şurada:
http://code.google.com/p/aima-java/
minimax decision için kodlar var, python için de var aynı sitede.
utulity, display vs metodlarını edit etmeni bekliyor, yardımı dokunabilir.
Artificial intelligence(Russel-Norvig) kitabına göz atmanda da kesinlikle fayda var,
prunning vs bazı ayrıntılar mevcut minmax decision ile ilgili.
|
|
Yazar |
|
serdr
Istanbul
Kayıt: 13.07.2006 |
|
hatta şurada
http://www.cedarlearning.org/aima/aima_dotNET/games/
tic tac toe falan c# olarak yazılmış. yine minmax.
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | |