File tree Expand file tree Collapse file tree 1 file changed +18
-3
lines changed Expand file tree Collapse file tree 1 file changed +18
-3
lines changed Original file line number Diff line number Diff line change @@ -1500,10 +1500,25 @@ def read(self, file_path: str) -> None:
1500
1500
)
1501
1501
1502
1502
def set_start (self , start : List [Tuple [Var , numbers .Real ]]) -> None :
1503
- n = len (start )
1504
- dv = ffi .new ("double[]" , [start [i ][1 ] for i in range (n )])
1503
+ # Augment start list with default zero values for absent non-continuous variables
1504
+ start_vars_set = set (var for var , _ in start )
1505
+
1506
+ default_start_noncont_vars = [
1507
+ (v , 0 )
1508
+ for v in self .model .vars
1509
+ if v .var_type != "C" and v not in start_vars_set
1510
+ ]
1511
+
1512
+ logger .info (
1513
+ f"Adding default start values for { len (default_start_noncont_vars )} noncontinuous variables"
1514
+ )
1515
+ augmented_start = start + default_start_noncont_vars
1516
+
1517
+ # Set starts
1518
+ n = len (augmented_start )
1519
+ dv = ffi .new ("double[]" , [augmented_start [i ][1 ] for i in range (n )])
1505
1520
keep_alive_str = [
1506
- ffi .new ("char[]" , str .encode (start [i ][0 ].name )) for i in range (n )
1521
+ ffi .new ("char[]" , str .encode (augmented_start [i ][0 ].name )) for i in range (n )
1507
1522
]
1508
1523
var_names = ffi .new ("char *[]" , keep_alive_str )
1509
1524
mdl = self ._model
You can’t perform that action at this time.
0 commit comments