mqt.problemsolver.satellite_solver.utils¶
Module Contents¶
- init_random_location_requests(n: int, rng: Generator | None = None) list[LocationRequest][source]¶
Returns list of n random acquisition requests.
- get_success_ratio(ac_reqs: list[LocationRequest], qubo: numpy.typing.NDArray[numpy.float64], solution_vector: list[int]) float[source]¶
- create_acquisition_position(longitude: float | None = None, latitude: float | None = None, rng: Generator | None = None) numpy.typing.NDArray[numpy.float64][source]¶
- calc_needed_time_between_acquisition_attempts(first_acq: LocationRequest, second_acq: LocationRequest) numpy.typing.NDArray[numpy.float64][source]¶
- transition_possible(acq_1: LocationRequest, acq_2: LocationRequest) bool[source]¶
Returns True if transition between acq_1 and acq_2 is possible, False otherwise.
- sort_acquisition_requests(acqs: list[LocationRequest]) list[LocationRequest][source]¶
- plot_acquisition_requests(acqs: list[LocationRequest]) None[source]¶
- check_solution(ac_reqs: list[LocationRequest], solution_vector: list[int]) bool[source]¶
Checks if the determined solution is valid and does not violate any constraints.
- create_satellite_qubo(all_acqs: list[LocationRequest], penalty: int = 8) numpy.typing.NDArray[numpy.float64][source]¶
Creates a QUBO matrix directly for the satellite location request problem.
- Parameters:
all_acqs – List of all acquisition requests.
penalty – Penalty for conflicting requests. Defaults to 8.
- Returns:
A QUBO object representing the problem.
- cost_op_from_qubo(q: numpy.typing.NDArray[numpy.float64]) tuple[SparsePauliOp, float][source]¶
Convert a QUBO matrix to an Ising Hamiltonian.
- Parameters:
q – QUBO matrix (symmetric, square numpy array).
- Returns:
A tuple (qubit_op, offset) representing the Ising Hamiltonian and constant offset.