Hafta_4 PROBLEM ÇÖZME
SEZGİSEL PROBLEM ÇÖZÜMLEME Sezgisellik: İ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. İncelenirse deyimler ve atasözlerinin çoğu bu yaklaşıma, karar vermek için bir benzerliğin bulunmasına ve onun değerlendirilemesine dayanmaktadır. Örnek: Bana dostunu söyle sana kim olduğunu söyleyeyim.
SEZGİSEL PROBLEM ÇÖZÜMLEME Sezgisellik, gerçeğin deneye veya akla vurmadan, doğrudan doğruya kavranmasıdır. Bulgusallık ise, öğretilmek istenen şeyi, öğrencilerin kendilerinin bulmasını sağlayan öğretim yöntemidir. Yapay zekada kullanılan sezgisellik kelimesi daha farklı biçimde ele alınarak algoritma anlamına karşılık gelmektedir. Algoritma kelimesinin kökeni Horazmi (825)’ e dayanmaktadır.
SEZGİSEL PROBLEM ÇÖZÜMLEME Algoritma, mekanik davranan kişiye veya bir makineye, bir takım verilerden yola çıkarak ve sonlu sayıda aşamalardan geçerek, belli bir problemi çözme imkanı veren, çok kesin komutlar bütününden oluşmaktadır. Bir algoritmanın çalışmasındaki mutlak zorunluluk, her türlü belirsizlikten arınmış olmasıdır.
SEZGİSEL PROBLEM ÇÖZÜMLEME Yapay zekada problemlerin çözümünde genellikle sezgisel yöntemler kullanılmaktadır. Gerçekten de bir problem için geçersiz olan sezgisel yaklaşım, diğerinde başarılı sonuçlar verebilir. Sezgisel yaklaşım, algoritmik yöntemlerden farklı olarak hedefe ulaşmanın kesin yolunu göstermemektedir.
SEZGİSEL PROBLEM ÇÖZÜMLEME Problemler genel olarak iki büyük sınıfa ayrılmaktadırlar: İyi biçimlendirilmiş problemler, Kötü biçimlendirilmiş problemler. Çözümün doğruluğunun algoritmik yaklaşımla gösterilebileceği problemler düşünülmektedir. Bu cinsten sezgisel problemlere örnek olarak teorem ispatları gösterilebilir. İyi biçimlendirilmiş problemlerde genellikle algoritmik bir yaklaşım bulunmaktadır.
SEZGİSEL PROBLEM ÇÖZÜMLEME Günlük yaşamdaki problemlerin çoğu kötü biçimlendirilmiştir. İnsanlar belirli eylemler serisini en iyi sonucun bulunması garantisini veremeden yapmaktadır. Örneğin, satrançta bir hamlenin seçilmesi sayısal etmenlere dayanmasına rağmen kötü biçimlendirilmiş problemler cinsindendir.
SEZGİSEL PROBLEM ÇÖZÜMLEME İyi biçimlendirilmiş problemlerin bilgisayarlarda algoritmik yaklaşımla çözülmesinde zaman ve bellek sınırlaması söz konusudur. Fagenbaum ve Fieldman tarafından sezgiselliğin tanımları aşağıdaki gibi yapılmıştır. Sezgisellik (sezgisel kurallar, sezgisel yöntem) problemin durum uzayı çok büyük olduğunda çözümün aranmasını kesin biçimde sınırlayan herhangi kural, strateji, hile, sadeleştirme ve diğer etmenler kullanımıdır.
SEZGİSEL PROBLEM ÇÖZÜMLEME Sezgisellik, problem karmaşıklık içerdiğinde, çözüm için yolun bulunmasındaki yardımcı anahtardır. İyi seçilmiş anahtarla tek bir kapıyı açıp amaca ulaşmak mümkün olduğu gibi, kötü seçilmiş anahtarlarla bu yolu zora sokmak da mümkündür. Yuri Gagarin, 1961’ de uzaya giden ilk insan olduktan sonra İngiltere Kraliçesi Elizabeth II tarafından kabul edilmiştir. Yemek sırasında masaya 5 çatal, 5 kaşık ve 5 bıçak getirilmiştir. Bir köylü çocuğu olan kozmonot rastgele aldığı çatal ve bıçaklarla yemeye başlamış ve sonunda ilginç durumla karşılaşmıştır. Yemek sonunda çay için kaşıklardan en büyüğü kalmıştır.
SEZGİSEL PROBLEM ÇÖZÜMLEME Mönü önceden bilinseydi, olay algoritmik özellik taşıyacaktı. Öte yandan yemek süresinin sınırlı olması deneme yapmaya imkan vermemektedir. Fakat tekrar benzeri durumla karşılaşıldığında tecrübeye göre en iyi yaklaşım yapılmaktadır. Yine de kötü bir tahmin rol oynayabilir. Dolayısıyla burada aşağıdaki kural söz konusudur: Yeni koşullarda eski benzeri durumlardaki iyi sonuçları veren yöntemleri kullan.
SEZGİSEL PROBLEM ÇÖZÜMLEME Birçok problem aşağıdaki yaklaşımla çözülebilmektedir. 1. Mümkün olabilecek durumlar içerisinde herhangi birisinin ele alınması. 2. Ele alınmış duruma mümkün gidişler uygulayarak durumun değiştirilmesi. 3. Durumun değerlendirilmesi. 4. Gereksiz durumların atılması. 5. Eğer sonuca ulaşılmışsa çözümün tamamlanması, aksi halde yeni değer ele alınarak işlemlerin tekrarlanması. Algoritmik yaklaşımda 1-3-5. adımlar kulllanılmamaktadır.
SEZGİSEL PROBLEM ÇÖZÜMLEME Problemin algoritmik çözümlerinin sınıflandırılması, bunların yürütülmesi için gerekli işlemlerin sayısı temel alınarak gerçekleştirilebilir; bu ölçüye, algoritmik karmaşıklık adı verilir. Bir algoritmanın hesaplama karmaşıklığının değerlendirilmesi onun ne kadar hızlı çalışacağı ve bilgisayarın belleğinde ne kadar yer kullanacağına ilişkin bilgiler vermektedir.
SEZGİSEL PROBLEM ÇÖZÜMLEME Bir algoritmanın hesaplama karmaşıklığı iki açıdan incelenmedir. Hesaplamayı yapmak için gerekli zamanı ölçen zamansal karmaşıklık değerlendirilmesi Hesaplama için gerekli bellek sığasının ölçümü Bazen zaman karmaşıklığı yalnızca karmaşıklık olarak ta isimlendirilebilmektedir.
Graflar Yapay zeka ile ilgili birçok problemde durum uzayının veya çözüm ağacının gösterilmesinde graf yapıları kullanılır. Graf bir noktalar kümesi ile (düğümler) bu noktalar arasındaki ilişkileri ifade eden kenarlar yardımıyla tanımlanan bir yapıdır. Her kenar iki düğümü birleştirmektedir. Grafın her kenarının bir başlangıcı ve bir sonu varsa, bu yönlü graf olarak tanımlanır. Aksi halde graf yönsüz olarak kabul edilir. Yönsüz graflarda kenarlar bağ olarak adlandırılır.
Graflar Eğer iki ayrı düğüm tek bir kenarla birbirine bağlanıyorsa, buna yalın graf denir. Eğer iki ayrı düğüm birden çok kenar ilişkisi içerirse buna bağlantılı graf denir. Birbiri ile kenarlarla ilişkili olan düğümlere komşu düğümler denir. Grafın herhangi düğüm komşuları sayısı onun derecesini belirler. Kapalı yola döngü denir. Döngü içermeyen bağlantılı graflar ağaç olarak adlandırılır.
Graflar Yapay zekada graf yapıları genellikle problemin durum uzayını, nesneler arası ilişkileri, bilgilerin modellenmesinde olan anlamsal gösterimleri, doğal dil işlemede çözümleyicileri vb. ifade etmek için kullanılır. Yönsüz graf örneği ve bu grafın düğümleri arasındaki ilişkileri ifade eden komşuluk matrisi S= 0 1 0 0 1 1 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 2 3 5 4
Durum Uzayı Bir problemin çözümü arandığında durum uzayının sınırları kesin bir biçimde belirlenmelidir. Birey verileri tam anlamıyla algılayamadığı zaman gereksiz ilişkiler kurulur ve kısıtlamalar yapılır. İnsan beyni, nesnelerin kullanımına ve yöntemlere ilişkin ‘otomatik bir minimizasyon mekanizması’ içermektedir.
Mainer’in 9 nokta problemi Yatay ve dikey yönde sırası ile her sırada 3’er tane olarak yerleştirilmiş toplam 9 noktanın kalemi kaldırmadan dört doğru parçası ile birleştirilmesi istenmektedir.
Mainer’in 9 nokta problemi
Problem Çözümleme Şifreli Hesaplama Örneği (crypt-arithmetic problem) DONALD + GERALD = ROBERT 6 5 4 3 2 1 D O N A L D + G E R A L D c1 c2 c3 c4 c5 elde ----------------------------- R O B E R T Başlangıçta 'D = 5' olduğu varsayıldığında; ÇÖZÜMÜ BULUNUZ
Problem Çözümleme Şifreli Hesaplama Örneği 'D = 5' olduğu varsayıldığı için 'D + D = T' dolayısıyla 'T = 0' ve 'c5 = 1' olur. 5. sütunda 'O + E = O' mevcut. 'T = 0' olduğundan, E, 0 olamaz, bu nedenle 'E = 9' olur. ‘c2 = 1' ise 'O + 9 = O' mümkün olur. Dolayısıyla 'c2 = 1'. 3. sütunda 'A + A = 9' mevcut, fakat aynı 2 sayının toplamı daima çift bir sayıdır. verilen 9 olduğunda, elde olan 1 hesaba katıldığında; dolayısıyla 'c4 = 1', yani 'A = 4‘ olur. Kalan rakamlar {1,2,3,6,7,8} {O, N, R, B, L, G} ‘şeklinde atanabilir. 'E = 9' ve 'c2 = 1' olduğu biliniyor, yani sütun 5'den 'c1 = 1' alınıyor. Ayrıca 2. sütunda 'L + L + c5 = R' olur; burada 'c5 = 1' olur; dolayısıyla R tektir ve böylece R, 1, 3 ya da 7 olmalıdır. 'D + G' sütun 6'da gösterilen eldeyi üretmediğinden, R 1 ya da 3 olamaz. Dolayısıyla 'R = 7' ve 'G = 1‘ olur. 'R = 7' olduğuna göre, sütun 2'den 'L + L + 1 = 17', dolayısıyla 'L = 8' elde edilir. 3. sütundan 'A + A + c4 = E' olarak alındığında hiçbir elde yok, Bu nedenle 'c3 = 0‘ olur. 4. sütundan 'N + R + c3 = B' elde edilir, R = 7 ve 'c3 = 0' olur, Bu yüzden 'N + 7 = 10 + B', dolayısıyla 'N = B + 3'. Kalan sayılar {2,3,6}, 'B = 3' ve 'N = 6' olsun 'N = B + 3' koşulunu yerine getirmek üzere atandı. Ve son olarak kalan 'O = 2'.
Şifreli Hesaplama Örneği ÇÖZÜM: 5 2 6 4 8 5 + 1 9 7 4 8 5 ------------------------ 7 2 3 9 7 0 DEĞERLER: 0 1 2 3 4 5 6 7 8 9 T G O B A D N R L E A B D E G L N O R T 4 3 5 9 1 8 6 2 7 0 D O N A L D + G E R A L D ----------------------------- R O B E R T
Tavşanlar problemi Her tavşan çiftinin her ay sonunda 1 çift yavru verdiği düşünülürse, her yeni çift ise ilk birinci aydan sonra yavrulayabildiği de söz konusu olduğunda önceden verilmiş zaman içerisinde hiçbir tavşanında ölmediği varsayılarak, 1 yıl (12 ay) sonra kaç tavşan elde edildiğini tespit ediniz.
Tavşanlar problemi Çözüm: n ay sonra x[n] çift tavşan olduğunu varsayalım.n+1inci ayda (tavşanların ölmedikleri varsayılarak) x[n] çiftin yanında yenidoğan çift de yeralacaktır. Ancak yeni tavşan çifti 1 aylık olduğunda doğurabildiği için x[n-1] çift yeni tavşan olacaktır. x[n+1] = x[n] + x[n-1] Buna göre belli bir aydaki çift sayısı önceki iki ayın toplamına eşittir. O halde tavşan çifti sayıları aylara göre bir yıl içinde, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 olacaktır. Bu denklem ve özünde yatan mantık Fibonacci sayılarını oluşturmaktadır. Fibonacci sayılarının ilginç özellikleri vardır. Mesela n sayısı büyüdükçe iki ardışık Fibonacci sayısının oranı “Altın Oran”a yani 1.618... e yakınsar.
Kurt-kuzu-ot problemi Bir çiftçi, nehrin sağ kıyısındaki kurt, kuzu ve otu, yalnız iki nesne alabilecek bir tekneyle sol kıyıya geçirmek istiyor. Çiftçi yanlarında olduğu müddetçe kurt kuzuyu, kuzu da otu yiyememektedir. Kuzu ve ot yitirilmeden bu tekneyle çiftçi kurt, kuzu ve otu diğer kıyıya nasıl taşıyabiliriz?
Kurt-kuzu-ot problemi Çiftçinin kurt, kuzu ve otu nehirden karşıya geçirmesi gerekiyor. Kurt ile kuzunun, kuzu ile otun aynı kıyıda yalnız kalmamaları kuralı var. Sağ ve sol kıyıda olmak üzere iki durum var. Başlangıç durumu herkesin sağ kıyıda olduğu durum iken, hedef durum herkesin sol kıyıda olduğu durum. Önce kuzu karşıya bırakılır, döner kurt'u alır karşıya bırakırken, karşıdaki kuzuyu geri getirir kıyıya bırakır ot balyasını alınıp karşıya götürülür. Geri döner son olarak bu sefer tekrar kuzuyu alınıp karşıya götürülür. Buna göre, başlangıç durumunu 0-0-0-0 bitleri ile ifade edilirse, hedef durumu da 1-1-1-1 bitleri ile ifade edilebilir.
Örnek: Ölçme problemi 7 litre suyu birer adet 3, 5 ve 9 litrelik kovalar ile ölç Hedefi formüle et: 7 litre suyu 9 litrelik kovada tut Problemi formüle et: Durumlar: Kovalardaki su miktarı İşlemler: Kovayı kaynaktan doldur, Kovayı boşalt Çözümü bul: Başlangıç durumundan hedef duruma götüren işlemler sırası
Örnek: Ölçek problemi! 9 l 5 l 3 l Problem : Ölçek Problemi Amaç : En az hareket ile 7 litre suyu ölçmek Durumlar : 3 ölçek kabı ( 3, 5 ve 9 litrelik) Operatör : Suyun yerini değiştirme Maliyet : Yer değiştirme sayısı
Örnek: Ölçek problemi! 9 l 5 l 3 l a b c Çözüm (olasılıklardan biri): 0 0 0 başla 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç 3 l 5 l 9 l a b c
Örnek: Ölçek problemi! 9 l 5 l 3 l a b c Çözüm (olasılıklardan biri): 0 0 0 başla 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç 3 l 5 l 9 l a b c
Örnek: Ölçek problemi! 9 l 5 l 3 l a b c Çözüm (olasılıklardan biri): 0 0 0 başla 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç 3 l 5 l 9 l a b c
Örnek: Ölçek problemi! 9 l 5 l 3 l a b c Çözüm (olasılıklardan biri): 0 0 0 başla 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç 3 l 5 l 9 l a b c
Örnek: Ölçek problemi! 9 l 5 l 3 l a b c Çözüm (olasılıklardan biri): 0 0 0 başla 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç 3 l 5 l 9 l a b c
Örnek: Ölçek problemi! 9 l 5 l 3 l a b c Çözüm (olasılıklardan biri): 0 0 0 başla 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç 3 l 5 l 9 l a b c
Örnek: Ölçek problemi! 9 l 5 l 3 l a b c Çözüm (olasılıklardan biri): 0 0 0 başla 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç 3 l 5 l 9 l a b c
Örnek: Ölçek problemi! 9 l 5 l 3 l a b c Çözüm (olasılıklardan biri): 0 0 0 başla 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç 3 l 5 l 9 l a b c
Örnek: Ölçek problemi! 9 l 5 l 3 l a b c Çözüm (olasılıklardan biri): 0 0 0 başla 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç 3 l 5 l 9 l a b c
Örnek: Ölçek problemi! 9 l 5 l 3 l a b c Çözüm (olasılıklardan biri): 0 0 0 başla 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç 3 l 5 l 9 l a b c
Örnek: Ölçek problemi! 9 l 5 l 3 l a b c Bir başka çözüm: a b c 0 0 0 başla 0 5 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç 3 l 5 l 9 l a b c
Örnek: Ölçek problemi! 9 l 5 l 3 l a b c Bir başka çözüm: a b c 0 0 0 başla 0 5 0 3 2 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç 3 l 5 l 9 l a b c
Örnek: Ölçek problemi! 9 l 5 l 3 l a b c Bir başka çözüm: a b c 0 0 0 başla 0 5 0 3 2 0 3 0 2 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç 3 l 5 l 9 l a b c
Örnek: Ölçek problemi! 9 l 5 l 3 l a b c Bir başka çözüm: a b c 0 0 0 başla 0 5 0 3 2 0 3 0 2 3 5 2 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç 3 l 5 l 9 l a b c
Örnek: Ölçek problemi! 9 l 5 l 3 l a b c Bir başka çözüm: a b c 0 0 0 start 0 5 0 3 2 0 3 0 2 3 5 2 3 0 7 amaç 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç 3 l 5 l 9 l a b c
İki Ayrı Çözüm Çözüm 1: a b c 0 0 0 başla 3 0 0 0 0 3 3 0 3 0 0 6 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 amaç Çözum 2: a b c 0 0 0 başla 0 5 0 3 2 0 3 0 2 3 5 2 3 0 7 amaç
Örnek: 8-puzzle 8-Puzzle problemi 1’den 8’e kadar sayılarla doldurulmuş ve bir karesi boş olan 3x3 boyutunda bir matrisin istenilen bir hedef duruma getirilmesinin amaçlandığı bir oyun olarak tanımlanabilir. Puzzle üzerindeki elemanların yalnızca boşluk ile yer değiştirdiği (kaydırıldığı) hareketler geçerli kabul edilmektedir.
Örnek: 8-puzzle Durumlar: taşların yerleri (tamsayı, 1-9) Başlangıç durumu Hedef durum Durumlar: taşların yerleri (tamsayı, 1-9) Hareketler: Boşluğu sola, sağa, aşağı, yukarı hareket ettir 8 taşın her biri için olası 4 hareketi tarif etmektense boşluğu hareket ettirmek daha etkili Amaca ulaşma testi: Resimdeki hedef durum Yol masrafı: Her hareket için 1 birim
8-puzzle probleminin durum uzayından bir kesit 5 4 6 1 8 7 3 2 5 4 6 1 8 7 3 2 5 4 8 6 1 7 3 2 5 1 4 6 8 7 3 2 5 4 6 1 8 7 3 2 5 1 4 6 8 7 3 2 Durum Uzayı (State Space) Boyutu : 9!/2 = 181440
8-Vezir Problemi 8 Vezir Bulmacası, 8x8'lik bir satranç tahtasına 8 adet vezirin hiçbiri olağan vezir hamleleriyle birbirini alamayacak biçimde yerleştirmesi sorunudur. Her bir vezirin konumunun diğer bir vezire saldırmasına engel olması için hiçbir vezir başka bir vezirle aynı satıra, aynı kolona ya da aynı köşegene yerleştirilemez.
8-Vezir Problemi Toplamda 283.274.583.,552 (64x63x..x58x57/8!) olasılık bulunmasına karşın yalnızca 92 çözüm bulunduğu için bulmacanın çözümü yüksek miktarda hesaplama gerektirir. Gereksiz yere yapılan hesaplamaların sayısını azaltmak için bazı kısayolların kullanılması mümkündür. Örneğin her bir satırda ya da sütunda tek bir vezirin olabileceği kısıtı uygulanarak çözüm sayısı 16.777.216 (88) düzeyine indirilebilir. Aşağıdaki adımlar sırasıyla izlenerek n vezir bulmacası'nın bir çözümü bulunabilir: n sayısını 12'ye böl. Kalanı aklında tut. (n sayısı sekiz vezir bulmacasında 8'dir). 2'den n sayısına kadar olan bütün çift sayıları sırayla yaz. Eğer kalan 3 ya da 9 ise 2'yi listenin en sonuna koy. 1'den n'ye kadar olan tek sayıları listeye ekle; eğer kalan sekizse her bir çiftin kendi arasında yerlerini değiştir (örnek: 3, 1, 7, 5, 11, 9, …). Eğer kalan 2 ise, 1 ile 3'ün yerlerini değiştir ve 5'i listenin en sonuna al. Eğer kalan 3 ya da 9 ise, 1 ve 3'ü listenin sonuna al. Ortaya çıkan listedeki her bir sayı ilgili için ilgili kolonun listedeki sayının gösterdiği satırına bir vezir koy. Örneğin listedeki ilk sayı 2 ise satranç tahtasında ilk kolonun ikinci sırasına bir vezir konmalıdır.
8-Vezir Problemi 8 vezir probleminin aslında aşağıda gösterilen 12 eşsiz çözümü vardır.
Yolcular ve Yamyamlar 3 yolcu ve 3 yamyam kayıkla nehrin karşısına geçmek istiyor. Kayığa en fazla 2 kişi binebilir Amaç: Tüm yamyamların ve yolcuların nehri geçmesi Sınırlama: Yamyamların sayısı nehrin herhangi bir sahilinde yolculardan çok olursa yamyamlar yolcuları yer Durum: Nehrin her iki sahilinde ve kayıktaki yamyam ve yolcular Hareketler/İşlemler: Her iki yönde için de bir veya iki kişi ile kayığın hareketi Yakın sahil Nehir Uzak sahil Kişi 1 Kişi 2 kayık Kişi 3 Yamyam 1 Yamyam 2 Yamyam 3 Bu problem 11 adımda çözülebilir
Yamyamlar ve Yolcular Sorunun Çözümü Yakın sahil Karşı sahil . 0 Başlangıç durum: MMMCCC B - 1 2 yamyam çayı geçti: MMMC B CC 2 Birisi geri döndü: MMMCC B C 3 2 yamyam çayı geçti: MMM B CCC 4 Biri geri döndü: MMMC B CC 5 2 yolcu çayı geçti: MC B MMCC 6 Bir yolcu ve bir yamyam geri döndü: MMCC B MC 7 İki yolcu çayı geçti: CC B MMMC 8 Bir yamyam geri döndü: CCC B MMM 9 İki yamyam çayı geçti: C B MMMCC 10 Bir yamyam geri döndü: CC B MMMC 11 İki yamyam çayı geçti: B MMMCCC M: yolcu, C: yamyam , B:kayık
Hanoi kulesi Üç tane direk ve farklı boyutlarda disklerden oluşur. Diskler istenilen direğe aktarabilir. Her harekette sadece bir disk taşınabilir. En üstteki disk direkten alınıp diğer bir direğe taşınabilir. Diğer direkte daha önceden diskler olabilir. Hiçbir disk kendisinden küçük bir diskin üzerine koyulamaz.
Hanoi kulesi Sistemin optimal çözümleri "2n-1" kuralına dayalıdır. 3 disk (2.2.2)-1=7 hareket 4 disk (2.2.2.2)-1=15 hareket 5 disk (2.2.2.2.2)-1=31 hareket 6 disk(2.2.2.2.2.2)-1=63 hareket 7 disk(2.2.2.2.2.2.)-1=127 hareket 8 disk(2.2.2.2.2.2.2)-1=255 hareket
Hanoi kulesi 1883 yılında Fransız matematikçi Edouard Lucas tarafından bulunmuştur 1 diskin hareketi için 1 saniye gerekirse, 64 diskli problemi çözmek için 500 milyar yıl gerekir Bu yüzden bu büyük durum uzaylarında bir çözüm aramak için prensipli bir yola ihtiyacımız vardır => Arama algoritmaları