درباره OR-Tools
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
OR-Tools یک نرم افزار متن باز برای بهینه سازی ترکیبی است که به دنبال یافتن بهترین راه حل برای یک مشکل از مجموعه بسیار بزرگی از راه حل های ممکن است. در اینجا چند نمونه از مشکلاتی که OR-Tools حل می کند آورده شده است:
- مسیریابی وسیله نقلیه: مسیرهای بهینه را برای ناوگان وسایل نقلیه ای که بسته ها را با توجه به محدودیت ها تحویل و تحویل می دهند پیدا کنید (به عنوان مثال، "این کامیون نمی تواند بیش از 20000 پوند حمل کند" یا "تمام تحویل ها باید در یک پنجره دو ساعته انجام شوند").
- زمانبندی: زمانبندی بهینه را برای مجموعه پیچیدهای از وظایف، که برخی از آنها باید قبل از دیگران انجام شوند، روی مجموعه ثابتی از ماشینها یا منابع دیگر، بیابید.
- بسته بندی سطل زباله: تا حد امکان اشیاء با اندازه های مختلف را در تعداد ثابتی از سطل ها با حداکثر ظرفیت بسته بندی کنید.
در بیشتر موارد، مشکلاتی از این دست تعداد زیادی راهحل ممکن دارند - برای رایانهای که نمیتواند همه آنها را جستجو کند. برای غلبه بر این، OR-Tools از الگوریتم های پیشرفته برای محدود کردن مجموعه جستجو استفاده می کند تا راه حل بهینه (یا نزدیک به بهینه) پیدا کند.
OR-Tools شامل حل کننده هایی برای موارد زیر است:
- برنامه نویسی محدودیت
- مجموعهای از تکنیکها برای یافتن راهحلهای امکانپذیر برای یک مشکل که به صورت محدودیتها بیان میشود (مثلاً یک اتاق نمیتواند برای دو رویداد به طور همزمان استفاده شود، یا فاصله تا محصولات باید کمتر از طول شلنگ باشد، یا بیشتر از پنج نباشد. برنامه های تلویزیونی را می توان به یکباره ضبط کرد).
- برنامه نویسی خطی و مختلط اعداد صحیح
- بهینه ساز خطی Glop مقدار بهینه یک تابع هدف خطی را با توجه به مجموعه ای از نابرابری های خطی به عنوان محدودیت ها (مثلاً اختصاص دادن افراد به مشاغل یا یافتن بهترین تخصیص مجموعه ای از منابع در حالی که هزینه را به حداقل می رساند) پیدا می کند. Glop و نرم افزار برنامه نویسی عدد صحیح مختلط SCIP نیز از طریق سرویس بهینه سازی اسکریپت Google Apps در دسترس هستند.
- مسیریابی خودرو
- یک کتابخانه تخصصی برای شناسایی بهترین مسیرهای وسیله نقلیه با توجه به محدودیت ها.
- الگوریتم های نمودار
- کدی برای یافتن کوتاهترین مسیرها در نمودارها، جریانهای حداقل هزینه، حداکثر جریانها و تخصیص جمع خطی.
بخش بعدی به شما کمک می کند تا به سرعت از OR-Tools استفاده کنید.
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2024-08-09 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2024-08-09 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003eOR-Tools is an open source software that helps find the best solution among many possibilities for problems like vehicle routing, scheduling, and bin packing.\u003c/p\u003e\n"],["\u003cp\u003eIt utilizes advanced algorithms to efficiently search for optimal or near-optimal solutions without having to examine every single possibility.\u003c/p\u003e\n"],["\u003cp\u003eOR-Tools offers various solvers including constraint programming, linear and mixed-integer programming, vehicle routing, and graph algorithms for diverse problem-solving needs.\u003c/p\u003e\n"],["\u003cp\u003eThese solvers can tackle complex scenarios with limitations like resource capacities, scheduling dependencies, and route optimization.\u003c/p\u003e\n"]]],["OR-Tools tackles combinatorial optimization problems, aiming to find the best solution from numerous possibilities. It addresses challenges like vehicle routing, scheduling, and bin packing. The software uses advanced algorithms to efficiently narrow the search for optimal solutions. It features solvers for Constraint Programming, handling problems with constraints, Linear and Mixed-Integer Programming for optimizing linear functions, specialized Vehicle Routing, and Graph Algorithms for path and flow calculations. OR-Tools can help in the process of finding feasible or optimal solutions.\n"],null,["# About OR-Tools\n\nOR-Tools is open source software for *combinatorial optimization*, which seeks\nto find the best solution to a problem out of a very large set of possible\nsolutions. Here are some examples of problems that OR-Tools solves:\n\n- Vehicle routing: Find optimal routes for vehicle fleets that pick up and deliver packages given constraints (e.g., \"this truck can't hold more than 20,000 pounds\" or \"all deliveries must be made within a two-hour window\").\n- Scheduling: Find the optimal schedule for a complex set of tasks, some of which need to be performed before others, on a fixed set of machines, or other resources.\n- Bin packing: Pack as many objects of various sizes as possible into a fixed number of bins with maximum capacities.\n\nIn most cases, problems like these have a vast number of possible\nsolutions---too many for a computer to search them all.\nTo overcome this, OR-Tools uses state-of-the-art algorithms to narrow down the\nsearch set, in order to find an optimal (or close to optimal) solution.\n\nOR-Tools includes solvers for:\n\n[Constraint Programming](/optimization/cp)\n: A set of techniques for finding feasible solutions to a problem expressed as\n *constraints* (e.g., a room can't be used for two events simultaneously, or the\n distance to the crops must be less than the length of the hose, or no more than\n five TV shows can be recorded at once).\n\n[Linear and Mixed-Integer Programming](/optimization/lp)\n: The [Glop](/optimization/lp/glop) linear optimizer finds the optimal value of\n a linear objective function, given a set of linear inequalities as constraints\n (e.g., assigning people to jobs, or finding the best allocation of a set of\n resources while minimizing cost). Glop and the mixed-integer programming\n software [SCIP](http://scip.zib.de) are also available via the Google Apps\n Script [Optimization Service](/apps-script/reference/optimization).\n\n[Vehicle Routing](/optimization/routing)\n: A specialized library for identifying best vehicle routes given constraints.\n\n[Graph Algorithms](/optimization/flow)\n: Code for finding shortest paths in graphs, min-cost flows, max flows, and\n linear sum assignments.\n\nThe [next section](/optimization/introduction/get_started) will get you started\nusing OR-Tools quickly."]]