|
42 | 42 |
|
43 | 43 | _ARIES_EPSILON = Fraction(1, 10) |
44 | 44 |
|
| 45 | +_ARIES_SUPPORTED_KIND = up.model.ProblemKind({ |
| 46 | + # PROBLEM_CLASS |
| 47 | + "ACTION_BASED", |
| 48 | + "HIERARCHICAL", |
| 49 | + # "CONTINGENT", "ACTION_BASED_MULTI_AGENT", "SCHEDULING", "TAMP", |
| 50 | + # PROBLEM_TYPE |
| 51 | + # "SIMPLE_NUMERIC_PLANNING", "GENERAL_NUMERIC_PLANNING", |
| 52 | + # TIME |
| 53 | + "CONTINUOUS_TIME", |
| 54 | + "DISCRETE_TIME", |
| 55 | + "INTERMEDIATE_CONDITIONS_AND_EFFECTS", |
| 56 | + "EXTERNAL_CONDITIONS_AND_EFFECTS", |
| 57 | + "TIMED_EFFECTS", "TIMED_EFFECT", # backward compat |
| 58 | + "TIMED_GOALS", |
| 59 | + "DURATION_INEQUALITIES", |
| 60 | + # EXPRESSION_DURATION |
| 61 | + # "STATIC_FLUENTS_IN_DURATIONS", "STATIC_FLUENTS_IN_DURATION", # backward compat |
| 62 | + # "FLUENTS_IN_DURATIONS", "FLUENTS_IN_DURATION", # backward compat |
| 63 | + # NUMBERS |
| 64 | + # "CONTINUOUS_NUMBERS", |
| 65 | + # "DISCRETE_NUMBERS", |
| 66 | + # "BOUNDED_TYPES", |
| 67 | + # CONDITIONS_KIND |
| 68 | + "NEGATIVE_CONDITIONS", |
| 69 | + "DISJUNCTIVE_CONDITIONS", |
| 70 | + "EQUALITIES", "EQUALITY", # backward compat |
| 71 | + # "EXISTENTIAL_CONDITIONS", |
| 72 | + # "UNIVERSAL_CONDITIONS", |
| 73 | + # EFFECTS_KIND |
| 74 | + # "CONDITIONAL_EFFECTS", |
| 75 | + # "INCREASE_EFFECTS", |
| 76 | + # "DECREASE_EFFECTS", |
| 77 | + "STATIC_FLUENTS_IN_BOOLEAN_ASSIGNMENTS", |
| 78 | + "STATIC_FLUENTS_IN_NUMERIC_ASSIGNMENTS", |
| 79 | + "FLUENTS_IN_BOOLEAN_ASSIGNMENTS", |
| 80 | + "FLUENTS_IN_NUMERIC_ASSIGNMENTS", |
| 81 | + # TYPING |
| 82 | + "FLAT_TYPING", |
| 83 | + "HIERARCHICAL_TYPING", |
| 84 | + # FLUENTS_TYPE |
| 85 | + # "NUMERIC_FLUENTS", |
| 86 | + "OBJECT_FLUENTS", |
| 87 | + # QUALITY_METRICS |
| 88 | + "ACTIONS_COST", |
| 89 | + # "FINAL_VALUE", |
| 90 | + "MAKESPAN", |
| 91 | + "PLAN_LENGTH", |
| 92 | + # "OVERSUBSCRIPTION", |
| 93 | + # "TEMPORAL_OVERSUBSCRIPTION", |
| 94 | + # ACTIONS_COST_KIND |
| 95 | + # "STATIC_FLUENTS_IN_ACTIONS_COST", |
| 96 | + # "FLUENTS_IN_ACTIONS_COST", |
| 97 | + # SIMULATED_ENTITIES |
| 98 | + # "SIMULATED_EFFECTS", |
| 99 | + # CONSTRAINTS_KIND |
| 100 | + # "TRAJECTORY_CONSTRAINTS", |
| 101 | + # HIERARCHICAL |
| 102 | + "METHOD_PRECONDITIONS", |
| 103 | + "TASK_NETWORK_CONSTRAINTS", |
| 104 | + "INITIAL_TASK_NETWORK_VARIABLES", |
| 105 | + "TASK_ORDER_TOTAL", |
| 106 | + "TASK_ORDER_PARTIAL", |
| 107 | + # "TASK_ORDER_TEMPORAL", |
| 108 | +}) |
| 109 | + |
| 110 | +_ARIES_VAL_SUPPORTED_KIND = up.model.ProblemKind({ |
| 111 | + # PROBLEM_CLASS |
| 112 | + "ACTION_BASED", |
| 113 | + "HIERARCHICAL", |
| 114 | + # PROBLEM_TYPE |
| 115 | + "SIMPLE_NUMERIC_PLANNING", |
| 116 | + "GENERAL_NUMERIC_PLANNING", |
| 117 | + # TIME |
| 118 | + "CONTINUOUS_TIME", |
| 119 | + "DISCRETE_TIME", |
| 120 | + "INTERMEDIATE_CONDITIONS_AND_EFFECTS", |
| 121 | + "EXTERNAL_CONDITIONS_AND_EFFECTS", |
| 122 | + "TIMED_EFFECTS", "TIMED_EFFECT", # backward compat |
| 123 | + "TIMED_GOALS", |
| 124 | + "DURATION_INEQUALITIES", |
| 125 | + # EXPRESSION_DURATION |
| 126 | + "STATIC_FLUENTS_IN_DURATIONS", "STATIC_FLUENTS_IN_DURATION", # backward compat |
| 127 | + "FLUENTS_IN_DURATIONS", "FLUENTS_IN_DURATION", # backward compat |
| 128 | + # NUMBERS |
| 129 | + "CONTINUOUS_NUMBERS", |
| 130 | + "DISCRETE_NUMBERS", |
| 131 | + # "BOUNDED_TYPES", |
| 132 | + # CONDITIONS_KIND |
| 133 | + "NEGATIVE_CONDITIONS", |
| 134 | + "DISJUNCTIVE_CONDITIONS", |
| 135 | + "EQUALITIES", "EQUALITY", # backward compat |
| 136 | + "EXISTENTIAL_CONDITIONS", |
| 137 | + "UNIVERSAL_CONDITIONS", |
| 138 | + # EFFECTS_KIND |
| 139 | + "CONDITIONAL_EFFECTS", |
| 140 | + "INCREASE_EFFECTS", |
| 141 | + "DECREASE_EFFECTS", |
| 142 | + "STATIC_FLUENTS_IN_BOOLEAN_ASSIGNMENTS", |
| 143 | + "STATIC_FLUENTS_IN_NUMERIC_ASSIGNMENTS", |
| 144 | + "FLUENTS_IN_BOOLEAN_ASSIGNMENTS", |
| 145 | + "FLUENTS_IN_NUMERIC_ASSIGNMENTS", |
| 146 | + # TYPING |
| 147 | + "FLAT_TYPING", |
| 148 | + "HIERARCHICAL_TYPING", |
| 149 | + # FLUENTS_TYPE |
| 150 | + "NUMERIC_FLUENTS", |
| 151 | + "OBJECT_FLUENTS", |
| 152 | + # QUALITY_METRICS |
| 153 | + "ACTIONS_COST", |
| 154 | + "FINAL_VALUE", |
| 155 | + "MAKESPAN", |
| 156 | + "PLAN_LENGTH", |
| 157 | + "OVERSUBSCRIPTION", |
| 158 | + "TEMPORAL_OVERSUBSCRIPTION", |
| 159 | + # ACTIONS_COST_KIND |
| 160 | + "STATIC_FLUENTS_IN_ACTIONS_COST", |
| 161 | + "FLUENTS_IN_ACTIONS_COST", |
| 162 | + # SIMULATED_ENTITIES |
| 163 | + # "SIMULATED_EFFECTS", |
| 164 | + # CONSTRAINTS_KIND |
| 165 | + # "TRAJECTORY_CONSTRAINTS", |
| 166 | + # HIERARCHICAL |
| 167 | + "METHOD_PRECONDITIONS", |
| 168 | + # "TASK_NETWORK_CONSTRAINTS", |
| 169 | + # "INITIAL_TASK_NETWORK_VARIABLES", |
| 170 | + "TASK_ORDER_TOTAL", |
| 171 | + "TASK_ORDER_PARTIAL", |
| 172 | + "TASK_ORDER_TEMPORAL", |
| 173 | +}) |
| 174 | + |
45 | 175 |
|
46 | 176 | def _is_dev() -> bool: |
47 | 177 | env_str = os.getenv(_DEV_ENV_VAR, "false").lower() |
@@ -180,34 +310,7 @@ def ensures(anytime_guarantee: AnytimeGuarantee) -> bool: |
180 | 310 |
|
181 | 311 | @staticmethod |
182 | 312 | def supported_kind() -> up.model.ProblemKind: |
183 | | - supported_kind = up.model.ProblemKind() |
184 | | - supported_kind.set_problem_class("ACTION_BASED") # type: ignore |
185 | | - supported_kind.set_problem_class("HIERARCHICAL") # type: ignore |
186 | | - supported_kind.set_time("CONTINUOUS_TIME") # type: ignore |
187 | | - supported_kind.set_time("INTERMEDIATE_CONDITIONS_AND_EFFECTS") # type: ignore |
188 | | - supported_kind.set_time("EXTERNAL_CONDITIONS_AND_EFFECTS") # type: ignore |
189 | | - supported_kind.set_time("TIMED_EFFECT") # type: ignore |
190 | | - supported_kind.set_time("TIMED_GOALS") # type: ignore |
191 | | - supported_kind.set_time("DURATION_INEQUALITIES") # type: ignore |
192 | | - # supported_kind.set_numbers('DISCRETE_NUMBERS') # type: ignore |
193 | | - # supported_kind.set_numbers('CONTINUOUS_NUMBERS') # type: ignore |
194 | | - supported_kind.set_typing("FLAT_TYPING") # type: ignore |
195 | | - supported_kind.set_typing("HIERARCHICAL_TYPING") # type: ignore |
196 | | - supported_kind.set_conditions_kind("NEGATIVE_CONDITIONS") # type: ignore |
197 | | - supported_kind.set_conditions_kind("DISJUNCTIVE_CONDITIONS") # type: ignore |
198 | | - supported_kind.set_conditions_kind("EQUALITY") # type: ignore |
199 | | - # supported_kind.set_fluents_type('NUMERIC_FLUENTS') # type: ignore |
200 | | - supported_kind.set_fluents_type("OBJECT_FLUENTS") # type: ignore |
201 | | - supported_kind.set_hierarchical("METHOD_PRECONDITIONS") |
202 | | - supported_kind.set_hierarchical("TASK_NETWORK_CONSTRAINTS") |
203 | | - supported_kind.set_hierarchical("INITIAL_TASK_NETWORK_VARIABLES") |
204 | | - supported_kind.set_hierarchical("TASK_ORDER_TOTAL") |
205 | | - supported_kind.set_hierarchical("TASK_ORDER_PARTIAL") |
206 | | - # supported_kind.set_hierarchical("TASK_ORDER_TEMPORAL") |
207 | | - supported_kind.set_quality_metrics("ACTIONS_COST") |
208 | | - supported_kind.set_quality_metrics("MAKESPAN") |
209 | | - supported_kind.set_quality_metrics("PLAN_LENGTH") |
210 | | - return supported_kind |
| 313 | + return _ARIES_SUPPORTED_KIND |
211 | 314 |
|
212 | 315 | @staticmethod |
213 | 316 | def supports(problem_kind: up.model.ProblemKind) -> bool: |
@@ -237,57 +340,7 @@ def _validate( |
237 | 340 |
|
238 | 341 | @staticmethod |
239 | 342 | def supported_kind() -> up.model.ProblemKind: |
240 | | - supported_kind = up.model.ProblemKind() |
241 | | - # Problem class |
242 | | - supported_kind.set_problem_class("ACTION_BASED") # type: ignore |
243 | | - supported_kind.set_problem_class("HIERARCHICAL") # type: ignore |
244 | | - # Problem type |
245 | | - supported_kind.set_problem_type("SIMPLE_NUMERIC_PLANNING") # type: ignore |
246 | | - supported_kind.set_problem_type("GENERAL_NUMERIC_PLANNING") # type: ignore |
247 | | - # Time |
248 | | - supported_kind.set_time("CONTINUOUS_TIME") # type: ignore |
249 | | - supported_kind.set_time("DISCRETE_TIME") # type: ignore |
250 | | - supported_kind.set_time("INTERMEDIATE_CONDITIONS_AND_EFFECTS") # type: ignore |
251 | | - supported_kind.set_time("EXTERNAL_CONDITIONS_AND_EFFECTS") # type: ignore |
252 | | - supported_kind.set_time("TIMED_EFFECT") # type: ignore |
253 | | - supported_kind.set_time("TIMED_GOALS") # type: ignore |
254 | | - supported_kind.set_time("DURATION_INEQUALITIES") # type: ignore |
255 | | - # Expression duration |
256 | | - supported_kind.set_expression_duration("STATIC_FLUENTS_IN_DURATION") # type: ignore |
257 | | - supported_kind.set_expression_duration("FLUENTS_IN_DURATION") # type: ignore |
258 | | - # Numbers |
259 | | - supported_kind.set_numbers("CONTINUOUS_NUMBERS") # type: ignore |
260 | | - supported_kind.set_numbers("DISCRETE_NUMBERS") # type: ignore |
261 | | - # Conditions kind |
262 | | - supported_kind.set_conditions_kind("NEGATIVE_CONDITIONS") # type: ignore |
263 | | - supported_kind.set_conditions_kind("DISJUNCTIVE_CONDITIONS") # type: ignore |
264 | | - supported_kind.set_conditions_kind("EQUALITY") # type: ignore |
265 | | - supported_kind.set_conditions_kind("EXISTENTIAL_CONDITIONS") # type: ignore |
266 | | - supported_kind.set_conditions_kind("UNIVERSAL_CONDITIONS") # type: ignore |
267 | | - # Effects kind |
268 | | - supported_kind.set_effects_kind("CONDITIONAL_EFFECTS") |
269 | | - supported_kind.set_effects_kind("INCREASE_EFFECTS") |
270 | | - supported_kind.set_effects_kind("DECREASE_EFFECTS") |
271 | | - # Typing |
272 | | - supported_kind.set_typing("FLAT_TYPING") # type: ignore |
273 | | - supported_kind.set_typing("HIERARCHICAL_TYPING") # type: ignore |
274 | | - # Fluents type |
275 | | - supported_kind.set_fluents_type("NUMERIC_FLUENTS") # type: ignore |
276 | | - supported_kind.set_fluents_type("OBJECT_FLUENTS") # type: ignore |
277 | | - # Quality metrics |
278 | | - supported_kind.set_quality_metrics("ACTIONS_COST") |
279 | | - supported_kind.set_quality_metrics("FINAL_VALUE") |
280 | | - supported_kind.set_quality_metrics("MAKESPAN") |
281 | | - supported_kind.set_quality_metrics("PLAN_LENGTH") |
282 | | - supported_kind.set_quality_metrics("OVERSUBSCRIPTION") |
283 | | - # Hierarchical |
284 | | - supported_kind.set_hierarchical("METHOD_PRECONDITIONS") |
285 | | - # supported_kind.set_hierarchical("TASK_NETWORK_CONSTRAINTS") |
286 | | - # supported_kind.set_hierarchical("INITIAL_TASK_NETWORK_VARIABLES") |
287 | | - supported_kind.set_hierarchical("TASK_ORDER_TOTAL") |
288 | | - supported_kind.set_hierarchical("TASK_ORDER_PARTIAL") |
289 | | - supported_kind.set_hierarchical("TASK_ORDER_TEMPORAL") |
290 | | - return supported_kind |
| 343 | + return _ARIES_VAL_SUPPORTED_KIND |
291 | 344 |
|
292 | 345 | @staticmethod |
293 | 346 | def supports(problem_kind: up.model.ProblemKind) -> bool: |
|
0 commit comments