You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							65 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							65 lines
						
					
					
						
							1.8 KiB
						
					
					
				| import stormpy | |
| 
 | |
| # Check if numpy is available | |
| try: | |
|     import numpy as np | |
|     numpy_found = True | |
| except ModuleNotFoundError: | |
|     numpy_found = False | |
| 
 | |
| 
 | |
| def example_building_mas_01(): | |
|     if not numpy_found: | |
|         print("Numpy not available") | |
|         return | |
| 
 | |
|     # Building the transition matrix using numpy | |
|     transitions = np.array([ | |
|         [0, 1, 0, 0, 0], | |
|         [0.8, 0, 0.2, 0, 0], | |
|         [0.9, 0, 0, 0.1, 0], | |
|         [0, 0, 0, 0, 1], | |
|         [0, 0, 0, 1, 0], | |
|         [0, 0, 0, 0, 1] | |
|     ], dtype='float64') | |
| 
 | |
|     # Build matrix and define indices of row groups (ascending order) | |
|     transition_matrix = stormpy.build_sparse_matrix(transitions, [0, 2, 3, 4, 5]) | |
|     print(transition_matrix) | |
| 
 | |
|     # StateLabeling | |
|     state_labeling = stormpy.storage.StateLabeling(5) | |
|     # Add labels | |
|     state_labels = {'init', 'deadlock'} | |
|     # Set labeling of states | |
|     for label in state_labels: | |
|         state_labeling.add_label(label) | |
|     state_labeling.add_label_to_state('init', 0) | |
| 
 | |
|     # Choice labeling | |
|     choice_labeling = stormpy.storage.ChoiceLabeling(6) | |
|     # Add labels | |
|     choice_labels = {'alpha', 'beta'} | |
|     # Set labeling of choices | |
|     for label in choice_labels: | |
|         choice_labeling.add_label(label) | |
|     choice_labeling.add_label_to_choice('alpha', 0) | |
|     choice_labeling.add_label_to_choice('beta', 1) | |
| 
 | |
|     exit_rates = [0.0, 10.0, 12.0, 1.0, 1.0] | |
| 
 | |
|     markovian_states = stormpy.BitVector(5, [1, 2, 3, 4]) | |
| 
 | |
|     # Collect components | |
|     components = stormpy.SparseModelComponents(transition_matrix=transition_matrix, state_labeling=state_labeling, | |
|                                                markovian_states=markovian_states) | |
|     components.choice_labeling = choice_labeling | |
|     components.exit_rates = exit_rates | |
| 
 | |
|     # Build the model | |
|     ma = stormpy.storage.SparseMA(components) | |
|     print(ma) | |
| 
 | |
| 
 | |
| if __name__ == '__main__': | |
|     example_building_mas_01()
 |