1#ifndef PROBFD_TASK_UTILS_TASK_PROPERTIES_H
2#define PROBFD_TASK_UTILS_TASK_PROPERTIES_H
4#include "probfd/task_proxy.h"
6#include "probfd/value_type.h"
8#include "downward/operator_cost.h"
9#include "downward/task_proxy.h"
19class ProbabilisticTask;
26namespace probfd::task_properties {
35void get_affected_vars(
36 const ProbabilisticOperatorProxy& op,
37 std::output_iterator<int>
auto it)
39 for (
const ProbabilisticOutcomeProxy& outcome : op.get_outcomes()) {
40 for (
const auto& effect : outcome.get_effects()) {
41 *it = effect.get_fact().get_variable().get_id();
50is_applicable(
const ProbabilisticOperatorProxy& op,
const State& state);
52extern value_t get_adjusted_action_cost(
53 const ProbabilisticOperatorProxy& op,
54 OperatorCost cost_type,
62extern bool is_unit_cost(
const ProbabilisticTaskProxy& task);
69extern bool has_conditional_effects(
const ProbabilisticTaskProxy& task);
76extern void verify_no_conditional_effects(
const ProbabilisticTaskProxy& task);
84extern std::vector<value_t>
85get_operator_costs(
const ProbabilisticTaskProxy& task_proxy);
93get_average_operator_cost(
const ProbabilisticTaskProxy& task_proxy);
100extern value_t get_min_operator_cost(
const ProbabilisticTaskProxy& task_proxy);
109extern int get_num_total_effects(
const ProbabilisticTaskProxy& task_proxy);
114extern void dump_probabilistic_task(
115 const ProbabilisticTaskProxy& task_proxy,
116 utils::LogProxy& log);
121extern void dump_probabilistic_task(
122 const ProbabilisticTaskProxy& task_proxy,
The top-level namespace of probabilistic Fast Downward.
Definition command_line.h:8
double value_t
Typedef for the state value type.
Definition aliases.h:7