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.
		
		
		
		
		
			
		
			
				
					
					
						
							38 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							38 lines
						
					
					
						
							1.2 KiB
						
					
					
				
								import stormpy
							 | 
						|
								import stormpy.core
							 | 
						|
								
							 | 
						|
								import stormpy.examples
							 | 
						|
								import stormpy.examples.files
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								def example_exploration_02():
							 | 
						|
								    """
							 | 
						|
								    Example to exploration of POMDPs.
							 | 
						|
								    :return:
							 | 
						|
								    """
							 | 
						|
								    program = stormpy.parse_prism_program(stormpy.examples.files.prism_pomdp_maze)
							 | 
						|
								    prop = "R=? [F \"goal\"]"
							 | 
						|
								    properties = stormpy.parse_properties(prop, program)
							 | 
						|
								    model = stormpy.build_model(program, properties)
							 | 
						|
								    print(model.model_type)
							 | 
						|
								    # Internally, POMDPs are just MDPs with additional observation information.
							 | 
						|
								    # Thus, data structure exploration for MDPs can be applied as before.
							 | 
						|
								    initial_state = model.initial_states[0]
							 | 
						|
								
							 | 
						|
								    for state in model.states:
							 | 
						|
								        if state.id in model.initial_states:
							 | 
						|
								            print(state)
							 | 
						|
								        for action in state.actions:
							 | 
						|
								            for transition in action.transitions:
							 | 
						|
								                print("From state {} by action {}, with probability {}, go to state {}".format(state, action, transition.value(),
							 | 
						|
								                                                                                  transition.column))
							 | 
						|
								
							 | 
						|
								    print(model.nr_observations)
							 | 
						|
								
							 | 
						|
								    for state in model.states:
							 | 
						|
								        print("State {} has observation id {}".format(state.id, model.observations[state.id]))
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								if __name__ == '__main__':
							 | 
						|
								    example_exploration_02()
							 |