Parmeggiani-Lab / elfin-solver

Standard Genetic Algorithm solver for elfin
MIT License
0 stars 0 forks source link

Support complex network decimation #12

Open joy13975 opened 5 years ago

joy13975 commented 5 years ago

In the most general case, the input network may involve branch points.

Determine how to break up the network into solvable sub parts i.e. free, 1H and or 2H cases.

joy13975 commented 5 years ago

Special case:

  1. Simple loop: Shapes like a circle, triangle, or square outline, with no constraints but path guides.

Current proposal to solve this special case: Treat this as a special case that requires pseudo placement of a single module somewhere in the pg_network to make it 2H. The choice of pg joint as the breaking point very likely will affect the solution fitness so each point needs to be tried (linear time..)

  1. Shared Constraints: Shared constraints: Duplicate the pg joint on the constrained module in elfin-ui, then disconnect the pg network, breaking it into 2 (unless the pg networks connect on some other ends).​
joy13975 commented 4 years ago

Place to look into: https://github.com/Parmeggiani-Lab/elfin-solver/blob/dac70d97beed208191fbb0e6a5139f68f8362755/src/work_package.cc#L278