מבוא
במדריך הזה מוסבר איך ליצור מהמקור OR-כלים, עם תמיכה ב-Java, ב-Linux.
אלא אם בכוונתך לשנות את קוד המקור או להשתמש בפותר צד שלישי עם OR-Tools, אנחנו ממליצים על התקנת החבילה.
ההוראות האלה עשויות לפעול גם בגרסאות Linux אחרות, אבל בדקו אותם רק במכונות שעומדות בדרישות הבאות:
- Alpine Edge ב-64 ביט (x86_64)
- Centos 7 LTS בגרסת 64 ביט (x86_64)
- Debian SID 64-bit (x86_64)
- Debian 11 (bullseye) 64-bit (x86_64)
- Fedora 38-64-ביט (x86_64)
- Fedora 37-64-bit (x86_64)
- OpenSuse Leap בגרסת 64 ביט (x86_64)
- Ubuntu 24.04 64-bit (x86_64)
- Ubuntu 22.04 LTS בגרסת 64 סיביות (x86_64)
- Ubuntu 20.04 LTS בגרסת 64 סיביות (x86_64)
דרישות מוקדמות
הקטעים הבאים מתארים את הדרישות המוקדמות להתקנת כלי OR.
כלי C++
כדי להתקין את כלי C++, פותחים חלון טרמינל ומזינים:
Alpine
apk add alpine-sdk linux-headers cmake lsb-release-minimal
סנטוס
sudo yum groupinstall -y 'Development Tools'
sudo yum install -y pkgconfig redhat-lsb-core
Debian
sudo apt update
sudo apt install -y build-essential cmake lsb-release
פדורה
sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core
פדורה
sudo dnf groupinstall -y 'Development Tools'
sudo dnf install -y gcc-c++ cmake redhat-lsb-core
OpenSUSE
sudo zypper refresh
sudo zypper install -y git gcc11 gcc11-c++ lsb-release
Ubuntu
sudo apt update
sudo apt install -y build-essential cmake lsb-release
Ubuntu
sudo apt update
sudo apt install -y build-essential cmake lsb-release
Ubuntu
sudo apt update
sudo apt install -y build-essential cmake lsb-release
SWIG
כדי להתקין את SWIG, פותחים חלון טרמינל ומזינים:
Alpine
apk add swig
סנטוס
sudo yum install -y swig
Debian
sudo apt install -y swig
פדורה
sudo dnf install -y swig
פדורה
sudo dnf install -y swig
OpenSUSE
sudo zypper install -y swig
Ubuntu
sudo apt install -y swig
Ubuntu
sudo apt install -y swig
Ubuntu
sudo apt install -y swig
Java JDK >= 8.0
כדי להתקין את Java JDK מגרסה 8.0 ואילך, פותחים חלון טרמינל ומזינים:
Alpine
sudo apk add openjdk8
export JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
סנטוס
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
Debian
sudo apt install -y default-jdk
export JAVA_HOME=/usr/lib/jvm/default-java
פדורה
sudo dnf install -y java-openjdk java-openjdk-devel
פדורה
sudo dnf install -y java-openjdk java-openjdk-devel
OpenSUSE
sudo zypper install -y java-1_8_0-openjdk java-1_8_0-openjdk-devel
Ubuntu
sudo apt install -y default-jdk
Ubuntu
sudo apt install -y default-jdk
Ubuntu
sudo apt install -y default-jdk
Maven >= 3.3
כדי להתקין את Maven בגרסה 3.3 ואילך, פותחים חלון טרמינל ומזינים:
Alpine
sudo apk add maven
סנטוס
sudo yum install -y maven
Debian
sudo apt install -y maven
פדורה
sudo dnf install -y maven
פדורה
sudo dnf install -y maven
OpenSUSE
sudo zypper install -y maven
Ubuntu
sudo apt install -y maven
Ubuntu
sudo apt install -y maven
Ubuntu
sudo apt install -y maven
כדי לבדוק את Maven, המערכת מותקנת כראוי ויכולה למצוא את Java באמצעות הפקודה הבאה:
mvn -v
הורדת קוד המקור
יש שתי הסתעפויות נפרדות של קוד המקור OR-Tools
GitHub: stable
ו-main
.
ההסתעפות stable
נבדקת ביסודיות והיא אמורה לפעול ללא שגיאות בכל המכשירים
פלטפורמות נתמכות.
ההסתעפות main
היא המקום שבו העדכונים האחרונים
שיפורים יושמו; הוא עדכני יותר אבל פחות יציב.
הורדת קוד המקור היציב
אפשר לקבל את קוד המקור היציב עבור OR-Tools באחת מהדרכים הבאות:
משכפלים את ההסתעפות
stable
באמצעות הזנת:git clone https://github.com/google/or-tools
אפשר להוריד את הגרסה האחרונה בקובץ דחוס, על ידי לחיצה על הלחצן
Clone or download
ב-GitHub.
הורדת קוד המקור הראשי
כדי לאחזר את קוד המקור מההסתעפות main
, מזינים:
git clone -b main https://github.com/google/or-tools
הורדה של גרסאות קודמות
אפשר לקבל את קוד המקור של גרסאות קודמות באחת מהדרכים הבאות:
- מורידים גרסה קודמת מדף הגרסה של GitHub.
בהנחה שכבר יצרתם מאגר מקומי (עד
git clone
), אפשר לבדוק גרסה ספציפית באמצעות Git tag. לדוגמה: כדי לעבוד עם גרסה v9.10 במקום הסתעפותmain
, מזינים את הפקודות הבאות במאגר המקומי:git fetch --all --tags --prune
git checkout tags/v9.10 -b v9.10
הגדרת ה-build
לפני שיוצרים כלי OR, צריך להגדיר את מערכת ה-build של CMake גנרטיבית.
פותחים טרמינל ועוברים לספרייה שאליה חילצתם את הקבצים. לאחר מכן מזינים:
cmake -S . -B build -DBUILD_DEPS=ON -DBUILD_JAVA=ON
לבדוק את מסמכי תיעוד של CMake לקבלת פרטים.
שימוש ב-SCIP
החל מגרסה 7.8, SCIP משולב כעת כך שלא יהיה צורך להתקין אותו באופן ידני.
שימוש ב-Gurobi
עכשיו הגרסה של Gurobi משולבת מראש. במקרה הצורך, בזמן הריצה, כלי OR-יחפשו
הספרייה המשותפת של Gurobi בנתיב ההתקנה המוגדר כברירת מחדל של מנהלי ההתקנה של Gurobi
ב-MAC OS X וב-Windows, או באמצעות משתנה הסביבה GUROBI_HOME
.
שימוש בפותר MIP אופציונלי של צד שלישי
אפשר גם להשתמש בכלי OR עם כל אחד מה-MIP האופציונליות הבאות של צד שלישי פתרונות שהתמיכה שלהם מושבתת כברירת מחדל:
- CPLEX
- GLPK (Linux ו-MacOS בלבד)
- XPRESS Solver
כדאי לעיין את מסמכי התיעוד האלה אפשר לקבל פרטים נוספים.
פיתוח קוד המקור
כדי ליצור את קוד המקור, פותחים טרמינל ועוברים אל הספרייה שבה שחילצת את הקבצים. לאחר מכן מזינים את הפקודה הבאה כדי להדר את OR-Tools:
cmake --build build --config Release --target all -j -v
לבדוק את מסמכי תיעוד של CMake אפשר לקבל פרטים נוספים.
בדיקת קוד המקור
כדי לבדוק שהכול פועל כמו שצריך, צריך להזין:
cmake --build build --config Release --target test -v
הפקודה גורמת להרצת דוגמאות עבור כלי OR. אם כל הדוגמאות פועלות בהצלחה, אתם מוכנים תחילת העבודה עם כלי OR.
ניקוי קובצי ה-build
אם צריך להתקין מחדש את כלי OR, הפקודה:
rm -r build
תסיר את כל יחסי התלות האלה. הפעולה הזו יכולה להועיל לאיפוס למצב נקי.
לאחר מכן מזינים מחדש את הפקודות:
cmake -S . -B build -DBUILD_DEPS=ON -DBUILD_JAVA=ON
cmake --build build --config Release --target all -j -v
התקנת OR-Tools במערכת ההפעלה
ניתן להתקין את כלי OR-Java במערכת ההפעלה על ידי הזנת:
cmake --build build --config Release --target install -v