Water Jug Problemi - Arama Algoritmaları

Sürahi 1: 0/5 L
Kapasite: 5L
Sürahi 2: 0/3 L
Kapasite: 3L

Çözüm Yolu:

🔍 Durum Uzayı Grafiği (State Space Graph)

Başlangıç
Hedef
Çözüm Yolu
Ziyaret Edilen

Algoritma Performans Karşılaştırması

Algoritma Ziyaret Edilen Durumlar Yol Uzunluğu (Adım) Çalışma Zamanı (ms) Kullanılan Bellek (Düğüm)
BFS----
DFS----
A*----
Greedy----

Problem Tanımı

Water Jug Problem, yapay zekada klasik bir state-space search problemidir. Elinizde farklı kapasitelere sahip iki sürahi (örneğin 5L ve 3L) ve sınırsız su kaynağı (musluk) var. Amaç, belirli işlemleri kullanarak sürahilerden birinde tam olarak hedef miktarda su elde etmektir.

Problem Senaryosu (Örnek):

5 litrelik ve 3 litrelik iki sürahiniz var. Tam olarak 4 litre su elde etmeniz gerekiyor. Ölçüm aleti yok, sadece sürahilerin tam dolu veya boş olduğunu görebilirsiniz.

Kullanılabilir İşlemler:

Kurallar ve Kısıtlamalar:

State Representation: [sürahi1_su_miktarı, sürahi2_su_miktarı]

Başlangıç Durumu: [0, 0] - Her iki sürahi boş

Hedef Durum: [4, ?] veya [?, 4] - Herhangi bir sürahide 4L su olmalı

Çözülebilirlik Koşulu:

Hedef miktar, iki sürahinin kapasitelerinin en büyük ortak böleninin (GCD) katı olmalıdır. Örneğin: GCD(5,3)=1 olduğundan, 1-5 arası tüm tam sayılar elde edilebilir.

Sezgisel (Heuristic) Fonksiyonlar

Manhattan Distance Varyasyonu:

h(n) = min(|jug1 - target|, |jug2 - target|)

Her iki sürahinin hedefe olan uzaklığından minimum olanı seçilir.

A* Algoritması:

f(n) = g(n) + h(n)

g(n) = Başlangıçtan n'e kadar yapılan adım sayısı

h(n) = n'den hedefe tahmini maliyet (heuristic)

Greedy Best-First:

f(n) = h(n)

Sadece heuristic değeri kullanılır, hedefe en yakın görünen durumu seçer.

Admissibility (Kabul Edilebilirlik):

Bu heuristic admissible'dır çünkü gerçek maliyeti asla aşmaz: h(n) ≤ h*(n)

En az kaç işlem gerektiğini gösterir, bu nedenle A* optimal çözümü garanti eder.