หรือเครื่องมือ - เครื่องมือเพิ่มประสิทธิภาพของ Google
ชุดซอฟต์แวร์ของ Google สำหรับการเพิ่มประสิทธิภาพแบบผสมผสาน
สารบัญ
- เกี่ยวกับ OR-Tools
- โค้ดแมป
- การติดตั้ง
- เริ่มต้นอย่างรวดเร็ว
- เอกสารประกอบ
- มีส่วนร่วม
- ใบอนุญาต
เกี่ยวกับ OR-Tools
เครื่องมือเพิ่มประสิทธิภาพของ Google (หรือที่เรียกว่า OR-Tools) เป็นชุดซอฟต์แวร์โอเพ่นซอร์ส รวดเร็ว และพกพาได้ สำหรับการแก้ปัญหาการเพิ่มประสิทธิภาพแบบผสมผสาน
ห้องสวีทประกอบด้วย:
- ตัวแก้ปัญหาการเขียนโปรแกรมข้อจำกัดสองตัว (CP* และ CP-SAT);
- ตัวแก้ปัญหาการเขียนโปรแกรมเชิงเส้นสองตัว (Glop และ PDLP);
- การหุ้มรอบตัวแก้ปัญหาเชิงพาณิชย์และโอเพ่นซอร์สอื่น ๆ รวมถึงตัวแก้ปัญหาจำนวนเต็มผสม
- อัลกอริธึมการบรรจุถังและเป้
- อัลกอริทึมสำหรับปัญหาพนักงานขายเดินทางและปัญหาเส้นทางยานพาหนะ
- อัลกอริธึมกราฟ (เส้นทางที่สั้นที่สุด, การไหลของต้นทุนขั้นต่ำ, การไหลสูงสุด, การกำหนดผลรวมเชิงเส้น)
เราเขียน OR-Tools ในภาษา C++ แต่มี Wrapper ใน Python, C# และ Java
โค้ดแมป
ชุดซอฟต์แวร์นี้ประกอบด้วยส่วนประกอบดังต่อไปนี้:
- Makefile ระดับบนสุดสำหรับ GNU Make ที่สร้างตาม
- บริษัท ย่อย makefiles สร้างไฟล์ CI และสร้างเอกสารระบบ
- CMakeLists.txt ระดับบนสุดสำหรับบิลด์ที่ใช้ CMake
- cmake ไฟล์ CMake ย่อย, CI และสร้างเอกสารระบบ
- WORKSPACE ระดับบนสุดสำหรับโครงสร้างแบบ Bazel
- bazel ไฟล์ Bazel ย่อย, CI และเอกสารประกอบระบบบิลด์
- ไดเรกทอรีรากของ ortools สำหรับซอร์สโค้ด
- สาธารณูปโภคขั้นพื้นฐาน
- อัลกอริธึม อัลกอริธึมพื้นฐาน
- ตัวอย่าง ตัวอย่างที่สร้างขึ้นอย่างระมัดระวัง
- อัลกอริธึมกราฟกราฟ
- ตัวอย่าง ตัวอย่างที่สร้างขึ้นอย่างระมัดระวัง
- linear_solver wrapper ตัวแก้ปัญหาเชิงเส้น
- ตัวอย่าง ตัวอย่างที่สร้างขึ้นอย่างระมัดระวัง
- Glop Simplex-based ตัวแก้ปัญหาการเขียนโปรแกรมเชิงเส้น
- ตัวอย่าง ตัวอย่างที่สร้างขึ้นอย่างระมัดระวัง
- pdlp ตัวแก้ปัญหาการเขียนโปรแกรมเชิงเส้นลำดับแรก
- ตัวอย่าง ตัวอย่างที่สร้างขึ้นอย่างระมัดระวัง
- lp_data โครงสร้างข้อมูลสำหรับโมเดลเชิงเส้น
- constraint_solver ตัวแก้ปัญหาข้อจำกัดและการกำหนดเส้นทาง
- docs เอกสารประกอบของส่วนประกอบ
- ตัวอย่าง ตัวอย่างที่สร้างขึ้นอย่างระมัดระวัง
- วันเสาร์แก้ SAT
- docs เอกสารประกอบของส่วนประกอบ
- ตัวอย่าง ตัวอย่างที่สร้างขึ้นอย่างระมัดระวัง
- ตัวแก้ bop Boolean ตาม SAT
- utilities ที่จำเป็นสำหรับตัวแก้ปัญหาข้อจำกัด
- ตัวอย่างไดเรกทอรีรากสำหรับตัวอย่างทั้งหมด
- สนับสนุนตัวอย่างจากชุมชน
- ตัวอย่าง cpp C++
- ตัวอย่างดอทเน็ต .Net
- ตัวอย่างจาวา Java
- หลาม ตัวอย่างหลาม
- โน๊ตบุ๊ค โน๊ตบุ๊ค Jupyter/IPython
- ตัวอย่าง FlatZinc FlatZinc
- การทดสอบการทดสอบหน่วยและรายงานข้อผิดพลาด
- เครื่องมือ เครื่องมือการจัดส่ง (เช่น ไบนารี Windows GNU, สคริปต์, นักเทียบท่าปล่อย)
การติดตั้ง
ชุดซอฟต์แวร์นี้ได้รับการทดสอบภายใต้:
- Ubuntu 18.04 LTS ขึ้นไป (64 บิต);
- Apple macOS Mojave พร้อม Xcode 9.x (64 บิต);
- Microsoft Windows พร้อม Visual Studio 2022 (64 บิต)
ปัจจุบัน OR-Tools สร้างด้วย Makefile แต่ยังให้การสนับสนุน Bazel และ CMake อีกด้วย
สำหรับคำแนะนำในการติดตั้ง (ทั้งแหล่งที่มาและไบนารี) โปรดไปที่ https://developers.google.com/optimization/introduction/installing
สร้างจากแหล่งที่มาโดยใช้ Make (ดั้งเดิม)
เราจัดเตรียมงานสร้างตาม Make
โปรดตรวจสอบคำแนะนำในการสร้าง
สร้างจากแหล่งที่มาโดยใช้ CMake
เราจัดเตรียมบิลด์ที่ใช้ CMake
โปรดตรวจสอบคำแนะนำในการสร้าง CMake
สร้างจากแหล่งที่มาโดยใช้ Bazel
เราให้บริการโครงสร้างแบบ Bazel
โปรดตรวจสอบคำแนะนำในการสร้าง Bazel
เริ่มต้นอย่างรวดเร็ว
วิธีที่ดีที่สุดในการเรียนรู้วิธีใช้ OR-Tools คือการปฏิบัติตามบทช่วยสอนในคู่มือนักพัฒนาของเรา:
https://developers.google.com/optimization/introduction/get_started
หากคุณต้องการเรียนรู้จากตัวอย่างโค้ด โปรดดูตัวอย่างในไดเร็กทอรีตัวอย่าง
เอกสารประกอบ
เอกสารฉบับสมบูรณ์สำหรับ OR-Tools มีอยู่ที่: https://developers.google.com/optimization/
มีส่วนร่วม
ไฟล์ CONTRIBUTING.md มีคำแนะนำเกี่ยวกับวิธีการส่งข้อตกลงสิทธิ์การใช้งานผู้ร่วมให้ข้อมูลก่อนที่จะส่งคำขอดึงข้อมูล (PR) แน่นอนว่า หากคุณยังใหม่กับโปรเจ็กต์นี้ โดยปกติแล้วจะเป็นการดีที่สุดที่จะหารือเกี่ยวกับข้อเสนอต่างๆ และหาฉันทามติก่อนที่จะส่ง PR ครั้งแรก
ใบอนุญาต
ชุดซอฟต์แวร์ OR-Tools ได้รับอนุญาตภายใต้เงื่อนไขของ Apache License 2.0
ดูใบอนุญาตสำหรับข้อมูลเพิ่มเติม