Aby potwierdzić twierdzenie zawarte w pytaniu, pozwól nam udowodnić, że spójność oznacza dopuszczalność, podczas gdy odwrotnie nie jest to prawda. To uczyniłoby spójność silniejszym warunkiem niż ten drugi.
Spójność oznacza dopuszczalność:
Zacznę od podkreślenia, że jeśli funkcja heurystyczna jest dopuszczalna (gdzie jest celem), ponieważ zakłada się, że koszty brzegowe są nieujemne, a zatem optymalny koszt z jednego węzła do siebie koniecznie wynosi 0 Jest tak z pewnością w przypadku, gdy funkcja heurystyczna jest dopuszczalna, ale chcemy udowodnić, że spójność koniecznie oznacza dopuszczalność . W tym celu przyjmijmy dalej, że dla dowolnego celu --- i fakt ten zostanie wykorzystany w poniższym przypadku podstawowym.h(t)=0hth(t)=0
Dowód przechodzi przez indukcję:
Przypadek podstawowy : weź dowolnego poprzednika węzła celu . Niech oznacza to, aby było następcą . Jeśli funkcja heurystyczna jest spójna , to i stąd zachowuje się w tym przypadku dopuszczalnie .tntnh(n)≤c(n,t)+h(t)=c(n,t)+0=c(n,t)h
Zauważ, że przypadek podstawowy nie zakłada, że krawędź jest koniecznie optymalnym rozwiązaniem od do i rzeczywiście może istnieć inna ścieżka od do przy niższym koszcie. Ważnością przypadku podstawowego jest to, że dla wszystkich przodków węzła ! Ten wynik zostanie ponownie wykorzystany na etapie indukcji.⟨n,t⟩ntnth(n)≤c(n,t)t
Etap indukcyjny : rozważ węzeł . Optymalny koszt osiągnięcia celu od , , jest obliczany jako: , gdzie jest zbiorem następców węzła . Ponieważ hipoteza zakłada spójność , wówczas . Ponadto, ponieważ jest przyjmowany przez etap indukcji, to i jest to prawdą dla wszystkie następcy węzła . Innymi słowy:ntnh∗(n)minm∈SCS(n){c(n,m)+h∗(m)}SCS(n)nh(n)≤c(n,n′)+h(n′)h(n′)≤h∗(n′)h(n)≤c(n,n′)+h∗(n′)n′nh(n)≤minm∈SCS(n){c(n,m)+h∗(m)}=h∗(n) , więc .h(n)≤h∗(n)
Dopuszczalność niekoniecznie oznacza konsekwencję:
Do tego wystarczy prosty przykład. Rozważmy wykres składający się z pojedynczej ścieżki z 10 węzłami: , gdzie celem jest . Załóżmy wlog, że wszystkie koszty brzegowe są równe 1. Oczywiście , i zróbmy , i . Oczywiście funkcja heurystyczna jest dopuszczalna :⟨n0,n1,n2,...,n9⟩n9h∗(n0)=9h(n0)=8h(ni)=1,1≤i<9h(n9)=0
- h(t)=0
- h(ni)=1≤h∗(ni)=(9−i) , .∀i,1≤i<9
- Wreszcie .h(n0)=8≤h∗(n0)=9
Jednak nie jest spójne, a .h(n)h(n0)=8>c(n0,n1)+h(n1)=1+1=2
Mam nadzieję że to pomoże,