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.
 
 
 
 
 
 

32 lines
1.2 KiB

import stormpy
import stormpy.core
import stormpy.examples
import stormpy.examples.files
def example_reward_models_01():
program = stormpy.parse_prism_program(stormpy.examples.files.prism_dtmc_die)
prop = "R=? [F \"done\"]"
properties = stormpy.parse_properties_for_prism_program(prop, program, None)
model = stormpy.build_model(program, properties)
assert len(model.reward_models) == 1
initial_state = model.initial_states[0]
result = stormpy.model_checking(model, properties[0])
print("Result: {}".format(round(result.at(initial_state), 6)))
reward_model_name = list(model.reward_models.keys())[0]
print(reward_model_name)
assert reward_model_name == "coin_flips"
assert not model.reward_models[reward_model_name].has_state_rewards
assert model.reward_models[reward_model_name].has_state_action_rewards
for reward in model.reward_models[reward_model_name].state_action_rewards:
print(reward)
assert not model.reward_models[reward_model_name].has_transition_rewards
model = stormpy.build_parametric_model_from_drn(stormpy.examples.files.drn_pdtmc_die)
assert len(model.reward_models) == 1
assert reward_model_name == "coin_flips"
if __name__ == '__main__':
example_reward_models_01()