This example considers grid connection options for wind farms in the Doggerbnk area (North Sea), including potential trade links to Norway and Germany
Investment costs:
$cost = B + B_{dp}\cdot d\cdot p + B_d\cdot d + \sum_{i\in end}\left(C^{i}_p\cdot p + C^{i}\right)$
Operational costs:
$cost = P_{g} \cdot mc_{g}$
%matplotlib inline
import powergama
import powergama.powergim as pgim
import powergama.plots
import powergama.sampling
import pyomo.environ as pyo
import pandas as pd
import matplotlib.pyplot as plt
import numpy.random as rnd
import copy
import lxml.etree
import yaml
%load_ext autoreload
%autoreload 2
The autoreload extension is already loaded. To reload it, use: %reload_ext autoreload
#specify random number seed so re-running the script gives the same result
rnd.seed(2016)
reuse_sample = True
grid_data = powergama.GridData()
grid_data.readSipData(nodes = "data/dog_nodes.csv",
branches = "data/dog_branches.csv",
generators = "data/dog_generators.csv",
consumers = "data/dog_consumers.csv")
file_parameters = 'data/dog_data_irpwind.yaml'
# Profiles:
if reuse_sample:
print("\n<> Loading time-series sample...")
samplesize = 100
grid_data.readProfileData(filename= "data/timeseries_sample_100_rnd2016.csv",
timerange=range(samplesize), timedelta=1.0)
else:
# create new sample
grid_data.readProfileData(filename = "data/timeseries_doggerbank.csv",
timerange = range(8760), timedelta = 1.0)
print("\n<> Sampling...\n")
samplingmethod = 'kmeans'
samplesize = 3
profiledata_sample = powergama.sampling.sampleProfileData(data=grid_data,
samplesize=samplesize,sampling_method=samplingmethod)
#profiledata_sample.to_csv("data/timeseries_sample_100_rnd2016.csv")
grid_data.timerange = range(profiledata_sample.shape[0])
grid_data.profiles = profiledata_sample
<> Loading time-series sample...
displayData = False
num_lines = 30
if displayData:
with open(file_parameters, 'r') as stream:
data = yaml.safe_load(stream)
data = data['powergim']
print("PARAMETERS - nodetype:")
display(pd.DataFrame(data['nodetype']).T)
print("PARAMETERS - branchtype:")
display(pd.DataFrame(data['branchtype']).T)
print("PARAMETERS - gentype:")
display(pd.DataFrame(data['gentype']).T)
print("PARAMETERS - parameters:")
display(pd.DataFrame({'value':data['parameters']}))
print("\nNodes:")
display(grid_data.node.head(num_lines))
print("Branches:")
display(grid_data.branch.head(num_lines))
print("Consumers:")
display(grid_data.consumer.head(num_lines))
print("Generators:")
display(grid_data.generator.head(num_lines))
print("Profiles:")
display(grid_data.profiles.head(num_lines))
grid_data.profiles.min()
Unnamed: 0 0.000000 const 1.000000 wind0.3 0.039958 wind1.2 0.020603 prices_GB 32.125343 prices_DE -254.000000 prices_NO_south 9.934286 demand_GB 22050.080460 demand_DE 30511.500000 demand_NO 9528.954023 dtype: float64
# A little trick to use powergama map plot
# (need to split branches into ac and dc)
plot_data = copy.deepcopy(grid_data)
plot_data.spreadNodeCoordinates(inplace=True,radius=0.04)
plot_data.branch = plot_data.branch[plot_data.branch['capacity']>0]
mask_dc = plot_data.branch['type'].str.startswith('dc')
plot_data.dcbranch = plot_data.branch[mask_dc]
plot_data.branch = plot_data.branch[~mask_dc]
m=powergama.plots.plotMap(pg_data=plot_data,pg_res=None,
filename=None,branchtype="capacity",nodetype="area")
print("\nExisting capacity:")
m
Existing capacity:
# A little trick to use powergama map plot
# (need to split branches into ac and dc)
plot_data = copy.deepcopy(grid_data)
plot_data.spreadNodeCoordinates(inplace=True,radius=0.04)
mask_dc = plot_data.branch['type'].str.startswith('dc')
plot_data.dcbranch = plot_data.branch[mask_dc]
plot_data.branch = plot_data.branch[~mask_dc]
m=powergama.plots.plotMap(pg_data=plot_data,pg_res=None,
filename=None,branchtype="capacity",nodetype="area")
print("\nTransmission corridors considered in optimisation:")
m
Transmission corridors considered in optimisation:
sip = pgim.SipModel()
dict_data = sip.createModelData(grid_data,
datafile=file_parameters,
maxNewBranchNum=5,maxNewBranchCap=5000)
model = sip.createConcreteModel(dict_data)
#Enable access to dual values
model.dual = pyo.Suffix(direction=pyo.Suffix.IMPORT)
Reading from yaml Computing B and DA matrices... Creating B and DA coefficients...
#opt = pyo.SolverFactory('gurobi',solver_io='python')
opt = pyo.SolverFactory('cbc')
results = opt.solve(model,
tee=True, #stream the solver output
keepfiles=False, #print the LP file for examination
symbolic_solver_labels=True) # use human readable names
print("=====================================",results['Solver'][0])
Welcome to the CBC MILP Solver Version: devel Build Date: Oct 29 2020 command line - c:\users\hsven\bin\cbc.exe -printingOptions all -import C:\Users\hsven\AppData\Local\Temp\tmpcr_0vbfd.pyomo.lp -stat=1 -solve -solu C:\Users\hsven\AppData\Local\Temp\tmpcr_0vbfd.pyomo.soln (default strategy 1) Option for printingOptions changed from normal to all Presolve 15347 (-6582) rows, 12882 (-4727) columns and 47124 (-25248) elements Statistics for presolved model Original problem has 83 integers (50 of which binary) Presolved problem has 51 integers (18 of which binary) ==== 12296 zero objective 555 different ==== absolute objective values 553 different ==== for integers 0 zero objective 27 different ==== for integers absolute objective values 27 different ===== end objective counts Problem has 15347 rows, 12882 columns (586 with objective) and 47124 elements There are 522 singletons with objective Column breakdown: 0 of type 0.0->inf, 12864 of type 0.0->up, 0 of type lo->inf, 0 of type lo->up, 0 of type free, 0 of type fixed, 0 of type -inf->0.0, 0 of type -inf->up, 18 of type 0.0->1.0 Row breakdown: 2600 of type E 0.0, 0 of type E 1.0, 0 of type E -1.0, 1200 of type E other, 0 of type G 0.0, 0 of type G 1.0, 0 of type G other, 11049 of type L 0.0, 0 of type L 1.0, 0 of type L other, 0 of type Range 0.0->1.0, 498 of type Range other, 0 of type Free Unable to open file .\1 Continuous objective value is -6.36371e+09 - 0.89 seconds Cgl0004I processed model has 15347 rows, 12882 columns (51 integer (18 of which binary)) and 47124 elements Coin3009W Conflict graph built in 0.004 seconds, density: 0.000% Cgl0015I Clique Strengthening extended 0 cliques, 0 were dominated Cbc0038I Initial state - 39 integers unsatisfied sum - 8.29813 Cbc0038I Pass 1: (2.86 seconds) suminf. 3.85442 (14) obj. -4.67274e+09 iterations 3481 Cbc0038I Solution found of -4.67274e+09 Cbc0038I Branch and bound needed to clear up 9 general integers Cbc0038I Full problem 15347 rows 12882 columns, reduced to 8469 rows 6806 columns - too large Cbc0038I Mini branch and bound could not fix general integers Cbc0038I Rounding solution of -3.94494e+09 is better than previous of 1e+50 Cbc0038I Before mini branch and bound, 11 integers at bound fixed and 7928 continuous Cbc0038I Full problem 15347 rows 12882 columns, reduced to 5301 rows 2787 columns Cbc0038I Mini branch and bound improved solution from -3.94494e+09 to -4.69788e+09 (7.89 seconds) Cbc0038I Freeing continuous variables gives a solution of -4.84538e+09 Cbc0038I Round again with cutoff of -4.99721e+09 Cbc0038I Pass 2: (8.64 seconds) suminf. 4.74440 (17) obj. -4.99721e+09 iterations 860 Cbc0038I Pass 3: (8.68 seconds) suminf. 4.34577 (12) obj. -4.99721e+09 iterations 85 Cbc0038I Solution found of -4.99721e+09 Cbc0038I Branch and bound needed to clear up 12 general integers Cbc0038I Full problem 15348 rows 12882 columns, reduced to 8470 rows 6806 columns - too large Cbc0038I Mini branch and bound could not fix general integers Cbc0038I No solution found this major pass Cbc0038I Before mini branch and bound, 11 integers at bound fixed and 7562 continuous Cbc0038I Full problem 15347 rows 12882 columns, reduced to 5784 rows 3244 columns Cbc0038I Mini branch and bound improved solution from -4.84538e+09 to -4.84746e+09 (14.78 seconds) Cbc0038I Freeing continuous variables gives a solution of -5.00807e+09 Cbc0038I Round again with cutoff of -5.27919e+09 Cbc0038I Pass 4: (15.62 seconds) suminf. 5.68850 (19) obj. -5.27919e+09 iterations 828 Cbc0038I Pass 5: (15.68 seconds) suminf. 5.08503 (14) obj. -5.27919e+09 iterations 47 Cbc0038I Solution found of -5.27919e+09 Cbc0038I Branch and bound needed to clear up 14 general integers Cbc0038I Full problem 15348 rows 12882 columns, reduced to 8470 rows 6806 columns - too large Cbc0038I Mini branch and bound could not fix general integers Cbc0038I No solution found this major pass Cbc0038I Before mini branch and bound, 11 integers at bound fixed and 7493 continuous Cbc0038I Full problem 15347 rows 12882 columns, reduced to 5954 rows 3377 columns Cbc0038I Mini branch and bound improved solution from -5.00807e+09 to -5.0352e+09 (23.87 seconds) Cbc0038I Freeing continuous variables gives a solution of -5.07979e+09 Cbc0038I Round again with cutoff of -5.60455e+09 Cbc0038I Pass 6: (26.12 seconds) suminf. 4.81963 (26) obj. -5.60455e+09 iterations 3624 Cbc0038I Pass 7: (26.37 seconds) suminf. 4.18114 (16) obj. -5.60455e+09 iterations 302 Cbc0038I Solution found of -5.60455e+09 Cbc0038I Branch and bound needed to clear up 16 general integers Cbc0038I Full problem 15348 rows 12882 columns, reduced to 10274 rows 8414 columns - too large Cbc0038I Mini branch and bound could not fix general integers Cbc0038I No solution found this major pass Cbc0038I Before mini branch and bound, 11 integers at bound fixed and 7092 continuous Cbc0038I Full problem 15347 rows 12882 columns, reduced to 6470 rows 3868 columns Cbc0038I Mini branch and bound did not improve solution (31.29 seconds) Cbc0038I After 31.30 seconds - Feasibility pump exiting with objective of -5.07979e+09 - took 29.98 seconds Cbc0012I Integer solution of -5.0797926e+09 found by feasibility pump after 0 iterations and 0 nodes (31.31 seconds) Cbc0038I Full problem 15347 rows 12882 columns, reduced to 13441 rows 10865 columns - 8 fixed gives 13429, 10856 - still too large Cbc0031I 22 added rows had average density of 9.3181818 Cbc0013I At root node, 22 cuts changed objective from -6.3637138e+09 to -5.9857465e+09 in 10 passes Cbc0014I Cut generator 0 (Probing) - 45 row cuts average 2.0 elements, 0 column cuts (0 active) in 0.047 seconds - new frequency is 1 Cbc0014I Cut generator 1 (Gomory) - 36 row cuts average 11.8 elements, 0 column cuts (0 active) in 0.082 seconds - new frequency is 1 Cbc0014I Cut generator 2 (Knapsack) - 0 row cuts average 0.0 elements, 0 column cuts (0 active) in 0.167 seconds - new frequency is -100 Cbc0014I Cut generator 3 (Clique) - 0 row cuts average 0.0 elements, 0 column cuts (0 active) in 0.001 seconds - new frequency is -100 Cbc0014I Cut generator 4 (OddWheel) - 0 row cuts average 0.0 elements, 0 column cuts (0 active) in 0.004 seconds - new frequency is -100 Cbc0014I Cut generator 5 (MixedIntegerRounding2) - 1 row cuts average 4.0 elements, 0 column cuts (0 active) in 0.084 seconds - new frequency is -100 Cbc0014I Cut generator 6 (FlowCover) - 0 row cuts average 0.0 elements, 0 column cuts (0 active) in 0.310 seconds - new frequency is -100 Cbc0014I Cut generator 7 (TwoMirCuts) - 12 row cuts average 7.3 elements, 0 column cuts (0 active) in 0.144 seconds - new frequency is 1 Cbc0010I After 0 nodes, 1 on tree, -5.0797926e+09 best solution, best possible -5.9857465e+09 (34.96 seconds) Cbc0010I After 2 nodes, 3 on tree, -5.0797926e+09 best solution, best possible -5.9857465e+09 (35.99 seconds) Cbc0010I After 3 nodes, 4 on tree, -5.0797926e+09 best solution, best possible -5.9857465e+09 (36.78 seconds) Cbc0010I After 5 nodes, 6 on tree, -5.0797926e+09 best solution, best possible -5.9857465e+09 (37.60 seconds) Cbc0010I After 7 nodes, 8 on tree, -5.0797926e+09 best solution, best possible -5.9857465e+09 (38.43 seconds) Cbc0010I After 10 nodes, 11 on tree, -5.0797926e+09 best solution, best possible -5.9857465e+09 (39.16 seconds) Cbc0010I After 13 nodes, 12 on tree, -5.0797926e+09 best solution, best possible -5.9857465e+09 (40.17 seconds) Cbc0010I After 15 nodes, 13 on tree, -5.0797926e+09 best solution, best possible -5.9857465e+09 (40.98 seconds) Cbc0010I After 19 nodes, 15 on tree, -5.0797926e+09 best solution, best possible -5.9857465e+09 (41.82 seconds) Cbc0010I After 25 nodes, 19 on tree, -5.0797926e+09 best solution, best possible -5.9857465e+09 (42.57 seconds) Cbc0012I Integer solution of -5.1673485e+09 found by rounding after 24631 iterations and 27 nodes (43.45 seconds) Cbc0010I After 27 nodes, 21 on tree, -5.1673485e+09 best solution, best possible -5.9857465e+09 (43.45 seconds) Cbc0010I After 38 nodes, 25 on tree, -5.1673485e+09 best solution, best possible -5.9857465e+09 (44.16 seconds) Cbc0038I Full problem 15347 rows 12882 columns, reduced to 9053 rows 6759 columns - too large Cbc0010I After 41 nodes, 26 on tree, -5.1673485e+09 best solution, best possible -5.9857465e+09 (46.14 seconds) Cbc0010I After 49 nodes, 28 on tree, -5.1673485e+09 best solution, best possible -5.9857465e+09 (46.90 seconds) Cbc0012I Integer solution of -5.2013368e+09 found by rounding after 31529 iterations and 53 nodes (48.79 seconds) Cbc0010I After 53 nodes, 30 on tree, -5.2013368e+09 best solution, best possible -5.9857465e+09 (48.79 seconds) Cbc0010I After 62 nodes, 35 on tree, -5.2013368e+09 best solution, best possible -5.9857465e+09 (49.53 seconds) Cbc0010I After 66 nodes, 36 on tree, -5.2013368e+09 best solution, best possible -5.9857465e+09 (50.29 seconds) Cbc0010I After 74 nodes, 40 on tree, -5.2013368e+09 best solution, best possible -5.9857465e+09 (51.04 seconds) Cbc0010I After 81 nodes, 42 on tree, -5.2013368e+09 best solution, best possible -5.9857465e+09 (51.84 seconds) Cbc0038I Full problem 15347 rows 12882 columns, reduced to 10306 rows 7826 columns - 1 fixed gives 10305, 7825 - still too large Cbc0038I Full problem 15347 rows 12882 columns, reduced to 9954 rows 7654 columns - too large Cbc0010I After 91 nodes, 47 on tree, -5.2013368e+09 best solution, best possible -5.9857465e+09 (53.70 seconds) Cbc0010I After 103 nodes, 52 on tree, -5.2013368e+09 best solution, best possible -5.9857465e+09 (54.42 seconds) Cbc0012I Integer solution of -5.2025304e+09 found by rounding after 53073 iterations and 114 nodes (55.81 seconds) Cbc0010I After 114 nodes, 55 on tree, -5.2025304e+09 best solution, best possible -5.9857465e+09 (55.81 seconds) Cbc0010I After 120 nodes, 55 on tree, -5.2025304e+09 best solution, best possible -5.9857465e+09 (56.60 seconds) Cbc0010I After 130 nodes, 56 on tree, -5.2025304e+09 best solution, best possible -5.9857465e+09 (57.32 seconds) Cbc0010I After 136 nodes, 58 on tree, -5.2025304e+09 best solution, best possible -5.9857465e+09 (58.05 seconds) Cbc0012I Integer solution of -5.21462e+09 found by rounding after 62386 iterations and 138 nodes (58.83 seconds) Cbc0010I After 138 nodes, 58 on tree, -5.21462e+09 best solution, best possible -5.9857465e+09 (58.83 seconds) Cbc0012I Integer solution of -5.2158145e+09 found by rounding after 63284 iterations and 143 nodes (59.85 seconds) Cbc0010I After 143 nodes, 57 on tree, -5.2158145e+09 best solution, best possible -5.9857465e+09 (59.85 seconds) Cbc0010I After 152 nodes, 62 on tree, -5.2158145e+09 best solution, best possible -5.9857465e+09 (60.68 seconds) Cbc0012I Integer solution of -5.247392e+09 found by rounding after 67151 iterations and 160 nodes (62.00 seconds) Cbc0010I After 160 nodes, 49 on tree, -5.247392e+09 best solution, best possible -5.9857465e+09 (62.00 seconds) Cbc0010I After 161 nodes, 50 on tree, -5.247392e+09 best solution, best possible -5.9857465e+09 (62.80 seconds) Cbc0004I Integer solution of -5.2825375e+09 found after 67382 iterations and 164 nodes (63.74 seconds) Cbc0010I After 164 nodes, 40 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (63.74 seconds) Cbc0010I After 172 nodes, 40 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (64.55 seconds) Cbc0010I After 180 nodes, 45 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (65.25 seconds) Cbc0010I After 197 nodes, 48 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (65.95 seconds) Cbc0010I After 214 nodes, 44 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (66.66 seconds) Cbc0010I After 234 nodes, 46 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (67.36 seconds) Cbc0010I After 248 nodes, 48 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (68.12 seconds) Cbc0010I After 257 nodes, 49 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (68.82 seconds) Cbc0010I After 268 nodes, 49 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (69.54 seconds) Cbc0010I After 277 nodes, 51 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (70.27 seconds) Cbc0010I After 290 nodes, 46 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (71.06 seconds) Cbc0038I Full problem 15347 rows 12882 columns, reduced to 10473 rows 7794 columns - 1 fixed gives 10472, 7793 - still too large Cbc0038I Full problem 15347 rows 12882 columns, reduced to 10387 rows 7793 columns - too large Cbc0010I After 292 nodes, 46 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (72.98 seconds) Cbc0010I After 303 nodes, 43 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (73.88 seconds) Cbc0010I After 320 nodes, 49 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (74.67 seconds) Cbc0010I After 331 nodes, 48 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (75.41 seconds) Cbc0010I After 349 nodes, 49 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (76.12 seconds) Cbc0010I After 364 nodes, 52 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (76.99 seconds) Cbc0010I After 376 nodes, 51 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (77.69 seconds) Cbc0010I After 390 nodes, 47 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (78.55 seconds) Cbc0038I Full problem 15347 rows 12882 columns, reduced to 11171 rows 8493 columns - 1 fixed gives 11170, 8492 - still too large Cbc0038I Full problem 15347 rows 12882 columns, reduced to 11085 rows 8492 columns - too large Cbc0010I After 400 nodes, 47 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (81.39 seconds) Cbc0010I After 407 nodes, 46 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (82.21 seconds) Cbc0010I After 422 nodes, 44 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (83.02 seconds) Cbc0010I After 434 nodes, 50 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (83.78 seconds) Cbc0010I After 446 nodes, 53 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (84.50 seconds) Cbc0010I After 454 nodes, 52 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (85.25 seconds) Cbc0010I After 464 nodes, 50 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (86.05 seconds) Cbc0010I After 480 nodes, 53 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (86.76 seconds) Cbc0010I After 496 nodes, 53 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (87.51 seconds) Cbc0010I After 505 nodes, 51 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (88.41 seconds) Cbc0010I After 512 nodes, 49 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (89.16 seconds) Cbc0010I After 522 nodes, 47 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (89.87 seconds) Cbc0010I After 536 nodes, 46 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (90.61 seconds) Cbc0010I After 543 nodes, 47 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (91.34 seconds) Cbc0010I After 549 nodes, 49 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (92.07 seconds) Cbc0010I After 554 nodes, 52 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (92.98 seconds) Cbc0010I After 558 nodes, 53 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (93.68 seconds) Cbc0010I After 564 nodes, 54 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (94.39 seconds) Cbc0010I After 580 nodes, 53 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (95.13 seconds) Cbc0010I After 595 nodes, 54 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (95.83 seconds) Cbc0038I Full problem 15347 rows 12882 columns, reduced to 9750 rows 7270 columns - 1 fixed gives 9749, 7269 - still too large Cbc0038I Full problem 15347 rows 12882 columns, reduced to 9522 rows 7138 columns - too large Cbc0010I After 600 nodes, 55 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (97.49 seconds) Cbc0010I After 612 nodes, 53 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (98.19 seconds) Cbc0010I After 625 nodes, 52 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (98.89 seconds) Cbc0010I After 637 nodes, 53 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (99.64 seconds) Cbc0010I After 642 nodes, 55 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (100.36 seconds) Cbc0010I After 649 nodes, 57 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (101.10 seconds) Cbc0010I After 656 nodes, 59 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (101.83 seconds) Cbc0010I After 667 nodes, 57 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (102.53 seconds) Cbc0010I After 675 nodes, 54 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (103.37 seconds) Cbc0010I After 681 nodes, 55 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (104.14 seconds) Cbc0010I After 694 nodes, 56 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (104.86 seconds) Cbc0010I After 704 nodes, 55 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (105.68 seconds) Cbc0010I After 715 nodes, 52 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (106.46 seconds) Cbc0010I After 724 nodes, 50 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (107.17 seconds) Cbc0010I After 730 nodes, 49 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (107.88 seconds) Cbc0010I After 739 nodes, 50 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (108.64 seconds) Cbc0010I After 753 nodes, 52 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (109.36 seconds) Cbc0010I After 763 nodes, 47 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (110.17 seconds) Cbc0010I After 773 nodes, 50 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (110.94 seconds) Cbc0010I After 788 nodes, 54 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (111.71 seconds) Cbc0010I After 800 nodes, 52 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (112.43 seconds) Cbc0038I Full problem 15347 rows 12882 columns, reduced to 10850 rows 8172 columns - 1 fixed gives 10849, 8171 - still too large Cbc0038I Full problem 15347 rows 12882 columns, reduced to 10664 rows 8056 columns - too large Cbc0010I After 801 nodes, 52 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (114.16 seconds) Cbc0010I After 812 nodes, 49 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (114.87 seconds) Cbc0010I After 824 nodes, 45 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (115.72 seconds) Cbc0010I After 833 nodes, 45 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (116.46 seconds) Cbc0010I After 842 nodes, 47 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (117.26 seconds) Cbc0010I After 852 nodes, 43 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (118.06 seconds) Cbc0010I After 863 nodes, 42 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (118.89 seconds) Cbc0010I After 867 nodes, 44 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (119.73 seconds) Cbc0010I After 870 nodes, 45 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (120.58 seconds) Cbc0010I After 876 nodes, 47 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (121.29 seconds) Cbc0010I After 880 nodes, 48 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (122.11 seconds) Cbc0010I After 889 nodes, 49 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (122.83 seconds) Cbc0010I After 898 nodes, 49 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (123.60 seconds) Cbc0010I After 910 nodes, 49 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (124.40 seconds) Cbc0010I After 921 nodes, 49 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (125.11 seconds) Cbc0010I After 927 nodes, 47 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (125.86 seconds) Cbc0010I After 939 nodes, 48 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (126.59 seconds) Cbc0010I After 949 nodes, 47 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (127.31 seconds) Cbc0010I After 963 nodes, 49 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (128.13 seconds) Cbc0010I After 975 nodes, 45 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (128.92 seconds) Cbc0010I After 986 nodes, 42 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (129.62 seconds) Cbc0010I After 998 nodes, 40 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (130.37 seconds) Cbc0038I Full problem 15347 rows 12882 columns, reduced to 12273 rows 9499 columns - 1 fixed gives 12272, 9498 - still too large Cbc0010I After 1003 nodes, 43 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (131.16 seconds) Cbc0010I After 1022 nodes, 38 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (131.95 seconds) Cbc0010I After 1039 nodes, 36 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (132.78 seconds) Cbc0010I After 1053 nodes, 38 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (133.55 seconds) Cbc0010I After 1062 nodes, 32 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (134.32 seconds) Cbc0010I After 1066 nodes, 30 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (135.10 seconds) Cbc0010I After 1072 nodes, 30 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (135.92 seconds) Cbc0010I After 1080 nodes, 30 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (136.70 seconds) Cbc0010I After 1086 nodes, 30 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (137.44 seconds) Cbc0010I After 1093 nodes, 29 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (138.15 seconds) Cbc0010I After 1105 nodes, 30 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (138.88 seconds) Cbc0010I After 1118 nodes, 35 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (139.60 seconds) Cbc0010I After 1130 nodes, 32 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (140.32 seconds) Cbc0010I After 1144 nodes, 35 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (141.09 seconds) Cbc0010I After 1158 nodes, 33 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (141.80 seconds) Cbc0010I After 1177 nodes, 32 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (142.62 seconds) Cbc0010I After 1190 nodes, 30 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (143.44 seconds) Cbc0010I After 1199 nodes, 28 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (144.16 seconds) Cbc0038I Full problem 15347 rows 12882 columns, reduced to 11551 rows 8777 columns - 1 fixed gives 11550, 8776 - still too large Cbc0038I Full problem 15347 rows 12882 columns, reduced to 11464 rows 8702 columns - too large Cbc0010I After 1200 nodes, 29 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (146.34 seconds) Cbc0010I After 1211 nodes, 32 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (147.10 seconds) Cbc0010I After 1227 nodes, 30 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (147.84 seconds) Cbc0010I After 1242 nodes, 30 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (148.59 seconds) Cbc0010I After 1255 nodes, 28 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (149.30 seconds) Cbc0010I After 1266 nodes, 30 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (150.03 seconds) Cbc0010I After 1272 nodes, 27 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (150.82 seconds) Cbc0010I After 1279 nodes, 28 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (151.64 seconds) Cbc0010I After 1284 nodes, 27 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (152.42 seconds) Cbc0010I After 1289 nodes, 25 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (153.20 seconds) Cbc0010I After 1295 nodes, 29 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (153.95 seconds) Cbc0010I After 1304 nodes, 28 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (154.67 seconds) Cbc0010I After 1312 nodes, 26 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (155.40 seconds) Cbc0010I After 1322 nodes, 27 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (156.18 seconds) Cbc0010I After 1327 nodes, 24 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (156.97 seconds) Cbc0010I After 1333 nodes, 23 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (157.73 seconds) Cbc0010I After 1341 nodes, 27 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (158.50 seconds) Cbc0010I After 1346 nodes, 25 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (159.27 seconds) Cbc0010I After 1355 nodes, 24 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (160.21 seconds) Cbc0010I After 1361 nodes, 23 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (160.96 seconds) Cbc0010I After 1369 nodes, 23 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (161.69 seconds) Cbc0010I After 1383 nodes, 22 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (162.47 seconds) Cbc0010I After 1391 nodes, 22 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (163.18 seconds) Cbc0038I Full problem 15347 rows 12882 columns, reduced to 11770 rows 8996 columns - 1 fixed gives 11769, 8995 - still too large Cbc0038I Full problem 15347 rows 12882 columns, reduced to 11767 rows 8995 columns - too large Cbc0010I After 1400 nodes, 23 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (165.24 seconds) Cbc0010I After 1409 nodes, 20 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (165.99 seconds) Cbc0010I After 1417 nodes, 22 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (166.75 seconds) Cbc0010I After 1426 nodes, 21 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (167.47 seconds) Cbc0010I After 1436 nodes, 18 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (168.23 seconds) Cbc0010I After 1443 nodes, 18 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (169.01 seconds) Cbc0010I After 1455 nodes, 20 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (169.73 seconds) Cbc0010I After 1467 nodes, 19 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (170.48 seconds) Cbc0010I After 1478 nodes, 17 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (171.25 seconds) Cbc0010I After 1483 nodes, 17 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (171.99 seconds) Cbc0010I After 1489 nodes, 19 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (172.73 seconds) Cbc0010I After 1497 nodes, 18 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (173.49 seconds) Cbc0010I After 1504 nodes, 19 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (174.21 seconds) Cbc0010I After 1517 nodes, 22 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (174.95 seconds) Cbc0010I After 1529 nodes, 22 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (175.66 seconds) Cbc0010I After 1541 nodes, 22 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (176.39 seconds) Cbc0010I After 1549 nodes, 19 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (177.09 seconds) Cbc0010I After 1555 nodes, 16 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (177.85 seconds) Cbc0010I After 1562 nodes, 22 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (178.63 seconds) Cbc0010I After 1571 nodes, 19 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (179.34 seconds) Cbc0010I After 1579 nodes, 21 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (180.04 seconds) Cbc0010I After 1590 nodes, 19 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (180.78 seconds) Cbc0010I After 1594 nodes, 18 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (181.61 seconds) Cbc0010I After 1606 nodes, 18 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (182.50 seconds) Cbc0010I After 1617 nodes, 19 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (183.40 seconds) Cbc0010I After 1622 nodes, 16 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (184.23 seconds) Cbc0010I After 1637 nodes, 24 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (184.95 seconds) Cbc0010I After 1656 nodes, 18 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (185.67 seconds) Cbc0010I After 1664 nodes, 16 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (186.37 seconds) Cbc0010I After 1675 nodes, 19 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (187.10 seconds) Cbc0010I After 1683 nodes, 17 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (187.91 seconds) Cbc0010I After 1695 nodes, 18 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (188.62 seconds) Cbc0010I After 1708 nodes, 17 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (189.33 seconds) Cbc0010I After 1719 nodes, 18 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (190.03 seconds) Cbc0010I After 1726 nodes, 16 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (190.77 seconds) Cbc0010I After 1736 nodes, 14 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (191.61 seconds) Cbc0010I After 1746 nodes, 11 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (192.37 seconds) Cbc0010I After 1753 nodes, 12 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (193.11 seconds) Cbc0010I After 1759 nodes, 10 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (193.82 seconds) Cbc0010I After 1765 nodes, 8 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (194.62 seconds) Cbc0010I After 1769 nodes, 12 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (195.35 seconds) Cbc0010I After 1781 nodes, 16 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (196.09 seconds) Cbc0010I After 1798 nodes, 14 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (196.82 seconds) Cbc0010I After 1811 nodes, 16 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (197.52 seconds) Cbc0010I After 1830 nodes, 16 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (198.22 seconds) Cbc0010I After 1849 nodes, 15 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (198.95 seconds) Cbc0010I After 1861 nodes, 10 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (199.73 seconds) Cbc0010I After 1875 nodes, 15 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (200.48 seconds) Cbc0010I After 1887 nodes, 11 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (201.22 seconds) Cbc0010I After 1896 nodes, 10 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (201.92 seconds) Cbc0010I After 1906 nodes, 15 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (202.64 seconds) Cbc0010I After 1927 nodes, 13 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (203.36 seconds) Cbc0010I After 1941 nodes, 17 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (204.09 seconds) Cbc0010I After 1949 nodes, 15 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (204.80 seconds) Cbc0010I After 1959 nodes, 12 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (205.53 seconds) Cbc0010I After 1969 nodes, 15 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (206.29 seconds) Cbc0010I After 1979 nodes, 12 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (207.07 seconds) Cbc0010I After 1993 nodes, 12 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (207.77 seconds) Cbc0010I After 2012 nodes, 11 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (208.52 seconds) Cbc0010I After 2031 nodes, 15 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (209.27 seconds) Cbc0010I After 2040 nodes, 13 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (210.03 seconds) Cbc0010I After 2049 nodes, 16 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (210.73 seconds) Cbc0010I After 2060 nodes, 12 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (211.44 seconds) Cbc0010I After 2064 nodes, 13 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (212.20 seconds) Cbc0010I After 2073 nodes, 10 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (212.95 seconds) Cbc0010I After 2081 nodes, 11 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (213.70 seconds) Cbc0010I After 2090 nodes, 10 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (214.42 seconds) Cbc0010I After 2096 nodes, 10 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (215.13 seconds) Cbc0010I After 2101 nodes, 9 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (215.84 seconds) Cbc0010I After 2113 nodes, 11 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (216.68 seconds) Cbc0010I After 2120 nodes, 15 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (217.41 seconds) Cbc0010I After 2130 nodes, 11 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (218.14 seconds) Cbc0010I After 2140 nodes, 13 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (218.85 seconds) Cbc0010I After 2149 nodes, 13 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (219.61 seconds) Cbc0010I After 2160 nodes, 10 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (220.38 seconds) Cbc0010I After 2165 nodes, 8 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (221.20 seconds) Cbc0010I After 2174 nodes, 10 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (221.98 seconds) Cbc0010I After 2179 nodes, 12 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (222.72 seconds) Cbc0010I After 2191 nodes, 14 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (223.47 seconds) Cbc0010I After 2199 nodes, 9 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (225.01 seconds) Cbc0010I After 2205 nodes, 12 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (225.81 seconds) Cbc0010I After 2217 nodes, 14 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (226.60 seconds) Cbc0010I After 2230 nodes, 10 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (227.33 seconds) Cbc0010I After 2238 nodes, 9 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (228.15 seconds) Cbc0010I After 2254 nodes, 14 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (228.91 seconds) Cbc0010I After 2266 nodes, 10 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (229.64 seconds) Cbc0010I After 2274 nodes, 7 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (230.35 seconds) Cbc0010I After 2281 nodes, 12 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (231.14 seconds) Cbc0010I After 2287 nodes, 10 on tree, -5.2825375e+09 best solution, best possible -5.9857465e+09 (231.91 seconds) Cbc0010I ERROR: Solver (cbc) returned non-zero return code (1) ERROR: See the solver log above for diagnostic information.
--------------------------------------------------------------------------- ApplicationError Traceback (most recent call last) <ipython-input-60-90b5d674f5a6> in <module> 4 tee=True, #stream the solver output 5 keepfiles=False, #print the LP file for examination ----> 6 symbolic_solver_labels=True) # use human readable names 7 print("=====================================",results['Solver'][0]) ~\AppData\Local\Continuum\anaconda3\lib\site-packages\pyomo\opt\base\solvers.py in solve(self, *args, **kwds) 598 logger.error("Solver log:\n" + str(_status.log)) 599 raise pyutilib.common.ApplicationError( --> 600 "Solver (%s) did not exit normally" % self.name) 601 solve_completion_time = time.time() 602 if self._report_timing: ApplicationError: Solver (cbc) did not exit normally
# Export results to XLSX file:
# sip.saveDeterministicResults(model=model,excel_file='res_det_result.xlsx')
def myplot(grid):
plot_data = copy.deepcopy(grid)
plot_data.spreadNodeCoordinates(inplace=True,radius=0.04)
mask_dc = ~plot_data.branch['type'].str.startswith('ac')
plot_data.dcbranch = plot_data.branch[mask_dc]
plot_data.branch = plot_data.branch[~mask_dc]
m = powergama.plots.plotMap(pg_data=plot_data,pg_res=None,
filename=None,branchtype="capacity",nodetype="area")
return m
print("INPUT:")
m_input = myplot(grid_data)
display(m_input)
print("STAGE 1:")
grid_res = sip.extractResultingGridData(grid_data,model=model)
m_res1 = myplot(grid_res)
display(m_res1)
print("STAGE 2:")
grid_res2 = sip.extractResultingGridData(grid_data,model=model,stage=2)
m_res2 = myplot(grid_res2)
display(m_res2)
INPUT: Nodes... AC branches... DC branches... Consumers... Generators...
STAGE 1: Nodes... AC branches... DC branches... Consumers... Generators...
STAGE 2: Nodes... AC branches... DC branches... Consumers... Generators...
# Export plots to HTML:
# m_res1.save("res_det_stage1.html")
# Show a previously saved html image:
# import IPython
# IPython.display.IFrame("res_det_stage1.html",width='60%',height="400")