mqt.ionshuttler.linear.validation

Checks for actions and groups of transports in a Linear schedule.

Module Contents

is_adjacent(pos_a: int, pos_b: int) → bool[source]

Return whether two Linear site indices are adjacent.

is_action_valid(state: State, action: Action, architecture: Architecture) → bool[source]

Return whether an action can start in the current state.

This asks the action to check its own requirements. Use is_transport_layer_valid() when several transports start together.

is_transport_layer_valid(state: State, actions: tuple[TransportAction, ...], architecture: Architecture) → bool[source]

Return whether several transports can safely happen together.

An ion may enter a site that another ion leaves in the same group, provided every ion ends at a different valid site.