Dialectic Search
The Dialectic Search Solver uses a path search between two states representing the thesis and antithesis. A greedy search is used to reduce the energy by applying bit flips in an attempt to find the solution.
The Dialectic Search algorithm operates through two distinct phases:
- Antithesis: Generates a complementary solution designed to explore different regions of the solution space
- Synthesis: Creates new solutions by exploring paths between thesis and antithesis
Each phase uses tabu search with potentially different parameter settings to guide the exploration process. This approach is particularly effective for problems with complex landscapes containing many local optima.
Compatible Backends
| Backend | Default |
|---|---|
| DWave |
Initialization
Python
from luna_quantum.solve.parameters.algorithms.base_params.decomposer import Decomposer
from luna_quantum.solve.parameters.algorithms.base_params.tabu_search_params import TabuSearchBaseParams
from luna_quantum.solve.parameters.algorithms.search_algorithms.dialectic_search import DialecticSearch
algorithm = DialecticSearch(
backend=None,
antithesis_tabu_params=TabuSearchBaseParams(
num_reads=None,
tenure=None,
timeout=100
),
synthesis_tabu_params=TabuSearchBaseParams(
num_reads=None,
tenure=None,
timeout=100
),
decomposer=Decomposer(
size=10,
min_gain=None,
rolling=True,
rolling_history=1.0,
silent_rewind=True,
traversal='energy'
),
max_iter=100,
max_time=5,
convergence=3,
target=None,
rtol=1e-05,
atol=1e-08,
max_tries=100
)