Upload
volien
View
212
Download
0
Embed Size (px)
Citation preview
Requirements
• Tactical problem • Handle large problems
– 100 000 roads– ~20 000 stands– Seasons x 5 years => ~20 time periods– 3 road upgrade options
• Solvable within 24 hours• GIS• Easy to use (district manager) • Possible to sell
Requirements Problem Software developm. Demo
1. Learn2. Understand3. Install4. Start (open projekt/session)5. Import data6. Define problem7. Run problem8. Read/manage results
Easy to use = Easy to:
Requirements Problem Design Demo
Model features
• Road upgrading• Harvest scheduling• Stand accessibility (soil bearing)• Road accessibility• Forwarding cost• Even-flow• Demand
Requirements Problem Software developm. Demo
Stand Year Season
1 ? ?
2 ? ?
3 ? ?
…5‐year set of standsto be harvested Road Year Season Upgrade
to
1 ? ? ?
2 ? ? ?
3 ? ? ?
…
Requirements Problem Software developm. Demo
Objective function
MinimizeTotal road upgrading (discounted)+Total forwarding cost (discounted)
Requirements Problem Software developm. Demo
Public road
Forest roadsegments
Stand B
Stand A
Stand C
Building the road network - routesRequirements Problem Software developm. Demo
Roads in short
• Stand => hauling road• Hauling road => route• Route => road classes
Requirements Problem Software developm. Demo
Route logics
• Roads in a route used in a certain season must all have a certain minimum road class for the season
• Roads have state and upgrade variables
• A stand-specific hauling road must be activated if a stand is harvested. At least one route that the terrain road connects to must be activated
• ”Clique constraints”: Dominating routes
Requirements Problem Software developm. Demo
Software components
• Matrix generation – new matrix generator (C#)• Solver independent (LP format)• Gurobi, Xpress, Cplex• Road network and GIS – DotSpatial• Shortest path – QuickGraph• UI – DevExpress• Database mapping – DevExpress XPO
Requirements Problem Software developm. Demo
New modelling API (LP-writer)
_areaConstraint = new CliqueConstraint(_optModelWriter, "Area", _harvestDecisions, _standSet );
_harvestDecisions = newBinaryDecisionVariable(_optModelWriter, VariableNames.HARV_DEC2, _standSet.Union(_periodSet));
Requirements Problem Software developm. Demo
Open source project?
LP-writer features
1. Set, Constraint, Variable, Coefficent object types + derived types2. Foreach3. Slicing4. Time offset5. Sparse matrix6. Slack variables7. “Accounting” variables8. “Objective function accounting variables”9. In my opinion, much easier than
Requirements Problem Software developm. Demo
Third part commercial components
• State-of-the art solvers pricing repellent to small companies• Royalty-based an option. Cloud-services emerging, but IMHO not
”there” yet• Modelling tools also expensive (GAMS, AMPL, AIMMS)• DevExpress – royalty free, 600 USD per developer
Requirements Problem Software developm. Demo
Deployment• Code objfuscation • Licensing and license server
– Free trial– Academic– Business
• Solver licensing• Installation package• EULA, third part components• Help documentation• Support desk• Payment routines
Requirements Problem Software developm. Demo