scipplan 0.2.1a0__py2.py3-none-any.whl → 0.2.2a0__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
scipplan/parse_model.py CHANGED
@@ -204,7 +204,8 @@ class ParseModel:
204
204
  else:
205
205
  aux_var: Variable = self.expressions.aux_vars[idx]
206
206
 
207
- aux_vars.append(aux_var)
207
+ if self.params.add_aux_vars is True:
208
+ aux_vars.append(aux_var)
208
209
  self.variables[aux_var.name] = aux_var.model_var
209
210
 
210
211
  expr1, expr2 = linearise(expr, aux_var)
@@ -280,4 +281,4 @@ if __name__ == "__main__":
280
281
  # print(calc(
281
282
  # """
282
283
  # a + b + c >= 5 or a - b - c == 10
283
- # """))
284
+ # """))
scipplan/scipplan.py CHANGED
@@ -68,7 +68,8 @@ class SCIPPlan:
68
68
  "zero_crossing_coefficient": zero_cross.coef,
69
69
  "new_dt_val": zero_cross.new_dt_val,
70
70
  "horizon": zero_cross.horizon,
71
- "iteration": zero_cross.iteration
71
+ "iteration": zero_cross.iteration,
72
+ "constraint_idx": zero_cross.constraint_idx
72
73
  })
73
74
 
74
75
  if self.config.show_output is True:
@@ -80,19 +81,19 @@ class SCIPPlan:
80
81
 
81
82
  self.scip_model.freeTransform()
82
83
 
83
- for idx, constraint in enumerate(self.plan.translations["temporal_constraints"]):
84
- t = zero_cross.horizon
85
- # aux_vars = self.plan.aux_vars["temporal_constraints"][idx][t]
86
- aux_vars = const_gen_aux_vars[idx][t]
87
- # Only add aux vars if there are no aux vars added for the secific constraint
88
- params = self.plan.get_parser_params(horizon=t, add_aux_vars=aux_vars is None)
89
- params.variables[self.config.dt_var] *= zero_cross.coef
90
- exprs = PM(params).evaluate(constraint, aux_vars=aux_vars)
91
- if const_gen_aux_vars[idx][t] is None:
92
- const_gen_aux_vars[idx][t] = exprs.aux_vars
93
-
94
- for eqtn_idx, eqtn in enumerate(exprs):
95
- self.plan.model.addCons(eqtn, f"{constraint}_{idx}_{eqtn_idx}")
84
+ t = zero_cross.horizon
85
+ idx = zero_cross.constraint_idx
86
+ constraint = self.plan.translations["temporal_constraints"][idx]
87
+ aux_vars = self.plan.aux_vars["temporal_constraints"][idx][t]
88
+ # Only add aux vars if there are no aux vars added for the specific constraint
89
+ params = self.plan.get_parser_params(horizon=t, add_aux_vars=aux_vars is None)
90
+ params.variables[self.config.dt_var] *= zero_cross.coef
91
+ exprs = PM(params).evaluate(constraint, aux_vars=aux_vars)
92
+ if const_gen_aux_vars[idx][t] is None:
93
+ const_gen_aux_vars[idx][t] = exprs.aux_vars
94
+
95
+ for eqtn_idx, eqtn in enumerate(exprs):
96
+ self.plan.model.addCons(eqtn, f"{constraint}_{idx}_{eqtn_idx}")
96
97
 
97
98
  iteration += 1
98
99
 
@@ -104,7 +105,7 @@ class SCIPPlan:
104
105
  for h in range(self.config.horizon):
105
106
  dt = self.scip_model.getVal(self.plan.variables[(self.config.dt_var, h)].model_var)
106
107
 
107
- for constraint in self.plan.translations["temporal_constraints"]:
108
+ for idx, constraint in enumerate(self.plan.translations["temporal_constraints"]):
108
109
  is_violated = False
109
110
 
110
111
  for time in iterate(0, dt, self.config.epsilon):
@@ -129,6 +130,7 @@ class SCIPPlan:
129
130
  start=cross_interval[0],
130
131
  end=cross_interval[1],
131
132
  dt_interval=dt,
133
+ constraint_idx = idx,
132
134
  )
133
135
 
134
136
  return ZeroCrossing(is_violated=False)
@@ -213,4 +215,4 @@ def main():
213
215
  print(f"Total time: {solve_time:.3f}")
214
216
 
215
217
  if __name__ == "__main__":
216
- main()
218
+ main()
scipplan/zero_crossing.py CHANGED
@@ -11,6 +11,7 @@ class ZeroCrossing:
11
11
  dt_interval: float = None
12
12
  coef: float = field(init=False, default=None)
13
13
  new_dt_val: float = field(init=False, default=None)
14
+ constraint_idx: int = None
14
15
 
15
16
  def __post_init__(self):
16
17
  if self.is_violated is True:
@@ -25,4 +26,4 @@ class ZeroCrossing:
25
26
  """))
26
27
  avg_interval = (self.start + self.end) / 2.0
27
28
  self.coef = avg_interval / self.dt_interval
28
- self.new_dt_val = self.coef * self.dt_interval
29
+ self.new_dt_val = self.coef * self.dt_interval
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: scipplan
3
- Version: 0.2.1a0
3
+ Version: 0.2.2a0
4
4
  Summary: Metric Hybrid Factored Planning in Nonlinear Domains with Constraint Generation in Python.
5
5
  Author: Ari Gestetner, Buser Say
6
6
  Author-email: ari.gestetner@monash.edu, buser.say@monash.edu
@@ -0,0 +1,28 @@
1
+ build/lib/scipplan/__init__.py,sha256=6tjLoCc3ID0D6ilf2H0cTgot-fHu_HzeXfo5MAyfYLc,196
2
+ build/lib/scipplan/config.py,sha256=Ojs_pdjhwRuANPJcGyb3m5mMGqbTZkHuNvppd_Wd4FQ,5615
3
+ build/lib/scipplan/helpers.py,sha256=YmS0HPQymsO5_e3jK7WQ-hBRZnxoZtewLhuzubw5sR4,975
4
+ build/lib/scipplan/parse_model.py,sha256=yGYGY0ZfBC8OPfX3i2kbyDKrsJ94duDm_RlxlbzNaZ4,11206
5
+ build/lib/scipplan/plan_model.py,sha256=Pz2RaYFcx1ZV6BQmr-ikUKAiQ8LqNhA0DPhdT8Ls6u8,14373
6
+ build/lib/scipplan/scipplan.py,sha256=aO4r0vaNWHgnZq1Pf9Y86t33OYBQD4O9pRAOZNR2ods,8724
7
+ build/lib/scipplan/variables.py,sha256=3sxY3zQuxsa5z2fTFjv4zOSb9GarzojZ4W4kIx9FX68,2561
8
+ build/lib/scipplan/zero_crossing.py,sha256=0auSm3-3993tyFVtq4gGeF4wScbkyGxfNw6pG2dsAvs,1075
9
+ scipplan/__init__.py,sha256=6tjLoCc3ID0D6ilf2H0cTgot-fHu_HzeXfo5MAyfYLc,196
10
+ scipplan/config.py,sha256=Ojs_pdjhwRuANPJcGyb3m5mMGqbTZkHuNvppd_Wd4FQ,5615
11
+ scipplan/helpers.py,sha256=YmS0HPQymsO5_e3jK7WQ-hBRZnxoZtewLhuzubw5sR4,975
12
+ scipplan/parse_model.py,sha256=yGYGY0ZfBC8OPfX3i2kbyDKrsJ94duDm_RlxlbzNaZ4,11206
13
+ scipplan/plan_model.py,sha256=Pz2RaYFcx1ZV6BQmr-ikUKAiQ8LqNhA0DPhdT8Ls6u8,14373
14
+ scipplan/scipplan.py,sha256=aO4r0vaNWHgnZq1Pf9Y86t33OYBQD4O9pRAOZNR2ods,8724
15
+ scipplan/variables.py,sha256=3sxY3zQuxsa5z2fTFjv4zOSb9GarzojZ4W4kIx9FX68,2561
16
+ scipplan/zero_crossing.py,sha256=0auSm3-3993tyFVtq4gGeF4wScbkyGxfNw6pG2dsAvs,1075
17
+ scipplan/translation/odes_navigation_1.txt,sha256=Uv13eTSTvURb6TtY7rq-otlpJMS8cQDYSyaO3X2_SRs,1015
18
+ scipplan/translation/odes_navigation_2.txt,sha256=DcbpXv-q0NP8Tx10YKqD6425esblgPNlTxchkyWMJAc,1192
19
+ scipplan/translation/odes_navigation_3.txt,sha256=ZFTyFEiL1KP0yxOCOzOSoXz9dXulRmtXDBnfZqaVbaE,1370
20
+ scipplan/translation/solutions_navigation_1.txt,sha256=5iLPRtJXqfAXi0QG-3WPtKn8t0pH4-E2AtNp8-7k1CQ,1542
21
+ scipplan/translation/solutions_navigation_2.txt,sha256=b1c74m54iRCcZoe8uqquUQyn6HtRTiFqIA8ss2mZUdg,1895
22
+ scipplan/translation/solutions_navigation_3.txt,sha256=Jv3bzMt84LVyR1DSVJ5B8Ky9id_khZ1PxZ1s3QPKpk8,2249
23
+ scipplan-0.2.2a0.dist-info/LICENSE,sha256=KLZVolgtGLnK2b-INKXXO7wOneDlgmIUP6WC4R5wRC4,1053
24
+ scipplan-0.2.2a0.dist-info/METADATA,sha256=-UKhTY5lscjt3a_VpgcSOM2cx89cZTMO-Ys_K6L6QgU,5818
25
+ scipplan-0.2.2a0.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
26
+ scipplan-0.2.2a0.dist-info/entry_points.txt,sha256=3qiNbbp6qIwivyPmmikyp7ByCfmsa9rGFNJPcN9Is8I,52
27
+ scipplan-0.2.2a0.dist-info/top_level.txt,sha256=zE5zfBzLJlVjWUD5VuiQ5YPY7HtvU7uuw9hHKX9XaMo,41
28
+ scipplan-0.2.2a0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ build
2
+ dist
3
+ output
4
+ scipplan
5
+ visualisation
@@ -1,20 +0,0 @@
1
- scipplan/__init__.py,sha256=ouJVzwoTiWQv-wEqrnAqqH3BShu0S-bpc2JLlYDHcsk,195
2
- scipplan/config.py,sha256=Ojs_pdjhwRuANPJcGyb3m5mMGqbTZkHuNvppd_Wd4FQ,5615
3
- scipplan/helpers.py,sha256=YmS0HPQymsO5_e3jK7WQ-hBRZnxoZtewLhuzubw5sR4,975
4
- scipplan/parse_model.py,sha256=CI_38xmaiVr8DuOi3UdNrVqWHTdW6qm_5luwLZxIk9I,11136
5
- scipplan/plan_model.py,sha256=Pz2RaYFcx1ZV6BQmr-ikUKAiQ8LqNhA0DPhdT8Ls6u8,14373
6
- scipplan/scipplan.py,sha256=Ykz_L0f2dyX4-EQB1iCH-QR3waVUwxKzgskdQeUP9nE,8675
7
- scipplan/variables.py,sha256=3sxY3zQuxsa5z2fTFjv4zOSb9GarzojZ4W4kIx9FX68,2561
8
- scipplan/zero_crossing.py,sha256=kGyJsWZLLXqLW1p3LPDlPC34rTkFF8daDzqgbEcaXus,1043
9
- scipplan/translation/odes_navigation_1.txt,sha256=Uv13eTSTvURb6TtY7rq-otlpJMS8cQDYSyaO3X2_SRs,1015
10
- scipplan/translation/odes_navigation_2.txt,sha256=DcbpXv-q0NP8Tx10YKqD6425esblgPNlTxchkyWMJAc,1192
11
- scipplan/translation/odes_navigation_3.txt,sha256=ZFTyFEiL1KP0yxOCOzOSoXz9dXulRmtXDBnfZqaVbaE,1370
12
- scipplan/translation/solutions_navigation_1.txt,sha256=5iLPRtJXqfAXi0QG-3WPtKn8t0pH4-E2AtNp8-7k1CQ,1542
13
- scipplan/translation/solutions_navigation_2.txt,sha256=b1c74m54iRCcZoe8uqquUQyn6HtRTiFqIA8ss2mZUdg,1895
14
- scipplan/translation/solutions_navigation_3.txt,sha256=Jv3bzMt84LVyR1DSVJ5B8Ky9id_khZ1PxZ1s3QPKpk8,2249
15
- scipplan-0.2.1a0.dist-info/LICENSE,sha256=KLZVolgtGLnK2b-INKXXO7wOneDlgmIUP6WC4R5wRC4,1053
16
- scipplan-0.2.1a0.dist-info/METADATA,sha256=m7v1qFgcpUHPisS9edhi0dUat1JZCmi61-qgh-hZ7MI,5818
17
- scipplan-0.2.1a0.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
18
- scipplan-0.2.1a0.dist-info/entry_points.txt,sha256=3qiNbbp6qIwivyPmmikyp7ByCfmsa9rGFNJPcN9Is8I,52
19
- scipplan-0.2.1a0.dist-info/top_level.txt,sha256=xO2FLRn7YQ-C25E8lagIEbik5T5FTr-Ta5bdiZezEPY,9
20
- scipplan-0.2.1a0.dist-info/RECORD,,
@@ -1 +0,0 @@
1
- scipplan