Debugging¶

This notebook demonstrates how to configure and control logging in the OptiWindNet to debug wind farm network optimization workflows. We explore logging at different scopes (individual modules and multiple modules). Additionally, we cover enabling verbose output for MILP solvers to inspect solver behavior in detail, observing optimization performance and progress.

[1]:
import sys
import logging
from optiwindnet.api import WindFarmNetwork, HGSRouter, MILPRouter

Logging¶

Another example (optiwindnet.pathfinding)¶

Logging other modules can be activated independently of the already active loggers.

[5]:
# optional: unset the previous logger level and remove its handler
logger_mesh.setLevel(logging.NOTSET)
logger_mesh.handlers[0].close()
logger_mesh.removeHandler(logger_mesh.handlers[0])

Set a logger for optiwindnet.pathfinding:

[6]:
logger_pathfinding = logging.getLogger('optiwindnet.pathfinding')
stdout_handler = logging.StreamHandler(stream=sys.stdout)
logger_pathfinding.addHandler(stdout_handler)
logger_pathfinding.setLevel(logging.DEBUG)
[7]:
wfn2 = WindFarmNetwork.from_yaml(filepath='data/example_location.yaml', cables=4)
[8]:
res2 = wfn2.optimize(
    router=HGSRouter(
        time_limit=0.1,
        feeder_limit=3,
    ),
)
>PathFinder: "example_location" (T = 12)
pseudoedge «6->-1» added
pseudoedge «15->-1» added
pseudoedge «15->-1» added
pseudoedge «5->-1» added
_find_paths[1]: advancer id <0>
<0> RIGHT _new(16) _nearside(15) _farside(6) _apex(-1), _wedge_end: 6 15, _funnel: [6, 15]
<0> infranear
_find_paths[2]: advancer id <1>
<1> LEFT  _new(14) _nearside(15) _farside(5) _apex(-1), _wedge_end: 15 5, _funnel: [15, 5]
<1> inside
_find_paths[3]: advancer id <0>
pseudoedge «16->15» added
<0> new keeper for (16, -9223372036854775808) via 15: d_path = 397.67
<0> RIGHT _new(11) _nearside(15) _farside(6) _apex(-1), _wedge_end: 6 16, _funnel: [6, 15]
<0> infranear
_find_paths[4]: advancer id <2>
<2> LEFT  _new(11) _nearside(6) _farside(15) _apex(-1), _wedge_end: 6 16, _funnel: [6, 15]
<2> ultrafar
_find_paths[5]: advancer id <1>
pseudoedge «14->-1» added
<1> new keeper for (14, -9223372036854775808) via -1: d_path = 445.53
<1> RIGHT _new(4) _nearside(5) _farside(14) _apex(-1), _wedge_end: 14 5, _funnel: [14, 5]
<1> infranear
_find_paths[6]: advancer id <0>
pseudoedge «11->16» added
<0> new keeper for (11, 10) via 16: d_path = 985.72
<0> RIGHT _new(10) _nearside(15) _farside(6) _apex(-1), _wedge_end: 6 11, _funnel: [6, 15]
<0> infranear
_find_paths[7]: advancer id <0>
pseudoedge «10->16» added
<0> new keeper for (10, 11) via 16: d_path = 909.25
<0> RIGHT _new(8) _nearside(15) _farside(6) _apex(-1), _wedge_end: 6 10, _funnel: [6, 15]
<0> infranear
_find_paths[8]: advancer id <0>
pseudoedge «8->15» added
<0> new keeper for (8, 9) via 15: d_path = 905.15
<0> LEFT  _new(7) _nearside(6) _farside(15) _apex(-1), _wedge_end: 6 8, _funnel: [6, 15]
<0> infranear
_find_paths[9]: advancer id <3>
<3> LEFT  _new(8) _nearside(6) _farside(15) _apex(-1), _wedge_end: 6 10, _funnel: [6, 15]
<3> ultrafar
_find_paths[10]: advancer id <3>
<3> RIGHT _new(9) _nearside(16) _farside(8) _apex(15), _wedge_end: 8 10, _funnel: [8, 16]
<3> inside
pseudoedge «9->15» added
<3> new keeper for (9, 8) via 15: d_path = 1235.41
{3} advancer reached DEAD-END (not portals)
_find_paths[11]: advancer id <2>
<2> RIGHT _new(17) _nearside(16) _farside(11) _apex(16), _wedge_end: 11 16, _funnel: [11, 16]
<2> inside
_find_paths[12]: advancer id <2>
pseudoedge «17->16» added
<2> new keeper for (17, -9223372036854775808) via 16: d_path = 1113.60
<2> RIGHT _new(9) _nearside(17) _farside(11) _apex(16), _wedge_end: 11 17, _funnel: [11, 17]
<2> ultrafar
_find_paths[13]: advancer id <4>
<4> LEFT  _new(9) _nearside(11) _farside(17) _apex(16), _wedge_end: 11 17, _funnel: [11, 17]
<4> infranear
_find_paths[14]: advancer id <0>
pseudoedge «7->6» added
<0> new keeper for (7, 6) via 6: d_path = 1150.50
<0> RIGHT _new(9) _nearside(15) _farside(6) _apex(-1), _wedge_end: 7 8, _funnel: [6, 15]
<0> infranear
_find_paths[15]: advancer id <1>
pseudoedge «4->5» added
<1> new keeper for (4, 5) via 5: d_path = 1227.41
<1> RIGHT _new(3) _nearside(5) _farside(14) _apex(-1), _wedge_end: 14 4, _funnel: [14, 5]
<1> infranear
_find_paths[16]: advancer id <5>
<5> LEFT  _new(3) _nearside(14) _farside(5) _apex(-1), _wedge_end: 14 4, _funnel: [14, 5]
<5> ultrafar
_find_paths[17]: advancer id <0>
pseudoedge «9->8» added
<0> RIGHT _new(19) _nearside(15) _farside(6) _apex(-1), _wedge_end: 7 9, _funnel: [6, 15]
<0> ultrafar
_find_paths[18]: advancer id <0>
pseudoedge «19->7» added
<0> new keeper for (19, -9223372036854775808) via 7: d_path = 1245.33
<0> RIGHT _new(20) _nearside(19) _farside(7) _apex(7), _wedge_end: 7 19, _funnel: [7, 19]
<0> inside
_find_paths[19]: advancer id <6>
<6> LEFT  _new(19) _nearside(6) _farside(15) _apex(-1), _wedge_end: 7 9, _funnel: [6, 15]
<6> infranear
_find_paths[20]: advancer id <6>
<6> RIGHT _new(26) _nearside(15) _farside(6) _apex(-1), _wedge_end: 19 9, _funnel: [6, 15]
<6> infranear
_find_paths[21]: advancer id <6>
pseudoedge «26->8» added
<6> new keeper for (26, -9223372036854775808) via 8: d_path = 8019.15
{6} advancer reached DEAD-END (root or mesh edge)
_find_paths[22]: advancer id <7>
<7> LEFT  _new(26) _nearside(6) _farside(15) _apex(-1), _wedge_end: 19 9, _funnel: [6, 15]
<7> ultrafar
_find_paths[23]: advancer id <7>
<7> RIGHT _new(17) _nearside(9) _farside(26) _apex(8), _wedge_end: 26 9, _funnel: [26, 9]
<7> infranear
_find_paths[24]: advancer id <8>
<8> LEFT  _new(17) _nearside(26) _farside(9) _apex(8), _wedge_end: 26 9, _funnel: [26, 9]
<8> ultrafar
_find_paths[25]: advancer id <1>
pseudoedge «3->4» added
<1> new keeper for (3, 1) via 4: d_path = 1791.29
<1> RIGHT _new(28) _nearside(5) _farside(14) _apex(-1), _wedge_end: 14 3, _funnel: [14, 5]
<1> infranear
_find_paths[26]: advancer id <1>
pseudoedge «28->5» added
<1> new keeper for (28, -9223372036854775808) via 5: d_path = 7533.80
{1} advancer reached DEAD-END (root or mesh edge)
_find_paths[27]: advancer id <5>
<5> RIGHT _new(25) _nearside(4) _farside(3) _apex(4), _wedge_end: 3 4, _funnel: [3, 4]
<5> inside
_find_paths[28]: advancer id <5>
pseudoedge «25->4» added
<5> new keeper for (25, -9223372036854775808) via 4: d_path = 1383.44
<5> RIGHT _new(24) _nearside(25) _farside(3) _apex(4), _wedge_end: 3 25, _funnel: [3, 25]
<5> inside
_find_paths[29]: advancer id <5>
pseudoedge «24->4» added
<5> new keeper for (24, -9223372036854775808) via 4: d_path = 1581.88
<5> RIGHT _new(23) _nearside(24) _farside(3) _apex(4), _wedge_end: 3 24, _funnel: [3, 24]
<5> infranear
_find_paths[30]: advancer id <9>
<9> LEFT  _new(28) _nearside(14) _farside(5) _apex(-1), _wedge_end: 14 3, _funnel: [14, 5]
<9> ultrafar
_find_paths[31]: advancer id <9>
<9> LEFT  _new(27) _nearside(28) _farside(4) _apex(5), _wedge_end: 28 3, _funnel: [28, 4]
<9> ultrafar
_find_paths[32]: advancer id <9>
pseudoedge «27->3» added
<9> new keeper for (27, -9223372036854775808) via 3: d_path = 9191.09
<9> RIGHT _new(1) _nearside(3) _farside(27) _apex(3), _wedge_end: 27 3, _funnel: [27, 3]
<9> inside
_find_paths[33]: advancer id <10>
<10> LEFT  _new(25) _nearside(3) _farside(4) _apex(4), _wedge_end: 3 4, _funnel: [3, 4]
<10> inside
_find_paths[34]: advancer id <10>
<10> RIGHT _new(2) _nearside(4) _farside(25) _apex(4), _wedge_end: 25 4, _funnel: [25, 4]
<10> inside
_find_paths[35]: advancer id <11>
<11> LEFT  _new(2) _nearside(25) _farside(4) _apex(4), _wedge_end: 25 4, _funnel: [25, 4]
<11> inside
_find_paths[36]: advancer id <5>
pseudoedge «23->24» added
<5> new keeper for (23, -9223372036854775808) via 24: d_path = 1791.88
<5> RIGHT _new(2) _nearside(24) _farside(3) _apex(4), _wedge_end: 3 23, _funnel: [3, 24]
<5> infranear
_find_paths[37]: advancer id <12>
<12> LEFT  _new(2) _nearside(3) _farside(24) _apex(4), _wedge_end: 3 23, _funnel: [3, 24]
<12> ultrafar
_find_paths[38]: advancer id <2>
pseudoedge «9->11» added
<2> RIGHT _new(10) _nearside(9) _farside(11) _apex(11), _wedge_end: 11 9, _funnel: [11, 9]
<2> inside
pseudoedge «10->11» added
{2} advancer reached DEAD-END (not portals)
_find_paths[39]: advancer id <4>
<4> RIGHT _new(26) _nearside(17) _farside(11) _apex(16), _wedge_end: 9 17, _funnel: [11, 17]
<4> ultrafar
_find_paths[40]: advancer id <4>
pseudoedge «26->11» added
<4> RIGHT _new(19) _nearside(26) _farside(9) _apex(11), _wedge_end: 9 26, _funnel: [9, 26]
<4> ultrafar
_find_paths[41]: advancer id <13>
<13> LEFT  _new(26) _nearside(11) _farside(17) _apex(16), _wedge_end: 9 17, _funnel: [11, 17]
<13> infranear
_find_paths[42]: advancer id <13>
{13} advancer reached DEAD-END (root or mesh edge)
_find_paths[43]: advancer id <14>
<14> LEFT  _new(19) _nearside(9) _farside(26) _apex(11), _wedge_end: 9 26, _funnel: [9, 26]
<14> infranear
_find_paths[44]: advancer id <10>
pseudoedge «2->4» added
<10> new keeper for (2, 0) via 4: d_path = 1859.24
<10> LEFT  _new(22) _nearside(25) _farside(2) _apex(4), _wedge_end: 25 2, _funnel: [25, 2]
<10> inside
_find_paths[45]: advancer id <10>
pseudoedge «22->4» added
<10> new keeper for (22, -9223372036854775808) via 4: d_path = 1686.27
<10> LEFT  _new(23) _nearside(22) _farside(2) _apex(4), _wedge_end: 22 2, _funnel: [22, 2]
<10> infranear
_find_paths[46]: advancer id <10>
pseudoedge «23->22» added
<10> new keeper for (23, -9223372036854775808) via 22: d_path = 1749.51
<10> RIGHT _new(3) _nearside(2) _farside(22) _apex(4), _wedge_end: 23 2, _funnel: [22, 2]
<10> ultrafar
_find_paths[47]: advancer id <15>
<15> LEFT  _new(3) _nearside(22) _farside(2) _apex(4), _wedge_end: 23 2, _funnel: [22, 2]
<15> infranear
_find_paths[48]: advancer id <11>
<11> RIGHT _new(21) _nearside(4) _farside(2) _apex(4), _wedge_end: 2 4, _funnel: [2, 4]
<11> inside
_find_paths[49]: advancer id <11>
pseudoedge «21->4» added
<11> new keeper for (21, -9223372036854775808) via 4: d_path = 1773.09
<11> RIGHT _new(12) _nearside(21) _farside(2) _apex(4), _wedge_end: 2 21, _funnel: [2, 21]
<11> ultrafar
_find_paths[50]: advancer id <0>
pseudoedge «20->7» added
<0> new keeper for (20, -9223372036854775808) via 7: d_path = 1956.29
<0> RIGHT _new(6) _nearside(20) _farside(7) _apex(7), _wedge_end: 7 20, _funnel: [7, 20]
<0> inside
pseudoedge «6->7» added
{0} advancer reached DEAD-END (not portals)
_find_paths[51]: advancer id <5>
pseudoedge «2->23» added
<5> LEFT  _new(1) _nearside(3) _farside(24) _apex(4), _wedge_end: 3 2, _funnel: [3, 24]
<5> ultrafar
_find_paths[52]: advancer id <12>
<12> RIGHT _new(22) _nearside(23) _farside(2) _apex(23), _wedge_end: 2 23, _funnel: [2, 23]
<12> inside
_find_paths[53]: advancer id <12>
pseudoedge «22->23» added
<12> RIGHT _new(25) _nearside(22) _farside(2) _apex(23), _wedge_end: 2 22, _funnel: [2, 22]
<12> infranear
_find_paths[54]: advancer id <5>
pseudoedge «1->24» added
<5> new keeper for (1, 0) via 24: d_path = 2131.61
<5> RIGHT _new(0) _nearside(23) _farside(1) _apex(24), _wedge_end: 1 2, _funnel: [1, 23]
<5> inside
pseudoedge «0->24» added
<5> new keeper for (0, 1) via 24: d_path = 2516.89
{5} advancer reached DEAD-END (not portals)
_find_paths[55]: advancer id <10>
pseudoedge «3->23» added
<10> LEFT  _new(24) _nearside(23) _farside(3) _apex(23), _wedge_end: 23 3, _funnel: [23, 3]
<10> inside
_find_paths[56]: advancer id <10>
pseudoedge «24->23» added
<10> LEFT  _new(25) _nearside(24) _farside(3) _apex(23), _wedge_end: 24 3, _funnel: [24, 3]
<10> infranear
_find_paths[57]: advancer id <15>
<15> LEFT  _new(1) _nearside(22) _farside(2) _apex(4), _wedge_end: 3 2, _funnel: [22, 2]
<15> infranear
_find_paths[58]: advancer id <15>
pseudoedge «1->22» added
<15> new keeper for (1, 0) via 22: d_path = 2123.86
<15> RIGHT _new(0) _nearside(2) _farside(22) _apex(4), _wedge_end: 1 2, _funnel: [22, 2]
<15> inside
pseudoedge «0->4» added
<15> new keeper for (0, 1) via 4: d_path = 2441.44
{15} advancer reached DEAD-END (not portals)
_find_paths[59]: advancer id <10>
pseudoedge «25->24» added
{10} advancer revisited triangle
_find_paths[60]: advancer id <12>
pseudoedge «25->22» added
<12> RIGHT _new(4) _nearside(22) _farside(2) _apex(23), _wedge_end: 2 25, _funnel: [2, 22]
<12> infranear
_find_paths[61]: advancer id <16>
<16> LEFT  _new(4) _nearside(2) _farside(22) _apex(23), _wedge_end: 2 25, _funnel: [2, 22]
<16> ultrafar
_find_paths[62]: advancer id <12>
pseudoedge «4->22» added
<12> RIGHT _new(21) _nearside(22) _farside(2) _apex(23), _wedge_end: 2 4, _funnel: [2, 22]
<12> infranear
_find_paths[63]: advancer id <16>
{16} advancer revisited triangle
_find_paths[64]: advancer id <9>
pseudoedge «1->3» added
<9> new keeper for (1, 3) via 3: d_path = 2344.26
<9> RIGHT _new(12) _nearside(1) _farside(27) _apex(3), _wedge_end: 27 1, _funnel: [27, 1]
<9> infranear
_find_paths[65]: advancer id <17>
<17> LEFT  _new(12) _nearside(27) _farside(1) _apex(3), _wedge_end: 27 1, _funnel: [27, 1]
<17> ultrafar
_find_paths[66]: advancer id <7>
pseudoedge «17->9» added
{7} advancer reached DEAD-END (root or mesh edge)
_find_paths[67]: advancer id <8>
<8> RIGHT _new(11) _nearside(9) _farside(17) _apex(9), _wedge_end: 17 9, _funnel: [17, 9]
<8> inside
_find_paths[68]: advancer id <8>
pseudoedge «11->9» added
<8> LEFT  _new(16) _nearside(17) _farside(11) _apex(9), _wedge_end: 17 11, _funnel: [17, 11]
<8> ultrafar
_find_paths[69]: advancer id <18>
<18> LEFT  _new(11) _nearside(17) _farside(9) _apex(9), _wedge_end: 17 9, _funnel: [17, 9]
<18> inside
_find_paths[70]: advancer id <18>
<18> RIGHT _new(10) _nearside(9) _farside(11) _apex(9), _wedge_end: 11 9, _funnel: [11, 9]
<18> inside
pseudoedge «10->9» added
{18} advancer reached DEAD-END (not portals)
_find_paths[71]: advancer id <12>
pseudoedge «21->22» added
<12> RIGHT _new(12) _nearside(22) _farside(2) _apex(23), _wedge_end: 2 21, _funnel: [2, 22]
<12> ultrafar
_find_paths[72]: advancer id <11>
pseudoedge «12->2» added
<11> new keeper for (12, -9223372036854775808) via 2: d_path = 2546.69
<11> LEFT  _new(0) _nearside(2) _farside(12) _apex(2), _wedge_end: 2 12, _funnel: [2, 12]
<11> inside
_find_paths[73]: advancer id <11>
pseudoedge «0->2» added
<11> LEFT  _new(1) _nearside(0) _farside(12) _apex(2), _wedge_end: 0 12, _funnel: [0, 12]
<11> infranear
_find_paths[74]: advancer id <12>
pseudoedge «12->2» added
<12> LEFT  _new(0) _nearside(2) _farside(12) _apex(2), _wedge_end: 2 12, _funnel: [2, 12]
<12> inside
_find_paths[75]: advancer id <12>
pseudoedge «0->2» added
<12> LEFT  _new(1) _nearside(0) _farside(12) _apex(2), _wedge_end: 0 12, _funnel: [0, 12]
<12> infranear
_find_paths[76]: advancer id <8>
pseudoedge «16->11» added
{8} advancer revisited triangle
_find_paths[77]: advancer id <9>
pseudoedge «12->1» added
{9} advancer reached DEAD-END (root or mesh edge)
_find_paths[78]: advancer id <17>
<17> RIGHT _new(0) _nearside(1) _farside(12) _apex(1), _wedge_end: 12 1, _funnel: [12, 1]
<17> inside
_find_paths[79]: advancer id <17>
pseudoedge «0->1» added
<17> RIGHT _new(2) _nearside(0) _farside(12) _apex(1), _wedge_end: 12 0, _funnel: [12, 0]
<17> infranear
_find_paths[80]: advancer id <4>
pseudoedge «19->9» added
<4> RIGHT _new(7) _nearside(19) _farside(9) _apex(9), _wedge_end: 9 19, _funnel: [9, 19]
<4> inside
_find_paths[81]: advancer id <4>
pseudoedge «7->9» added
<4> LEFT  _new(8) _nearside(9) _farside(7) _apex(9), _wedge_end: 9 7, _funnel: [9, 7]
<4> inside
_find_paths[82]: advancer id <4>
pseudoedge «8->9» added
<4> RIGHT _new(6) _nearside(7) _farside(8) _apex(9), _wedge_end: 8 7, _funnel: [8, 7]
<4> ultrafar
_find_paths[83]: advancer id <4>
pseudoedge «6->8» added
<4> RIGHT _new(10) _nearside(6) _farside(8) _apex(8), _wedge_end: 8 6, _funnel: [8, 6]
<4> inside
_find_paths[84]: advancer id <20>
<20> LEFT  _new(10) _nearside(8) _farside(6) _apex(8), _wedge_end: 8 6, _funnel: [8, 6]
<20> inside
_find_paths[85]: advancer id <4>
pseudoedge «10->8» added
<4> RIGHT _new(9) _nearside(10) _farside(8) _apex(8), _wedge_end: 8 10, _funnel: [8, 10]
<4> inside
pseudoedge «9->8» added
{4} advancer reached DEAD-END (not portals)
_find_paths[86]: advancer id <20>
<20> LEFT  _new(11) _nearside(10) _farside(6) _apex(8), _wedge_end: 10 6, _funnel: [10, 6]
<20> inside
_find_paths[87]: advancer id <14>
{14} advancer reached DEAD-END (root or mesh edge)
_find_paths[88]: advancer id <19>
<19> LEFT  _new(7) _nearside(9) _farside(19) _apex(9), _wedge_end: 9 19, _funnel: [9, 19]
<19> inside
_find_paths[89]: advancer id <19>
<19> RIGHT _new(20) _nearside(19) _farside(7) _apex(9), _wedge_end: 7 19, _funnel: [7, 19]
<19> ultrafar
_find_paths[90]: advancer id <11>
pseudoedge «1->0» added
<11> RIGHT _new(27) _nearside(12) _farside(0) _apex(2), _wedge_end: 1 12, _funnel: [0, 12]
<11> ultrafar
_find_paths[91]: advancer id <11>
pseudoedge «27->0» added
<11> LEFT  _new(3) _nearside(1) _farside(27) _apex(0), _wedge_end: 1 27, _funnel: [1, 27]
<11> infranear
_find_paths[92]: advancer id <21>
<21> LEFT  _new(27) _nearside(0) _farside(12) _apex(2), _wedge_end: 1 12, _funnel: [0, 12]
<21> infranear
_find_paths[93]: advancer id <21>
{21} advancer reached DEAD-END (root or mesh edge)
_find_paths[94]: advancer id <12>
pseudoedge «1->0» added
<12> RIGHT _new(27) _nearside(12) _farside(0) _apex(2), _wedge_end: 1 12, _funnel: [0, 12]
<12> ultrafar
_find_paths[95]: advancer id <12>
pseudoedge «27->0» added
<12> LEFT  _new(3) _nearside(1) _farside(27) _apex(0), _wedge_end: 1 27, _funnel: [1, 27]
<12> infranear
_find_paths[96]: advancer id <22>
<22> LEFT  _new(27) _nearside(0) _farside(12) _apex(2), _wedge_end: 1 12, _funnel: [0, 12]
<22> infranear
_find_paths[97]: advancer id <22>
{22} advancer reached DEAD-END (root or mesh edge)
_find_paths[98]: advancer id <20>
pseudoedge «11->8» added
{20} advancer revisited triangle
_find_paths[99]: advancer id <17>
pseudoedge «2->0» added
<17> LEFT  _new(21) _nearside(12) _farside(0) _apex(1), _wedge_end: 12 2, _funnel: [12, 0]
<17> ultrafar
_find_paths[100]: advancer id <11>
pseudoedge «3->1» added
<11> RIGHT _new(28) _nearside(27) _farside(1) _apex(0), _wedge_end: 3 27, _funnel: [1, 27]
<11> ultrafar
_find_paths[101]: advancer id <11>
pseudoedge «28->1» added
<11> RIGHT _new(14) _nearside(28) _farside(3) _apex(1), _wedge_end: 3 28, _funnel: [3, 28]
<11> ultrafar
_find_paths[102]: advancer id <23>
<23> LEFT  _new(14) _nearside(3) _farside(28) _apex(1), _wedge_end: 3 28, _funnel: [3, 28]
<23> infranear
_find_paths[103]: advancer id <19>
pseudoedge «20->7» added
<19> RIGHT _new(6) _nearside(20) _farside(7) _apex(7), _wedge_end: 7 20, _funnel: [7, 20]
<19> inside
pseudoedge «6->7» added
{19} advancer reached DEAD-END (not portals)
_find_paths[104]: advancer id <12>
pseudoedge «3->1» added
<12> RIGHT _new(28) _nearside(27) _farside(1) _apex(0), _wedge_end: 3 27, _funnel: [1, 27]
<12> ultrafar
_find_paths[105]: advancer id <12>
pseudoedge «28->1» added
<12> RIGHT _new(14) _nearside(28) _farside(3) _apex(1), _wedge_end: 3 28, _funnel: [3, 28]
<12> ultrafar
_find_paths[106]: advancer id <24>
<24> LEFT  _new(14) _nearside(3) _farside(28) _apex(1), _wedge_end: 3 28, _funnel: [3, 28]
<24> infranear
_find_paths[107]: advancer id <17>
pseudoedge «21->0» added
<17> LEFT  _new(4) _nearside(21) _farside(2) _apex(0), _wedge_end: 21 2, _funnel: [21, 2]
<17> ultrafar
_find_paths[108]: advancer id <17>
pseudoedge «4->2» added
<17> RIGHT _new(25) _nearside(2) _farside(4) _apex(2), _wedge_end: 4 2, _funnel: [4, 2]
<17> inside
_find_paths[109]: advancer id <17>
pseudoedge «25->2» added
<17> RIGHT _new(3) _nearside(25) _farside(4) _apex(2), _wedge_end: 4 25, _funnel: [4, 25]
<17> infranear
_find_paths[110]: advancer id <26>
<26> LEFT  _new(3) _nearside(4) _farside(25) _apex(2), _wedge_end: 4 25, _funnel: [4, 25]
<26> ultrafar
_find_paths[111]: advancer id <25>
<25> LEFT  _new(25) _nearside(4) _farside(2) _apex(2), _wedge_end: 4 2, _funnel: [4, 2]
<25> inside
_find_paths[112]: advancer id <25>
<25> LEFT  _new(22) _nearside(25) _farside(2) _apex(2), _wedge_end: 25 2, _funnel: [25, 2]
<25> inside
_find_paths[113]: advancer id <25>
pseudoedge «22->2» added
<25> LEFT  _new(23) _nearside(22) _farside(2) _apex(2), _wedge_end: 22 2, _funnel: [22, 2]
<25> inside
_find_paths[114]: advancer id <25>
pseudoedge «23->2» added
<25> RIGHT _new(3) _nearside(2) _farside(23) _apex(2), _wedge_end: 23 2, _funnel: [23, 2]
<25> inside
_find_paths[115]: advancer id <27>
<27> LEFT  _new(3) _nearside(23) _farside(2) _apex(2), _wedge_end: 23 2, _funnel: [23, 2]
<27> inside
_find_paths[116]: advancer id <25>
pseudoedge «3->2» added
<25> LEFT  _new(24) _nearside(23) _farside(3) _apex(2), _wedge_end: 23 3, _funnel: [23, 3]
<25> infranear
_find_paths[117]: advancer id <25>
pseudoedge «24->23» added
<25> LEFT  _new(25) _nearside(23) _farside(3) _apex(2), _wedge_end: 24 3, _funnel: [23, 3]
<25> infranear
_find_paths[118]: advancer id <25>
pseudoedge «25->24» added
<25> RIGHT _new(4) _nearside(3) _farside(23) _apex(2), _wedge_end: 25 3, _funnel: [23, 3]
<25> ultrafar
_find_paths[119]: advancer id <28>
<28> LEFT  _new(4) _nearside(23) _farside(3) _apex(2), _wedge_end: 25 3, _funnel: [23, 3]
<28> infranear
_find_paths[120]: advancer id <25>
pseudoedge «4->24» added
{25} advancer revisited triangle
_find_paths[121]: advancer id <28>
{28} advancer revisited triangle
_find_paths[122]: advancer id <17>
pseudoedge «3->25» added
{17} advancer revisited triangle
_find_paths[123]: advancer id <26>
<26> RIGHT _new(24) _nearside(25) _farside(3) _apex(25), _wedge_end: 3 25, _funnel: [3, 25]
<26> inside
_find_paths[124]: advancer id <26>
pseudoedge «24->25» added
<26> RIGHT _new(23) _nearside(24) _farside(3) _apex(25), _wedge_end: 3 24, _funnel: [3, 24]
<26> infranear
_find_paths[125]: advancer id <26>
pseudoedge «23->24» added
<26> RIGHT _new(2) _nearside(24) _farside(3) _apex(25), _wedge_end: 3 23, _funnel: [3, 24]
<26> infranear
_find_paths[126]: advancer id <29>
<29> LEFT  _new(2) _nearside(3) _farside(24) _apex(25), _wedge_end: 3 23, _funnel: [3, 24]
<29> ultrafar
_find_paths[127]: advancer id <29>
pseudoedge «2->23» added
<29> RIGHT _new(22) _nearside(23) _farside(2) _apex(23), _wedge_end: 2 23, _funnel: [2, 23]
<29> inside
_find_paths[128]: advancer id <29>
pseudoedge «22->23» added
<29> RIGHT _new(25) _nearside(22) _farside(2) _apex(23), _wedge_end: 2 22, _funnel: [2, 22]
<29> infranear
_find_paths[129]: advancer id <29>
pseudoedge «25->22» added
{29} advancer revisited triangle
_find_paths[130]: advancer id <11>
pseudoedge «14->3» added
{11} advancer revisited triangle
_find_paths[131]: advancer id <23>
{23} advancer reached DEAD-END (root or mesh edge)
_find_paths[132]: advancer id <12>
pseudoedge «14->3» added
{12} advancer revisited triangle
_find_paths[133]: advancer id <24>
{24} advancer reached DEAD-END (root or mesh edge)
PathFinder: loops performed: 133
hookchoices: [2, 3]
best: hook = 3, sector = 1, dist = 1791.29
path: [3, 4, 5, -1]
hook changed from 2 to 3: recalculating loads
hookchoices: [8, 11]
best: hook = 8, sector = 9, dist = 905.15
path: [8, 15, -1]
<PathFinder: created 3 detour vertices, total length changed by 12.48%
[9]:
wfn2
[9]:
../_images/notebooks_a05_debugging_16_0.svg

Log all OptiWindNet modules¶

Logging is hierarchical. By specifying the top-level module, all submodules are included.

[10]:
# here we use basicConfig to prepend each log message with the source module name
logging.basicConfig(
    level=logging.DEBUG,
    format="%(name)s: %(message)s",
    stream=sys.stdout,
)
logger_own = logging.getLogger('optiwindnet')
[11]:
wfn3 = WindFarmNetwork.from_yaml(filepath='data/example_location.yaml', cables=4)
[12]:
res3 = wfn3.optimize()
optiwindnet.mesh: PART A
optiwindnet.mesh: PART B
optiwindnet.mesh: PART C
optiwindnet.mesh: is_hole: False, ring: 0, num_vertices: 4
optiwindnet.mesh: ((-0.25564496185965113, 0.07687039890429721), (-0.0964256500979665, -0.015065913370998107), (-0.08974871121763778, -0.0073617531244649795), (-0.15754532138712932, 0.16598185242253038))
optiwindnet.mesh: is_hole: False, ring: 1, num_vertices: 4
optiwindnet.mesh: ((0.24435503814034887, -0.13781886663242596), (-0.010909471361448774, 0.030131826741996243), (-0.021181685023492942, 0.021143639787707592), (0.03916757024101656, -0.18840951891799348))
optiwindnet.mesh: is_hole: True, ring: 0, num_vertices: 4
optiwindnet.mesh: ((0.10285529494569041, 0.11898647491867832), (0.15421636325591126, 0.10614620784112311), (0.15421636325591126, 0.05221708611539121), (0.138808042762845, 0.04708097928436913))
optiwindnet.mesh: PART D
optiwindnet.mesh: PART E
optiwindnet.mesh: PART F
optiwindnet.mesh: convex_hull_A: [5, 11, 9, 7, 0, 1, 3, 4]
optiwindnet.mesh: hull_prunned: [5, 11, 9, 7, 0, 1, 3, 4]
optiwindnet.mesh: hull_prunned_edges: {(0, 1), (0, 7), (5, 11), (3, 4), (7, 9), (4, 5), (9, 11), (1, 3)}
optiwindnet.mesh: PART G
optiwindnet.mesh: hull_concave: [-1, 6, 11, 9, 7, 6, -1, 2, 0, 1, 3, 4, 5]
optiwindnet.mesh: PART H
optiwindnet.mesh: holes
optiwindnet.mesh: s: 22, t: 23, sC: (0.138808042762845, 0.04708097928436913), tC: (0.15421636325591126, 0.05221708611539121)
optiwindnet.mesh: s: 23, t: 24, sC: (0.15421636325591126, 0.05221708611539121), tC: (0.15421636325591126, 0.10614620784112311)
optiwindnet.mesh: s: 24, t: 25, sC: (0.15421636325591126, 0.10614620784112311), tC: (0.10285529494569041, 0.11898647491867832)
optiwindnet.mesh: s: 25, t: 22, sC: (0.10285529494569041, 0.11898647491867832), tC: (0.138808042762845, 0.04708097928436913)
optiwindnet.mesh: {(24, 25), (22, 25), (23, 24), (22, 23)}
optiwindnet.mesh: PART I
optiwindnet.mesh: hull_concave
optiwindnet.mesh: concavities
optiwindnet.mesh: PART J
optiwindnet.mesh: PART K
optiwindnet.mesh: ==== pivot 26 ====
optiwindnet.mesh: del_pivot_u 26 28
optiwindnet.mesh: del_conc 19 12
optiwindnet.mesh: del_pivot_end 26 27
optiwindnet.mesh: del_pivot_u 26 12
optiwindnet.mesh: ==== pivot 27 ====
optiwindnet.mesh: del_pivot_u 27 26
optiwindnet.mesh: ==== pivot 28 ====
optiwindnet.mesh: del_conc 14 17
optiwindnet.mesh: del_pivot_end 28 26
optiwindnet.mesh: del_pivot_u 28 17
optiwindnet.mesh: PART L
optiwindnet.mesh: PART M
optiwindnet.mesh: A_edge: 0–7 length: 1997.762; path: [0, 21, 20, 7]
optiwindnet.mesh: s: 0; b: 21; t: 20;
optiwindnet.mesh: a: 12; c: 20; s: 0, t: 20
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: s: 21; b: 20; t: 7;
optiwindnet.mesh: a: 21; c: 19; s: 21, t: 7
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: A_edge: 3–-1 length: 1159.045; path: [3, 25, -1]
optiwindnet.mesh: s: 3; b: 25; t: -1;
optiwindnet.mesh: a: 24; c: 22; s: 3, t: -1
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: A_edge: 5–11 length: 1311.176; path: [5, 15, 16, 11]
optiwindnet.mesh: s: 5; b: 15; t: 16;
optiwindnet.mesh: a: 16; c: 14; s: 5, t: 16
optiwindnet.mesh: Non-shortable at 3rd test.
optiwindnet.mesh: s: 15; b: 16; t: 11;
optiwindnet.mesh: a: 17; c: 15; s: 15, t: 11
optiwindnet.mesh: Non-shortable at 3rd test.
optiwindnet.mesh: A_edge: 2–7 length: 1400.502; path: [2, 21, 20, 7]
optiwindnet.mesh: s: 2; b: 21; t: 20;
optiwindnet.mesh: a: 12; c: 20; s: 2, t: 20
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: s: 21; b: 20; t: 7;
optiwindnet.mesh: a: 21; c: 19; s: 21, t: 7
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: A_edge: 10–-1 length: 909.253; path: [10, 16, 15, -1]
optiwindnet.mesh: s: 10; b: 16; t: 15;
optiwindnet.mesh: a: 17; c: 15; s: 10, t: 15
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: s: 16; b: 15; t: -1;
optiwindnet.mesh: a: 16; c: 14; s: 16, t: -1
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: A_edge: 4–6 length: 1022.923; path: [4, 21, 20, 6]
optiwindnet.mesh: s: 4; b: 21; t: 20;
optiwindnet.mesh: a: 12; c: 20; s: 4, t: 20
optiwindnet.mesh: (0) 4 21 20 shortcut
optiwindnet.mesh: s: 4; b: 20; t: 6;
optiwindnet.mesh: a: 21; c: 19; s: 4, t: 6
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: A_edge: 1–4 length: 920.305; path: [1, 23, 22, 4]
optiwindnet.mesh: s: 1; b: 23; t: 22;
optiwindnet.mesh: a: 22; c: 24; s: 1, t: 22
optiwindnet.mesh: (0) 1 23 22 shortcut
optiwindnet.mesh: s: 1; b: 22; t: 4;
optiwindnet.mesh: a: 25; c: 23; s: 1, t: 4
optiwindnet.mesh: Non-shortable at 3rd test.
optiwindnet.mesh: A_edge: 0–6 length: 1616.066; path: [0, 21, 20, 6]
optiwindnet.mesh: s: 0; b: 21; t: 20;
optiwindnet.mesh: a: 12; c: 20; s: 0, t: 20
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: s: 21; b: 20; t: 6;
optiwindnet.mesh: a: 21; c: 19; s: 21, t: 6
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: A_edge: 11–-1 length: 985.722; path: [11, 16, 15, -1]
optiwindnet.mesh: s: 11; b: 16; t: 15;
optiwindnet.mesh: a: 17; c: 15; s: 11, t: 15
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: s: 16; b: 15; t: -1;
optiwindnet.mesh: a: 16; c: 14; s: 16, t: -1
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: A_edge: 1–7 length: 1845.557; path: [1, 2, 21, 20, 7]
optiwindnet.mesh: A_edge: 2–6 length: 1018.806; path: [2, 21, 20, 6]
optiwindnet.mesh: s: 2; b: 21; t: 20;
optiwindnet.mesh: a: 12; c: 20; s: 2, t: 20
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: s: 21; b: 20; t: 6;
optiwindnet.mesh: a: 21; c: 19; s: 21, t: 6
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: A_edge: 5–6 length: 969.949; path: [5, 15, 6]
optiwindnet.mesh: s: 5; b: 15; t: 6;
optiwindnet.mesh: a: 16; c: 14; s: 5, t: 6
optiwindnet.mesh: Non-shortable at 3rd test.
optiwindnet.mesh: A_edge: 4–11 length: 1514.511; path: [4, 20, 15, 16, 11]
optiwindnet.mesh: A_edge: 2–11 length: 1511.620; path: [2, 21, 20, 15, 16, 11]
optiwindnet.mesh: s: 2; b: 21; t: 20;
optiwindnet.mesh: a: 12; c: 20; s: 2, t: 20
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: s: 21; b: 20; t: 15;
optiwindnet.mesh: a: 21; c: 19; s: 21, t: 15
optiwindnet.mesh: (1) 21 20 15 shortcut
optiwindnet.mesh: s: 2; b: 21; t: 15;
optiwindnet.mesh: a: 12; c: 20; s: 2, t: 15
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: s: 21; b: 15; t: 16;
optiwindnet.mesh: a: 16; c: 14; s: 21, t: 16
optiwindnet.mesh: (1) 21 15 16 shortcut
optiwindnet.mesh: s: 2; b: 21; t: 16;
optiwindnet.mesh: a: 12; c: 20; s: 2, t: 16
optiwindnet.mesh: Non-shortable at 4th test.
optiwindnet.mesh: s: 21; b: 16; t: 11;
optiwindnet.mesh: a: 17; c: 15; s: 21, t: 11
optiwindnet.mesh: Non-shortable at 3rd test.
optiwindnet.mesh: A_edge: 2–8 length: 1355.415; path: [2, 21, 20, 6, 8]
optiwindnet.mesh: PART N
optiwindnet.mesh: updating d2root of ⟨-1, 10⟩ (path [-1, 15, 16, 10])
optiwindnet.mesh: s: -1; b: 15; t: 16;
optiwindnet.mesh: a: 16; c: 14; s: -1, t: 16
optiwindnet.mesh: Non-shortable at 3rd test.
optiwindnet.mesh: s: 15; b: 16; t: 10;
optiwindnet.mesh: a: 17; c: 15; s: 15, t: 10
optiwindnet.mesh: Non-shortable at 3rd test.
optiwindnet.mesh: d2roots[10, -1] updated
optiwindnet.mesh: updating d2root of ⟨-1, 11⟩ (path [-1, 15, 16, 11])
optiwindnet.mesh: s: -1; b: 15; t: 16;
optiwindnet.mesh: a: 16; c: 14; s: -1, t: 16
optiwindnet.mesh: Non-shortable at 3rd test.
optiwindnet.mesh: s: 15; b: 16; t: 11;
optiwindnet.mesh: a: 17; c: 15; s: 15, t: 11
optiwindnet.mesh: Non-shortable at 3rd test.
optiwindnet.mesh: d2roots[11, -1] updated
optiwindnet.mesh: updating d2root of ⟨-1, 3⟩ (path [-1, 25, 3])
optiwindnet.mesh: s: -1; b: 25; t: 3;
optiwindnet.mesh: a: 24; c: 22; s: -1, t: 3
optiwindnet.mesh: Non-shortable at 3rd test.
optiwindnet.mesh: d2roots[3, -1] updated
optiwindnet.mesh: updating d2root of ⟨-1, 9⟩ (path [-1, 15, 16, 10, 9])
optiwindnet.mesh: s: -1; b: 15; t: 16;
optiwindnet.mesh: a: 16; c: 14; s: -1, t: 16
optiwindnet.mesh: Non-shortable at 3rd test.
optiwindnet.mesh: s: 15; b: 16; t: 9;
optiwindnet.mesh: a: 17; c: 15; s: 15, t: 9
optiwindnet.mesh: d2roots[9, -1] updated
optiwindnet.mesh: updating d2root of ⟨-1, 0⟩ (path [-1, 21, 0])
optiwindnet.mesh: s: -1; b: 21; t: 0;
optiwindnet.mesh: a: 12; c: 20; s: -1, t: 0
optiwindnet.mesh: PART O
optiwindnet.mesh: PART P
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <0>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <0>, «0~1», tradeoff = -1045.968
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <1>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <1>, «1~0», tradeoff = -851.372
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <2>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <2>, «2~1», tradeoff = -416.066
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <3>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <3>, «3~4», tradeoff = -595.165
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <4>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <4>, «4~3», tradeoff = -62.100
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <5>
optiwindnet.heuristics.EW_presolver: <cancelling> 5
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <6>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <6>, «6~8», tradeoff = -292.727
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <7>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <7>, «7~6», tradeoff = -577.867
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <8>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <8>, «8~6», tradeoff = -567.296
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <9>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <9>, «9~10», tradeoff = -841.283
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <10>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <10>, «10~9», tradeoff = -515.130
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <11>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <11>, «11~10», tradeoff = -511.075
optiwindnet.heuristics.EW_presolver: [1]
optiwindnet.heuristics.EW_presolver: <popped> «0~1», sr_u: <0>
optiwindnet.heuristics.EW_presolver: <add edge> «0~1» subroot <1>
optiwindnet.heuristics.EW_presolver: heap top: <1>, «[1, 0]» -851.372
optiwindnet.heuristics.EW_presolver: [2]
optiwindnet.heuristics.EW_presolver: stale_subtrees: {1}
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <1>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <1>, «1~2», tradeoff = -830.788
optiwindnet.heuristics.EW_presolver: <popped> «9~10», sr_u: <9>
optiwindnet.heuristics.EW_presolver: <add edge> «9~10» subroot <10>
optiwindnet.heuristics.EW_presolver: heap top: <1>, «[1, 2]» -830.788
optiwindnet.heuristics.EW_presolver: [3]
optiwindnet.heuristics.EW_presolver: stale_subtrees: {10}
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <10>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <10>, «10~8», tradeoff = -494.133
optiwindnet.heuristics.EW_presolver: <popped> «1~2», sr_u: <1>
optiwindnet.heuristics.EW_presolver: <add edge> «1~2» subroot <2>
optiwindnet.heuristics.EW_presolver: heap top: <3>, «[3, 4]» -595.165
optiwindnet.heuristics.EW_presolver: [4]
optiwindnet.heuristics.EW_presolver: stale_subtrees: {2}
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <2>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <2>, «1~3», tradeoff = -308.157
optiwindnet.heuristics.EW_presolver: <popped> «3~4», sr_u: <3>
optiwindnet.heuristics.EW_presolver: <add edge> «3~4» subroot <4>
optiwindnet.heuristics.EW_presolver: heap top: <7>, «[7, 6]» -577.867
optiwindnet.heuristics.EW_presolver: [5]
optiwindnet.heuristics.EW_presolver: stale_subtrees: {2, 4}
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <4>
optiwindnet.heuristics.EW_presolver: <cancelling> 4
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <2>
optiwindnet.heuristics.EW_presolver: <cancelling> 2
optiwindnet.heuristics.EW_presolver: <popped> «7~6», sr_u: <7>
optiwindnet.heuristics.EW_presolver: <add edge> «7~6» subroot <6>
optiwindnet.heuristics.EW_presolver: heap top: <8>, «[8, 6]» -567.296
optiwindnet.heuristics.EW_presolver: [6]
optiwindnet.heuristics.EW_presolver: stale_subtrees: {6}
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <6>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <6>, «6~8», tradeoff = -292.727
optiwindnet.heuristics.EW_presolver: <popped> «8~6», sr_u: <8>
optiwindnet.heuristics.EW_presolver: <add edge> «8~6» subroot <6>
optiwindnet.heuristics.EW_presolver: heap top: <11>, «[11, 10]» -511.075
optiwindnet.heuristics.EW_presolver: [7]
optiwindnet.heuristics.EW_presolver: stale_subtrees: {10, 6}
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <10>
optiwindnet.heuristics.EW_presolver: <pushed> sr_u <10>, «10~11», tradeoff = -434.606
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <6>
optiwindnet.heuristics.EW_presolver: <cancelling> 6
optiwindnet.heuristics.EW_presolver: <popped> «11~10», sr_u: <11>
optiwindnet.heuristics.EW_presolver: <add edge> «11~10» subroot <10>
optiwindnet.heuristics.EW_presolver: heap top: <10>, «[10, 11]» -434.606
optiwindnet.heuristics.EW_presolver: [8]
optiwindnet.heuristics.EW_presolver: stale_subtrees: {10}
optiwindnet.heuristics.EW_presolver: <enqueue_best_union> starting... subroot = <10>
optiwindnet.heuristics.EW_presolver: <cancelling> 10
>PathFinder: "example_location" (T = 12)
optiwindnet.pathfinding: >PathFinder: "example_location" (T = 12)
optiwindnet.mesh: differences between G and P: [(-1, 10)]
optiwindnet.mesh: in G, not in P: -1–10
optiwindnet.mesh: share 1 neighbors.
pseudoedge «20->-1» added
optiwindnet.pathfinding: pseudoedge «20->-1» added
pseudoedge «6->-1» added
optiwindnet.pathfinding: pseudoedge «6->-1» added
pseudoedge «6->-1» added
optiwindnet.pathfinding: pseudoedge «6->-1» added
pseudoedge «15->-1» added
optiwindnet.pathfinding: pseudoedge «15->-1» added
pseudoedge «15->-1» added
optiwindnet.pathfinding: pseudoedge «15->-1» added
pseudoedge «5->-1» added
optiwindnet.pathfinding: pseudoedge «5->-1» added
pseudoedge «4->-1» added
optiwindnet.pathfinding: pseudoedge «4->-1» added
pseudoedge «4->-1» added
optiwindnet.pathfinding: pseudoedge «4->-1» added
pseudoedge «2->-1» added
optiwindnet.pathfinding: pseudoedge «2->-1» added
pseudoedge «2->-1» added
optiwindnet.pathfinding: pseudoedge «2->-1» added
pseudoedge «21->-1» added
optiwindnet.pathfinding: pseudoedge «21->-1» added
_find_paths[1]: advancer id <0>
optiwindnet.pathfinding: _find_paths[1]: advancer id <0>
<0> RIGHT _new(7) _nearside(6) _farside(20) _apex(-1), _wedge_end: 20 6, _funnel: [20, 6]
optiwindnet.pathfinding: <0> RIGHT _new(7) _nearside(6) _farside(20) _apex(-1), _wedge_end: 20 6, _funnel: [20, 6]
<0> inside
optiwindnet.pathfinding: <0> inside
_find_paths[2]: advancer id <5>
optiwindnet.pathfinding: _find_paths[2]: advancer id <5>
<5> RIGHT _new(12) _nearside(21) _farside(2) _apex(-1), _wedge_end: 2 21, _funnel: [2, 21]
optiwindnet.pathfinding: <5> RIGHT _new(12) _nearside(21) _farside(2) _apex(-1), _wedge_end: 2 21, _funnel: [2, 21]
<5> inside
optiwindnet.pathfinding: <5> inside
_find_paths[3]: advancer id <1>
optiwindnet.pathfinding: _find_paths[3]: advancer id <1>
<1> RIGHT _new(16) _nearside(15) _farside(6) _apex(-1), _wedge_end: 6 15, _funnel: [6, 15]
optiwindnet.pathfinding: <1> RIGHT _new(16) _nearside(15) _farside(6) _apex(-1), _wedge_end: 6 15, _funnel: [6, 15]
<1> infranear
optiwindnet.pathfinding: <1> infranear
_find_paths[4]: advancer id <2>
optiwindnet.pathfinding: _find_paths[4]: advancer id <2>
<2> LEFT  _new(14) _nearside(15) _farside(5) _apex(-1), _wedge_end: 15 5, _funnel: [15, 5]
optiwindnet.pathfinding: <2> LEFT  _new(14) _nearside(15) _farside(5) _apex(-1), _wedge_end: 15 5, _funnel: [15, 5]
<2> inside
optiwindnet.pathfinding: <2> inside
_find_paths[5]: advancer id <3>
optiwindnet.pathfinding: _find_paths[5]: advancer id <3>
<3> RIGHT _new(14) _nearside(4) _farside(5) _apex(-1), _wedge_end: 5 4, _funnel: [5, 4]
optiwindnet.pathfinding: <3> RIGHT _new(14) _nearside(4) _farside(5) _apex(-1), _wedge_end: 5 4, _funnel: [5, 4]
<3> ultrafar
optiwindnet.pathfinding: <3> ultrafar
_find_paths[6]: advancer id <6>
optiwindnet.pathfinding: _find_paths[6]: advancer id <6>
<6> LEFT  _new(14) _nearside(5) _farside(4) _apex(-1), _wedge_end: 5 4, _funnel: [5, 4]
optiwindnet.pathfinding: <6> LEFT  _new(14) _nearside(5) _farside(4) _apex(-1), _wedge_end: 5 4, _funnel: [5, 4]
<6> infranear
optiwindnet.pathfinding: <6> infranear
_find_paths[7]: advancer id <1>
optiwindnet.pathfinding: _find_paths[7]: advancer id <1>
pseudoedge «16->15» added
optiwindnet.pathfinding: pseudoedge «16->15» added
<1> new keeper for (16, -9223372036854775808) via 15: d_path = 397.67
optiwindnet.pathfinding: <1> new keeper for (16, -9223372036854775808) via 15: d_path = 397.67
<1> RIGHT _new(11) _nearside(15) _farside(6) _apex(-1), _wedge_end: 6 16, _funnel: [6, 15]
optiwindnet.pathfinding: <1> RIGHT _new(11) _nearside(15) _farside(6) _apex(-1), _wedge_end: 6 16, _funnel: [6, 15]
<1> infranear
optiwindnet.pathfinding: <1> infranear
_find_paths[8]: advancer id <7>
optiwindnet.pathfinding: _find_paths[8]: advancer id <7>
<7> LEFT  _new(11) _nearside(6) _farside(15) _apex(-1), _wedge_end: 6 16, _funnel: [6, 15]
optiwindnet.pathfinding: <7> LEFT  _new(11) _nearside(6) _farside(15) _apex(-1), _wedge_end: 6 16, _funnel: [6, 15]
<7> ultrafar
optiwindnet.pathfinding: <7> ultrafar
_find_paths[9]: advancer id <2>
optiwindnet.pathfinding: _find_paths[9]: advancer id <2>
pseudoedge «14->-1» added
optiwindnet.pathfinding: pseudoedge «14->-1» added
<2> new keeper for (14, -9223372036854775808) via -1: d_path = 445.53
optiwindnet.pathfinding: <2> new keeper for (14, -9223372036854775808) via -1: d_path = 445.53
<2> RIGHT _new(4) _nearside(5) _farside(14) _apex(-1), _wedge_end: 14 5, _funnel: [14, 5]
optiwindnet.pathfinding: <2> RIGHT _new(4) _nearside(5) _farside(14) _apex(-1), _wedge_end: 14 5, _funnel: [14, 5]
<2> infranear
optiwindnet.pathfinding: <2> infranear
_find_paths[10]: advancer id <8>
optiwindnet.pathfinding: _find_paths[10]: advancer id <8>
<8> LEFT  _new(4) _nearside(14) _farside(5) _apex(-1), _wedge_end: 14 5, _funnel: [14, 5]
optiwindnet.pathfinding: <8> LEFT  _new(4) _nearside(14) _farside(5) _apex(-1), _wedge_end: 14 5, _funnel: [14, 5]
<8> ultrafar
optiwindnet.pathfinding: <8> ultrafar
_find_paths[11]: advancer id <3>
optiwindnet.pathfinding: _find_paths[11]: advancer id <3>
pseudoedge «14->5» added
optiwindnet.pathfinding: pseudoedge «14->5» added
<3> RIGHT _new(15) _nearside(14) _farside(5) _apex(5), _wedge_end: 5 14, _funnel: [5, 14]
optiwindnet.pathfinding: <3> RIGHT _new(15) _nearside(14) _farside(5) _apex(5), _wedge_end: 5 14, _funnel: [5, 14]
<3> inside
optiwindnet.pathfinding: <3> inside
_find_paths[12]: advancer id <6>
optiwindnet.pathfinding: _find_paths[12]: advancer id <6>
<6> RIGHT _new(3) _nearside(4) _farside(5) _apex(-1), _wedge_end: 14 4, _funnel: [5, 4]
optiwindnet.pathfinding: <6> RIGHT _new(3) _nearside(4) _farside(5) _apex(-1), _wedge_end: 14 4, _funnel: [5, 4]
<6> infranear
optiwindnet.pathfinding: <6> infranear
_find_paths[13]: advancer id <4>
optiwindnet.pathfinding: _find_paths[13]: advancer id <4>
<4> RIGHT _new(25) _nearside(2) _farside(4) _apex(-1), _wedge_end: 4 2, _funnel: [4, 2]
optiwindnet.pathfinding: <4> RIGHT _new(25) _nearside(2) _farside(4) _apex(-1), _wedge_end: 4 2, _funnel: [4, 2]
<4> inside
optiwindnet.pathfinding: <4> inside
_find_paths[14]: advancer id <9>
optiwindnet.pathfinding: _find_paths[14]: advancer id <9>
<9> LEFT  _new(25) _nearside(4) _farside(2) _apex(-1), _wedge_end: 4 2, _funnel: [4, 2]
optiwindnet.pathfinding: <9> LEFT  _new(25) _nearside(4) _farside(2) _apex(-1), _wedge_end: 4 2, _funnel: [4, 2]
<9> inside
optiwindnet.pathfinding: <9> inside
_find_paths[15]: advancer id <4>
optiwindnet.pathfinding: _find_paths[15]: advancer id <4>
pseudoedge «25->-1» added
optiwindnet.pathfinding: pseudoedge «25->-1» added
<4> new keeper for (25, -9223372036854775808) via -1: d_path = 717.21
optiwindnet.pathfinding: <4> new keeper for (25, -9223372036854775808) via -1: d_path = 717.21
<4> LEFT  _new(3) _nearside(4) _farside(25) _apex(-1), _wedge_end: 4 25, _funnel: [4, 25]
optiwindnet.pathfinding: <4> LEFT  _new(3) _nearside(4) _farside(25) _apex(-1), _wedge_end: 4 25, _funnel: [4, 25]
<4> ultrafar
optiwindnet.pathfinding: <4> ultrafar
_find_paths[16]: advancer id <9>
optiwindnet.pathfinding: _find_paths[16]: advancer id <9>
<9> LEFT  _new(22) _nearside(25) _farside(2) _apex(-1), _wedge_end: 25 2, _funnel: [25, 2]
optiwindnet.pathfinding: <9> LEFT  _new(22) _nearside(25) _farside(2) _apex(-1), _wedge_end: 25 2, _funnel: [25, 2]
<9> inside
optiwindnet.pathfinding: <9> inside
_find_paths[17]: advancer id <9>
optiwindnet.pathfinding: _find_paths[17]: advancer id <9>
pseudoedge «22->-1» added
optiwindnet.pathfinding: pseudoedge «22->-1» added
<9> new keeper for (22, -9223372036854775808) via -1: d_path = 856.03
optiwindnet.pathfinding: <9> new keeper for (22, -9223372036854775808) via -1: d_path = 856.03
<9> LEFT  _new(23) _nearside(22) _farside(2) _apex(-1), _wedge_end: 22 2, _funnel: [22, 2]
optiwindnet.pathfinding: <9> LEFT  _new(23) _nearside(22) _farside(2) _apex(-1), _wedge_end: 22 2, _funnel: [22, 2]
<9> infranear
optiwindnet.pathfinding: <9> infranear
_find_paths[18]: advancer id <9>
optiwindnet.pathfinding: _find_paths[18]: advancer id <9>
pseudoedge «23->22» added
optiwindnet.pathfinding: pseudoedge «23->22» added
<9> new keeper for (23, -9223372036854775808) via 22: d_path = 919.27
optiwindnet.pathfinding: <9> new keeper for (23, -9223372036854775808) via 22: d_path = 919.27
<9> RIGHT _new(3) _nearside(2) _farside(22) _apex(-1), _wedge_end: 23 2, _funnel: [22, 2]
optiwindnet.pathfinding: <9> RIGHT _new(3) _nearside(2) _farside(22) _apex(-1), _wedge_end: 23 2, _funnel: [22, 2]
<9> ultrafar
optiwindnet.pathfinding: <9> ultrafar
_find_paths[19]: advancer id <10>
optiwindnet.pathfinding: _find_paths[19]: advancer id <10>
<10> LEFT  _new(3) _nearside(22) _farside(2) _apex(-1), _wedge_end: 23 2, _funnel: [22, 2]
optiwindnet.pathfinding: <10> LEFT  _new(3) _nearside(22) _farside(2) _apex(-1), _wedge_end: 23 2, _funnel: [22, 2]
<10> infranear
optiwindnet.pathfinding: <10> infranear
_find_paths[20]: advancer id <1>
optiwindnet.pathfinding: _find_paths[20]: advancer id <1>
pseudoedge «11->16» added
optiwindnet.pathfinding: pseudoedge «11->16» added
<1> new keeper for (11, 10) via 16: d_path = 985.72
optiwindnet.pathfinding: <1> new keeper for (11, 10) via 16: d_path = 985.72
<1> RIGHT _new(10) _nearside(15) _farside(6) _apex(-1), _wedge_end: 6 11, _funnel: [6, 15]
optiwindnet.pathfinding: <1> RIGHT _new(10) _nearside(15) _farside(6) _apex(-1), _wedge_end: 6 11, _funnel: [6, 15]
<1> infranear
optiwindnet.pathfinding: <1> infranear
_find_paths[21]: advancer id <1>
optiwindnet.pathfinding: _find_paths[21]: advancer id <1>
pseudoedge «10->16» added
optiwindnet.pathfinding: pseudoedge «10->16» added
<1> new keeper for (10, 11) via 16: d_path = 909.25
optiwindnet.pathfinding: <1> new keeper for (10, 11) via 16: d_path = 909.25
<1> LEFT  _new(8) _nearside(6) _farside(15) _apex(-1), _wedge_end: 6 10, _funnel: [6, 15]
optiwindnet.pathfinding: <1> LEFT  _new(8) _nearside(6) _farside(15) _apex(-1), _wedge_end: 6 10, _funnel: [6, 15]
<1> ultrafar
optiwindnet.pathfinding: <1> ultrafar
_find_paths[22]: advancer id <1>
optiwindnet.pathfinding: _find_paths[22]: advancer id <1>
pseudoedge «8->15» added
optiwindnet.pathfinding: pseudoedge «8->15» added
<1> new keeper for (8, 6) via 15: d_path = 905.15
optiwindnet.pathfinding: <1> new keeper for (8, 6) via 15: d_path = 905.15
<1> RIGHT _new(9) _nearside(16) _farside(8) _apex(15), _wedge_end: 8 10, _funnel: [8, 16]
optiwindnet.pathfinding: <1> RIGHT _new(9) _nearside(16) _farside(8) _apex(15), _wedge_end: 8 10, _funnel: [8, 16]
<1> inside
optiwindnet.pathfinding: <1> inside
_find_paths[23]: advancer id <7>
optiwindnet.pathfinding: _find_paths[23]: advancer id <7>
<7> RIGHT _new(17) _nearside(16) _farside(11) _apex(16), _wedge_end: 11 16, _funnel: [11, 16]
optiwindnet.pathfinding: <7> RIGHT _new(17) _nearside(16) _farside(11) _apex(16), _wedge_end: 11 16, _funnel: [11, 16]
<7> inside
optiwindnet.pathfinding: <7> inside
_find_paths[24]: advancer id <3>
optiwindnet.pathfinding: _find_paths[24]: advancer id <3>
pseudoedge «15->5» added
optiwindnet.pathfinding: pseudoedge «15->5» added
<3> new keeper for (15, -9223372036854775808) via 5: d_path = 1073.46
optiwindnet.pathfinding: <3> new keeper for (15, -9223372036854775808) via 5: d_path = 1073.46
{3} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {3} advancer reached DEAD-END (root or mesh edge)
_find_paths[25]: advancer id <0>
optiwindnet.pathfinding: _find_paths[25]: advancer id <0>
pseudoedge «7->-1» added
optiwindnet.pathfinding: pseudoedge «7->-1» added
<0> new keeper for (7, 6) via -1: d_path = 1099.03
optiwindnet.pathfinding: <0> new keeper for (7, 6) via -1: d_path = 1099.03
<0> LEFT  _new(19) _nearside(20) _farside(7) _apex(-1), _wedge_end: 20 7, _funnel: [20, 7]
optiwindnet.pathfinding: <0> LEFT  _new(19) _nearside(20) _farside(7) _apex(-1), _wedge_end: 20 7, _funnel: [20, 7]
<0> inside
optiwindnet.pathfinding: <0> inside
_find_paths[26]: advancer id <7>
optiwindnet.pathfinding: _find_paths[26]: advancer id <7>
pseudoedge «17->16» added
optiwindnet.pathfinding: pseudoedge «17->16» added
<7> new keeper for (17, -9223372036854775808) via 16: d_path = 1113.60
optiwindnet.pathfinding: <7> new keeper for (17, -9223372036854775808) via 16: d_path = 1113.60
<7> RIGHT _new(9) _nearside(17) _farside(11) _apex(16), _wedge_end: 11 17, _funnel: [11, 17]
optiwindnet.pathfinding: <7> RIGHT _new(9) _nearside(17) _farside(11) _apex(16), _wedge_end: 11 17, _funnel: [11, 17]
<7> ultrafar
optiwindnet.pathfinding: <7> ultrafar
_find_paths[27]: advancer id <11>
optiwindnet.pathfinding: _find_paths[27]: advancer id <11>
<11> LEFT  _new(9) _nearside(11) _farside(17) _apex(16), _wedge_end: 11 17, _funnel: [11, 17]
optiwindnet.pathfinding: <11> LEFT  _new(9) _nearside(11) _farside(17) _apex(16), _wedge_end: 11 17, _funnel: [11, 17]
<11> infranear
optiwindnet.pathfinding: <11> infranear
_find_paths[28]: advancer id <0>
optiwindnet.pathfinding: _find_paths[28]: advancer id <0>
pseudoedge «19->-1» added
optiwindnet.pathfinding: pseudoedge «19->-1» added
<0> new keeper for (19, -9223372036854775808) via -1: d_path = 1153.92
optiwindnet.pathfinding: <0> new keeper for (19, -9223372036854775808) via -1: d_path = 1153.92
<0> RIGHT _new(9) _nearside(7) _farside(19) _apex(-1), _wedge_end: 19 7, _funnel: [19, 7]
optiwindnet.pathfinding: <0> RIGHT _new(9) _nearside(7) _farside(19) _apex(-1), _wedge_end: 19 7, _funnel: [19, 7]
<0> infranear
optiwindnet.pathfinding: <0> infranear
_find_paths[29]: advancer id <12>
optiwindnet.pathfinding: _find_paths[29]: advancer id <12>
<12> LEFT  _new(9) _nearside(19) _farside(7) _apex(-1), _wedge_end: 19 7, _funnel: [19, 7]
optiwindnet.pathfinding: <12> LEFT  _new(9) _nearside(19) _farside(7) _apex(-1), _wedge_end: 19 7, _funnel: [19, 7]
<12> ultrafar
optiwindnet.pathfinding: <12> ultrafar
_find_paths[30]: advancer id <4>
optiwindnet.pathfinding: _find_paths[30]: advancer id <4>
pseudoedge «3->25» added
optiwindnet.pathfinding: pseudoedge «3->25» added
<4> new keeper for (3, 4) via 25: d_path = 1159.04
optiwindnet.pathfinding: <4> new keeper for (3, 4) via 25: d_path = 1159.04
<4> RIGHT _new(24) _nearside(25) _farside(3) _apex(25), _wedge_end: 3 25, _funnel: [3, 25]
optiwindnet.pathfinding: <4> RIGHT _new(24) _nearside(25) _farside(3) _apex(25), _wedge_end: 3 25, _funnel: [3, 25]
<4> inside
optiwindnet.pathfinding: <4> inside
_find_paths[31]: advancer id <4>
optiwindnet.pathfinding: _find_paths[31]: advancer id <4>
pseudoedge «24->25» added
optiwindnet.pathfinding: pseudoedge «24->25» added
<4> new keeper for (24, -9223372036854775808) via 25: d_path = 923.36
optiwindnet.pathfinding: <4> new keeper for (24, -9223372036854775808) via 25: d_path = 923.36
<4> RIGHT _new(23) _nearside(24) _farside(3) _apex(25), _wedge_end: 3 24, _funnel: [3, 24]
optiwindnet.pathfinding: <4> RIGHT _new(23) _nearside(24) _farside(3) _apex(25), _wedge_end: 3 24, _funnel: [3, 24]
<4> infranear
optiwindnet.pathfinding: <4> infranear
_find_paths[32]: advancer id <4>
optiwindnet.pathfinding: _find_paths[32]: advancer id <4>
pseudoedge «23->24» added
optiwindnet.pathfinding: pseudoedge «23->24» added
<4> RIGHT _new(2) _nearside(24) _farside(3) _apex(25), _wedge_end: 3 23, _funnel: [3, 24]
optiwindnet.pathfinding: <4> RIGHT _new(2) _nearside(24) _farside(3) _apex(25), _wedge_end: 3 23, _funnel: [3, 24]
<4> infranear
optiwindnet.pathfinding: <4> infranear
_find_paths[33]: advancer id <13>
optiwindnet.pathfinding: _find_paths[33]: advancer id <13>
<13> LEFT  _new(2) _nearside(3) _farside(24) _apex(25), _wedge_end: 3 23, _funnel: [3, 24]
optiwindnet.pathfinding: <13> LEFT  _new(2) _nearside(3) _farside(24) _apex(25), _wedge_end: 3 23, _funnel: [3, 24]
<13> ultrafar
optiwindnet.pathfinding: <13> ultrafar
_find_paths[34]: advancer id <6>
optiwindnet.pathfinding: _find_paths[34]: advancer id <6>
pseudoedge «3->4» added
optiwindnet.pathfinding: pseudoedge «3->4» added
<6> RIGHT _new(28) _nearside(4) _farside(5) _apex(-1), _wedge_end: 14 3, _funnel: [5, 4]
optiwindnet.pathfinding: <6> RIGHT _new(28) _nearside(4) _farside(5) _apex(-1), _wedge_end: 14 3, _funnel: [5, 4]
<6> inside
optiwindnet.pathfinding: <6> inside
_find_paths[35]: advancer id <6>
optiwindnet.pathfinding: _find_paths[35]: advancer id <6>
pseudoedge «28->-1» added
optiwindnet.pathfinding: pseudoedge «28->-1» added
<6> new keeper for (28, -9223372036854775808) via -1: d_path = 7423.95
optiwindnet.pathfinding: <6> new keeper for (28, -9223372036854775808) via -1: d_path = 7423.95
{6} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {6} advancer reached DEAD-END (root or mesh edge)
_find_paths[36]: advancer id <14>
optiwindnet.pathfinding: _find_paths[36]: advancer id <14>
<14> LEFT  _new(28) _nearside(5) _farside(4) _apex(-1), _wedge_end: 14 3, _funnel: [5, 4]
optiwindnet.pathfinding: <14> LEFT  _new(28) _nearside(5) _farside(4) _apex(-1), _wedge_end: 14 3, _funnel: [5, 4]
<14> inside
optiwindnet.pathfinding: <14> inside
_find_paths[37]: advancer id <14>
optiwindnet.pathfinding: _find_paths[37]: advancer id <14>
<14> LEFT  _new(27) _nearside(28) _farside(4) _apex(-1), _wedge_end: 28 3, _funnel: [28, 4]
optiwindnet.pathfinding: <14> LEFT  _new(27) _nearside(28) _farside(4) _apex(-1), _wedge_end: 28 3, _funnel: [28, 4]
<14> ultrafar
optiwindnet.pathfinding: <14> ultrafar
_find_paths[38]: advancer id <14>
optiwindnet.pathfinding: _find_paths[38]: advancer id <14>
pseudoedge «27->3» added
optiwindnet.pathfinding: pseudoedge «27->3» added
<14> new keeper for (27, -9223372036854775808) via 3: d_path = 8589.66
optiwindnet.pathfinding: <14> new keeper for (27, -9223372036854775808) via 3: d_path = 8589.66
<14> RIGHT _new(1) _nearside(3) _farside(27) _apex(3), _wedge_end: 27 3, _funnel: [27, 3]
optiwindnet.pathfinding: <14> RIGHT _new(1) _nearside(3) _farside(27) _apex(3), _wedge_end: 27 3, _funnel: [27, 3]
<14> inside
optiwindnet.pathfinding: <14> inside
_find_paths[39]: advancer id <15>
optiwindnet.pathfinding: _find_paths[39]: advancer id <15>
<15> LEFT  _new(1) _nearside(27) _farside(3) _apex(3), _wedge_end: 27 3, _funnel: [27, 3]
optiwindnet.pathfinding: <15> LEFT  _new(1) _nearside(27) _farside(3) _apex(3), _wedge_end: 27 3, _funnel: [27, 3]
<15> inside
optiwindnet.pathfinding: <15> inside
_find_paths[40]: advancer id <2>
optiwindnet.pathfinding: _find_paths[40]: advancer id <2>
pseudoedge «4->5» added
optiwindnet.pathfinding: pseudoedge «4->5» added
<2> RIGHT _new(3) _nearside(5) _farside(14) _apex(-1), _wedge_end: 14 4, _funnel: [14, 5]
optiwindnet.pathfinding: <2> RIGHT _new(3) _nearside(5) _farside(14) _apex(-1), _wedge_end: 14 4, _funnel: [14, 5]
<2> infranear
optiwindnet.pathfinding: <2> infranear
_find_paths[41]: advancer id <1>
optiwindnet.pathfinding: _find_paths[41]: advancer id <1>
pseudoedge «9->15» added
optiwindnet.pathfinding: pseudoedge «9->15» added
<1> new keeper for (9, 10) via 15: d_path = 1235.41
optiwindnet.pathfinding: <1> new keeper for (9, 10) via 15: d_path = 1235.41
<1> RIGHT _new(7) _nearside(9) _farside(8) _apex(15), _wedge_end: 8 9, _funnel: [8, 9]
optiwindnet.pathfinding: <1> RIGHT _new(7) _nearside(9) _farside(8) _apex(15), _wedge_end: 8 9, _funnel: [8, 9]
<1> ultrafar
optiwindnet.pathfinding: <1> ultrafar
_find_paths[42]: advancer id <16>
optiwindnet.pathfinding: _find_paths[42]: advancer id <16>
<16> LEFT  _new(7) _nearside(8) _farside(9) _apex(15), _wedge_end: 8 9, _funnel: [8, 9]
optiwindnet.pathfinding: <16> LEFT  _new(7) _nearside(8) _farside(9) _apex(15), _wedge_end: 8 9, _funnel: [8, 9]
<16> infranear
optiwindnet.pathfinding: <16> infranear
_find_paths[43]: advancer id <9>
optiwindnet.pathfinding: _find_paths[43]: advancer id <9>
pseudoedge «3->23» added
optiwindnet.pathfinding: pseudoedge «3->23» added
<9> LEFT  _new(24) _nearside(23) _farside(3) _apex(23), _wedge_end: 23 3, _funnel: [23, 3]
optiwindnet.pathfinding: <9> LEFT  _new(24) _nearside(23) _farside(3) _apex(23), _wedge_end: 23 3, _funnel: [23, 3]
<9> inside
optiwindnet.pathfinding: <9> inside
_find_paths[44]: advancer id <9>
optiwindnet.pathfinding: _find_paths[44]: advancer id <9>
pseudoedge «24->23» added
optiwindnet.pathfinding: pseudoedge «24->23» added
<9> LEFT  _new(25) _nearside(24) _farside(3) _apex(23), _wedge_end: 24 3, _funnel: [24, 3]
optiwindnet.pathfinding: <9> LEFT  _new(25) _nearside(24) _farside(3) _apex(23), _wedge_end: 24 3, _funnel: [24, 3]
<9> infranear
optiwindnet.pathfinding: <9> infranear
_find_paths[45]: advancer id <10>
optiwindnet.pathfinding: _find_paths[45]: advancer id <10>
<10> RIGHT _new(1) _nearside(2) _farside(22) _apex(-1), _wedge_end: 3 2, _funnel: [22, 2]
optiwindnet.pathfinding: <10> RIGHT _new(1) _nearside(2) _farside(22) _apex(-1), _wedge_end: 3 2, _funnel: [22, 2]
<10> inside
optiwindnet.pathfinding: <10> inside
_find_paths[46]: advancer id <10>
optiwindnet.pathfinding: _find_paths[46]: advancer id <10>
pseudoedge «1->-1» added
optiwindnet.pathfinding: pseudoedge «1->-1» added
<10> new keeper for (1, 2) via -1: d_path = 1275.84
optiwindnet.pathfinding: <10> new keeper for (1, 2) via -1: d_path = 1275.84
<10> RIGHT _new(27) _nearside(1) _farside(22) _apex(-1), _wedge_end: 3 1, _funnel: [22, 1]
optiwindnet.pathfinding: <10> RIGHT _new(27) _nearside(1) _farside(22) _apex(-1), _wedge_end: 3 1, _funnel: [22, 1]
<10> infranear
optiwindnet.pathfinding: <10> infranear
_find_paths[47]: advancer id <10>
optiwindnet.pathfinding: _find_paths[47]: advancer id <10>
pseudoedge «27->1» added
optiwindnet.pathfinding: pseudoedge «27->1» added
<10> new keeper for (27, -9223372036854775808) via 1: d_path = 8292.63
optiwindnet.pathfinding: <10> new keeper for (27, -9223372036854775808) via 1: d_path = 8292.63
<10> RIGHT _new(28) _nearside(1) _farside(22) _apex(-1), _wedge_end: 3 27, _funnel: [22, 1]
optiwindnet.pathfinding: <10> RIGHT _new(28) _nearside(1) _farside(22) _apex(-1), _wedge_end: 3 27, _funnel: [22, 1]
<10> ultrafar
optiwindnet.pathfinding: <10> ultrafar
_find_paths[48]: advancer id <10>
optiwindnet.pathfinding: _find_paths[48]: advancer id <10>
pseudoedge «28->3» added
optiwindnet.pathfinding: pseudoedge «28->3» added
<10> RIGHT _new(14) _nearside(28) _farside(3) _apex(3), _wedge_end: 3 28, _funnel: [3, 28]
optiwindnet.pathfinding: <10> RIGHT _new(14) _nearside(28) _farside(3) _apex(3), _wedge_end: 3 28, _funnel: [3, 28]
<10> inside
optiwindnet.pathfinding: <10> inside
_find_paths[49]: advancer id <17>
optiwindnet.pathfinding: _find_paths[49]: advancer id <17>
<17> LEFT  _new(27) _nearside(22) _farside(1) _apex(-1), _wedge_end: 3 1, _funnel: [22, 1]
optiwindnet.pathfinding: <17> LEFT  _new(27) _nearside(22) _farside(1) _apex(-1), _wedge_end: 3 1, _funnel: [22, 1]
<17> ultrafar
optiwindnet.pathfinding: <17> ultrafar
_find_paths[50]: advancer id <17>
optiwindnet.pathfinding: _find_paths[50]: advancer id <17>
<17> RIGHT _new(12) _nearside(1) _farside(27) _apex(1), _wedge_end: 27 1, _funnel: [27, 1]
optiwindnet.pathfinding: <17> RIGHT _new(12) _nearside(1) _farside(27) _apex(1), _wedge_end: 27 1, _funnel: [27, 1]
<17> inside
optiwindnet.pathfinding: <17> inside
_find_paths[51]: advancer id <18>
optiwindnet.pathfinding: _find_paths[51]: advancer id <18>
<18> LEFT  _new(14) _nearside(3) _farside(28) _apex(3), _wedge_end: 3 28, _funnel: [3, 28]
optiwindnet.pathfinding: <18> LEFT  _new(14) _nearside(3) _farside(28) _apex(3), _wedge_end: 3 28, _funnel: [3, 28]
<18> inside
optiwindnet.pathfinding: <18> inside
_find_paths[52]: advancer id <19>
optiwindnet.pathfinding: _find_paths[52]: advancer id <19>
<19> LEFT  _new(12) _nearside(27) _farside(1) _apex(1), _wedge_end: 27 1, _funnel: [27, 1]
optiwindnet.pathfinding: <19> LEFT  _new(12) _nearside(27) _farside(1) _apex(1), _wedge_end: 27 1, _funnel: [27, 1]
<19> inside
optiwindnet.pathfinding: <19> inside
_find_paths[53]: advancer id <9>
optiwindnet.pathfinding: _find_paths[53]: advancer id <9>
pseudoedge «25->24» added
optiwindnet.pathfinding: pseudoedge «25->24» added
<9> RIGHT _new(4) _nearside(3) _farside(24) _apex(23), _wedge_end: 25 3, _funnel: [24, 3]
optiwindnet.pathfinding: <9> RIGHT _new(4) _nearside(3) _farside(24) _apex(23), _wedge_end: 25 3, _funnel: [24, 3]
<9> ultrafar
optiwindnet.pathfinding: <9> ultrafar
_find_paths[54]: advancer id <4>
optiwindnet.pathfinding: _find_paths[54]: advancer id <4>
pseudoedge «2->23» added
optiwindnet.pathfinding: pseudoedge «2->23» added
<4> RIGHT _new(1) _nearside(24) _farside(3) _apex(25), _wedge_end: 3 2, _funnel: [3, 24]
optiwindnet.pathfinding: <4> RIGHT _new(1) _nearside(24) _farside(3) _apex(25), _wedge_end: 3 2, _funnel: [3, 24]
<4> infranear
optiwindnet.pathfinding: <4> infranear
_find_paths[55]: advancer id <13>
optiwindnet.pathfinding: _find_paths[55]: advancer id <13>
<13> RIGHT _new(22) _nearside(23) _farside(2) _apex(23), _wedge_end: 2 23, _funnel: [2, 23]
optiwindnet.pathfinding: <13> RIGHT _new(22) _nearside(23) _farside(2) _apex(23), _wedge_end: 2 23, _funnel: [2, 23]
<13> inside
optiwindnet.pathfinding: <13> inside
_find_paths[56]: advancer id <13>
optiwindnet.pathfinding: _find_paths[56]: advancer id <13>
pseudoedge «22->23» added
optiwindnet.pathfinding: pseudoedge «22->23» added
<13> RIGHT _new(25) _nearside(22) _farside(2) _apex(23), _wedge_end: 2 22, _funnel: [2, 22]
optiwindnet.pathfinding: <13> RIGHT _new(25) _nearside(22) _farside(2) _apex(23), _wedge_end: 2 22, _funnel: [2, 22]
<13> infranear
optiwindnet.pathfinding: <13> infranear
_find_paths[57]: advancer id <1>
optiwindnet.pathfinding: _find_paths[57]: advancer id <1>
pseudoedge «7->8» added
optiwindnet.pathfinding: pseudoedge «7->8» added
<1> RIGHT _new(6) _nearside(7) _farside(8) _apex(8), _wedge_end: 8 7, _funnel: [8, 7]
optiwindnet.pathfinding: <1> RIGHT _new(6) _nearside(7) _farside(8) _apex(8), _wedge_end: 8 7, _funnel: [8, 7]
<1> inside
optiwindnet.pathfinding: <1> inside
pseudoedge «6->8» added
optiwindnet.pathfinding: pseudoedge «6->8» added
{1} advancer reached DEAD-END (not portals)
optiwindnet.pathfinding: {1} advancer reached DEAD-END (not portals)
_find_paths[58]: advancer id <16>
optiwindnet.pathfinding: _find_paths[58]: advancer id <16>
<16> RIGHT _new(19) _nearside(9) _farside(8) _apex(15), _wedge_end: 7 9, _funnel: [8, 9]
optiwindnet.pathfinding: <16> RIGHT _new(19) _nearside(9) _farside(8) _apex(15), _wedge_end: 7 9, _funnel: [8, 9]
<16> ultrafar
optiwindnet.pathfinding: <16> ultrafar
_find_paths[59]: advancer id <20>
optiwindnet.pathfinding: _find_paths[59]: advancer id <20>
<20> LEFT  _new(19) _nearside(8) _farside(9) _apex(15), _wedge_end: 7 9, _funnel: [8, 9]
optiwindnet.pathfinding: <20> LEFT  _new(19) _nearside(8) _farside(9) _apex(15), _wedge_end: 7 9, _funnel: [8, 9]
<20> infranear
optiwindnet.pathfinding: <20> infranear
_find_paths[60]: advancer id <4>
optiwindnet.pathfinding: _find_paths[60]: advancer id <4>
pseudoedge «1->24» added
optiwindnet.pathfinding: pseudoedge «1->24» added
<4> RIGHT _new(27) _nearside(24) _farside(3) _apex(25), _wedge_end: 3 1, _funnel: [3, 24]
optiwindnet.pathfinding: <4> RIGHT _new(27) _nearside(24) _farside(3) _apex(25), _wedge_end: 3 1, _funnel: [3, 24]
<4> infranear
optiwindnet.pathfinding: <4> infranear
_find_paths[61]: advancer id <4>
optiwindnet.pathfinding: _find_paths[61]: advancer id <4>
pseudoedge «27->24» added
optiwindnet.pathfinding: pseudoedge «27->24» added
<4> RIGHT _new(28) _nearside(24) _farside(3) _apex(25), _wedge_end: 3 27, _funnel: [3, 24]
optiwindnet.pathfinding: <4> RIGHT _new(28) _nearside(24) _farside(3) _apex(25), _wedge_end: 3 27, _funnel: [3, 24]
<4> ultrafar
optiwindnet.pathfinding: <4> ultrafar
_find_paths[62]: advancer id <4>
optiwindnet.pathfinding: _find_paths[62]: advancer id <4>
pseudoedge «28->3» added
optiwindnet.pathfinding: pseudoedge «28->3» added
<4> RIGHT _new(14) _nearside(28) _farside(3) _apex(3), _wedge_end: 3 28, _funnel: [3, 28]
optiwindnet.pathfinding: <4> RIGHT _new(14) _nearside(28) _farside(3) _apex(3), _wedge_end: 3 28, _funnel: [3, 28]
<4> inside
optiwindnet.pathfinding: <4> inside
_find_paths[63]: advancer id <21>
optiwindnet.pathfinding: _find_paths[63]: advancer id <21>
<21> LEFT  _new(27) _nearside(3) _farside(24) _apex(25), _wedge_end: 3 1, _funnel: [3, 24]
optiwindnet.pathfinding: <21> LEFT  _new(27) _nearside(3) _farside(24) _apex(25), _wedge_end: 3 1, _funnel: [3, 24]
<21> ultrafar
optiwindnet.pathfinding: <21> ultrafar
_find_paths[64]: advancer id <21>
optiwindnet.pathfinding: _find_paths[64]: advancer id <21>
<21> RIGHT _new(12) _nearside(1) _farside(27) _apex(24), _wedge_end: 27 1, _funnel: [27, 1]
optiwindnet.pathfinding: <21> RIGHT _new(12) _nearside(1) _farside(27) _apex(24), _wedge_end: 27 1, _funnel: [27, 1]
<21> infranear
optiwindnet.pathfinding: <21> infranear
_find_paths[65]: advancer id <22>
optiwindnet.pathfinding: _find_paths[65]: advancer id <22>
<22> LEFT  _new(14) _nearside(3) _farside(28) _apex(3), _wedge_end: 3 28, _funnel: [3, 28]
optiwindnet.pathfinding: <22> LEFT  _new(14) _nearside(3) _farside(28) _apex(3), _wedge_end: 3 28, _funnel: [3, 28]
<22> inside
optiwindnet.pathfinding: <22> inside
_find_paths[66]: advancer id <23>
optiwindnet.pathfinding: _find_paths[66]: advancer id <23>
<23> LEFT  _new(12) _nearside(27) _farside(1) _apex(24), _wedge_end: 27 1, _funnel: [27, 1]
optiwindnet.pathfinding: <23> LEFT  _new(12) _nearside(27) _farside(1) _apex(24), _wedge_end: 27 1, _funnel: [27, 1]
<23> ultrafar
optiwindnet.pathfinding: <23> ultrafar
_find_paths[67]: advancer id <9>
optiwindnet.pathfinding: _find_paths[67]: advancer id <9>
pseudoedge «4->24» added
optiwindnet.pathfinding: pseudoedge «4->24» added
{9} advancer revisited triangle
optiwindnet.pathfinding: {9} advancer revisited triangle
_find_paths[68]: advancer id <13>
optiwindnet.pathfinding: _find_paths[68]: advancer id <13>
pseudoedge «25->22» added
optiwindnet.pathfinding: pseudoedge «25->22» added
{13} advancer revisited triangle
optiwindnet.pathfinding: {13} advancer revisited triangle
_find_paths[69]: advancer id <5>
optiwindnet.pathfinding: _find_paths[69]: advancer id <5>
pseudoedge «12->-1» added
optiwindnet.pathfinding: pseudoedge «12->-1» added
<5> new keeper for (12, -9223372036854775808) via -1: d_path = 1523.09
optiwindnet.pathfinding: <5> new keeper for (12, -9223372036854775808) via -1: d_path = 1523.09
<5> RIGHT _new(0) _nearside(12) _farside(2) _apex(-1), _wedge_end: 2 12, _funnel: [2, 12]
optiwindnet.pathfinding: <5> RIGHT _new(0) _nearside(12) _farside(2) _apex(-1), _wedge_end: 2 12, _funnel: [2, 12]
<5> inside
optiwindnet.pathfinding: <5> inside
_find_paths[70]: advancer id <5>
optiwindnet.pathfinding: _find_paths[70]: advancer id <5>
pseudoedge «0->-1» added
optiwindnet.pathfinding: pseudoedge «0->-1» added
<5> new keeper for (0, 1) via -1: d_path = 1470.44
optiwindnet.pathfinding: <5> new keeper for (0, 1) via -1: d_path = 1470.44
<5> RIGHT _new(1) _nearside(0) _farside(2) _apex(-1), _wedge_end: 2 0, _funnel: [2, 0]
optiwindnet.pathfinding: <5> RIGHT _new(1) _nearside(0) _farside(2) _apex(-1), _wedge_end: 2 0, _funnel: [2, 0]
<5> ultrafar
optiwindnet.pathfinding: <5> ultrafar
pseudoedge «1->2» added
optiwindnet.pathfinding: pseudoedge «1->2» added
{5} advancer reached DEAD-END (not portals)
optiwindnet.pathfinding: {5} advancer reached DEAD-END (not portals)
_find_paths[71]: advancer id <24>
optiwindnet.pathfinding: _find_paths[71]: advancer id <24>
<24> LEFT  _new(0) _nearside(2) _farside(12) _apex(-1), _wedge_end: 2 12, _funnel: [2, 12]
optiwindnet.pathfinding: <24> LEFT  _new(0) _nearside(2) _farside(12) _apex(-1), _wedge_end: 2 12, _funnel: [2, 12]
<24> inside
optiwindnet.pathfinding: <24> inside
_find_paths[72]: advancer id <24>
optiwindnet.pathfinding: _find_paths[72]: advancer id <24>
<24> LEFT  _new(1) _nearside(0) _farside(12) _apex(-1), _wedge_end: 0 12, _funnel: [0, 12]
optiwindnet.pathfinding: <24> LEFT  _new(1) _nearside(0) _farside(12) _apex(-1), _wedge_end: 0 12, _funnel: [0, 12]
<24> infranear
optiwindnet.pathfinding: <24> infranear
_find_paths[73]: advancer id <16>
optiwindnet.pathfinding: _find_paths[73]: advancer id <16>
pseudoedge «19->7» added
optiwindnet.pathfinding: pseudoedge «19->7» added
<16> RIGHT _new(20) _nearside(19) _farside(7) _apex(7), _wedge_end: 7 19, _funnel: [7, 19]
optiwindnet.pathfinding: <16> RIGHT _new(20) _nearside(19) _farside(7) _apex(7), _wedge_end: 7 19, _funnel: [7, 19]
<16> inside
optiwindnet.pathfinding: <16> inside
_find_paths[74]: advancer id <20>
optiwindnet.pathfinding: _find_paths[74]: advancer id <20>
<20> RIGHT _new(26) _nearside(9) _farside(8) _apex(15), _wedge_end: 19 9, _funnel: [8, 9]
optiwindnet.pathfinding: <20> RIGHT _new(26) _nearside(9) _farside(8) _apex(15), _wedge_end: 19 9, _funnel: [8, 9]
<20> infranear
optiwindnet.pathfinding: <20> infranear
_find_paths[75]: advancer id <20>
optiwindnet.pathfinding: _find_paths[75]: advancer id <20>
pseudoedge «26->9» added
optiwindnet.pathfinding: pseudoedge «26->9» added
<20> new keeper for (26, -9223372036854775808) via 9: d_path = 7900.12
optiwindnet.pathfinding: <20> new keeper for (26, -9223372036854775808) via 9: d_path = 7900.12
{20} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {20} advancer reached DEAD-END (root or mesh edge)
_find_paths[76]: advancer id <25>
optiwindnet.pathfinding: _find_paths[76]: advancer id <25>
<25> LEFT  _new(26) _nearside(8) _farside(9) _apex(15), _wedge_end: 19 9, _funnel: [8, 9]
optiwindnet.pathfinding: <25> LEFT  _new(26) _nearside(8) _farside(9) _apex(15), _wedge_end: 19 9, _funnel: [8, 9]
<25> ultrafar
optiwindnet.pathfinding: <25> ultrafar
_find_paths[77]: advancer id <25>
optiwindnet.pathfinding: _find_paths[77]: advancer id <25>
<25> RIGHT _new(17) _nearside(9) _farside(26) _apex(9), _wedge_end: 26 9, _funnel: [26, 9]
optiwindnet.pathfinding: <25> RIGHT _new(17) _nearside(9) _farside(26) _apex(9), _wedge_end: 26 9, _funnel: [26, 9]
<25> inside
optiwindnet.pathfinding: <25> inside
_find_paths[78]: advancer id <26>
optiwindnet.pathfinding: _find_paths[78]: advancer id <26>
<26> LEFT  _new(17) _nearside(26) _farside(9) _apex(9), _wedge_end: 26 9, _funnel: [26, 9]
optiwindnet.pathfinding: <26> LEFT  _new(17) _nearside(26) _farside(9) _apex(9), _wedge_end: 26 9, _funnel: [26, 9]
<26> inside
optiwindnet.pathfinding: <26> inside
_find_paths[79]: advancer id <14>
optiwindnet.pathfinding: _find_paths[79]: advancer id <14>
pseudoedge «1->3» added
optiwindnet.pathfinding: pseudoedge «1->3» added
<14> RIGHT _new(12) _nearside(1) _farside(27) _apex(3), _wedge_end: 27 1, _funnel: [27, 1]
optiwindnet.pathfinding: <14> RIGHT _new(12) _nearside(1) _farside(27) _apex(3), _wedge_end: 27 1, _funnel: [27, 1]
<14> infranear
optiwindnet.pathfinding: <14> infranear
_find_paths[80]: advancer id <15>
optiwindnet.pathfinding: _find_paths[80]: advancer id <15>
<15> LEFT  _new(2) _nearside(1) _farside(3) _apex(3), _wedge_end: 1 3, _funnel: [1, 3]
optiwindnet.pathfinding: <15> LEFT  _new(2) _nearside(1) _farside(3) _apex(3), _wedge_end: 1 3, _funnel: [1, 3]
<15> inside
optiwindnet.pathfinding: <15> inside
_find_paths[81]: advancer id <27>
optiwindnet.pathfinding: _find_paths[81]: advancer id <27>
<27> LEFT  _new(12) _nearside(27) _farside(1) _apex(3), _wedge_end: 27 1, _funnel: [27, 1]
optiwindnet.pathfinding: <27> LEFT  _new(12) _nearside(27) _farside(1) _apex(3), _wedge_end: 27 1, _funnel: [27, 1]
<27> ultrafar
optiwindnet.pathfinding: <27> ultrafar
_find_paths[82]: advancer id <17>
optiwindnet.pathfinding: _find_paths[82]: advancer id <17>
pseudoedge «12->1» added
optiwindnet.pathfinding: pseudoedge «12->1» added
{17} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {17} advancer reached DEAD-END (root or mesh edge)
_find_paths[83]: advancer id <19>
optiwindnet.pathfinding: _find_paths[83]: advancer id <19>
<19> RIGHT _new(0) _nearside(1) _farside(12) _apex(1), _wedge_end: 12 1, _funnel: [12, 1]
optiwindnet.pathfinding: <19> RIGHT _new(0) _nearside(1) _farside(12) _apex(1), _wedge_end: 12 1, _funnel: [12, 1]
<19> inside
optiwindnet.pathfinding: <19> inside
_find_paths[84]: advancer id <19>
optiwindnet.pathfinding: _find_paths[84]: advancer id <19>
pseudoedge «0->1» added
optiwindnet.pathfinding: pseudoedge «0->1» added
<19> RIGHT _new(2) _nearside(0) _farside(12) _apex(1), _wedge_end: 12 0, _funnel: [12, 0]
optiwindnet.pathfinding: <19> RIGHT _new(2) _nearside(0) _farside(12) _apex(1), _wedge_end: 12 0, _funnel: [12, 0]
<19> infranear
optiwindnet.pathfinding: <19> infranear
_find_paths[85]: advancer id <28>
optiwindnet.pathfinding: _find_paths[85]: advancer id <28>
<28> LEFT  _new(2) _nearside(12) _farside(0) _apex(1), _wedge_end: 12 0, _funnel: [12, 0]
optiwindnet.pathfinding: <28> LEFT  _new(2) _nearside(12) _farside(0) _apex(1), _wedge_end: 12 0, _funnel: [12, 0]
<28> ultrafar
optiwindnet.pathfinding: <28> ultrafar
_find_paths[86]: advancer id <2>
optiwindnet.pathfinding: _find_paths[86]: advancer id <2>
pseudoedge «3->4» added
optiwindnet.pathfinding: pseudoedge «3->4» added
<2> RIGHT _new(28) _nearside(5) _farside(14) _apex(-1), _wedge_end: 14 3, _funnel: [14, 5]
optiwindnet.pathfinding: <2> RIGHT _new(28) _nearside(5) _farside(14) _apex(-1), _wedge_end: 14 3, _funnel: [14, 5]
<2> infranear
optiwindnet.pathfinding: <2> infranear
_find_paths[87]: advancer id <2>
optiwindnet.pathfinding: _find_paths[87]: advancer id <2>
pseudoedge «28->5» added
optiwindnet.pathfinding: pseudoedge «28->5» added
{2} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {2} advancer reached DEAD-END (root or mesh edge)
_find_paths[88]: advancer id <29>
optiwindnet.pathfinding: _find_paths[88]: advancer id <29>
<29> LEFT  _new(28) _nearside(14) _farside(5) _apex(-1), _wedge_end: 14 3, _funnel: [14, 5]
optiwindnet.pathfinding: <29> LEFT  _new(28) _nearside(14) _farside(5) _apex(-1), _wedge_end: 14 3, _funnel: [14, 5]
<29> ultrafar
optiwindnet.pathfinding: <29> ultrafar
_find_paths[89]: advancer id <29>
optiwindnet.pathfinding: _find_paths[89]: advancer id <29>
<29> LEFT  _new(27) _nearside(28) _farside(4) _apex(5), _wedge_end: 28 3, _funnel: [28, 4]
optiwindnet.pathfinding: <29> LEFT  _new(27) _nearside(28) _farside(4) _apex(5), _wedge_end: 28 3, _funnel: [28, 4]
<29> ultrafar
optiwindnet.pathfinding: <29> ultrafar
_find_paths[90]: advancer id <29>
optiwindnet.pathfinding: _find_paths[90]: advancer id <29>
pseudoedge «27->3» added
optiwindnet.pathfinding: pseudoedge «27->3» added
<29> RIGHT _new(1) _nearside(3) _farside(27) _apex(3), _wedge_end: 27 3, _funnel: [27, 3]
optiwindnet.pathfinding: <29> RIGHT _new(1) _nearside(3) _farside(27) _apex(3), _wedge_end: 27 3, _funnel: [27, 3]
<29> inside
optiwindnet.pathfinding: <29> inside
_find_paths[91]: advancer id <30>
optiwindnet.pathfinding: _find_paths[91]: advancer id <30>
<30> LEFT  _new(1) _nearside(27) _farside(3) _apex(3), _wedge_end: 27 3, _funnel: [27, 3]
optiwindnet.pathfinding: <30> LEFT  _new(1) _nearside(27) _farside(3) _apex(3), _wedge_end: 27 3, _funnel: [27, 3]
<30> inside
optiwindnet.pathfinding: <30> inside
_find_paths[92]: advancer id <7>
optiwindnet.pathfinding: _find_paths[92]: advancer id <7>
pseudoedge «9->11» added
optiwindnet.pathfinding: pseudoedge «9->11» added
<7> RIGHT _new(10) _nearside(9) _farside(11) _apex(11), _wedge_end: 11 9, _funnel: [11, 9]
optiwindnet.pathfinding: <7> RIGHT _new(10) _nearside(9) _farside(11) _apex(11), _wedge_end: 11 9, _funnel: [11, 9]
<7> inside
optiwindnet.pathfinding: <7> inside
pseudoedge «10->11» added
optiwindnet.pathfinding: pseudoedge «10->11» added
{7} advancer reached DEAD-END (not portals)
optiwindnet.pathfinding: {7} advancer reached DEAD-END (not portals)
_find_paths[93]: advancer id <11>
optiwindnet.pathfinding: _find_paths[93]: advancer id <11>
<11> RIGHT _new(26) _nearside(17) _farside(11) _apex(16), _wedge_end: 9 17, _funnel: [11, 17]
optiwindnet.pathfinding: <11> RIGHT _new(26) _nearside(17) _farside(11) _apex(16), _wedge_end: 9 17, _funnel: [11, 17]
<11> ultrafar
optiwindnet.pathfinding: <11> ultrafar
_find_paths[94]: advancer id <11>
optiwindnet.pathfinding: _find_paths[94]: advancer id <11>
pseudoedge «26->11» added
optiwindnet.pathfinding: pseudoedge «26->11» added
<11> RIGHT _new(19) _nearside(26) _farside(9) _apex(11), _wedge_end: 9 26, _funnel: [9, 26]
optiwindnet.pathfinding: <11> RIGHT _new(19) _nearside(26) _farside(9) _apex(11), _wedge_end: 9 26, _funnel: [9, 26]
<11> ultrafar
optiwindnet.pathfinding: <11> ultrafar
_find_paths[95]: advancer id <31>
optiwindnet.pathfinding: _find_paths[95]: advancer id <31>
<31> LEFT  _new(26) _nearside(11) _farside(17) _apex(16), _wedge_end: 9 17, _funnel: [11, 17]
optiwindnet.pathfinding: <31> LEFT  _new(26) _nearside(11) _farside(17) _apex(16), _wedge_end: 9 17, _funnel: [11, 17]
<31> infranear
optiwindnet.pathfinding: <31> infranear
_find_paths[96]: advancer id <31>
optiwindnet.pathfinding: _find_paths[96]: advancer id <31>
{31} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {31} advancer reached DEAD-END (root or mesh edge)
_find_paths[97]: advancer id <32>
optiwindnet.pathfinding: _find_paths[97]: advancer id <32>
<32> LEFT  _new(19) _nearside(9) _farside(26) _apex(11), _wedge_end: 9 26, _funnel: [9, 26]
optiwindnet.pathfinding: <32> LEFT  _new(19) _nearside(9) _farside(26) _apex(11), _wedge_end: 9 26, _funnel: [9, 26]
<32> infranear
optiwindnet.pathfinding: <32> infranear
_find_paths[98]: advancer id <15>
optiwindnet.pathfinding: _find_paths[98]: advancer id <15>
pseudoedge «2->3» added
optiwindnet.pathfinding: pseudoedge «2->3» added
<15> RIGHT _new(23) _nearside(3) _farside(2) _apex(3), _wedge_end: 2 3, _funnel: [2, 3]
optiwindnet.pathfinding: <15> RIGHT _new(23) _nearside(3) _farside(2) _apex(3), _wedge_end: 2 3, _funnel: [2, 3]
<15> inside
optiwindnet.pathfinding: <15> inside
_find_paths[99]: advancer id <15>
optiwindnet.pathfinding: _find_paths[99]: advancer id <15>
pseudoedge «23->3» added
optiwindnet.pathfinding: pseudoedge «23->3» added
<15> RIGHT _new(22) _nearside(23) _farside(2) _apex(3), _wedge_end: 2 23, _funnel: [2, 23]
optiwindnet.pathfinding: <15> RIGHT _new(22) _nearside(23) _farside(2) _apex(3), _wedge_end: 2 23, _funnel: [2, 23]
<15> infranear
optiwindnet.pathfinding: <15> infranear
_find_paths[100]: advancer id <15>
optiwindnet.pathfinding: _find_paths[100]: advancer id <15>
pseudoedge «22->23» added
optiwindnet.pathfinding: pseudoedge «22->23» added
<15> RIGHT _new(25) _nearside(23) _farside(2) _apex(3), _wedge_end: 2 22, _funnel: [2, 23]
optiwindnet.pathfinding: <15> RIGHT _new(25) _nearside(23) _farside(2) _apex(3), _wedge_end: 2 22, _funnel: [2, 23]
<15> infranear
optiwindnet.pathfinding: <15> infranear
_find_paths[101]: advancer id <33>
optiwindnet.pathfinding: _find_paths[101]: advancer id <33>
<33> LEFT  _new(23) _nearside(2) _farside(3) _apex(3), _wedge_end: 2 3, _funnel: [2, 3]
optiwindnet.pathfinding: <33> LEFT  _new(23) _nearside(2) _farside(3) _apex(3), _wedge_end: 2 3, _funnel: [2, 3]
<33> inside
optiwindnet.pathfinding: <33> inside
_find_paths[102]: advancer id <33>
optiwindnet.pathfinding: _find_paths[102]: advancer id <33>
<33> LEFT  _new(24) _nearside(23) _farside(3) _apex(3), _wedge_end: 23 3, _funnel: [23, 3]
optiwindnet.pathfinding: <33> LEFT  _new(24) _nearside(23) _farside(3) _apex(3), _wedge_end: 23 3, _funnel: [23, 3]
<33> inside
optiwindnet.pathfinding: <33> inside
_find_paths[103]: advancer id <33>
optiwindnet.pathfinding: _find_paths[103]: advancer id <33>
pseudoedge «24->3» added
optiwindnet.pathfinding: pseudoedge «24->3» added
<33> LEFT  _new(25) _nearside(24) _farside(3) _apex(3), _wedge_end: 24 3, _funnel: [24, 3]
optiwindnet.pathfinding: <33> LEFT  _new(25) _nearside(24) _farside(3) _apex(3), _wedge_end: 24 3, _funnel: [24, 3]
<33> inside
optiwindnet.pathfinding: <33> inside
_find_paths[104]: advancer id <33>
optiwindnet.pathfinding: _find_paths[104]: advancer id <33>
pseudoedge «25->3» added
optiwindnet.pathfinding: pseudoedge «25->3» added
<33> RIGHT _new(4) _nearside(3) _farside(25) _apex(3), _wedge_end: 25 3, _funnel: [25, 3]
optiwindnet.pathfinding: <33> RIGHT _new(4) _nearside(3) _farside(25) _apex(3), _wedge_end: 25 3, _funnel: [25, 3]
<33> inside
optiwindnet.pathfinding: <33> inside
_find_paths[105]: advancer id <33>
optiwindnet.pathfinding: _find_paths[105]: advancer id <33>
pseudoedge «4->3» added
optiwindnet.pathfinding: pseudoedge «4->3» added
<33> RIGHT _new(2) _nearside(4) _farside(25) _apex(3), _wedge_end: 25 4, _funnel: [25, 4]
optiwindnet.pathfinding: <33> RIGHT _new(2) _nearside(4) _farside(25) _apex(3), _wedge_end: 25 4, _funnel: [25, 4]
<33> ultrafar
optiwindnet.pathfinding: <33> ultrafar
_find_paths[106]: advancer id <34>
optiwindnet.pathfinding: _find_paths[106]: advancer id <34>
<34> LEFT  _new(2) _nearside(25) _farside(4) _apex(3), _wedge_end: 25 4, _funnel: [25, 4]
optiwindnet.pathfinding: <34> LEFT  _new(2) _nearside(25) _farside(4) _apex(3), _wedge_end: 25 4, _funnel: [25, 4]
<34> infranear
optiwindnet.pathfinding: <34> infranear
_find_paths[107]: advancer id <24>
optiwindnet.pathfinding: _find_paths[107]: advancer id <24>
pseudoedge «1->0» added
optiwindnet.pathfinding: pseudoedge «1->0» added
<24> RIGHT _new(27) _nearside(12) _farside(0) _apex(-1), _wedge_end: 1 12, _funnel: [0, 12]
optiwindnet.pathfinding: <24> RIGHT _new(27) _nearside(12) _farside(0) _apex(-1), _wedge_end: 1 12, _funnel: [0, 12]
<24> ultrafar
optiwindnet.pathfinding: <24> ultrafar
_find_paths[108]: advancer id <24>
optiwindnet.pathfinding: _find_paths[108]: advancer id <24>
pseudoedge «27->0» added
optiwindnet.pathfinding: pseudoedge «27->0» added
<24> new keeper for (27, -9223372036854775808) via 0: d_path = 8243.27
optiwindnet.pathfinding: <24> new keeper for (27, -9223372036854775808) via 0: d_path = 8243.27
<24> RIGHT _new(3) _nearside(27) _farside(1) _apex(0), _wedge_end: 1 27, _funnel: [1, 27]
optiwindnet.pathfinding: <24> RIGHT _new(3) _nearside(27) _farside(1) _apex(0), _wedge_end: 1 27, _funnel: [1, 27]
<24> ultrafar
optiwindnet.pathfinding: <24> ultrafar
_find_paths[109]: advancer id <35>
optiwindnet.pathfinding: _find_paths[109]: advancer id <35>
<35> LEFT  _new(27) _nearside(0) _farside(12) _apex(-1), _wedge_end: 1 12, _funnel: [0, 12]
optiwindnet.pathfinding: <35> LEFT  _new(27) _nearside(0) _farside(12) _apex(-1), _wedge_end: 1 12, _funnel: [0, 12]
<35> infranear
optiwindnet.pathfinding: <35> infranear
_find_paths[110]: advancer id <35>
optiwindnet.pathfinding: _find_paths[110]: advancer id <35>
{35} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {35} advancer reached DEAD-END (root or mesh edge)
_find_paths[111]: advancer id <36>
optiwindnet.pathfinding: _find_paths[111]: advancer id <36>
<36> LEFT  _new(3) _nearside(1) _farside(27) _apex(0), _wedge_end: 1 27, _funnel: [1, 27]
optiwindnet.pathfinding: <36> LEFT  _new(3) _nearside(1) _farside(27) _apex(0), _wedge_end: 1 27, _funnel: [1, 27]
<36> infranear
optiwindnet.pathfinding: <36> infranear
_find_paths[112]: advancer id <15>
optiwindnet.pathfinding: _find_paths[112]: advancer id <15>
pseudoedge «25->22» added
optiwindnet.pathfinding: pseudoedge «25->22» added
<15> RIGHT _new(4) _nearside(23) _farside(2) _apex(3), _wedge_end: 2 25, _funnel: [2, 23]
optiwindnet.pathfinding: <15> RIGHT _new(4) _nearside(23) _farside(2) _apex(3), _wedge_end: 2 25, _funnel: [2, 23]
<15> infranear
optiwindnet.pathfinding: <15> infranear
_find_paths[113]: advancer id <37>
optiwindnet.pathfinding: _find_paths[113]: advancer id <37>
<37> LEFT  _new(4) _nearside(2) _farside(23) _apex(3), _wedge_end: 2 25, _funnel: [2, 23]
optiwindnet.pathfinding: <37> LEFT  _new(4) _nearside(2) _farside(23) _apex(3), _wedge_end: 2 25, _funnel: [2, 23]
<37> ultrafar
optiwindnet.pathfinding: <37> ultrafar
_find_paths[114]: advancer id <21>
optiwindnet.pathfinding: _find_paths[114]: advancer id <21>
pseudoedge «12->1» added
optiwindnet.pathfinding: pseudoedge «12->1» added
{21} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {21} advancer reached DEAD-END (root or mesh edge)
_find_paths[115]: advancer id <23>
optiwindnet.pathfinding: _find_paths[115]: advancer id <23>
<23> RIGHT _new(0) _nearside(1) _farside(12) _apex(1), _wedge_end: 12 1, _funnel: [12, 1]
optiwindnet.pathfinding: <23> RIGHT _new(0) _nearside(1) _farside(12) _apex(1), _wedge_end: 12 1, _funnel: [12, 1]
<23> inside
optiwindnet.pathfinding: <23> inside
_find_paths[116]: advancer id <23>
optiwindnet.pathfinding: _find_paths[116]: advancer id <23>
pseudoedge «0->1» added
optiwindnet.pathfinding: pseudoedge «0->1» added
<23> RIGHT _new(2) _nearside(0) _farside(12) _apex(1), _wedge_end: 12 0, _funnel: [12, 0]
optiwindnet.pathfinding: <23> RIGHT _new(2) _nearside(0) _farside(12) _apex(1), _wedge_end: 12 0, _funnel: [12, 0]
<23> infranear
optiwindnet.pathfinding: <23> infranear
_find_paths[117]: advancer id <38>
optiwindnet.pathfinding: _find_paths[117]: advancer id <38>
<38> LEFT  _new(2) _nearside(12) _farside(0) _apex(1), _wedge_end: 12 0, _funnel: [12, 0]
optiwindnet.pathfinding: <38> LEFT  _new(2) _nearside(12) _farside(0) _apex(1), _wedge_end: 12 0, _funnel: [12, 0]
<38> ultrafar
optiwindnet.pathfinding: <38> ultrafar
_find_paths[118]: advancer id <0>
optiwindnet.pathfinding: _find_paths[118]: advancer id <0>
pseudoedge «9->7» added
optiwindnet.pathfinding: pseudoedge «9->7» added
<0> RIGHT _new(26) _nearside(7) _farside(19) _apex(-1), _wedge_end: 19 9, _funnel: [19, 7]
optiwindnet.pathfinding: <0> RIGHT _new(26) _nearside(7) _farside(19) _apex(-1), _wedge_end: 19 9, _funnel: [19, 7]
<0> infranear
optiwindnet.pathfinding: <0> infranear
_find_paths[119]: advancer id <0>
optiwindnet.pathfinding: _find_paths[119]: advancer id <0>
pseudoedge «26->7» added
optiwindnet.pathfinding: pseudoedge «26->7» added
{0} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {0} advancer reached DEAD-END (root or mesh edge)
_find_paths[120]: advancer id <12>
optiwindnet.pathfinding: _find_paths[120]: advancer id <12>
<12> RIGHT _new(8) _nearside(7) _farside(9) _apex(7), _wedge_end: 9 7, _funnel: [9, 7]
optiwindnet.pathfinding: <12> RIGHT _new(8) _nearside(7) _farside(9) _apex(7), _wedge_end: 9 7, _funnel: [9, 7]
<12> inside
optiwindnet.pathfinding: <12> inside
_find_paths[121]: advancer id <12>
optiwindnet.pathfinding: _find_paths[121]: advancer id <12>
pseudoedge «8->7» added
optiwindnet.pathfinding: pseudoedge «8->7» added
<12> LEFT  _new(10) _nearside(9) _farside(8) _apex(7), _wedge_end: 9 8, _funnel: [9, 8]
optiwindnet.pathfinding: <12> LEFT  _new(10) _nearside(9) _farside(8) _apex(7), _wedge_end: 9 8, _funnel: [9, 8]
<12> ultrafar
optiwindnet.pathfinding: <12> ultrafar
_find_paths[122]: advancer id <39>
optiwindnet.pathfinding: _find_paths[122]: advancer id <39>
<39> LEFT  _new(26) _nearside(19) _farside(7) _apex(-1), _wedge_end: 19 9, _funnel: [19, 7]
optiwindnet.pathfinding: <39> LEFT  _new(26) _nearside(19) _farside(7) _apex(-1), _wedge_end: 19 9, _funnel: [19, 7]
<39> ultrafar
optiwindnet.pathfinding: <39> ultrafar
_find_paths[123]: advancer id <39>
optiwindnet.pathfinding: _find_paths[123]: advancer id <39>
<39> RIGHT _new(17) _nearside(9) _farside(26) _apex(7), _wedge_end: 26 9, _funnel: [26, 9]
optiwindnet.pathfinding: <39> RIGHT _new(17) _nearside(9) _farside(26) _apex(7), _wedge_end: 26 9, _funnel: [26, 9]
<39> infranear
optiwindnet.pathfinding: <39> infranear
_find_paths[124]: advancer id <40>
optiwindnet.pathfinding: _find_paths[124]: advancer id <40>
<40> LEFT  _new(8) _nearside(9) _farside(7) _apex(7), _wedge_end: 9 7, _funnel: [9, 7]
optiwindnet.pathfinding: <40> LEFT  _new(8) _nearside(9) _farside(7) _apex(7), _wedge_end: 9 7, _funnel: [9, 7]
<40> inside
optiwindnet.pathfinding: <40> inside
_find_paths[125]: advancer id <40>
optiwindnet.pathfinding: _find_paths[125]: advancer id <40>
<40> RIGHT _new(6) _nearside(7) _farside(8) _apex(7), _wedge_end: 8 7, _funnel: [8, 7]
optiwindnet.pathfinding: <40> RIGHT _new(6) _nearside(7) _farside(8) _apex(7), _wedge_end: 8 7, _funnel: [8, 7]
<40> inside
optiwindnet.pathfinding: <40> inside
pseudoedge «6->7» added
optiwindnet.pathfinding: pseudoedge «6->7» added
{40} advancer reached DEAD-END (not portals)
optiwindnet.pathfinding: {40} advancer reached DEAD-END (not portals)
_find_paths[126]: advancer id <41>
optiwindnet.pathfinding: _find_paths[126]: advancer id <41>
<41> LEFT  _new(17) _nearside(26) _farside(9) _apex(7), _wedge_end: 26 9, _funnel: [26, 9]
optiwindnet.pathfinding: <41> LEFT  _new(17) _nearside(26) _farside(9) _apex(7), _wedge_end: 26 9, _funnel: [26, 9]
<41> ultrafar
optiwindnet.pathfinding: <41> ultrafar
_find_paths[127]: advancer id <12>
optiwindnet.pathfinding: _find_paths[127]: advancer id <12>
pseudoedge «10->8» added
optiwindnet.pathfinding: pseudoedge «10->8» added
<12> RIGHT _new(6) _nearside(8) _farside(10) _apex(8), _wedge_end: 10 8, _funnel: [10, 8]
optiwindnet.pathfinding: <12> RIGHT _new(6) _nearside(8) _farside(10) _apex(8), _wedge_end: 10 8, _funnel: [10, 8]
<12> inside
optiwindnet.pathfinding: <12> inside
_find_paths[128]: advancer id <12>
optiwindnet.pathfinding: _find_paths[128]: advancer id <12>
pseudoedge «6->8» added
optiwindnet.pathfinding: pseudoedge «6->8» added
<12> LEFT  _new(11) _nearside(10) _farside(6) _apex(8), _wedge_end: 10 6, _funnel: [10, 6]
optiwindnet.pathfinding: <12> LEFT  _new(11) _nearside(10) _farside(6) _apex(8), _wedge_end: 10 6, _funnel: [10, 6]
<12> inside
optiwindnet.pathfinding: <12> inside
_find_paths[129]: advancer id <37>
optiwindnet.pathfinding: _find_paths[129]: advancer id <37>
pseudoedge «4->22» added
optiwindnet.pathfinding: pseudoedge «4->22» added
<37> LEFT  _new(3) _nearside(4) _farside(25) _apex(22), _wedge_end: 4 25, _funnel: [4, 25]
optiwindnet.pathfinding: <37> LEFT  _new(3) _nearside(4) _farside(25) _apex(22), _wedge_end: 4 25, _funnel: [4, 25]
<37> ultrafar
optiwindnet.pathfinding: <37> ultrafar
_find_paths[130]: advancer id <33>
optiwindnet.pathfinding: _find_paths[130]: advancer id <33>
pseudoedge «2->25» added
optiwindnet.pathfinding: pseudoedge «2->25» added
<33> LEFT  _new(22) _nearside(25) _farside(2) _apex(25), _wedge_end: 25 2, _funnel: [25, 2]
optiwindnet.pathfinding: <33> LEFT  _new(22) _nearside(25) _farside(2) _apex(25), _wedge_end: 25 2, _funnel: [25, 2]
<33> inside
optiwindnet.pathfinding: <33> inside
_find_paths[131]: advancer id <33>
optiwindnet.pathfinding: _find_paths[131]: advancer id <33>
pseudoedge «22->25» added
optiwindnet.pathfinding: pseudoedge «22->25» added
<33> LEFT  _new(23) _nearside(22) _farside(2) _apex(25), _wedge_end: 22 2, _funnel: [22, 2]
optiwindnet.pathfinding: <33> LEFT  _new(23) _nearside(22) _farside(2) _apex(25), _wedge_end: 22 2, _funnel: [22, 2]
<33> infranear
optiwindnet.pathfinding: <33> infranear
_find_paths[132]: advancer id <33>
optiwindnet.pathfinding: _find_paths[132]: advancer id <33>
pseudoedge «23->22» added
optiwindnet.pathfinding: pseudoedge «23->22» added
{33} advancer revisited triangle
optiwindnet.pathfinding: {33} advancer revisited triangle
_find_paths[133]: advancer id <25>
optiwindnet.pathfinding: _find_paths[133]: advancer id <25>
pseudoedge «17->9» added
optiwindnet.pathfinding: pseudoedge «17->9» added
{25} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {25} advancer reached DEAD-END (root or mesh edge)
_find_paths[134]: advancer id <26>
optiwindnet.pathfinding: _find_paths[134]: advancer id <26>
<26> RIGHT _new(11) _nearside(9) _farside(17) _apex(9), _wedge_end: 17 9, _funnel: [17, 9]
optiwindnet.pathfinding: <26> RIGHT _new(11) _nearside(9) _farside(17) _apex(9), _wedge_end: 17 9, _funnel: [17, 9]
<26> inside
optiwindnet.pathfinding: <26> inside
_find_paths[135]: advancer id <26>
optiwindnet.pathfinding: _find_paths[135]: advancer id <26>
pseudoedge «11->9» added
optiwindnet.pathfinding: pseudoedge «11->9» added
<26> LEFT  _new(16) _nearside(17) _farside(11) _apex(9), _wedge_end: 17 11, _funnel: [17, 11]
optiwindnet.pathfinding: <26> LEFT  _new(16) _nearside(17) _farside(11) _apex(9), _wedge_end: 17 11, _funnel: [17, 11]
<26> ultrafar
optiwindnet.pathfinding: <26> ultrafar
_find_paths[136]: advancer id <42>
optiwindnet.pathfinding: _find_paths[136]: advancer id <42>
<42> LEFT  _new(11) _nearside(17) _farside(9) _apex(9), _wedge_end: 17 9, _funnel: [17, 9]
optiwindnet.pathfinding: <42> LEFT  _new(11) _nearside(17) _farside(9) _apex(9), _wedge_end: 17 9, _funnel: [17, 9]
<42> inside
optiwindnet.pathfinding: <42> inside
_find_paths[137]: advancer id <42>
optiwindnet.pathfinding: _find_paths[137]: advancer id <42>
<42> RIGHT _new(10) _nearside(9) _farside(11) _apex(9), _wedge_end: 11 9, _funnel: [11, 9]
optiwindnet.pathfinding: <42> RIGHT _new(10) _nearside(9) _farside(11) _apex(9), _wedge_end: 11 9, _funnel: [11, 9]
<42> inside
optiwindnet.pathfinding: <42> inside
pseudoedge «10->9» added
optiwindnet.pathfinding: pseudoedge «10->9» added
{42} advancer reached DEAD-END (not portals)
optiwindnet.pathfinding: {42} advancer reached DEAD-END (not portals)
_find_paths[138]: advancer id <14>
optiwindnet.pathfinding: _find_paths[138]: advancer id <14>
pseudoedge «12->1» added
optiwindnet.pathfinding: pseudoedge «12->1» added
{14} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {14} advancer reached DEAD-END (root or mesh edge)
_find_paths[139]: advancer id <27>
optiwindnet.pathfinding: _find_paths[139]: advancer id <27>
<27> RIGHT _new(0) _nearside(1) _farside(12) _apex(1), _wedge_end: 12 1, _funnel: [12, 1]
optiwindnet.pathfinding: <27> RIGHT _new(0) _nearside(1) _farside(12) _apex(1), _wedge_end: 12 1, _funnel: [12, 1]
<27> inside
optiwindnet.pathfinding: <27> inside
_find_paths[140]: advancer id <16>
optiwindnet.pathfinding: _find_paths[140]: advancer id <16>
pseudoedge «20->7» added
optiwindnet.pathfinding: pseudoedge «20->7» added
<16> new keeper for (20, -9223372036854775808) via 7: d_path = 2269.46
optiwindnet.pathfinding: <16> new keeper for (20, -9223372036854775808) via 7: d_path = 2269.46
<16> LEFT  _new(6) _nearside(7) _farside(20) _apex(7), _wedge_end: 7 20, _funnel: [7, 20]
optiwindnet.pathfinding: <16> LEFT  _new(6) _nearside(7) _farside(20) _apex(7), _wedge_end: 7 20, _funnel: [7, 20]
<16> inside
optiwindnet.pathfinding: <16> inside
_find_paths[141]: advancer id <19>
optiwindnet.pathfinding: _find_paths[141]: advancer id <19>
pseudoedge «2->0» added
optiwindnet.pathfinding: pseudoedge «2->0» added
<19> LEFT  _new(21) _nearside(12) _farside(0) _apex(1), _wedge_end: 12 2, _funnel: [12, 0]
optiwindnet.pathfinding: <19> LEFT  _new(21) _nearside(12) _farside(0) _apex(1), _wedge_end: 12 2, _funnel: [12, 0]
<19> ultrafar
optiwindnet.pathfinding: <19> ultrafar
_find_paths[142]: advancer id <28>
optiwindnet.pathfinding: _find_paths[142]: advancer id <28>
<28> RIGHT _new(1) _nearside(0) _farside(2) _apex(0), _wedge_end: 2 0, _funnel: [2, 0]
optiwindnet.pathfinding: <28> RIGHT _new(1) _nearside(0) _farside(2) _apex(0), _wedge_end: 2 0, _funnel: [2, 0]
<28> inside
optiwindnet.pathfinding: <28> inside
pseudoedge «1->0» added
optiwindnet.pathfinding: pseudoedge «1->0» added
{28} advancer reached DEAD-END (not portals)
optiwindnet.pathfinding: {28} advancer reached DEAD-END (not portals)
_find_paths[143]: advancer id <30>
optiwindnet.pathfinding: _find_paths[143]: advancer id <30>
pseudoedge «1->3» added
optiwindnet.pathfinding: pseudoedge «1->3» added
<30> LEFT  _new(2) _nearside(1) _farside(3) _apex(3), _wedge_end: 1 3, _funnel: [1, 3]
optiwindnet.pathfinding: <30> LEFT  _new(2) _nearside(1) _farside(3) _apex(3), _wedge_end: 1 3, _funnel: [1, 3]
<30> inside
optiwindnet.pathfinding: <30> inside
_find_paths[144]: advancer id <37>
optiwindnet.pathfinding: _find_paths[144]: advancer id <37>
pseudoedge «3->25» added
optiwindnet.pathfinding: pseudoedge «3->25» added
<37> RIGHT _new(24) _nearside(25) _farside(3) _apex(25), _wedge_end: 3 25, _funnel: [3, 25]
optiwindnet.pathfinding: <37> RIGHT _new(24) _nearside(25) _farside(3) _apex(25), _wedge_end: 3 25, _funnel: [3, 25]
<37> inside
optiwindnet.pathfinding: <37> inside
_find_paths[145]: advancer id <37>
optiwindnet.pathfinding: _find_paths[145]: advancer id <37>
pseudoedge «24->25» added
optiwindnet.pathfinding: pseudoedge «24->25» added
<37> RIGHT _new(23) _nearside(24) _farside(3) _apex(25), _wedge_end: 3 24, _funnel: [3, 24]
optiwindnet.pathfinding: <37> RIGHT _new(23) _nearside(24) _farside(3) _apex(25), _wedge_end: 3 24, _funnel: [3, 24]
<37> infranear
optiwindnet.pathfinding: <37> infranear
_find_paths[146]: advancer id <37>
optiwindnet.pathfinding: _find_paths[146]: advancer id <37>
pseudoedge «23->24» added
optiwindnet.pathfinding: pseudoedge «23->24» added
{37} advancer revisited triangle
optiwindnet.pathfinding: {37} advancer revisited triangle
_find_paths[147]: advancer id <24>
optiwindnet.pathfinding: _find_paths[147]: advancer id <24>
pseudoedge «3->1» added
optiwindnet.pathfinding: pseudoedge «3->1» added
<24> LEFT  _new(2) _nearside(1) _farside(3) _apex(1), _wedge_end: 1 3, _funnel: [1, 3]
optiwindnet.pathfinding: <24> LEFT  _new(2) _nearside(1) _farside(3) _apex(1), _wedge_end: 1 3, _funnel: [1, 3]
<24> inside
optiwindnet.pathfinding: <24> inside
_find_paths[148]: advancer id <24>
optiwindnet.pathfinding: _find_paths[148]: advancer id <24>
pseudoedge «2->1» added
optiwindnet.pathfinding: pseudoedge «2->1» added
<24> RIGHT _new(23) _nearside(3) _farside(2) _apex(1), _wedge_end: 2 3, _funnel: [2, 3]
optiwindnet.pathfinding: <24> RIGHT _new(23) _nearside(3) _farside(2) _apex(1), _wedge_end: 2 3, _funnel: [2, 3]
<24> inside
optiwindnet.pathfinding: <24> inside
_find_paths[149]: advancer id <43>
optiwindnet.pathfinding: _find_paths[149]: advancer id <43>
<43> LEFT  _new(23) _nearside(2) _farside(3) _apex(1), _wedge_end: 2 3, _funnel: [2, 3]
optiwindnet.pathfinding: <43> LEFT  _new(23) _nearside(2) _farside(3) _apex(1), _wedge_end: 2 3, _funnel: [2, 3]
<43> inside
optiwindnet.pathfinding: <43> inside
_find_paths[150]: advancer id <30>
optiwindnet.pathfinding: _find_paths[150]: advancer id <30>
pseudoedge «2->3» added
optiwindnet.pathfinding: pseudoedge «2->3» added
<30> RIGHT _new(23) _nearside(3) _farside(2) _apex(3), _wedge_end: 2 3, _funnel: [2, 3]
optiwindnet.pathfinding: <30> RIGHT _new(23) _nearside(3) _farside(2) _apex(3), _wedge_end: 2 3, _funnel: [2, 3]
<30> inside
optiwindnet.pathfinding: <30> inside
_find_paths[151]: advancer id <44>
optiwindnet.pathfinding: _find_paths[151]: advancer id <44>
<44> LEFT  _new(23) _nearside(2) _farside(3) _apex(3), _wedge_end: 2 3, _funnel: [2, 3]
optiwindnet.pathfinding: <44> LEFT  _new(23) _nearside(2) _farside(3) _apex(3), _wedge_end: 2 3, _funnel: [2, 3]
<44> inside
optiwindnet.pathfinding: <44> inside
_find_paths[152]: advancer id <12>
optiwindnet.pathfinding: _find_paths[152]: advancer id <12>
pseudoedge «11->8» added
optiwindnet.pathfinding: pseudoedge «11->8» added
<12> RIGHT _new(16) _nearside(6) _farside(11) _apex(8), _wedge_end: 11 6, _funnel: [11, 6]
optiwindnet.pathfinding: <12> RIGHT _new(16) _nearside(6) _farside(11) _apex(8), _wedge_end: 11 6, _funnel: [11, 6]
<12> inside
optiwindnet.pathfinding: <12> inside
_find_paths[153]: advancer id <12>
optiwindnet.pathfinding: _find_paths[153]: advancer id <12>
pseudoedge «16->8» added
optiwindnet.pathfinding: pseudoedge «16->8» added
<12> RIGHT _new(17) _nearside(16) _farside(11) _apex(8), _wedge_end: 11 16, _funnel: [11, 16]
optiwindnet.pathfinding: <12> RIGHT _new(17) _nearside(16) _farside(11) _apex(8), _wedge_end: 11 16, _funnel: [11, 16]
<12> inside
optiwindnet.pathfinding: <12> inside
_find_paths[154]: advancer id <45>
optiwindnet.pathfinding: _find_paths[154]: advancer id <45>
<45> LEFT  _new(16) _nearside(11) _farside(6) _apex(8), _wedge_end: 11 6, _funnel: [11, 6]
optiwindnet.pathfinding: <45> LEFT  _new(16) _nearside(11) _farside(6) _apex(8), _wedge_end: 11 6, _funnel: [11, 6]
<45> inside
optiwindnet.pathfinding: <45> inside
_find_paths[155]: advancer id <45>
optiwindnet.pathfinding: _find_paths[155]: advancer id <45>
<45> LEFT  _new(15) _nearside(16) _farside(6) _apex(8), _wedge_end: 16 6, _funnel: [16, 6]
optiwindnet.pathfinding: <45> LEFT  _new(15) _nearside(16) _farside(6) _apex(8), _wedge_end: 16 6, _funnel: [16, 6]
<45> inside
optiwindnet.pathfinding: <45> inside
_find_paths[156]: advancer id <23>
optiwindnet.pathfinding: _find_paths[156]: advancer id <23>
pseudoedge «2->0» added
optiwindnet.pathfinding: pseudoedge «2->0» added
<23> LEFT  _new(21) _nearside(12) _farside(0) _apex(1), _wedge_end: 12 2, _funnel: [12, 0]
optiwindnet.pathfinding: <23> LEFT  _new(21) _nearside(12) _farside(0) _apex(1), _wedge_end: 12 2, _funnel: [12, 0]
<23> ultrafar
optiwindnet.pathfinding: <23> ultrafar
_find_paths[157]: advancer id <38>
optiwindnet.pathfinding: _find_paths[157]: advancer id <38>
<38> RIGHT _new(1) _nearside(0) _farside(2) _apex(0), _wedge_end: 2 0, _funnel: [2, 0]
optiwindnet.pathfinding: <38> RIGHT _new(1) _nearside(0) _farside(2) _apex(0), _wedge_end: 2 0, _funnel: [2, 0]
<38> inside
optiwindnet.pathfinding: <38> inside
pseudoedge «1->0» added
optiwindnet.pathfinding: pseudoedge «1->0» added
{38} advancer reached DEAD-END (not portals)
optiwindnet.pathfinding: {38} advancer reached DEAD-END (not portals)
_find_paths[158]: advancer id <4>
optiwindnet.pathfinding: _find_paths[158]: advancer id <4>
pseudoedge «14->3» added
optiwindnet.pathfinding: pseudoedge «14->3» added
<4> LEFT  _new(4) _nearside(3) _farside(14) _apex(3), _wedge_end: 3 14, _funnel: [3, 14]
optiwindnet.pathfinding: <4> LEFT  _new(4) _nearside(3) _farside(14) _apex(3), _wedge_end: 3 14, _funnel: [3, 14]
<4> inside
optiwindnet.pathfinding: <4> inside
_find_paths[159]: advancer id <4>
optiwindnet.pathfinding: _find_paths[159]: advancer id <4>
pseudoedge «4->3» added
optiwindnet.pathfinding: pseudoedge «4->3» added
<4> RIGHT _new(5) _nearside(14) _farside(4) _apex(3), _wedge_end: 4 14, _funnel: [4, 14]
optiwindnet.pathfinding: <4> RIGHT _new(5) _nearside(14) _farside(4) _apex(3), _wedge_end: 4 14, _funnel: [4, 14]
<4> ultrafar
optiwindnet.pathfinding: <4> ultrafar
_find_paths[160]: advancer id <46>
optiwindnet.pathfinding: _find_paths[160]: advancer id <46>
<46> LEFT  _new(5) _nearside(4) _farside(14) _apex(3), _wedge_end: 4 14, _funnel: [4, 14]
optiwindnet.pathfinding: <46> LEFT  _new(5) _nearside(4) _farside(14) _apex(3), _wedge_end: 4 14, _funnel: [4, 14]
<46> infranear
optiwindnet.pathfinding: <46> infranear
_find_paths[161]: advancer id <46>
optiwindnet.pathfinding: _find_paths[161]: advancer id <46>
pseudoedge «5->4» added
optiwindnet.pathfinding: pseudoedge «5->4» added
<46> RIGHT _new(15) _nearside(14) _farside(4) _apex(3), _wedge_end: 5 14, _funnel: [4, 14]
optiwindnet.pathfinding: <46> RIGHT _new(15) _nearside(14) _farside(4) _apex(3), _wedge_end: 5 14, _funnel: [4, 14]
<46> ultrafar
optiwindnet.pathfinding: <46> ultrafar
_find_paths[162]: advancer id <22>
optiwindnet.pathfinding: _find_paths[162]: advancer id <22>
{22} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {22} advancer reached DEAD-END (root or mesh edge)
_find_paths[163]: advancer id <12>
optiwindnet.pathfinding: _find_paths[163]: advancer id <12>
pseudoedge «17->8» added
optiwindnet.pathfinding: pseudoedge «17->8» added
<12> RIGHT _new(9) _nearside(17) _farside(11) _apex(8), _wedge_end: 11 17, _funnel: [11, 17]
optiwindnet.pathfinding: <12> RIGHT _new(9) _nearside(17) _farside(11) _apex(8), _wedge_end: 11 17, _funnel: [11, 17]
<12> ultrafar
optiwindnet.pathfinding: <12> ultrafar
_find_paths[164]: advancer id <47>
optiwindnet.pathfinding: _find_paths[164]: advancer id <47>
<47> LEFT  _new(9) _nearside(11) _farside(17) _apex(8), _wedge_end: 11 17, _funnel: [11, 17]
optiwindnet.pathfinding: <47> LEFT  _new(9) _nearside(11) _farside(17) _apex(8), _wedge_end: 11 17, _funnel: [11, 17]
<47> infranear
optiwindnet.pathfinding: <47> infranear
_find_paths[165]: advancer id <26>
optiwindnet.pathfinding: _find_paths[165]: advancer id <26>
pseudoedge «16->11» added
optiwindnet.pathfinding: pseudoedge «16->11» added
{26} advancer revisited triangle
optiwindnet.pathfinding: {26} advancer revisited triangle
_find_paths[166]: advancer id <10>
optiwindnet.pathfinding: _find_paths[166]: advancer id <10>
pseudoedge «14->3» added
optiwindnet.pathfinding: pseudoedge «14->3» added
<10> LEFT  _new(4) _nearside(3) _farside(14) _apex(3), _wedge_end: 3 14, _funnel: [3, 14]
optiwindnet.pathfinding: <10> LEFT  _new(4) _nearside(3) _farside(14) _apex(3), _wedge_end: 3 14, _funnel: [3, 14]
<10> inside
optiwindnet.pathfinding: <10> inside
_find_paths[167]: advancer id <10>
optiwindnet.pathfinding: _find_paths[167]: advancer id <10>
pseudoedge «4->3» added
optiwindnet.pathfinding: pseudoedge «4->3» added
<10> RIGHT _new(5) _nearside(14) _farside(4) _apex(3), _wedge_end: 4 14, _funnel: [4, 14]
optiwindnet.pathfinding: <10> RIGHT _new(5) _nearside(14) _farside(4) _apex(3), _wedge_end: 4 14, _funnel: [4, 14]
<10> ultrafar
optiwindnet.pathfinding: <10> ultrafar
_find_paths[168]: advancer id <48>
optiwindnet.pathfinding: _find_paths[168]: advancer id <48>
<48> LEFT  _new(5) _nearside(4) _farside(14) _apex(3), _wedge_end: 4 14, _funnel: [4, 14]
optiwindnet.pathfinding: <48> LEFT  _new(5) _nearside(4) _farside(14) _apex(3), _wedge_end: 4 14, _funnel: [4, 14]
<48> infranear
optiwindnet.pathfinding: <48> infranear
_find_paths[169]: advancer id <18>
optiwindnet.pathfinding: _find_paths[169]: advancer id <18>
{18} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {18} advancer reached DEAD-END (root or mesh edge)
_find_paths[170]: advancer id <19>
optiwindnet.pathfinding: _find_paths[170]: advancer id <19>
pseudoedge «21->0» added
optiwindnet.pathfinding: pseudoedge «21->0» added
<19> new keeper for (21, -9223372036854775808) via 0: d_path = 2839.14
optiwindnet.pathfinding: <19> new keeper for (21, -9223372036854775808) via 0: d_path = 2839.14
{19} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {19} advancer reached DEAD-END (root or mesh edge)
_find_paths[171]: advancer id <11>
optiwindnet.pathfinding: _find_paths[171]: advancer id <11>
pseudoedge «19->9» added
optiwindnet.pathfinding: pseudoedge «19->9» added
<11> RIGHT _new(7) _nearside(19) _farside(9) _apex(9), _wedge_end: 9 19, _funnel: [9, 19]
optiwindnet.pathfinding: <11> RIGHT _new(7) _nearside(19) _farside(9) _apex(9), _wedge_end: 9 19, _funnel: [9, 19]
<11> inside
optiwindnet.pathfinding: <11> inside
_find_paths[172]: advancer id <11>
optiwindnet.pathfinding: _find_paths[172]: advancer id <11>
pseudoedge «7->9» added
optiwindnet.pathfinding: pseudoedge «7->9» added
<11> RIGHT _new(8) _nearside(7) _farside(9) _apex(9), _wedge_end: 9 7, _funnel: [9, 7]
optiwindnet.pathfinding: <11> RIGHT _new(8) _nearside(7) _farside(9) _apex(9), _wedge_end: 9 7, _funnel: [9, 7]
<11> inside
optiwindnet.pathfinding: <11> inside
_find_paths[173]: advancer id <11>
optiwindnet.pathfinding: _find_paths[173]: advancer id <11>
pseudoedge «8->9» added
optiwindnet.pathfinding: pseudoedge «8->9» added
<11> LEFT  _new(10) _nearside(9) _farside(8) _apex(9), _wedge_end: 9 8, _funnel: [9, 8]
optiwindnet.pathfinding: <11> LEFT  _new(10) _nearside(9) _farside(8) _apex(9), _wedge_end: 9 8, _funnel: [9, 8]
<11> inside
optiwindnet.pathfinding: <11> inside
_find_paths[174]: advancer id <11>
optiwindnet.pathfinding: _find_paths[174]: advancer id <11>
pseudoedge «10->9» added
optiwindnet.pathfinding: pseudoedge «10->9» added
<11> RIGHT _new(6) _nearside(8) _farside(10) _apex(9), _wedge_end: 10 8, _funnel: [10, 8]
optiwindnet.pathfinding: <11> RIGHT _new(6) _nearside(8) _farside(10) _apex(9), _wedge_end: 10 8, _funnel: [10, 8]
<11> inside
optiwindnet.pathfinding: <11> inside
_find_paths[175]: advancer id <11>
optiwindnet.pathfinding: _find_paths[175]: advancer id <11>
pseudoedge «6->9» added
optiwindnet.pathfinding: pseudoedge «6->9» added
<11> LEFT  _new(11) _nearside(10) _farside(6) _apex(9), _wedge_end: 10 6, _funnel: [10, 6]
optiwindnet.pathfinding: <11> LEFT  _new(11) _nearside(10) _farside(6) _apex(9), _wedge_end: 10 6, _funnel: [10, 6]
<11> infranear
optiwindnet.pathfinding: <11> infranear
_find_paths[176]: advancer id <11>
optiwindnet.pathfinding: _find_paths[176]: advancer id <11>
pseudoedge «11->10» added
optiwindnet.pathfinding: pseudoedge «11->10» added
{11} advancer revisited triangle
optiwindnet.pathfinding: {11} advancer revisited triangle
_find_paths[177]: advancer id <50>
optiwindnet.pathfinding: _find_paths[177]: advancer id <50>
<50> LEFT  _new(8) _nearside(9) _farside(7) _apex(9), _wedge_end: 9 7, _funnel: [9, 7]
optiwindnet.pathfinding: <50> LEFT  _new(8) _nearside(9) _farside(7) _apex(9), _wedge_end: 9 7, _funnel: [9, 7]
<50> inside
optiwindnet.pathfinding: <50> inside
_find_paths[178]: advancer id <32>
optiwindnet.pathfinding: _find_paths[178]: advancer id <32>
{32} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {32} advancer reached DEAD-END (root or mesh edge)
_find_paths[179]: advancer id <49>
optiwindnet.pathfinding: _find_paths[179]: advancer id <49>
<49> LEFT  _new(7) _nearside(9) _farside(19) _apex(9), _wedge_end: 9 19, _funnel: [9, 19]
optiwindnet.pathfinding: <49> LEFT  _new(7) _nearside(9) _farside(19) _apex(9), _wedge_end: 9 19, _funnel: [9, 19]
<49> inside
optiwindnet.pathfinding: <49> inside
_find_paths[180]: advancer id <49>
optiwindnet.pathfinding: _find_paths[180]: advancer id <49>
<49> RIGHT _new(20) _nearside(19) _farside(7) _apex(9), _wedge_end: 7 19, _funnel: [7, 19]
optiwindnet.pathfinding: <49> RIGHT _new(20) _nearside(19) _farside(7) _apex(9), _wedge_end: 7 19, _funnel: [7, 19]
<49> ultrafar
optiwindnet.pathfinding: <49> ultrafar
_find_paths[181]: advancer id <23>
optiwindnet.pathfinding: _find_paths[181]: advancer id <23>
pseudoedge «21->0» added
optiwindnet.pathfinding: pseudoedge «21->0» added
{23} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {23} advancer reached DEAD-END (root or mesh edge)
_find_paths[182]: advancer id <39>
optiwindnet.pathfinding: _find_paths[182]: advancer id <39>
pseudoedge «17->9» added
optiwindnet.pathfinding: pseudoedge «17->9» added
{39} advancer reached DEAD-END (root or mesh edge)
optiwindnet.pathfinding: {39} advancer reached DEAD-END (root or mesh edge)
_find_paths[183]: advancer id <41>
optiwindnet.pathfinding: _find_paths[183]: advancer id <41>
<41> RIGHT _new(11) _nearside(9) _farside(17) _apex(9), _wedge_end: 17 9, _funnel: [17, 9]
optiwindnet.pathfinding: <41> RIGHT _new(11) _nearside(9) _farside(17) _apex(9), _wedge_end: 17 9, _funnel: [17, 9]
<41> inside
optiwindnet.pathfinding: <41> inside
_find_paths[184]: advancer id <41>
optiwindnet.pathfinding: _find_paths[184]: advancer id <41>
pseudoedge «11->9» added
optiwindnet.pathfinding: pseudoedge «11->9» added
<41> LEFT  _new(16) _nearside(17) _farside(11) _apex(9), _wedge_end: 17 11, _funnel: [17, 11]
optiwindnet.pathfinding: <41> LEFT  _new(16) _nearside(17) _farside(11) _apex(9), _wedge_end: 17 11, _funnel: [17, 11]
<41> ultrafar
optiwindnet.pathfinding: <41> ultrafar
_find_paths[185]: advancer id <51>
optiwindnet.pathfinding: _find_paths[185]: advancer id <51>
<51> LEFT  _new(11) _nearside(17) _farside(9) _apex(9), _wedge_end: 17 9, _funnel: [17, 9]
optiwindnet.pathfinding: <51> LEFT  _new(11) _nearside(17) _farside(9) _apex(9), _wedge_end: 17 9, _funnel: [17, 9]
<51> inside
optiwindnet.pathfinding: <51> inside
_find_paths[186]: advancer id <47>
optiwindnet.pathfinding: _find_paths[186]: advancer id <47>
pseudoedge «9->11» added
optiwindnet.pathfinding: pseudoedge «9->11» added
<47> RIGHT _new(26) _nearside(17) _farside(11) _apex(8), _wedge_end: 9 17, _funnel: [11, 17]
optiwindnet.pathfinding: <47> RIGHT _new(26) _nearside(17) _farside(11) _apex(8), _wedge_end: 9 17, _funnel: [11, 17]
<47> ultrafar
optiwindnet.pathfinding: <47> ultrafar
_find_paths[187]: advancer id <47>
optiwindnet.pathfinding: _find_paths[187]: advancer id <47>
pseudoedge «26->11» added
optiwindnet.pathfinding: pseudoedge «26->11» added
<47> RIGHT _new(19) _nearside(26) _farside(9) _apex(11), _wedge_end: 9 26, _funnel: [9, 26]
optiwindnet.pathfinding: <47> RIGHT _new(19) _nearside(26) _farside(9) _apex(11), _wedge_end: 9 26, _funnel: [9, 26]
<47> ultrafar
optiwindnet.pathfinding: <47> ultrafar
_find_paths[188]: advancer id <52>
optiwindnet.pathfinding: _find_paths[188]: advancer id <52>
<52> LEFT  _new(26) _nearside(11) _farside(17) _apex(8), _wedge_end: 9 17, _funnel: [11, 17]
optiwindnet.pathfinding: <52> LEFT  _new(26) _nearside(11) _farside(17) _apex(8), _wedge_end: 9 17, _funnel: [11, 17]
<52> infranear
optiwindnet.pathfinding: <52> infranear
_find_paths[189]: advancer id <53>
optiwindnet.pathfinding: _find_paths[189]: advancer id <53>
<53> LEFT  _new(19) _nearside(9) _farside(26) _apex(11), _wedge_end: 9 26, _funnel: [9, 26]
optiwindnet.pathfinding: <53> LEFT  _new(19) _nearside(9) _farside(26) _apex(11), _wedge_end: 9 26, _funnel: [9, 26]
<53> infranear
optiwindnet.pathfinding: <53> infranear
_find_paths[190]: advancer id <41>
optiwindnet.pathfinding: _find_paths[190]: advancer id <41>
pseudoedge «16->11» added
optiwindnet.pathfinding: pseudoedge «16->11» added
<41> RIGHT _new(6) _nearside(11) _farside(16) _apex(11), _wedge_end: 16 11, _funnel: [16, 11]
optiwindnet.pathfinding: <41> RIGHT _new(6) _nearside(11) _farside(16) _apex(11), _wedge_end: 16 11, _funnel: [16, 11]
<41> inside
optiwindnet.pathfinding: <41> inside
_find_paths[191]: advancer id <54>
optiwindnet.pathfinding: _find_paths[191]: advancer id <54>
<54> LEFT  _new(6) _nearside(16) _farside(11) _apex(11), _wedge_end: 16 11, _funnel: [16, 11]
optiwindnet.pathfinding: <54> LEFT  _new(6) _nearside(16) _farside(11) _apex(11), _wedge_end: 16 11, _funnel: [16, 11]
<54> inside
optiwindnet.pathfinding: <54> inside
_find_paths[192]: advancer id <49>
optiwindnet.pathfinding: _find_paths[192]: advancer id <49>
pseudoedge «20->7» added
optiwindnet.pathfinding: pseudoedge «20->7» added
<49> LEFT  _new(6) _nearside(7) _farside(20) _apex(7), _wedge_end: 7 20, _funnel: [7, 20]
optiwindnet.pathfinding: <49> LEFT  _new(6) _nearside(7) _farside(20) _apex(7), _wedge_end: 7 20, _funnel: [7, 20]
<49> inside
optiwindnet.pathfinding: <49> inside
_find_paths[193]: advancer id <41>
optiwindnet.pathfinding: _find_paths[193]: advancer id <41>
pseudoedge «6->11» added
optiwindnet.pathfinding: pseudoedge «6->11» added
<41> LEFT  _new(15) _nearside(16) _farside(6) _apex(11), _wedge_end: 16 6, _funnel: [16, 6]
optiwindnet.pathfinding: <41> LEFT  _new(15) _nearside(16) _farside(6) _apex(11), _wedge_end: 16 6, _funnel: [16, 6]
<41> infranear
optiwindnet.pathfinding: <41> infranear
_find_paths[194]: advancer id <54>
optiwindnet.pathfinding: _find_paths[194]: advancer id <54>
<54> RIGHT _new(10) _nearside(11) _farside(6) _apex(11), _wedge_end: 6 11, _funnel: [6, 11]
optiwindnet.pathfinding: <54> RIGHT _new(10) _nearside(11) _farside(6) _apex(11), _wedge_end: 6 11, _funnel: [6, 11]
<54> inside
optiwindnet.pathfinding: <54> inside
_find_paths[195]: advancer id <54>
optiwindnet.pathfinding: _find_paths[195]: advancer id <54>
pseudoedge «10->11» added
optiwindnet.pathfinding: pseudoedge «10->11» added
<54> LEFT  _new(8) _nearside(6) _farside(10) _apex(11), _wedge_end: 6 10, _funnel: [6, 10]
optiwindnet.pathfinding: <54> LEFT  _new(8) _nearside(6) _farside(10) _apex(11), _wedge_end: 6 10, _funnel: [6, 10]
<54> inside
optiwindnet.pathfinding: <54> inside
_find_paths[196]: advancer id <54>
optiwindnet.pathfinding: _find_paths[196]: advancer id <54>
pseudoedge «8->11» added
optiwindnet.pathfinding: pseudoedge «8->11» added
<54> RIGHT _new(9) _nearside(10) _farside(8) _apex(11), _wedge_end: 8 10, _funnel: [8, 10]
optiwindnet.pathfinding: <54> RIGHT _new(9) _nearside(10) _farside(8) _apex(11), _wedge_end: 8 10, _funnel: [8, 10]
<54> infranear
optiwindnet.pathfinding: <54> infranear
_find_paths[197]: advancer id <54>
optiwindnet.pathfinding: _find_paths[197]: advancer id <54>
pseudoedge «9->10» added
optiwindnet.pathfinding: pseudoedge «9->10» added
<54> RIGHT _new(7) _nearside(10) _farside(8) _apex(11), _wedge_end: 8 9, _funnel: [8, 10]
optiwindnet.pathfinding: <54> RIGHT _new(7) _nearside(10) _farside(8) _apex(11), _wedge_end: 8 9, _funnel: [8, 10]
<54> ultrafar
optiwindnet.pathfinding: <54> ultrafar
_find_paths[198]: advancer id <55>
optiwindnet.pathfinding: _find_paths[198]: advancer id <55>
<55> LEFT  _new(7) _nearside(8) _farside(10) _apex(11), _wedge_end: 8 9, _funnel: [8, 10]
optiwindnet.pathfinding: <55> LEFT  _new(7) _nearside(8) _farside(10) _apex(11), _wedge_end: 8 9, _funnel: [8, 10]
<55> infranear
optiwindnet.pathfinding: <55> infranear
_find_paths[199]: advancer id <55>
optiwindnet.pathfinding: _find_paths[199]: advancer id <55>
pseudoedge «7->8» added
optiwindnet.pathfinding: pseudoedge «7->8» added
{55} advancer revisited triangle
optiwindnet.pathfinding: {55} advancer revisited triangle
_find_paths[200]: advancer id <47>
optiwindnet.pathfinding: _find_paths[200]: advancer id <47>
pseudoedge «19->9» added
optiwindnet.pathfinding: pseudoedge «19->9» added
{47} advancer revisited triangle
optiwindnet.pathfinding: {47} advancer revisited triangle
PathFinder: loops performed: 200
optiwindnet.pathfinding: PathFinder: loops performed: 200
hookchoices: [9, 10, 11]
optiwindnet.pathfinding: hookchoices: [9, 10, 11]
best: hook = 10, sector = 11, dist = 909.25
optiwindnet.pathfinding: best: hook = 10, sector = 11, dist = 909.25
path: [10, 16, 15, -1]
optiwindnet.pathfinding: path: [10, 16, 15, -1]
<PathFinder: created 2 detour vertices, total length changed by 0.00%
optiwindnet.pathfinding: <PathFinder: created 2 detour vertices, total length changed by 0.00%
[13]:
wfn3
[13]:
../_images/notebooks_a05_debugging_21_0.svg

Set logging level to WARNING, so that we can see only the effect of the verbose flag.

[14]:
logger_own.setLevel(logging.WARNING)
logger_pathfinding.setLevel(logging.WARNING)

Verbose (non-Python code)¶

Python’s logging only applies to Python code. For OptiWindNet’s functionality that is implemented as C extensions or external libraries and programs, a verbose=True option may be available.

Verbose is a flag for printing/hiding the MILP solver log (Default is verbose=False).

[15]:
res3 = wfn3.optimize(
    router=MILPRouter(
        solver_name='ortools',
        time_limit=2,
        mip_gap=0.001,
        verbose=True,
    ),
)
Using warm start: the model is initialized with the provided solution S.



Starting CP-SAT solver v9.15.6755
Starting CP-SAT solver v9.15.6755
Parameters: max_time_in_seconds: 2 log_search_progress: true relative_gap_limit: 0.001
Parameters: max_time_in_seconds: 2 log_search_progress: true relative_gap_limit: 0.001
Setting number of workers to 8
Setting number of workers to 8


Initial optimization model '': (model_fingerprint: 0x9b89b60649d6e071)
#Variables: 156 (#bools: 78 in floating point objective) (132 primary variables)
  - 78 Booleans in [0,1]
  - 66 in [0,3]
  - 12 in [0,4]
#kAtMostOne: 44 (#literals: 112)
#kLinear1: 156 (#enforced: 156)
#kLinearN: 39 (#terms: 390)

Initial optimization model '': (model_fingerprint: 0x9b89b60649d6e071)
#Variables: 156 (#bools: 78 in floating point objective) (132 primary variables)
  - 78 Booleans in [0,1]
  - 66 in [0,3]
  - 12 in [0,4]
#kAtMostOne: 44 (#literals: 112)
#kLinear1: 156 (#enforced: 156)
#kLinearN: 39 (#terms: 390)
Starting presolve at 0.00s

Starting presolve at 0.00s
The solution hint is complete and is feasible.
The solution hint is complete and is feasible.
[Scaling] Floating point objective has 78 terms with magnitude in [336.61, 1997.76] average = 854.916
[Scaling] Floating point objective has 78 terms with magnitude in [336.61, 1997.76] average = 854.916
[Scaling] Objective coefficient relative error: 8.90318e-09
[Scaling] Objective worst-case absolute error: 7.72954e-05
[Scaling] Objective scaling factor: 131072
[Scaling] Objective coefficient relative error: 8.90318e-09
[Scaling] Objective worst-case absolute error: 7.72954e-05
[Scaling] Objective scaling factor: 131072
  5.48e-05s  0.00e+00d  [DetectDominanceRelations]   5.48e-05s  0.00e+00d  [DetectDominanceRelations]

  8.01e-04s  0.00e+00d  [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
  8.01e-04s  0.00e+00d  [PresolveToFixPoint] #num_loops=2 #num_dual_strengthening=1
  1.34e-05s  0.00e+00d  [ExtractEncodingFromLinear] #potential_supersets=56
  1.34e-05s  0.00e+00d  [ExtractEncodingFromLinear] #potential_supersets=56
  2.60e-05s  0.00e+00d  [DetectDuplicateColumns]
  2.60e-05s  0.00e+00d  [DetectDuplicateColumns]
  3.30e-05s  0.00e+00d  [DetectDuplicateConstraints]
  3.30e-05s  0.00e+00d  [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 578 nodes and 1'030 arcs.
[Symmetry] Graph for symmetry has 578 nodes and 1'030 arcs.
[Symmetry] Symmetry computation done. time: 0.000110708 dtime: 0.00010345
[Symmetry] Symmetry computation done. time: 0.000110708 dtime: 0.00010345
  6.25e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]   6.25e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]

  9.21e-04s  1.99e-04d  [Probe] #probed=156   9.21e-04s  1.99e-04d  [Probe] #probed=156

  8.18e-05s  1.43e-05d  [MaxClique] Merged 44 constraints with 112 literals into 28 constraints with 80 literals
  8.18e-05s  1.43e-05d  [MaxClique] Merged 44 constraints with 112 literals into 28 constraints with 80 literals
  5.01e-05s  0.00e+00d  [DetectDominanceRelations]   5.01e-05s  0.00e+00d  [DetectDominanceRelations]

  4.39e-04s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  4.39e-04s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  4.35e-05s  0.00e+00d  [ProcessAtMostOneAndLinear]
  2.58e-05s  0.00e+00d  [DetectDuplicateConstraints]
  4.35e-05s  0.00e+00d  [ProcessAtMostOneAndLinear]
  2.21e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  5.35e-05s  1.35e-06d  [DetectDominatedLinearConstraints] #relevant_constraints=27 #num_inclusions=13
  2.58e-05s  0.00e+00d  [DetectDuplicateConstraints]
  2.21e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  5.35e-05s  1.35e-06d  [DetectDominatedLinearConstraints] #relevant_constraints=27 #num_inclusions=13
  4.02e-06s  0.00e+00d  [DetectDifferentVariables]
  4.02e-06s  0.00e+00d  [DetectDifferentVariables]
  9.22e-05s  4.20e-06d  [ProcessSetPPC] #relevant_constraints=42 #num_inclusions=40
  9.22e-05s  4.20e-06d  [ProcessSetPPC] #relevant_constraints=42 #num_inclusions=40
  4.07e-05s  0.00e+00d  [TransformClausesToExactlyOne] #num_amos=28
  4.07e-05s  0.00e+00d  [TransformClausesToExactlyOne] #num_amos=28
  7.34e-05s  0.00e+00d  [DetectEncodedComplexDomains]
  7.34e-05s  0.00e+00d  [DetectEncodedComplexDomains]
  6.59e-06s  0.00e+00d  [FindAlmostIdenticalLinearConstraints]
  6.59e-06s  0.00e+00d  [FindAlmostIdenticalLinearConstraints]
  2.55e-05s  1.53e-05d  [FindBigAtMostOneAndLinearOverlap]
  1.64e-05s  1.64e-05d  [FindBigVerticalLinearOverlap]
  2.55e-05s  1.53e-05d  [FindBigAtMostOneAndLinearOverlap]
  1.64e-05s  1.64e-05d  [FindBigVerticalLinearOverlap]
  6.68e-06s  1.11e-06d  [FindBigHorizontalLinearOverlap] #linears=23
  6.68e-06s  1.11e-06d  [FindBigHorizontalLinearOverlap] #linears=23
  4.07e-06s  0.00e+00d  [MergeClauses]
  4.07e-06s  0.00e+00d  [MergeClauses]
  4.97e-05s  0.00e+00d  [DetectDominanceRelations]   4.97e-05s  0.00e+00d  [DetectDominanceRelations]

  3.82e-04s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  3.82e-04s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  3.84e-05s  0.00e+00d  [DetectDominanceRelations]
  3.20e-04s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  3.84e-05s  0.00e+00d  [DetectDominanceRelations]
  3.20e-04s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  1.17e-05s  0.00e+00d  [DetectDuplicateColumns]
  1.17e-05s  0.00e+00d  [DetectDuplicateColumns]
  1.84e-05s  0.00e+00d  [DetectDuplicateConstraints]
  1.84e-05s  0.00e+00d  [DetectDuplicateConstraints]
[Symmetry] Graph for symmetry has 545 nodes and 888 arcs.
[Symmetry] Graph for symmetry has 545 nodes and 888 arcs.
[Symmetry] Symmetry computation done. time: 6.4681e-05 dtime: 9.639e-05
[Symmetry] Symmetry computation done. time: 6.4681e-05 dtime: 9.639e-05
[SAT presolve] num removable Booleans: 0 / 78
[SAT presolve] num trivial clauses: 0
[SAT presolve] num removable Booleans: 0 / 78
[SAT presolve] num trivial clauses: 0
[SAT presolve] [0s] clauses:17 literals:34 vars:34 one_side_vars:34 simple_definition:0 singleton_clauses:0
[SAT presolve] [0s] clauses:17 literals:34 vars:34 one_side_vars:34 simple_definition:0 singleton_clauses:0
[SAT presolve] [4.2437e-05s] clauses:17 literals:34 vars:34 one_side_vars:34 simple_definition:0 singleton_clauses:0
[SAT presolve] [4.2437e-05s] clauses:17 literals:34 vars:34 one_side_vars:34 simple_definition:0 singleton_clauses:0
[SAT presolve] [5.2889e-05s] clauses:17 literals:34 vars:34 one_side_vars:34 simple_definition:0 singleton_clauses:0
[SAT presolve] [5.2889e-05s] clauses:17 literals:34 vars:34 one_side_vars:34 simple_definition:0 singleton_clauses:0
  2.45e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]   2.45e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]

  7.16e-04s  1.82e-04d  [Probe] #probed=156   7.16e-04s  1.82e-04d  [Probe] #probed=156

  3.79e-05s  1.39e-05d  [MaxClique]
  3.79e-05s  1.39e-05d  [MaxClique]
  4.50e-05s  0.00e+00d  [DetectDominanceRelations]   4.50e-05s  0.00e+00d  [DetectDominanceRelations]

  5.27e-04s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  5.27e-04s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  2.46e-05s  0.00e+00d  [ProcessAtMostOneAndLinear]
  2.46e-05s  0.00e+00d  [ProcessAtMostOneAndLinear]
  2.08e-05s  0.00e+00d  [DetectDuplicateConstraints]
  2.08e-05s  0.00e+00d  [DetectDuplicateConstraints]
  2.91e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  2.91e-05s  0.00e+00d  [DetectDuplicateConstraintsWithDifferentEnforcements]
  3.86e-05s  1.01e-06d  [DetectDominatedLinearConstraints] #relevant_constraints=26 #num_inclusions=12
  4.01e-06s  0.00e+00d  [DetectDifferentVariables]
  2.23e-05s  5.64e-07d  [ProcessSetPPC] #relevant_constraints=41
  3.05e-05s  0.00e+00d  [TransformClausesToExactlyOne] #num_amos=28
  3.86e-05s  1.01e-06d  [DetectDominatedLinearConstraints] #relevant_constraints=26 #num_inclusions=12
  4.01e-06s  0.00e+00d  [DetectDifferentVariables]
  2.23e-05s  5.64e-07d  [ProcessSetPPC] #relevant_constraints=41
  3.05e-05s  0.00e+00d  [TransformClausesToExactlyOne] #num_amos=28
  9.55e-05s  0.00e+00d  [DetectEncodedComplexDomains]
  8.13e-06s  0.00e+00d  [FindAlmostIdenticalLinearConstraints]
  3.17e-05s  1.49e-05d  [FindBigAtMostOneAndLinearOverlap]
  2.32e-05s  1.64e-05d  [FindBigVerticalLinearOverlap]
  1.06e-05s  1.11e-06d  [FindBigHorizontalLinearOverlap] #linears=23
  4.34e-06s  0.00e+00d  [MergeClauses]
  7.78e-05s  0.00e+00d  [DetectDominanceRelations]
  6.36e-04s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  1.83e-06s  0.00e+00d  [MergeNoOverlap]
  1.38e-06s  0.00e+00d  [MergeNoOverlap2D]
  5.30e-05s  0.00e+00d  [ExpandObjective] #entries=456 #tight_variables=78 #tight_constraints=12

Presolve summary:
  - 0 affine relations were detected.
  - rule 'TODO linear inclusion: superset is equality' was applied 25 times.
  - rule 'at_most_one: transformed into max clique' was applied 1 time.
  - rule 'deductions: 156 stored' was applied 1 time.
  - rule 'exactly_one: simplified objective' was applied 12 times.
  - rule 'linear: positive equal one' was applied 12 times.
  - rule 'objective: shifted cost with exactly ones' was applied 12 times.
  - rule 'presolve: 0 unused variables removed.' was applied 1 time.
  - rule 'presolve: iteration' was applied 2 times.
  - rule 'setppc: exactly_one included in linear' was applied 12 times.
  - rule 'setppc: reduced linear coefficients' was applied 11 times.
  - rule 'setppc: removed trivial linear constraint' was applied 1 time.
  - rule 'variables: detect fully reified value encoding' was applied 78 times.
  - rule 'variables: detect half reified value encoding' was applied 156 times.

Presolved optimization model '': (model_fingerprint: 0x251463254fec44bb)
#Variables: 156 (#bools: 66 in objective) (132 primary variables)
  - 78 Booleans in [0,1]
  - 66 in [0,3]
  - 12 in [0,4]
#kAtMostOne: 11 (#literals: 46)
#kBoolAnd: 17 (#enforced: 17) (#literals: 34)
#kExactlyOne: 12 (#literals: 78)
#kLinear1: 156 (#enforced: 156)
#kLinearN: 26 (#terms: 234)
[Symmetry] Graph for symmetry has 545 nodes and 888 arcs.
[Symmetry] Symmetry computation done. time: 9.8533e-05 dtime: 9.636e-05

Preloading model.
#Bound   0.01s best:inf   next:[5258.15779,30400.5387] initial_domain
#1       0.01s best:6575.68001 next:[5258.15779,6575.68] complete_hint
#Model   0.02s var:156/156 constraints:222/222

Starting search at 0.02s with 8 workers.
6 full problem subsolvers: [core, default_lp, max_lp, no_lp, quick_restart, reduced_costs]
2 first solution subsolvers: [fj, fs_random_no_lp]
9 interleaved subsolvers: [feasibility_pump, graph_arc_lns, graph_cst_lns, graph_dec_lns, graph_var_lns, ls, rins/rens, rnd_cst_lns, rnd_var_lns]
3 helper subsolvers: [neighborhood_helper, synchronization_agent, update_gap_integral]

  9.55e-05s  0.00e+00d  [DetectEncodedComplexDomains]
  8.13e-06s  0.00e+00d  [FindAlmostIdenticalLinearConstraints]
  3.17e-05s  1.49e-05d  [FindBigAtMostOneAndLinearOverlap]
  2.32e-05s  1.64e-05d  [FindBigVerticalLinearOverlap]
  1.06e-05s  1.11e-06d  [FindBigHorizontalLinearOverlap] #linears=23
  4.34e-06s  0.00e+00d  [MergeClauses]
  7.78e-05s  0.00e+00d  [DetectDominanceRelations]
  6.36e-04s  0.00e+00d  [PresolveToFixPoint] #num_loops=1 #num_dual_strengthening=1
  1.83e-06s  0.00e+00d  [MergeNoOverlap]
  1.38e-06s  0.00e+00d  [MergeNoOverlap2D]
  5.30e-05s  0.00e+00d  [ExpandObjective] #entries=456 #tight_variables=78 #tight_constraints=12

Presolve summary:
  - 0 affine relations were detected.
  - rule 'TODO linear inclusion: superset is equality' was applied 25 times.
  - rule 'at_most_one: transformed into max clique' was applied 1 time.
  - rule 'deductions: 156 stored' was applied 1 time.
  - rule 'exactly_one: simplified objective' was applied 12 times.
  - rule 'linear: positive equal one' was applied 12 times.
  - rule 'objective: shifted cost with exactly ones' was applied 12 times.
  - rule 'presolve: 0 unused variables removed.' was applied 1 time.
  - rule 'presolve: iteration' was applied 2 times.
  - rule 'setppc: exactly_one included in linear' was applied 12 times.
  - rule 'setppc: reduced linear coefficients' was applied 11 times.
  - rule 'setppc: removed trivial linear constraint' was applied 1 time.
  - rule 'variables: detect fully reified value encoding' was applied 78 times.
  - rule 'variables: detect half reified value encoding' was applied 156 times.

Presolved optimization model '': (model_fingerprint: 0x251463254fec44bb)
#Variables: 156 (#bools: 66 in objective) (132 primary variables)
  - 78 Booleans in [0,1]
  - 66 in [0,3]
  - 12 in [0,4]
#kAtMostOne: 11 (#literals: 46)
#kBoolAnd: 17 (#enforced: 17) (#literals: 34)
#kExactlyOne: 12 (#literals: 78)
#kLinear1: 156 (#enforced: 156)
#kLinearN: 26 (#terms: 234)
[Symmetry] Graph for symmetry has 545 nodes and 888 arcs.
[Symmetry] Symmetry computation done. time: 9.8533e-05 dtime: 9.636e-05

Preloading model.
#Bound   0.01s best:inf   next:[5258.15779,30400.5387] initial_domain
#1       0.01s best:6575.68001 next:[5258.15779,6575.68] complete_hint
#Model   0.02s var:156/156 constraints:222/222

Starting search at 0.02s with 8 workers.
6 full problem subsolvers: [core, default_lp, max_lp, no_lp, quick_restart, reduced_costs]
2 first solution subsolvers: [fj, fs_random_no_lp]
9 interleaved subsolvers: [feasibility_pump, graph_arc_lns, graph_cst_lns, graph_dec_lns, graph_var_lns, ls, rins/rens, rnd_cst_lns, rnd_var_lns]
3 helper subsolvers: [neighborhood_helper, synchronization_agent, update_gap_integral]

#Bound   0.02s best:6575.68001 next:[5378.2497,6575.68] am1_presolve (num_literals=66 num_am1=3 increase=15740687 work_done=247)
#Bound   0.02s best:6575.68001 next:[5378.2497,6575.68] am1_presolve (num_literals=66 num_am1=3 increase=15740687 work_done=247)
#Bound   0.02s best:6575.68001 next:[5444.84348,6575.68] default_lp
#Bound   0.02s best:6575.68001 next:[5444.84348,6575.68] default_lp
#Bound   0.02s best:6575.68001 next:[5605.6098,6575.68] default_lp
#Bound   0.02s best:6575.68001 next:[5605.6098,6575.68] default_lp
#Bound   0.02s best:6575.68001 next:[5665.48068,6575.68] default_lp
#Bound   0.03s best:6575.68001 next:[5767.87956,6575.68] default_lp
#Bound   0.03s best:6575.68001 next:[6097.49603,6575.68] max_lp
#Model   0.03s var:144/156 constraints:208/222
#Bound   0.02s best:6575.68001 next:[5665.48068,6575.68] default_lp
#Bound   0.03s best:6575.68001 next:[5767.87956,6575.68] default_lp
#Bound   0.03s best:6575.68001 next:[6097.49603,6575.68] max_lp
#Model   0.03s var:144/156 constraints:208/222
#2       0.03s best:6564.76533 next:[6097.49603,6564.76532] graph_var_lns (d=5.00e-01 s=8 t=0.10 p=0.00 stall=0 h=base) [hint]
#2       0.03s best:6564.76533 next:[6097.49603,6564.76532] graph_var_lns (d=5.00e-01 s=8 t=0.10 p=0.00 stall=0 h=base) [hint]
#Bound   0.03s best:6564.76533 next:[6356.62878,6564.76532] max_lp
#Bound   0.03s best:6564.76533 next:[6356.62878,6564.76532] max_lp
#Model   0.03s var:134/156 constraints:197/222
#Model   0.03s var:134/156 constraints:197/222
#Model   0.04s var:89/156 constraints:141/222#Model   0.04s var:89/156 constraints:141/222

#Model   0.04s var:85/156 constraints:136/222
#Model   0.04s var:85/156 constraints:136/222
#Done    0.04s no_lp#Done    0.04s no_lp

#Done    0.04s core
#Done    0.04s core


Task timing                   n [     min,      max]      avg      dev     time         n [     min,      max]      avg      dev    dtime
              'core':         1 [ 22.05ms,  22.05ms]  22.05ms   0.00ns  22.05ms         2 [189.53us,   2.24ms]   1.21ms   1.03ms   2.43ms
        'default_lp':         1 [ 22.13ms,  22.13ms]  22.13ms   0.00ns  22.13ms         1 [  1.66ms,   1.66ms]   1.66ms   0.00ns   1.66ms
  'feasibility_pump':         1 [546.68us, 546.68us] 546.68us   0.00ns 546.68us         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
                'fj':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
   'fs_random_no_lp':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
     'graph_arc_lns':         1 [  1.54ms,   1.54ms]   1.54ms   0.00ns   1.54ms         1 [256.00ns, 256.00ns] 256.00ns   0.00ns 256.00ns
     'graph_cst_lns':         1 [ Task timing                   n [     min,      max]      avg      dev     time         n [     min,      max]      avg      dev    dtime
              'core':         1 [ 22.05ms,  22.05ms]  22.05ms   0.00ns  22.05ms         2 [189.53us,   2.24ms]   1.21ms   1.03ms   2.43ms
        'default_lp':         1 [ 22.13ms,  22.13ms]  22.13ms   0.00ns  22.13ms         1 [  1.66ms,   1.66ms]   1.66ms   0.00ns   1.66ms
  'feasibility_pump':         1 [546.68us, 546.68us] 546.68us   0.00ns 546.68us         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
                'fj':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
   'fs_random_no_lp':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
     'graph_arc_lns':         1 [  1.54ms,   1.54ms]   1.54ms   0.00ns   1.54ms         1 [256.00ns, 256.00ns] 256.00ns   0.00ns 256.00ns
     'graph_cst_lns':         1 [  1.65ms,   1.65ms]   1.65ms   0.00ns   1.65ms         1 [345.00ns, 345.00ns] 345.00ns   0.00ns 345.00ns
     'graph_dec_lns':         1 [  1.24ms,   1.24ms]   1.24ms   0.00ns   1.24ms         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
     'graph_var_lns':         1 [  3.39ms,   3.39ms]   3.39ms   0.00ns   3.39ms         1 [671.00ns, 671.00ns] 671.00ns   0.00ns 671.00ns
                'ls':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
            'max_lp':         1 [ 18.08ms,  18.08ms]  18.08ms   0.00ns  18.08ms         1 [  1.64ms,   1.64ms]   1.64ms   0.00ns   1.64ms
             'no_lp':         1 [ 17.53ms,  17.53ms]  17.53ms   0.00ns  17.53ms         2 [254.01us,   1.77ms]   1.01ms 758.25us   2.02ms
     'quick_restart':         1 [ 17.07ms,  17.07ms]  17.07ms   0.00ns  17.07ms         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
     'reduced_costs':         1 [ 16.85ms,  16.85ms]  16.85ms   0.00ns  16.85ms         2 [271.56us, 922.57us] 597.06us 325.50us   1.19ms
         'rins/rens':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
       'rnd_cst_lns':         1 [  3.40ms,   3.40ms]   3.40ms   0.00ns   3.40ms         1 [231.00ns, 231.00ns] 231.00ns   0.00ns 231.00ns
       'rnd_var_lns':         1 [  5.03ms,   5.03ms]   5.03ms   0.00ns   5.03ms         1 [ 10.00ns,  10.00ns]  10.00ns   0.00ns  10.00ns

Search stats          Bools  Conflicts  Branches  Restarts  BacktrackToRoot  Backtrack  BoolPropag  IntegerPropag
             'core':     86        175     2'155         1              380        588       7'542         22'510
       'default_lp':     78         11       191         0              161        172         798          2'686
  'fs_random_no_lp':      0          0         0         0                0          0           0              0
           'max_lp':     78          0       156         0              156        156         626          2'214
            'no_lp':     78        170       922         1              334        548       6'711         18'145
    'quick_restart':     78          7       184         0              157        164         759          2'576
    'reduced_costs':     78          5       187         0              157        162         757          2'699

 1.65ms,   1.65ms]   1.65ms   0.00ns   1.65ms         1 [345.00ns, 345.00ns] 345.00ns   0.00ns 345.00ns
     'graph_dec_lns':         1 [  1.24ms,   1.24ms]   1.24ms   0.00ns   1.24ms         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
     'graph_var_lns':         1 [  3.39ms,   3.39ms]   3.39ms   0.00ns   3.39ms         1 [671.00ns, 671.00ns] 671.00ns   0.00ns 671.00ns
                'ls':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
            'max_lp':         1 [ 18.08ms,  18.08ms]  18.08ms   0.00ns  18.08ms         1 [  1.64ms,   1.64ms]   1.64ms   0.00ns   1.64ms
             'no_lp':         1 [ 17.53ms,  17.53ms]  17.53ms   0.00ns  17.53ms         2 [254.01us,   1.77ms]   1.01ms 758.25us   2.02ms
     'quick_restart':         1 [ 17.07ms,  17.07ms]  17.07ms   0.00ns  17.07ms         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
     'reduced_costs':         1 [ 16.85ms,  16.85ms]  16.85ms   0.00SAT formula           Fixed  Equiv  Total  VarLeft  BinaryClauses  PermanentClauses  TemporaryClauses
             'core':     36      0     86       50             92                59                12
       'default_lp':     36      0     78       42             82                15                 3
  'fs_random_no_lp':      0      0      0        0              0                 0                 0
           'max_lp':      0      0     78       78             34                12                 0
            'no_lp':     56      0     78       22            322                40                14
    'quick_restart':      6      0     78       72            346                13                 4
    'reduced_costs':      9      0     78       69            346                13                 3

SAT stats             ClassicMinim  LitRemoved  LitRemovedBinary  LitLearned  LitForgotten  Subsumed
             'core':           118         681               155       2'586             0        61
       'default_lp':             7          29                15          65             0         4
  'fs_random_no_lp':             0           0                 0           0             0         0
           'max_lp':             0           0                 0           0             0         0
            'no_lp':            62         196               448       1'148             0        87
    'quick_restart':             5          40                20          88             0         2
    'reduced_costs':             5          32                16          71             0         1

Vivification          Clauses  Decisions  LitTrue  Subsumed  LitRemoved  DecisionReused  Conflicts
             'core':       31        144        0         0           0               0          0
       'default_lp':        0          0        0         0           0               0          0
  'fs_random_no_lp':        0          0        0         0           0               0          0
           'max_lp':        0          0        0         0           0               0          0
            'no_lp':       93        378        2         4          45              45          4
    'quick_restart':        0          0        0         0           0               0          0
    'reduced_costs':        0          0        0         0           0               0          0

ns  16.85ms         2 [271.56us, 922.57us] 597.06us 325.50us   1.19ms
         'rins/rens':         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns         0 [  0.00ns,   0.00ns]   0.00ns   0.00ns   0.00ns
       'rnd_cst_lns':         1 [  3.40ms,   3.40ms]   3.40ms   0.00ns   3.40ms         1 [231.00ns, 231.00ns] 231.00ns   0.00ns 231.00ns
       'rnd_var_lns':         1 [  5.03ms,   5.03ms]   5.03ms   0.00ns   5.03ms         1 [ 10.00ns,  10.00ns]  10.00ns   0.00ns  10.00ns

Search stats          Bools  Conflicts  Branches  Restarts  BacktrackToRoot  Backtrack  BoolPropag  IntegerPropag
             'core':     86        175     2'155         1              380        588       7'542         22'510
       'default_lp':     78         11       191         0              161        172         798          2'686
  'fs_random_no_lp':      0          0         0         0                0          0           0              0
           'max_lp':     78          0       156         0 Clause deletion       at_true  l_and_not(l)  to_binary  sub_conflict  sub_extra  sub_decisions  sub_eager  sub_vivify  sub_probing  sub_inpro  blocked  eliminated  forgotten  promoted  conflicts
             'core':       49             0          3            48          6              0         13           0            0          2        0           0          0       226        175
       'default_lp':        0             0          0             4          0              0          0           0            0          0        0           0          0         7         11
  'fs_random_no_lp':        0             0          0             0          0              0          0           0            0          0        0           0          0         0          0
           'max_lp':        0             0          0             0          0              0          0           0            0          0        0           0          0         0          0
            'no_lp':        3             0          0            81          1              6          6           4            1          1        0           0          0        94        170
    'quick_restart':        0             0          0             2          0              0          0           0            0          0        0           0          0        13          7
    'reduced_costs':        0             0          0             1          0              0          0           0            0          0        0           0          0         6          5

Lp stats            Component  Iterations  AddedCuts  OPTIMAL  DUAL_F.  DUAL_U.
     'default_lp':          1         204        119       35        0        0
         'max_lp':          1          98         68        3        0        0
  'quick_restart':          1         184         61       29        0        0
  'reduced_costs':          1         187         71       18        5        0

Lp dimension         Final dimension of first component
     'default_lp':   112 rows, 145 columns, 496 entries
         'max_lp':  350 rows, 156 columns, 1713 entries
  'quick_restart':   134 rows, 145 columns, 440 entries
  'reduced_costs':   150 rows, 156 columns, 492 entries

Lp debug            CutPropag  CutEqPropag  Adjust  Overflow  Bad  BadScaling
     'default_lp':          0            0      34         0   80           0
         'max_lp':          0            0       3         0  106           0
  'quick_restart':          0            0      26         0    0           0
  'reduced_costs':          0            0      21         0    0           0

Lp pool             Constraints  Updates  Simplif  Merged  Shortened  Split  Strengthened  Cuts/Call
     'default_lp':          369        1      308       0        256      0             7    119/270
         'max_lp':          368        0        0       0          0      0             0     68/137
  'quick_restart':          311        0       35       0         35      0             0      61/96
  'reduced_costs':          371        0       77       0         57      0             0     71/114

Lp Cut           quick_restart  default_lp  max_lp  reduced_costs
         CG_FF:              -           4       3              -
          CG_K:              -           1       2              -
         CG_KL:              -           1       -              -
          CG_R:              -           4       2              -
         CG_RB:              -          10      10              -
        CG_RBP:              -           4       3              -
            IB:             61          51       -             71
      MIR_1_FF:              -           1       -              -
       MIR_1_K:              -           3       -              -
      MIR_1_KL:              -           1       -              -
      MIR_2_FF:              -           2       -              -
       MIR_2_K:              -           6       3              -
      MIR_2_KL:              -           5       3              -
      MIR_2_RB:              -           2       -              -
     MIR_2_RBP:              -           2       -              -
      MIR_3_FF:              -           1       1              -
       MIR_3_K:              -           4       3              -
      MIR_3_KL:              -           4       3              -
      MIR_3_RB:              -           1       7              -
     MIR_3_RBP:              -           2       1              -
      MIR_4_FF:              -           1       -              -
       MIR_4_K:              -           1       2              -
      MIR_4_KL:              -           1       2              -
      MIR_4_RB:              -           -       3              -
      MIR_5_FF:              -           -       1              -
       MIR_5_K:              -           2       2              -
      MIR_5_KL:              -           1       2              -
      MIR_5_RB:              -           1       3              -
      MIR_6_FF:              -           -       4              -
       MIR_6_K:              -           -       1              -
      MIR_6_KL:              -           -       3              -
      MIR_6_RB:              -           -       1              -
  ZERO_HALF_FF:              -           -       2              -
   ZERO_HALF_K:              -           1       -              -
   ZERO_HALF_R:              -           2       1              -

LNS stats           Improv/Calls  Closed  Difficulty  TimeLimit
  'graph_arc_lns':           0/1    100%    7.07e-01       0.10
  'graph_cst_lns':           0/1    100%    7.07e-01       0.10
  'graph_dec_lns':           0/0      0%    5.00e-01       0.10
  'graph_var_lns':           1/1    100%    7.07e-01       0.10
      'rins/rens':           0/0      0%    5.00e-01       0.10
    'rnd_cst_lns':           0/1    100%    7.07e-01       0.10
    'rnd_var_lns':           0/1    100%    7.07e-01       0.10

Solutions (2)       Num   Rank
  'complete_hint':    2  [0,1]
  'graph_var_lns':    2  [1,2]

Objective bounds     Num
    'am1_presolve':    1
      'default_lp':    4
  'initial_domain':    1
          'max_lp':    2

Solution repositories    Added  Queried  Synchro
    'alternative_path':      1        0        1
      'best_solutions':      4        5        4
   'fj solution hints':      0        0        0
        'lp solutions':      0        0        0
                'pump':      0        0

Improving bounds shared    Num  Sym
                  'core':    4    0
            'default_lp':   62    0
                 'no_lp':   35    0

             156        156         626          2'214
            'no_lp':     78        170       922         1              334        548       6'711         18'145
    'quick_restart':     78          7       184         0              157        164         759          2'576
    'reduced_costs':     78          5       187         0              157        162         757          2'699

SAT formula           Fixed  Equiv  Total  VarLeft  BinaryClauses  PermanentClauses  TemporaryClauses
             'core':     36      0     86       50             92                59                12
       'default_lp':     36      0     78       42             82                15                 3
  'fs_random_no_lp':      0      0      0        0              0                 0                 0
           'max_lp':      0      0     78       78             34                12                 0
            'no_lp':     56      0     78       22            322                40         Clauses shared      #Exported  #Imported  #BinaryRead  #BinaryTotal
           'core':          3          0          196           201
     'default_lp':          1          0          195           201
         'max_lp':          0          0            0           201
          'no_lp':        197          0          200           201
  'quick_restart':          0          0          181           201
  'reduced_costs':          0          0          181           201

LRAT_status: NA
[Scaling] scaled_objective_bound: 6564.77 corrected_bound: 6564.77 delta: -4.08329e-06
       14
    'quick_restart':      6      0     78       72            346                13                 4
    'reduced_costs':      9      0     78       69            346                13                 3

SAT stats             ClassicMinim  LitRemoved  LitRemovedBinary  LitLearned  LitForgotten  Subsumed
             'core':           118         681               155       2'586             0        61
       'default_lp':             7          29                15          65             0         4
  'fs_random_no_lp':             0           0                 0           0             0         0
           'max_lp':             0           0                 0           0             0         0
            'no_lp':            62         196               448       1'148             0        87
    'quick_restart':             5          40                20          88             0         2
    'reduced_costs':             5          32                16          71             0         1

Vivification          Clauses  Decisions  LitTrue  Subsumed  LitRemoved  DecisionReused  Conflicts
             'core':       31        144        0         0           0               0          0
       'default_lp':        0          0        0         0           0               0          0
  'fs_random_no_lp':        0          0        0         0           0               0          0
           'max_lp':        0          0        0         0           0               0          0
            'no_lp':       93        378        2         4          45              45          4
    'quick_restart':        0          0        0         0           0               0          0
    'reduced_costs':        0          0        0         0           0               0          0

Clause deletion       at_true  l_and_not(l)  to_binary  sub_conflict  sub_extra  sub_decisions  sub_eager  sub_vivify  sub_probing  sub_inpro  blocked  eliminated  forgotten  promoted  conflicts
             'core':       49             0          3            48          6              0         13           0            0          2        0           0          0       226        175
       'default_lp':        0             0          0             4          0              0          0           0            0          0        0           0          0         7         11
  'fs_random_no_lp':        0             0          0             0          0              0          0           0            0          0        0           0          0         0          0
           'max_lp':        0             0          0             0          0              0          0           0            0          0        0           0          0         0          0
            'no_lp':        3             0          0            81          1              6          6           4            1          1        0           0          0        94        170
    'quick_restart':        0             0          0             2          0              0          0           0            0          0        0           0          0        13          7
    'reduced_costs':        0             0          0             1          0              0          0           0            0          0        0           0          0         6          5

Lp stats            Component  Iterations  AddedCuts  OPTIMAL  DUAL_F.  DUAL_U.
     'default_lp':          1         204        119       35        0        0
         'max_lp':          1          98         68        3        0        0
  'quick_restart':          1         184         61       29        0        0
  'reduced_costs':          1         187         71       18        5        0

Lp dimension         Final dimension of first component
     'default_lp':   112 rows, 145 columns, 496 entries
         'max_lp':  350 rows, 156 columns, 1713 entries
  'quick_restart':   134 rows, 145 columns, 440 entries
  'reduced_costs':   150 rows, 156 columns, 492 entries

Lp debug            CutPropag  CutEqPropag  Adjust  Overflow  Bad  BadScaling
     'default_lp':          0            0      34         0   80           0
         'max_lp':          0            0       3         0  106           0
  'quick_restart':          0            0      26         0    0           0
  'reduced_costs':          0            0      21         0    0           0

Lp pool             Constraints  Updates  Simplif  Merged  Shortened  Split  Strengthened  Cuts/Call
     'default_lp':          369        1      308       0        256      0             7    119/270
         'max_lp':          368        0        0       0          0      0             0     68/137
  'quick_restart':          311        0       35       0         35      0             0      61/96
  'reduced_costs':          371        0       77       0         57      0             0     71/114

Lp Cut           quick_restart  default_lp  max_lp  reduced_costs
         CG_FF:              -           4       3              -
          CG_K:              -           1       2              -
         CG_KL:              -           1       -              -
          CG_R:              -           4       2              -
         CG_RB:              -          10      10              -
        CG_RBP:              -           4       3              -
            IB:             61          51       -             71
      MIR_1_FF:              -           1       -              -
       MIR_1_K:              -           3       -              -
      MIR_1_KL:              -           1       -              -
      MIR_2_FF:              -           2       -              -
       MIR_2_K:              -           6       3              -
      MIR_2_KL:              -           5       3              -
      MIR_2_RB:              -           2       -              -
     MIR_2_RBP:              -           2       -              -
      MIR_3_FF:              -           1       1              -
       MIR_3_K:              -           4       3              -
      MIR_3_KL:              -           4       3              -
      MIR_3_RB:              -           1       7              -
     MIR_3_RBP:              -           2       1              -
      MIR_4_FF:              -           1       -              -
       MIR_4_K:              -           1       2              -
      MIR_4_KL:              -           1       2              -
      MIR_4_RB:              -           -       3              -
      MIR_5_FF:              -           -       1              -
       MIR_5_K:              -           2       2              -
      MIR_5_KL:              -           1       2              -
      MIR_5_RB:              -           1       3              -
      MIR_6_FF:              -           -       4              -
       MIR_6_K:              -           -       1              -
      MIR_6_KL:              -           -       3              -
      MIR_6_RB:              -           -       1              -
  ZERO_HALF_FF:              -           -       2              -
   ZERO_HALF_K:              -           1       -              -
   ZERO_HALF_R:              -           2       1              -

LNS stats           Improv/Calls  Closed  Difficulty  TimeLimit
  'graph_arc_lns':           0/1    100%    7.07e-01       0.10
  'graph_cst_lns':           0/1    100%    7.07e-01       0.10
  'graph_dec_lns':           0/0      0%    5.00e-01       0.10
  'graph_var_lns':           1/1    100%    7.07e-01       0.10
      'rins/rens':           0/0      0%    5.00e-01       0.10
    'rnd_cst_lns':           0/1    100%    7.07e-01       0.10
    'rnd_var_lns':           0/1    100%    7.07e-01       0.10

Solutions (2)       Num   Rank
  'complete_hint':    2  [0,1]
  'graph_var_lns':    2  [1,2]

Objective bounds     Num
    'am1_presolve':    1
      'default_lp':    4
  'initial_domain':    1
          'max_lp':    2

Solution repositories    Added  Queried  Synchro
    'alternative_path':      1        0        1
      'best_solutions':      4        5        4
   'fj solution hints':      0        0        0
        'lp solutions':      0        0        0
                'pump':      0        0

Improving bounds shared    Num  Sym
                  'core':    4    0
            'default_lp':   62    0
                 'no_lp':   35    0

Clauses shared      #Exported  #Imported  #BinaryRead  #BinaryTotal
           'core':          3          0          196           201
     'default_lp':          1          0          195           201
         'max_lp':          0          0            0           201
          'no_lp':        197          0          200           201
  'quick_restart':          0          0          181           201
  'reduced_costs':          0          0          181           201

LRAT_status: NA
[Scaling] scaled_objective_bound: 6564.77 corrected_bound: 6564.77 delta: -4.08329e-06
CpSolverResponse summary:
status: OPTIMAL
objective: 6564.765329507452
best_bound: 6564.765329507452
integers: 0
booleans: 0
conflicts: 0
branches: 0
propagations: 0
integer_propagations: 0
restarts: 0
lp_iterations: 0
walltime: 0.0412346
usertime: 0.0412347
deterministic_time: 0.00942359
gap_integral: 0.0175847
solution_fingerprint: 0x17860e0bc9d9a4b9

CpSolverResponse summary:
status: OPTIMAL
objective: 6564.765329507452
best_bound: 6564.765329507452
integers: 0
booleans: 0
conflicts: 0
branches: 0
propagations: 0
integer_propagations: 0
restarts: 0
lp_iterations: 0
walltime: 0.0412346
usertime: 0.0412347
deterministic_time: 0.00942359
gap_integral: 0.0175847
solution_fingerprint: 0x17860e0bc9d9a4b9

[16]:
wfn3
[16]:
../_images/notebooks_a05_debugging_28_0.svg