Draft:Iterative Budgeted Exponential Search
![]() | Review waiting, please be patient.
This may take 3 months or more, since drafts are reviewed in no specific order. There are 2,676 pending submissions waiting for review.
Where to get help
How to improve a draft
You can also browse Wikipedia:Featured articles and Wikipedia:Good articles to find examples of Wikipedia's best writing on topics similar to your proposed article. Improving your odds of a speedy review To improve your odds of a faster review, tag your draft with relevant WikiProject tags using the button below. This will let reviewers know a new draft has been submitted in their area of interest. For instance, if you wrote about a female astronomer, you would want to add the Biography, Astronomy, and Women scientists tags. Editor resources
Reviewer tools
|
Class | Search algorithm |
---|---|
Data structure | Tree, Graph |
Worst-case performance | , where is the optimal solution cost |
Worst-case space complexity |
Iterative Budgeted Exponential Search (IBEX)[1] is a framework for heuristic search algorithms that addresses two long-standing efficiency problems in artificial intelligence search: re-expansions in graph search with inconsistent heuristics and inefficient tree search with linear memory requirements. IBEX combines principles from exponential search with controlled node expansion budgets to achieve near-linear performance in scenarios where traditional algorithms like A* and IDA* can have quadratic or worse performance.
Background
[edit]Traditional heuristic search algorithms — A* for graph search and IDA* (Iterative Deepening A*) for tree search — face specific efficiency challenges:
- Graph search with inconsistent heuristics: While A* with consistent heuristics is optimally efficient, it may perform exponentially more state expansions () with inconsistent heuristics compared to more cautious algorithms.
- Tree search with linear memory: IDA* uses iterative deepening with f-cost bounds to achieve linear memory usage, but in worst-case scenarios where only one new node is added per iteration, it may require node expansions, resulting in quadratic overhead.
IBEX mitigates these issues by managing node expansions with controlled budgets and carefully increasing cost limits, thus achieving near-linear expansions relative to the number of nodes within the optimal cost bound.
Core Concepts
[edit]IBEX introduces two key ideas to improve heuristic search efficiency:
- Expansion budgeting: IBEX limits the number of node expansions in each search iteration to control computational resources.
- Exponential search for f-cost limits: It uses a variant of exponential search to efficiently find appropriate f-cost limits that allow exhaustive search within the given expansion budget.
This combination allows IBEX to prove either that no solution exists within the current budget (prompting a budget increase) or that it has found an optimal solution. The framework increases the budget exponentially between iterations, ensuring that the final budget is at most twice the minimum required budget while amortizing the work done in earlier iterations.
Algorithm
[edit]The following pseudocode describes the core IBEX framework:
IBEX Framework Pseudocode
[edit]function IBEX(initialState, goalTest, heuristic, successors, initialBudget, growthFactor)
// Initialize parameters
budget ← initialBudget
minF ← heuristic(initialState)
maxF ← minF
solution ← null
while solution = null do
// Phase 1: IDA*-like search with current bound
result ← SearchWithinBound(initialState, goalTest, heuristic, successors, minF, budget)
if result.type = "SOLUTION_FOUND" then
solution ← result.solution
break
if result.type = "BUDGET_EXHAUSTED" then
// Phase 2: Exponential search to find appropriate cost limit
lowerF ← minF
upperF ← maxF
// Double the f-cost limit until we exceed budget
while true do
maxF ← max(maxF * 2, lowerF + 1)
result ← SearchWithinBound(initialState, goalTest, heuristic, successors, maxF, budget)
if result.type = "SOLUTION_FOUND" then
solution ← result.solution
break
if result.type = "COMPLETE" then
// Search was complete under maxF, but no solution found
return "NO_SOLUTION"
if result.type = "BUDGET_EXHAUSTED" then
upperF ← maxF
break
if solution ≠ null then
break
// Phase 3: Binary search to find precise cost limit
while upperF - lowerF > 1 do
midF ← (lowerF + upperF) / 2
result ← SearchWithinBound(initialState, goalTest, heuristic, successors, midF, budget)
if result.type = "SOLUTION_FOUND" then
solution ← result.solution
break
if result.type = "COMPLETE" then
lowerF ← midF
else // BUDGET_EXHAUSTED
upperF ← midF
if solution ≠ null then
break
// Increase budget for next iteration
minF ← result.nextF
budget ← budget * growthFactor
return solution
function SearchWithinBound(initialState, goalTest, heuristic, successors, fLimit, budget)
// Initialize search structures
expansions ← 0
openList ← PriorityQueue()
openList.insert(initialState, heuristic(initialState))
nextF ← ∞ // Will track minimum f-value exceeding fLimit
while not openList.isEmpty() and expansions < budget do
node ← openList.pop()
if goalTest(node) then
return {type: "SOLUTION_FOUND", solution: extractPath(node)}
expansions ← expansions + 1
for each child in successors(node) do
childF ← g(child) + heuristic(child)
if childF <= fLimit then
openList.insert(child, childF)
else
nextF ← min(nextF, childF)
if openList.isEmpty() then
return {type: "COMPLETE"}
else
return {type: "BUDGET_EXHAUSTED", nextF: nextF}
Algorithm Details
[edit]IBEX operates by controlling two parameters iteratively:
- Expansion Budget: Limits the number of node expansions per iteration.
- Solution Cost Limit: Limits the maximum allowable path cost explored during search iterations.
The IBEX algorithm comprises three key phases:
Initial IDA*-like Phase
[edit]The initial phase performs iterations similarly to IDA*, incrementing the f-cost minimally. If node expansions exceed a predefined growth threshold, IBEX continues directly into the next iteration, ensuring minimal overhead in exponentially growing domains.
Exponential Search Phase
[edit]If the tree growth is sub-exponential, IBEX initiates an exponential search phase. In this phase, the algorithm exponentially increases the cost limit until reaching the node expansion budget, ensuring the growth rate is bounded within a specified exponential factor.
Binary Search Phase
[edit]After the exponential search phase, if no suitable cost limit is found, IBEX performs a binary search to precisely identify a cost limit within the node expansion budget.
Variants and Enhancements
[edit]Two primary variants of IBEX have been developed:[1]
- Budgeted Tree Search (BTS): Optimized for tree search scenarios, significantly reducing the re-expansion overhead typical of IDA*.
- Budgeted Graph Search (BGS): A graph search variant, addressing inefficiencies caused by inconsistent heuristics in traditional graph search algorithms like A*.
Enhancements to IBEX include:
- Early stopping conditions to skip unnecessary iterations.
- Additive exponential increments to efficiently handle linearly scaling search spaces.
Time Complexity
[edit]IBEX provides significant theoretical improvements over previous algorithms:
- Worst-case expansions are bounded by expansions, where is the optimal solution cost and is the granularity of action costs.[2]
- Near-linear expansion guarantees, significantly improving upon quadratic complexities of classical algorithms.
Applications
[edit]IBEX has demonstrated superior performance in practical applications, including:
- Puzzle-solving (e.g., sliding-tile puzzles such as the 15-Puzzle).
- Optimal planning and pathfinding tasks with varying edge costs.
- Graph search problems with inconsistent heuristics.
See also
[edit]- A* search algorithm
- Iterative deepening A*
- Iterative deepening depth-first search
- Exponential search
- Heuristic (computer science)
- Pathfinding
- Binary search algorithm
References
[edit]- ^ a b Helmert, Malte; Lattimore, Tor; Lelis, Levi H. S.; Orseau, Laurent; Sturtevant, Nathan R. (2019-07-30), Iterative Budgeted Exponential Search, arXiv:1907.13062, retrieved 2025-04-13
- ^ Sturtevant, Nathan; Helmert, Malte (2020). "A Guide to Budgeted Tree Search". Proceedings of the International Symposium on Combinatorial Search. 11 (1): 75–81. doi:10.1609/socs.v11i1.18537. ISSN 2832-9163.