ml4cps.automata.base module¶
The module provides a class Automaton which inherits CPSComponent and implements the dynamics of different kinds of automata.
Authors: - Nemanja Hranisavljevic, hranisan@hsu-hh.de, nemanja@ai4cps.com - Tom Westermann, tom.westermann@hsu-hh.de, tom@ai4cps.com
- class ml4cps.automata.base.Automaton(states: list = None, transitions: list = None, unknown_state: str = 'raise', id='', initial_q=(), final_q=(), super_states=(), decision_states=(), **kwargs)¶
- Bases: - CPSComponent- Automaton class is the main class for modeling various kinds of hybrid systems. - property Sigma¶
 - accepts(string, return_states=False)¶
 - add_final_state(states)¶
- Add final state(s) of the automaton.
- param states:
- States to add. 
 
 
 - add_initial_state(states)¶
- Add initial state(s) of the automaton.
- param states:
- States to add. 
 
 
 - add_single_transition(s, d, e, timing=None)¶
 - add_state(new_state, **kwargs)¶
- Add state to the automaton.
- param new_state:
- State to be added. 
 
 
 - add_state_data(s: str, d: object)¶
- Add state data to a state s the automaton.
- param s:
- state 
- param d:
- data to be added to s 
- return:
 
 
 - add_states_from(new_state, **kwargs)¶
- Add multiple states to the automaton.
- param new_state:
- States to be added. 
 
 
 - add_transition(s, d, e, **other)¶
- Add multiple transition.
- param list_of_tuples:
- List of transitions in the form (source_state, destination_state, event, …<unused>…). 
 
 
 - add_transitions_from(list_of_tuples, **other)¶
- Add multiple transition.
- param list_of_tuples:
- List of transitions in the form (source_state, destination_state, event, …<unused>…). 
 
 
 - determinize(s, state_index, verbose=False)¶
 - discrete_event_dynamics(q, xt, xk, p) tuple¶
 - property discrete_state¶
 - property discrete_states¶
 - flow(q, p, x, u)¶
- Flow equation gives derivative of the continuous variables.
- param q:
- Current discrete state of the model. 
- param p:
- Stochastic parameters generated on entry to state current_q. 
- param x:
- Current continuous state of the model. 
- param u:
- Calculated internal i signals. 
- return:
- Derivative of the continuous state x. 
 
 
 - generate(number_of_sequences=1, return_states=False, prob_to_accept=0.5)¶
 - get_alternatives(state, system_state)¶
 - get_num_in(q)¶
- Returns the number of in transitions of state q in the automaton. :return: number of transitions. 
 - get_num_out(q)¶
- Returns the number of out transitions of state q in the automaton. :return: number of transitions. 
 - get_transition(s, d=None, e=None, if_more_than_one='raise')¶
- Get all transitions with source state s, destination state __d. In case when e is provided, the returned list contains transitions where event is e. :param if_more_than_one: :param s: Source state. :param d: Destination state. :param e: Event. :return: 
 - get_transitions()¶
 - guards(q, x)¶
 - in_transitions(s, event=None)¶
- Get all incoming transitions of state s.
- param s:
- return:
 
 
 - inv(t, q, x, y, z, p)¶
- Invariants.
- param t:
- param q:
- param x:
- param y:
- param z:
- param p:
 
 
 - is_decision(state, overall_state)¶
 - is_deterministic()¶
 - is_state(q)¶
 - is_transition(s, d, e)¶
- Check if a transition (s,d,e) exists in the automaton.
- param s:
- Source. 
- param d:
- Destination. 
- param e:
- Event. 
- return:
 
 
 - learn_transition_probabilities()¶
 - merge(q1, q2)¶
- If two states are compatible, they are merged with the function merge. The transitions of the automaton, the in- and outdegree of the states and the number of transitions happening are adjusted. 
 - property num_events¶
 - property num_modes¶
- Returns the number of modes in the automaton. :return: number of states. 
 - num_occur(tr)¶
 - num_timings()¶
 - property num_transitions¶
- Returns the number of transitions in the automaton. :return: number of transitions. 
 - out_transitions(s, event=None)¶
- Get all outgoing transitions of state s.
- param event:
- param s:
- return:
 
 
 - predict_state(data_collection, time_col_name=None, discr_col_names=None)¶
 - print_state(v)¶
- Prints outgoing transitions of a state v. - Parameters:
- v (state) 
- Returns:
- Description of the outgoing transitions of the state. 
- Return type:
- String 
 
 - read_event(t, e, clear_p=False, keep_p=None, **kwargs)¶
 - remove_rare_transitions(min_p=0, min_num=0, keep_from_initial=False, keep_states=False, keep=None)¶
 - remove_state(s)¶
 - remove_transition(source, dest)¶
- Remove the transition(s) from source to dest. :param source: :param dest: :return: 
 - rename_events(prefix='e_')¶
- Rename events to become e_0, e_1… The old id is stored in the field ‘old_symbol’ of the state data. 
 - sample_initial()¶
 - property state¶
- Automata discrete state is uni-variate. :return: 
 - state_is_deterministic(q)¶
 - step(q, x0, t, u)¶
- Simulates one time step of continuous behavior from t to t+dt. Underlying function is solve_ivp with method is ‘RK23’.
- param x0:
- Initial state vector. 
- param t:
- Time at start of the step simulation. 
- param u:
- Arguments passed….. 
- return:
- Time t+dt, value of state at t+dt 
 
 
 - timed_event(q, xc, xd)¶
- Calculates if and when the next time event will happen and the new state values. :param t: Current time. :param q: Discrete-event part of the state. :param xc: Time-continuous part of the state. :param xd: Time-discrete part of the state. :return: Time delay of the timed event, new state value. 
 - property transitions¶
 - try_merge_states(state1, state2, try_fun=None)¶
- Merge state2 into state1 and update transitions. 
 - update_timing_boundaries(source, destination, event, newTiming)¶