Nanapa-kevitra ny handray anjara aho ary nilaina ny nampiasa fonosana mba hamahana ny olan'ny fanatsarana. Nisafidy ny Google Tool or-tools aho, izay interface tsara ho an'ny solvers samihafa (sa solvers? solvers?). Ahitana fitaovana fanatsarana maromaro izy io, fa ny mpamorona dia mitaky fanohanana ireo fonosana ivelany maro, anisan'izany ny Gurobi ara-barotra sy CPLEX. Na izany aza, tsy mpanankarena izahay, ary hampiasa SCIP sy GLPK maimaim-poana (avy amin'ny developer an-trano, raha ny marina). Nahagaga ahy fa tsy nahita toromarika iray momba ny fomba hanaovana an'io hatsarana rehetra io ao amin'ny tontolo virtoaly Python aho amin'ny haben'ny ampahany amin'ny Internet sy amin'ny teny anglisy ary tsy maintsy nieritreritra kely aho. Ho an'izay maika dia vakio avy hatrany , ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΌΠΎΠ΅ΠΉ Π³ΡΠ°ΡΠΎΠΌΠ°Π½ΠΈΠ΅ΠΉ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠΈΠΏΠ΅ΡΠΈΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π³ΡΠ³Π»ΠΎΠ²ΡΠΊΠΎΠ³ΠΎ ΡΠΎΡΡΠ°. ΠΠ°, Π·Π°Π±ΡΠ» ΡΡΠ°Π·Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΎΡΡ Π²ΡΡ Π² Manjaro Linux.

dingana voalohany
Ny fonosana telo dia misy ao amin'ny tahiry Python, noho izany dia apetrakay amin'ny alΓ lan'ny pip.
Ny tsirairay amin'izy ireo dia manana ny interface manokana, ary ny or-fitaovana dia nofidina fotsiny mba hanandrana fonosana samihafa nefa tsy manoratra be dia be ny programa, noho izany ny asa dia ny or-fitaovana haka ireo solvers ireo ary avelao izy ireo handeha amin'ny tenany. Ary ahoana ny hevitrao? Ny fametrahana amin'ny alΓ lan'ny pip or-tools dia tsy mahita solvers napetraka amin'ny pip, ary tsy hitan'izy ireo izany (iza no nieritreritra). Noho izany, mbola mila mijery ny zavatra soratan'izy ireo ianao .
Ny docs dia manoratra fa mila manangana avy amin'ny loharano ianao mba ahafahan'ny or-tools maka fonosana ivelany. Miezaka manangona azy izahay, saingy tsy misy na inona na inona, satria tsy hita ny solvers napetraka amin'ny pip.
Noho izany, ny fomba tsotra indrindra amin'ny fametrahana ny fonosana rehetra amin'ny pip dia tsy mandeha, satria ny or-tools dia tsy misintona ny solvers, ny solvers dia tsy mametraka ny tranomboky amin'ny fomba na-fitaovana, ny rehetra dia manipy fahadisoana aminao, miantso anao ho adala ary mihomehy amin'ny fomba rehetra azo atao.
Manaraka in Nanoratra izy ireo fa mila manangona solvers avy amin'ny kaody loharano ianao, avy eo manangona na fitaovana avy amin'ny kaody loharano. Efa vita! Nametraka SCIP aho, nametraka GLPK, saingy nipoitra ny fanontaniana, izay tsy voalaza ao amin'ny antontan-taratasy, ny fomba fametrahana na-fitaovana amin'ny tontolo virtoaly.
Ny baiko tokana voasoratra ao amin'ny docks, manao python, mametraka ny fonosana manerantany amin'ny rafitra (mahagaga, sa tsy izany?).
Na izany aza, tsara vintana aho: nandritra ny fikarohana ara-teknika tamin'ny alΓ lan'ny fomba gidro tsy misy fiafarana, tsy nahy aho nitendry ny baiko fanampiana, ary nanome ahy ny lisitry ny safidy rehetra amin'ny fananganana na-fitaovana, anisan'izany ny safidy hanamboarana ny kodiarana. fonosana. Ity ny baiko manao python_package, raha misy (averiko indray amin'ny farany). Noho izany, fotoana izao ve ny mivory sy manomboka?

Mitady olana
Tsy misy na inona na inona mandeha amin'ny dingana fananganana na fitaovana, mitaraina momba ny tranomboky GLPK ratsy.

Ny fananganana miaraka amin'ny SCIP miaraka amin'ny mari-pamantarana avy amin'ny antontan-taratasy dia nahomby, fa ny or-tools dia mbola mandΓ tsy hiasa amin'ny fotoana fanafarana.

Tsy nahita vahaolana ho an'ireo olana ireo irery aho, ka nankany amin'ny GitHub aho hanontany ireo mpamorona hoe nahoana ny fametrahana araka ny torolalany no miteraka hadisoana any amin'ny toerana misy azy.

Hmm, misaotra amin'ny fanazavana
Teo am-piandrasana valiny tao amin'ny Github aho dia nitety Internet, nanantena hahita zavatra hanampy ahy. Ary mahagaga fa hitako izany. Izy izay dia mpitarika ny tetikasa, izay nanoratany momba ny fomba fampifandraisana ny GLPK amin'ny na-fitaovana. Ary nahomby ihany ity fomba ity! Ankehitriny, raha manangona ny zava-drehetra tsy misy SCIP ianao, fa miaraka amin'ny GLPK, dia afaka miara-miasa aminy mihitsy aza ianao. Efa mandroso.
Na izany aza, ny mpitarika ny ekipan'ny ekipa or-tools dia tsy nanoro hevitra ny hampiasa ny GLPK, nilaza fa tsy misy dikany ny vokatra asehony, ary mbola te handresy ny SCIP aho ary hampihatra izany. mpifanolo-bodirindrina Ny bilaogy dia nanome ahy ny hevitra fa ny fonosana Google dia miasa amin'ny dikan-teny manokana. Andeha hojerentsika ary hitantsika eo ny fanondro mazava ny version 6.0.0. Na dia eo aza ny zava-misy fa ny version 6.0.2 dia aseho ao amin'ny makefile, manandrana mametraka dikan-teny tranainy izahay ary voila!
Ary izao indray ny filaharan'ny hetsika.
Filaharan'ny fametrahana
- Ampidino ny rakitra SCIP, ataovy azo antoka izany Ny fanohanana ny dikan-teny alainao dia voalaza mazava tsara (raha ny ahy ) ary sokafy.
- Ampidino ny GLPK (amin'ity lahatsoratra ity dia 4.65 ny dikan-teny farany) ary esory izany.
- Mametraka baiko SCIP
make GMP=false READLINE=false TPI=tny ZIMPL=false scipoptlib install INSTALLDIR=<path>/scipoptsuite-6.0.0 - Mametraka GLPK miaraka amin'ny baiko:
./configure --prefix=<install_path> --with-pic --enable-shared make make install - Misintona OR-Tools avy amin'ny Github
git clone https://github.com/google/or-tools - Mametraka OR-Tools mampiasa ny baiko:
make third_party make python_packageRaha tsy mandeha ny baiko farany dia apetraho ny kodiarana miaraka amin'ny baiko:
pip install wheel - Mba hampavitrika ny tontolo virtoaly, mandehana any amin'ny lahatahiry miaraka amin'ny fonosana Python ary apetraho avy eo.
Raha mila mametraka tsy amin'ny tontolo virtoaly ianao, fa manerantany ho an'ny rafitra manontolo, fa tsy:
make python_packagemandehana ny baiko:
make python
Source: www.habr.com
