Minimax algoritması

Minimaks algoritma (aynı zamanda olarak anılacaktır minmaks algoritması ) için geçerli olan bir algoritmadır oyun teorisi iki oyuncu için sıfır toplamlı (yani en kötü durumda demek) (ve tam bilgi) maksimum kaybını minimize oyunları. Geniş bir oyun ailesi için, von Neumann'ın minimax teoremi , pratikte onu bulmak çoğu zaman kolay olmasa bile, böyle bir algoritmanın varlığını garanti eder. Hex oyunu böyle bir algoritmanın varlığının kurulduğu bir örnektir ve bu strateji bilinmeden ilk oyuncunun her zaman kazanabileceğini gösterir.

Bilgisayarın sınırlı sayıda hamle için tüm olasılıkları gözden geçirmesini ve onlara oyuncu ve rakibi için faydalarını dikkate alan bir değer atamasını sağlar. Bu durumda en iyi seçim, rakibin tam tersine onları maksimize etmek istediğini varsayarak oyuncunun kayıplarını en aza indiren seçimdir (oyun sıfır toplamlıdır).

Oyun ağacında ziyaret edilen düğüm sayısını sınırlayarak en iyi hamleyi aramayı optimize etmek için MinMax tabanlı farklı algoritmalar vardır , en bilineni alfa-beta budamasıdır . Uygulamada, ağaç genellikle tam olarak keşfedilemeyecek kadar büyüktür ( satranç veya go oyununda olduğu gibi ). Ağacın sadece bir kısmı daha sonra keşfedilir.

Çok büyük ağaçlar söz konusu olduğunda, bir AI (uzman sistemi, örneklerden öğrenerek değerlendirme, vb.) belirli dalları budamak için kullanılabilirliklerine ilişkin bir tahmine dayalı olarak kullanılabilir. Bu, örneğin go bağlamında kullanılan şeydir.

Prensip

Minimax algoritması, aşağıdaki gibi özyinelemeli olarak hesaplanan bir değeri ("oyun değeri" olarak adlandırılır) köke getirmek için oyun ağacını ziyaret eder:

Misal

Min Maks Örnek 1.png

Yukarıdaki şemada, gri düğümler oyuncu düğümlerini ve mavi düğümler karşıt düğümleri temsil eder. A düğümünün değerini belirlemek için B düğümlerinin maksimum değerini seçiyoruz (A bir oyuncu düğümüdür). Bu nedenle, her biri çocuklarında depolanan minimum değeri alan B düğümlerinin değerlerini belirlemek gerekir (B düğümleri karşıttır). C düğümleri yapraklardır, dolayısıyla değerleri değerlendirme fonksiyonu tarafından hesaplanabilir.

Min Maks Örnek 2.png

Dolayısıyla A düğümü 5 değerini alır. Oyuncu bu nedenle hamleyi B2'ye getiren hamleyi oynamalıdır. Ağacı gözlemleyerek, algoritmanın rakibin en iyi performansı göstereceğini düşündüğünü anlıyoruz: minimumu alıyor. Bu yüklem olmadan, düğüm C seçsin 1 büyük kazanç ve B1 yol açacak seçilen sonraki hamlesini sunmaktadır. Ama sonra rakibin sadece 3 kazanç sağlayan C3 oynaması riskini alıyoruz.

Pratikte, P pozisyonunun teorik değeri genellikle hesaplanamaz. Sonuç olarak, değerleme işlevi terminal dışı pozisyonlara uygulanacaktır. Değerlendirme fonksiyonu kökten ne kadar uzağa uygulanırsa, hesaplama sonucunun o kadar iyi olduğu kabul edilecektir. Başka bir deyişle, daha fazla ardışık vuruş inceleyerek, teorik değere daha iyi bir yaklaşım elde ettiğimizi ve dolayısıyla daha iyi bir hareket seçimi elde ettiğimizi varsayıyoruz.

Negamax sadeleştirme

f ( p ) tarafından alınan değerler kümesi 0'a göre simetrik ise, g ( p ) fonksiyonu şu şekilde tanımlanabilir:

Böylece negamax'ı bu yeni fonksiyondan tanımlıyoruz:

Minmax algoritmasıyla aynı örnekten elde edilen ağaç:

Min Maks Örnek 3.png

sözde kod

Sınırlı derinlikli minimax algoritmasının sözde kodu aşağıda gösterilmiştir:

function minimax(node, depth, maximizingPlayer) is if depth = 0 or node is a terminal node then return the heuristic value of node if maximizingPlayer then value := −∞ for each child of node do value := max(value, minimax(child, depth − 1, FALSE)) return value else (* minimizing player *) value := +∞ for each child of node do value := min(value, minimax(child, depth − 1, TRUE)) return value (* Initial call *) minimax(origin, depth, TRUE)

Uygulamalar

Minimax ve istatistiksel seçim teorisi

Seçim istatistiksel Teoride, biz bir tahmincisi var Í amaçları bir bulmak için parametre İçeride ISTV melerin RWMAIWi'nin ∈ İçeride ISTV melerin RWMAIWi'nin . Bu bağlamda, eğer θ 'minimax':


Alfa-beta budama

Bu algoritma, alfa-beta budama olarak bilinen tekniğin uygulanmasıyla optimize edilebilir . Alfa beta algoritması, kullanılmayacak durumları ortadan kaldırarak minimax arama rutinini hızlandırır. Bu yöntem, ağaçtaki diğer tüm seviyelerin maksimize edileceği ve diğer tüm seviyelerin minimize edileceği gerçeğini kullanır.

Ekler

Notlar

  1. Jean-Marc Alliot ve Thomas Schiex , “Oyunların programlanması” , Yapay Zeka ve Teorik Hesaplama , Cepadues,1994( ISBN  2-85428-324-4 )
  2. Ancak oyuncular taş-kağıt-makas oyununda olduğu gibi rakibinin oynadığı hamleleri bilmiyorlarsa , bu algoritma sadece şans kullanımını gerektiren stratejilere yol açar; bkz teoremi makalesine fazla ayrıntı için

bibliyografya

İlgili Makaleler

Dış bağlantı

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">