Αυτό το παιχνίδι είναι σχεδόν ίδιο με το προηγούμενο. Διαφορές Οι κυνηγοί δεν γνωρίζουν τη θέση του φυγάδα (αόρατος φυγάδας). Ο φυγάδας γνωρίζει τις θέσεις των κυνηγών. Ο φυγάδας έχει πολύ μεγαλύτερη ταχύτητα από τους κυνηγούς. Εφαρμογή του παιχνιδιού: έρευνα μέσα σε ένα κτίριο. Pursuit Evasion με αόρατο φυγάδα
Όπως και στα προηγούμενα, με διακριτοποίηση καταλήγουμε σε καταδίωξη επί ενός γράφου.
Καταδίωξη / διαφυγή Αόρατου Φυγάδα επί ενός γράφου
Το πρόβλημα του αόρατου φυγάδα είναι υπολογιστικά πολύ πιο δύσκολο από αυτό του ορατού φυγάδα. Διάφορες λύσεις, όλες ευρετικές. Δεν υπάρχει minmax διατύπωση ανάλογη με του ορατού φυγάδα (γιατί δεν εφαρμόζεται η λύση του ορατού φυγάδα?) Βασική ιδέα: Σαρώνουμε το κτίριο, καθαρίζουμε τα δωμάτια, φροντίζουμε ώστε κανένα καθαρό δωμάτιο να μην ξαναμολυνθεί. Βασική ιδέα: Η κατάσταση (state) της καταδίωξης και η συνάρτηση εξέλιξης κατάστασης (state evolution function).
H Κατάσταση της Καταδίωξης Που βρίσκεται ο κάθε κυνηγός Που μπορεί να βρίσκεται ο φυγάδας (dirty set) Διάνυσμα κατάστασης (x t,D t ) Συνάρτηση εξέλιξης κατάστασης: (x t,D t )=F(x t-1,D t-1,u t ) Το Κόστος της Κατάστασης της Καταδίωξης J(x t,D t )=|D t |
Algorithm PEI (Pursue / Evasion Invisible) Input: Graph (V,E); Starting node n ₀ For t=1:Tmax For n=1:N Path(n)=[ ] DirtySet(n)=V Cost(n)=|DirtySet(n)| Next n Path(n ₀ )=[n ₀ ] DirtySet(n ₀ )=V-N(n ₀ ) Cost(n ₀ )=|DirtySet(n ₀ )| [Path, DirtySet, Cost]=SearchUpdate(Path, DirtySet, Cost) Next t Output: PathBest
Func[Path,DSet,Cost]=SearchUpdate(Path,DSet, Cost) For n=1:N For m=1:N If m is neighbor of n PathBest=Path(m) DirtyBest=DirtySet(m) CostBest=Cost(m) PathNew=[Path(n) m] DirtyNew=State(n,DirtySet(n),m) CostNew=|DirtyNew| If CostNew<CostBest PathBest=PathNew DirtyBest=DirtyNew CostBest=CostNew EndIf Path(m)=PathBest DirtySet(m)=DirtyBest Cost(m)=CostBest EndIf Next m Next n
PEI Computer Demo 1
PEI Computer Demo 2
PEI Computer Demo 3