Parte hartzea erabaki nuen Optimizazio arazoak konpontzeko paketeak erabili behar izan nituen horretarako. Google-ren or-tools aukeratu nuen, hainbat ebazleren interfazea dena (edo ebazle? ebazle?). Hainbat optimizazio tresna ditu, baina sortzaileek kanpoko hainbat pakete onartzen dituztela diote, besteak beste, Gurobi eta CPLEX komertzialak. Hala ere, ez gara aberatsak, beraz, SCIP eta GLPK doakoak erabiliko ditugu (bide batez, bertako garatzaile batek egindakoak). Harrigarria bada ere, ez nuen argibide bakar bat ere aurkitu edertasun hori guztia Python ingurune birtual batean nola funtzionarazi jakiteko, ez errusierazko ez ingelesezko segmentuetan, beraz, pixka bat moldatu behar izan nuen. Presaka dabiltzanentzat, jarraitu irakurtzen. , ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΌΠΎΠ΅ΠΉ Π³ΡΠ°ΡΠΎΠΌΠ°Π½ΠΈΠ΅ΠΉ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠΈΠΏΠ΅ΡΠΈΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π³ΡΠ³Π»ΠΎΠ²ΡΠΊΠΎΠ³ΠΎ ΡΠΎΡΡΠ°. ΠΠ°, Π·Π°Π±ΡΠ» ΡΡΠ°Π·Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΎΡΡ Π²ΡΡ Π² Manjaro Linux.

Lehen urratsak
Hiru paketeak Python biltegian daude, beraz, pip bidez instalatzen ditugu.
Bakoitzak bere interfazea du, eta or-tools bereziki aukeratu zen hainbat pakete probatzeko programa berridatzi gabe, beraz, helburua or-tools-ek ebazle hauek engantxatzea eta bere kabuz exekutatzen uztea da. Eta badakizu zer? Pip bidez instalatuta, or-tools-ek ez ditu pip bidez instalatutako ebazleak ikusten, eta ez dute ikusten (nork pentsatuko zuen). Beraz, benetan begiratu beharko genuke zer dioten... .
Dokumentuek diote iturburutik eraiki behar dela or-tools-ek kanpoko paketeak jaso ahal izateko. Eraikitzen saiatu ginen, baina ez zuen funtzionatu, pip bidez instalatutako ebazleak ez zirelako ikusten.
Horrenbestez, pip bidez pakete guztiak instalatzeko metodo errazenek ez dute funtzionatzen, or-tools-ek ez dituelako ebazleak ateratzen, ebazleek ez dituztelako liburutegiak or-tools-ek nahi duen moduan instalatzen, denek erroreak botatzen dizkizute, ergela deitzen zaituzte eta modu guztietan barre egiten dizutelako.
Hurrengoa Esaten dute ebazleak iturburutik eraiki behar ditudala, eta gero or-tools bera iturburutik eraiki. Esan bezain laster, egina! SCIP eta GLPK instalatu nituen, baina dokumentatu gabeko galdera batekin egin nuen topo: nola instalatu or-tools ingurune birtual batean.
Dokumentuetan zerrendatutako komando bakarra make python da, paketea sisteman globalki instalatzen duena (harrigarria, ezta?).
Hala ere, zortea izan nuen: nire tximino-puzzle ingeniaritza bilaketa amaigabean, nahi gabe make help komandoa idatzi nuen, eta or-tools eraikitzeko aukera guztien zerrenda eman zidan, gurpil paketea eraikitzeko aukera barne. Bide batez, make python_package komandoa da hori (amaieran berriro errepikatuko dut). Beraz, eraiki eta exekutatzeko garaia al da?

Arazo baten bila.
Ezerk ez du funtzionatzen or-tools eraikuntza fasean; GLPK liburutegi txarrez kexatzen da.

Dokumentazioko parametroak erabiliz SCIPekin eraikitzea arrakastatsua da, baina or-tools-ek oraindik ez du funtzionatzeari inportazioan zehar.

Ezin izan nien arazo hauei irtenbiderik aurkitu neuk bakarrik, beraz, garatzaileen GitHubera joan nintzen galdetzera zergatik haien argibideen arabera instalatzeak erroreak sortzen zituen haien kodean nonbait.

Hmm, eskerrik asko argibideagatik.
GitHub-en erantzun baten zain nengoela, interneten arakatzen ari nintzen, laguntzeko zerbait aurkitzeko asmoz. Eta harrigarria bada ere, aurkitu nuen. Hau zen... Proiektuaren taldeko buruak GLPK or-tools-ekin nola lotu idatzi zuen. Eta metodo honek azkenean funtzionatu zuen! Orain, dena SCIP gabe baina GLPK-rekin eraikitzen baduzu, erabiltzea ere posible da. Aurrerapena da hori.
Hala ere, or-tools taldeko buruak GLPK ez erabiltzea gomendatu zuen, emaitza eskasak ematen dituela esanez, eta oraindik SCIP garaitu eta funtzionarazi nahi zuela. Blogeko sarrerak iradokitzen zuen Google-ren paketeak bertsio espezifikoekin funtzionatzen duela. Ikus dezagun. eta 6.0.0 bertsioaren adierazle argi bat ikusten dugu. Makefile-ak 6.0.2 bertsioa adierazten badu ere, bertsio zaharrago bat instalatzen saiatzen gara eta listo!
Eta orain berriro ere ekintzen lan-sekuentzia.
Instalazio sekuentzia
- Deskargatu SCIP artxiboa, ziurtatuz deskargatzen ari zaren bertsioaren euskarria argi eta garbi adierazten da (nire kasuan ) eta deskonprimitu.
- Deskargatu GLPK (argitalpen hau idazteko unean, azken bertsioa 4.65 da) eta deskonprimitu.
- Instalatu SCIP komandoarekin
make GMP=false READLINE=false TPI=tny ZIMPL=false scipoptlib install INSTALLDIR=<path>/scipoptsuite-6.0.0 - Instalatu GLPK komando honekin:
./configure --prefix=<install_path> --with-pic --enable-shared make make install - Deskargatu OR-Tools GitHub-etik
git clone https://github.com/google/or-tools - Instalatu OR-Tools komando hauek erabiliz:
make third_party make python_packageAzken komandoak ez badu funtzionatzen, instalatu gurpila komando honekin:
pip install wheel - Ingurune birtuala aktibatzeko, joan Python paketea duen karpetara eta instalatu handik.
Ingurune birtual batean ez, baizik eta sistema osoarentzat globalki instalatu behar baduzu, hau egin beharrean:
make python_packageexekutatu komandoa:
make python
Iturria: www.habr.com
