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]
sample_most_likely(state_vector: dict[str, int]) list[int][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.

solve_classically(qubo: numpy.typing.NDArray[numpy.float64]) float[source]

Solve the Hamiltonian problem classically using eigenvalue decomposition.

Parameters:

qubo – The Hamiltonian matrix derived from the QUBO.

Returns:

The minimum eigenvalue of the Hamiltonian matrix.

get_longitude(vector: numpy.typing.NDArray[numpy.float64]) float[source]