Vendosi të marr pjesë në dhe kisha nevojë për paketat për zgjidhjen e problemeve të 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 e tij deklarojnë se mbështesin disa paketa të jashtme, përfshirë ato komerciale Gurobi dhe CPLEX. Megjithatë, ne nuk jemi të pasur, kështu që do të përdorim SCIP dhe GLPK falas. Për habinë time, nuk gjeta asnjë udhëzues për të bërë që gjithë kjo të funksiononte në një mjedis virtual të Python-it, as në segmentin tonë, as në atë anglishtfolës të internetit, dhe duhej pak të punoja. Për ata që janë shumë të nxituar, lexoni menjëherë , të tjerët i sugjeroj të njohin shkrimin tim të dyshimtë që përshkruan ngjarjet e instalimit të softuerit të Google. Po, harrova të them se gjithçka u instalua në Manjaro Linux.

Hapat e parë
Të tre paketat ekzistojnë në repozitorin e Python-it, kështu që i instalojmë përmes pip.
Çdo njëri prej tyre ka ndërfaqen e tij, dhe or-tools u zgjodh saktësisht për të provuar disa paketa pa e shkruar programin në mënyrë të konsiderueshme, kështu që detyra është që or-tools të lidhet me këta zgjidhës dhe t'i japë mundësinë që të ekzekutohen përmes tij. Dhe çfarë mendoni? or-tools i instaluar përmes pip nuk i sheh zgjidhësit e instaluar përmes pip, dhe ata nuk e shohin atë (kush do të mendonte). Prandaj, duhet të shohim se çfarë shkruhet në .
Dokumentet thonë se duhet të ndërtohet nga burimi që or-tools të lidhet me paketat e jashtme. Provojmë të ndërtojmë, dhe nuk dalin gjëra sepse zgjidhësit e instaluar përmes pip nuk janë të dukshëm.
Përkatësisht, mënyrat më të thjeshta për të instaluar të gjitha paketat përmes pip nuk funksionojnë, sepse or-tools nuk merr zgjidhësit, zgjidhësit nuk instalojnë bibliotekat ashtu siç kërkon or-tools, të gjithë hedhin gabime, të quajnë injorant dhe e tallin.
Më pas në thotë se duhet ndërtuar zgjidhësit nga burimi dhe pastaj ndërtuar or-tools nga burimi. E thënë e bërë! Instalova SCIP, instalova GLPK, por doli një pyetje e pa përshkruar në dokumentacion se si të vendos or-tools në një mjedis virtual.
E vetmja e shkruar në dokumente, komanda make python instalon paketën globalisht në sistem (e çuditshme, apo jo?).
Megjithatë, pata fat: gjatë kërkimeve inxhinierike me metodën e majmunëve të pafund, rastësisht nisa komandën make help, dhe më u shfaq një listë e të gjitha opsioneve të ndërtimit të or-tools, përfshirë një mundësi për të ndërtuar paketën wheel. Kjo është komanda make python_package, nëse nuk e dinit (do ta përsëris sërish në fund). Pra, kështu që, ka ardhur koha për të ndërtuar dhe ekzekutuar?

Po kërkojmë problemin
Nuk funksionon asgjë në fazën e ndërtimit të or-tools, ai ankohet për biblioteka të këqija GLPK.

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

Nuk gjeti ndonjë zgjidhje për këto probleme vetë, prandaj shkova në GitHub te zhvilluesit për të pyetur pse instalimi sipas udhëzimeve të tyre jep gabime diku brenda kodit të tyre.

Hmm, faleminderit për shpjegimet
Ndërsa prisja përgjigje në GitHub, po kërkoja në Internet, shpresoj për të gjetur diçka që mund të më ndihmojë. Dhe siç nuk është e çuditshme, e gjeta. Kjo ishte nga lideri i projektit, ku ai shkruante se si të lidhej GLPK me or-tools. Dhe ky mënyrë përfundimisht funksionoi! Tani, nëse ndërtojmë gjithçka pa SCIP, por me GLPK, atëherë me këtë madje mund të punojmë. Një përparim tashmë.
Megjithatë, lideri i ekipit or-tools nuk e rekomandoi përdorimin e GLPK, duke thënë se rezultatet nuk ishin të shkëlqyera, dhe gjithashtu dëshirojmë të mposhtim SCIP dhe ta bëjmë të funksionojë. Një fqinj në blog më nxori në mendje se paketa e Google funksionon me versione të caktuara. Shikojmë dhe shohim një tregues të qartë të versionit 6.0.0. Edhe pse në makefile është e shënuar versioni 6.0.2, provoni të instaloni një version më të vjetër dhe voilà!
Dhe tani një herë tjetër një sekuencë e punës.
Sekuenca e instalimit
- Shkarkoni arkivin SCIP, duke u siguruar që është e shënuar qartë mbështetje për atë version që po shkarkoni (në rastin tim ) dhe shpërndajeni.
- Shkarkoni GLPK (në momentin e postit versioni i fundit ishte 4.65) dhe shpërndajeni.
- 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 komandat e fundit nuk funksionojnë, instaloni wheel me komandën:
pip install wheel - Aktivizoni mjedisin virtual, shkoni në dosjen me paketën Python dhe instaloni prej aty.
Nëse dëshironi të instaloni gjithashtu globalisht për të gjithë sistemin, në vend të:
make python_packageekzekuto komandën:
make python
Burimi: habr.com
