Solving the Longest Simple Path Problem with Heuristic Search YOSSI COHEN P R O F . A R I E L F E L N E R , D R . R O N I S T E R N 1
LSP - Definition s # # ↓ → → ↓ # # → → → ↓ ↓ ↑ # # → → ↓ ↑ ↓ ← # # ↓ ↑ ← ← # → ↑ # → ↓ # # → → → ↑ # # ↓ ← ↓ # # # # # ↓ ← # ↓ ↑ ← # ↓ ← ← ← ↑ ← ↓ ← # # # # # # ↓ # # # ↑ ← # # # → → ↓ → → ↓ → ↓ # # # ↓ ↑ ← → ↑ ↓ → ↓ # # t # → → ↑ # → ↑ t Find the longest simple path from Start to Target ( 𝑡 → 𝑢 ). NP Hard problem - even hard to estimate by a constant factor Background 2
Motivation Real world application: VLSI design (integrated circuit design) Gray code - error correction Robot patrolling Background 3
Maximum vs. Minimum Unlike many problems that are solved by finding a solution with minimal cost , LSP solution requires maximal reward . Simple Path from 1 to 2 MIN vs MAX Shortest Path Longest Simple Path (LPP) Background 4
MIN vs. MAX What ’ s the problem? Lets just use Best First Search! [s:0] [a:1, b:2 ] [a:1, g:3 ] s 1 2 a b 3 1 g Background 5
Search Space is Bigger Both nodes are same place - but they not the same valid operators: [S,W] [N,S] s s t t Moreover one is part of MAX solution and the other is not. We must keep the entire path in every search node. Due to this the search space is much bigger. Background 6
A* and DFBnB Adaptations f(·) = g(·) + h(·) A* MAX problems: the first state in the open list is the maximal state. (denote max f ) Stops when open-list is empty or when: max f ≤ BestGoalFound DFBnB If F < best candidate – prune Better heuristics are heuristics that tightly upper bounds the remaining path Background 7
Heuristics Shortest path heuristics just won't work here Heuristics 8
Existing heuristics Reachable Biconnected components Cut point Block s s t f t s t Heuristics 9
Alternate Steps Works on bipartite graph. 4 connected grid for instance. S # S # S # # # # # # # T T T Count the groups separately, | Δ | ≤ 1 Heuristics 10
BCC + Separate Alternate Steps Run Alternate step (Alt.) on each block of the BCT separately. S # # # # # # # T h(BCC alt.) = 33 h(BCC s. alt.) = 31 Heuristics 11
Pruning How to prune nodes during the search and still guarantee to find the longest simple path? Pruning 12
Search Tree Example s s s t t s t s s t t s s t s t t s t t Pruning 13
Search Tree Example s s When using heuristic search to solve LSP s t t A* traverse over many similar states s t s s s s t t f f s s t t t s t t s t t Pruning 14
Basic Symmetry Detection Same frontier location & same path coverage s s f f On open list: Generated node: t t How to efficiently compare states? Pruning 15
Reachable Dominance Detection Same frontier & contained (subset or equal) reachable coverage s s f f On open list: Generated node: t t Can prune retroactively! How to efficiently compare states? Pruning 16
Reachable Dominance Detection Pruning Conditions: 1. N.head = N ‘ .head 2. |N.π|≥ |N ‘.π| 3.N ‘ .R ⊆ N.R s s f t f t N N ‘ Pruning 17
Experimental Results Experimental Results 18
Experimental Results Grid maps with random blocked cells - 360 maps with variety of blocked percentile 10Minutes, solved by all permutations 19
Experimental Results Grid maps with rooms - 400 maps with variety of number of rooms, room size and blocked percentile 10Minutes, solved by all permutations A* DFBnB Runtime (BCC Based only) 20
Experimental Results Success rate – Bigger grids and non-uniform reward 1Hr. Uniform reward Life Grid (non-uniform) 21
Conclusion Contributions Novel heuristic for the longest simple path problem Several state space pruning techniques Results All proposed pruning techniques reduce # searched nodes. Pruning effectiveness: None ≤ BSD ≤ RDP Heuristic effectiveness: R ≤ R+ALT ≤ BCC ≤ BCC+ALT ≤ BCC+Sep. ALT Challenge for Future Work BSD has the fastest runtime and RDD has the strongest pruning ability Challenge: How to get RDD faster? 22
Thanks! https://github.com/YossiCohen/Heuristic-Search-Max 23
Recommend
More recommend