@@ -124,6 +124,9 @@ pub struct EffectExpression {
124124 /// features: CONDITIONAL_EFFECT
125125 #[ prost( message, optional, tag = "4" ) ]
126126 pub condition : :: core:: option:: Option < Expression > ,
127+ /// The variables that quantify this effect
128+ #[ prost( message, repeated, tag = "5" ) ]
129+ pub forall : :: prost:: alloc:: vec:: Vec < Expression > ,
127130}
128131/// Nested message and enum types in `EffectExpression`.
129132pub mod effect_expression {
@@ -452,6 +455,57 @@ pub struct Hierarchy {
452455 #[ prost( message, optional, tag = "3" ) ]
453456 pub initial_task_network : :: core:: option:: Option < TaskNetwork > ,
454457}
458+ /// Activity in a scheduling problem.
459+ #[ allow( clippy:: derive_partial_eq_without_eq) ]
460+ #[ derive( Clone , PartialEq , :: prost:: Message ) ]
461+ pub struct Activity {
462+ /// Name of the activity that must uniquely identify it.
463+ #[ prost( string, tag = "1" ) ]
464+ pub name : :: prost:: alloc:: string:: String ,
465+ /// Typed and named parameters of the activity.
466+ #[ prost( message, repeated, tag = "2" ) ]
467+ pub parameters : :: prost:: alloc:: vec:: Vec < Parameter > ,
468+ /// Duration of the activity
469+ #[ prost( message, optional, tag = "3" ) ]
470+ pub duration : :: core:: option:: Option < Duration > ,
471+ /// Conjunction of conditions that must hold if the activity is present.
472+ #[ prost( message, repeated, tag = "4" ) ]
473+ pub conditions : :: prost:: alloc:: vec:: Vec < Condition > ,
474+ /// Conjunction of effects that this activity produces.
475+ #[ prost( message, repeated, tag = "5" ) ]
476+ pub effects : :: prost:: alloc:: vec:: Vec < Effect > ,
477+ /// Conjunction of static constraints that must hold if the activity is present.
478+ #[ prost( message, repeated, tag = "6" ) ]
479+ pub constraints : :: prost:: alloc:: vec:: Vec < Expression > ,
480+ }
481+ /// Extension of `Problem` for scheduling
482+ #[ allow( clippy:: derive_partial_eq_without_eq) ]
483+ #[ derive( Clone , PartialEq , :: prost:: Message ) ]
484+ pub struct SchedulingExtension {
485+ /// All potential activities of the scheduling problem.
486+ #[ prost( message, repeated, tag = "1" ) ]
487+ pub activities : :: prost:: alloc:: vec:: Vec < Activity > ,
488+ /// All variables in the base problem
489+ #[ prost( message, repeated, tag = "2" ) ]
490+ pub variables : :: prost:: alloc:: vec:: Vec < Parameter > ,
491+ /// All constraints in the base problem.
492+ #[ prost( message, repeated, tag = "5" ) ]
493+ pub constraints : :: prost:: alloc:: vec:: Vec < Expression > ,
494+ }
495+ #[ allow( clippy:: derive_partial_eq_without_eq) ]
496+ #[ derive( Clone , PartialEq , :: prost:: Message ) ]
497+ pub struct Schedule {
498+ /// Name of the activities that appear in the solution
499+ #[ prost( string, repeated, tag = "1" ) ]
500+ pub activities : :: prost:: alloc:: vec:: Vec < :: prost:: alloc:: string:: String > ,
501+ /// Assignment of all variables and activity parameters and timepoints
502+ /// that appear in the solution.
503+ #[ prost( map = "string, message" , tag = "2" ) ]
504+ pub variable_assignments : :: std:: collections:: HashMap <
505+ :: prost:: alloc:: string:: String ,
506+ Atom ,
507+ > ,
508+ }
455509/// A Goal is currently an expression that must hold either:
456510/// - in the final state,
457511/// - over a specific temporal interval (under the `timed_goals` features)
@@ -619,7 +673,6 @@ pub mod metric {
619673 }
620674 }
621675}
622- /// features: ACTION_BASED
623676#[ allow( clippy:: derive_partial_eq_without_eq) ]
624677#[ derive( Clone , PartialEq , :: prost:: Message ) ]
625678pub struct Problem {
@@ -634,6 +687,7 @@ pub struct Problem {
634687 #[ prost( message, repeated, tag = "5" ) ]
635688 pub objects : :: prost:: alloc:: vec:: Vec < ObjectDeclaration > ,
636689 /// List of actions in the domain.
690+ /// features: ACTION_BASED
637691 #[ prost( message, repeated, tag = "6" ) ]
638692 pub actions : :: prost:: alloc:: vec:: Vec < Action > ,
639693 /// Initial state, including default values of state variables.
@@ -653,9 +707,13 @@ pub struct Problem {
653707 #[ prost( message, repeated, tag = "11" ) ]
654708 pub metrics : :: prost:: alloc:: vec:: Vec < Metric > ,
655709 /// If the problem is hierarchical, defines the tasks and methods as well as the initial task network.
656- /// features: hierarchical
710+ /// features: HIERARCHICAL
657711 #[ prost( message, optional, tag = "12" ) ]
658712 pub hierarchy : :: core:: option:: Option < Hierarchy > ,
713+ /// Scheduling-specific extension of the problem.
714+ /// features: SCHEDULING
715+ #[ prost( message, optional, tag = "17" ) ]
716+ pub scheduling_extension : :: core:: option:: Option < SchedulingExtension > ,
659717 /// Trajectory constraints of the planning problem.
660718 #[ prost( message, repeated, tag = "13" ) ]
661719 pub trajectory_constraints : :: prost:: alloc:: vec:: Vec < Expression > ,
@@ -729,12 +787,17 @@ pub struct Plan {
729787 /// An ordered sequence of actions that appear in the plan.
730788 /// The order of the actions in the list must be compatible with the partial order of the start times.
731789 /// In case of non-temporal planning, this allows having all start time at 0 and only rely on the order in this sequence.
790+ /// features: ACTION_BASED
732791 #[ prost( message, repeated, tag = "1" ) ]
733792 pub actions : :: prost:: alloc:: vec:: Vec < ActionInstance > ,
734793 /// When the plan is hierarchical, this object provides the decomposition of hte root tasks into the actions of the plan
735794 /// feature: HIERARCHY
736795 #[ prost( message, optional, tag = "2" ) ]
737796 pub hierarchy : :: core:: option:: Option < PlanHierarchy > ,
797+ /// Solution representation of a scheduling problem.
798+ /// feature: SCHEDULING
799+ #[ prost( message, optional, tag = "3" ) ]
800+ pub schedule : :: core:: option:: Option < Schedule > ,
738801}
739802#[ allow( clippy:: derive_partial_eq_without_eq) ]
740803#[ derive( Clone , PartialEq , :: prost:: Message ) ]
@@ -1114,6 +1177,7 @@ pub enum Feature {
11141177 /// PROBLEM_CLASS
11151178 ActionBased = 0 ,
11161179 Hierarchical = 26 ,
1180+ Scheduling = 56 ,
11171181 /// PROBLEM_TYPE
11181182 SimpleNumericPlanning = 30 ,
11191183 GeneralNumericPlanning = 31 ,
@@ -1145,8 +1209,11 @@ pub enum Feature {
11451209 DecreaseEffects = 16 ,
11461210 StaticFluentsInBooleanAssignments = 41 ,
11471211 StaticFluentsInNumericAssignments = 42 ,
1212+ StaticFluentsInObjectAssignments = 57 ,
11481213 FluentsInBooleanAssignments = 43 ,
11491214 FluentsInNumericAssignments = 44 ,
1215+ FluentsInObjectAssignments = 58 ,
1216+ ForallEffects = 59 ,
11501217 /// TYPING
11511218 FlatTyping = 17 ,
11521219 HierarchicalTyping = 18 ,
@@ -1192,6 +1259,7 @@ impl Feature {
11921259 match self {
11931260 Feature :: ActionBased => "ACTION_BASED" ,
11941261 Feature :: Hierarchical => "HIERARCHICAL" ,
1262+ Feature :: Scheduling => "SCHEDULING" ,
11951263 Feature :: SimpleNumericPlanning => "SIMPLE_NUMERIC_PLANNING" ,
11961264 Feature :: GeneralNumericPlanning => "GENERAL_NUMERIC_PLANNING" ,
11971265 Feature :: ContinuousTime => "CONTINUOUS_TIME" ,
@@ -1223,8 +1291,13 @@ impl Feature {
12231291 Feature :: StaticFluentsInNumericAssignments => {
12241292 "STATIC_FLUENTS_IN_NUMERIC_ASSIGNMENTS"
12251293 }
1294+ Feature :: StaticFluentsInObjectAssignments => {
1295+ "STATIC_FLUENTS_IN_OBJECT_ASSIGNMENTS"
1296+ }
12261297 Feature :: FluentsInBooleanAssignments => "FLUENTS_IN_BOOLEAN_ASSIGNMENTS" ,
12271298 Feature :: FluentsInNumericAssignments => "FLUENTS_IN_NUMERIC_ASSIGNMENTS" ,
1299+ Feature :: FluentsInObjectAssignments => "FLUENTS_IN_OBJECT_ASSIGNMENTS" ,
1300+ Feature :: ForallEffects => "FORALL_EFFECTS" ,
12281301 Feature :: FlatTyping => "FLAT_TYPING" ,
12291302 Feature :: HierarchicalTyping => "HIERARCHICAL_TYPING" ,
12301303 Feature :: NumericFluents => "NUMERIC_FLUENTS" ,
@@ -1259,6 +1332,7 @@ impl Feature {
12591332 match value {
12601333 "ACTION_BASED" => Some ( Self :: ActionBased ) ,
12611334 "HIERARCHICAL" => Some ( Self :: Hierarchical ) ,
1335+ "SCHEDULING" => Some ( Self :: Scheduling ) ,
12621336 "SIMPLE_NUMERIC_PLANNING" => Some ( Self :: SimpleNumericPlanning ) ,
12631337 "GENERAL_NUMERIC_PLANNING" => Some ( Self :: GeneralNumericPlanning ) ,
12641338 "CONTINUOUS_TIME" => Some ( Self :: ContinuousTime ) ,
@@ -1290,8 +1364,13 @@ impl Feature {
12901364 "STATIC_FLUENTS_IN_NUMERIC_ASSIGNMENTS" => {
12911365 Some ( Self :: StaticFluentsInNumericAssignments )
12921366 }
1367+ "STATIC_FLUENTS_IN_OBJECT_ASSIGNMENTS" => {
1368+ Some ( Self :: StaticFluentsInObjectAssignments )
1369+ }
12931370 "FLUENTS_IN_BOOLEAN_ASSIGNMENTS" => Some ( Self :: FluentsInBooleanAssignments ) ,
12941371 "FLUENTS_IN_NUMERIC_ASSIGNMENTS" => Some ( Self :: FluentsInNumericAssignments ) ,
1372+ "FLUENTS_IN_OBJECT_ASSIGNMENTS" => Some ( Self :: FluentsInObjectAssignments ) ,
1373+ "FORALL_EFFECTS" => Some ( Self :: ForallEffects ) ,
12951374 "FLAT_TYPING" => Some ( Self :: FlatTyping ) ,
12961375 "HIERARCHICAL_TYPING" => Some ( Self :: HierarchicalTyping ) ,
12971376 "NUMERIC_FLUENTS" => Some ( Self :: NumericFluents ) ,
0 commit comments