Vendosa të marr pjesë në dhe kishte nevojë për të përdorur paketa për të zgjidhur problemet e optimizimit. Zgjodha mjetin e Google, or-tools, i cili ofron një ndërfaqe për zgjidhës të ndryshëm. Ai përmban disa mjete optimizimi, por krijuesit shprehin mbështetje për disa paketa të jashtme, duke përfshirë Gurobi dhe CPLEX. Megjithatë, ne nuk jemi të pasur dhe do të përdorim SCIP dhe GLPK falas (nga një zhvillues vendas, për mendimin time). Për habinë time, nuk gjetëm asnjë udhëzues se si ta bëjmë këtë mrekulli të funksionojë në një ambient virtual të Python-it, në hapësirat tona dhe ato anglishtfolëse në internet dhe duhej të merremi pak me këtë. Për ata që janë shumë të nxituar, lexoni menjëherë , të tjerët i propozoj të njihemi me grafomani të dyshimtë të cilën shkruaj për përpjekjet e mia për të instaluar softin e Google. Po, harrova të them se gjithçka u instalua në Manjaro Linux.

Hapat e parë
Të tre paketat ekzistojnë në depozitën e Python-it, prandaj i instalojmë ato me pip.
Çdo njëri prej tyre ka ndërfaqen e vet, dhe or-tools u zgjodh pikërisht për të provuar paketa të ndryshme, pa pasur nevojë për të riparë programin në mënyrë të konsiderueshme, prandaj detyra është që or-tools të lidhë këta zgjidhës dhe të mundësojë që ata të kompaktësohen. Dhe çfarë mendoni? Or-tools i instaluar me pip nuk sheh zgjidhësit e instaluar më pip, dhe ata nuk e shohin atë (kush do ta kishte menduar). Kështu që, duhet të shohim se çfarë shkruhet në .
Dokumentet thonë se duhet të ndërtojmë nga burimi, për të lidhur or-tools me paketat e jashtme. Provojmë të ndërtojmë, por nuk del asgjë, sepse zgjidhësit e instaluar me pip nuk janë të dukshëm.
Prandaj, mënyrat më të thjeshta për të instaluar të gjitha paketat me pip nuk funksionojnë, sepse or-tools nuk tërheq zgjidhësit, zgjidhësit nuk instalojnë bibliotekat siç do të dëshironin or-tools, të gjithë thyejnë gabimet në ty, të quajnë të paditur dhe të qeshin në çdo mënyrë.
Më pas në thonë se duhet të ndërtojmë zgjidhësit nga burimi, pasuar nga ndërtimi i or-tools nga burimi. Thënë dhe bërë! Instalova SCIP, instalova GLPK, por u paraqit një pyetje që nuk ishte përshkruar në dokumentacion si ta vendos or-tools në një ambient virtual.
E vetëmi komandë e shkruar në dokumente, make python, instalon paketën globalisht në sistem (e habitshme, apo jo?).
Megjithatë, pata fat: gjatë kërkimit inxhinieror me metodën e majmunëve të pafund, rastësisht shkrova komandën make help, dhe më dha një listë të të gjitha opsioneve të ndërtimit për or-tools, në mesin e të cilave ishte mundësia për të ndërtuar paketën wheel. Kjo është komandë make python_package, për të qenë i qartë (do ta përsëris edhe një herë në fund). Pra, çfarë, është koha për të ndërtuar dhe ekzekutuar?

Të gjejmë problemin
Nuk funksionon asgjë në fazën e ndërtimit të or-tools, ai ankohet për bibliotekat e këqija GLPK.

Ndërtimi me SCIP me parametra nga dokumentacioni kalon me sukses, por or-tools ende refuzon të funksionojë në momentin e importimit.

Nuk kam gjetur një zgjidhje vetë për këto probleme, prandaj u drejtuam në GitHub për të pyetur zhvilluesit pse instalimi sipas udhëzimeve të tyre jep gabime diku brenda kodit të tyre.

Hmmm, faleminderit për sqarimet
Ndërsa prisja një përgjigje në GitHub, po kërkoja në internet, me shpresën të gjej diçka që mund të më ndihmojë. Dhe siç nuk është e habitshme, e gjeta. Ishte team lideri i projektit, ku ai shkruante se si të lidhte GLPK me or-tools. Dhe kjo metodë në fund të fundit funksionoi! Tani, nëse ndërtojmë gjithçka pa SCIP, por me GLPK, atëherë me këtë është e mundur të punojmë. Ka progres.
Megjithatë, lideri i ekipit të or-tools nuk e këshilloi përdorimin e GLPK, duke thënë se rezultatet janë jo të mira, dhe gjithashtu dëshiroj të fitoj mbi SCIP dhe ta bëj atë të funksionojë. Një informacion në blog më shtyu të mendoj se paketa e Google funksionon me versione specifike. Le të shohim dhe shohim një praninë të qartë të versionit 6.0.0. Pavarësisht se në makefile është e shënuar versioni 6.0.2, provon të instalohet një version më të vjetër dhe voilà!
Tani përsëri, renditja e veprimeve që funksionojnë.
Renditja e instalimit
- Shkarkoni arkivën SCIP, duke u siguruar që është shënuar qartë mbështetje për atë version që po e shkarkoni (në rastin tim ) dhe shfrytëzoni.
- Shkarkoni GLPK (në momentin e postimit versioni i fundit është 4.65) dhe shfrytëzoni.
- Instaloni SCIP me komandën
make GMP=false READLINE=false TPI=tny ZIMPL=false scipoptlib install INSTALLDIR=/scipoptsuite-6.0.0 - Instaloni GLPK me komandën:
./configure --prefix= --with-pic --enable-shared make make install - Shkarkoni OR-Tools nga GitHub
git clone https://github.com/google/or-tools - Instaloni OR-Tools me komandat:
make third_party make python_packageNëse komanda e fundit nuk funksionon, instaloni wheel me komandën:
pip install wheel - Aktivizoni mjedisin virtual, kaloni në dosjen me paketën Python dhe instaloni nga atje.
Nëse duhet të instaloni jo në një mjedis virtual, por globalisht për të gjithë sistemin, në vend të:
make python_packageekzekutoni komandën:
make python
Burimi: habr.com
