CINXE.COM

Google OR-Tools Reference  |  Google for Developers

<!doctype html> <html lang="en" dir="ltr"> <head> <meta name="google-signin-client-id" content="721724668570-nbkv1cfusk7kk4eni4pjvepaus73b13t.apps.googleusercontent.com"> <meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/developerprofiles https://www.googleapis.com/auth/developerprofiles.award"> <meta property="og:site_name" content="Google for Developers"> <meta property="og:type" content="website"><meta name="theme-color" content="#1a73e8"><meta charset="utf-8"> <meta content="IE=Edge" http-equiv="X-UA-Compatible"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="manifest" href="/_pwa/developers/manifest.json" crossorigin="use-credentials"> <link rel="preconnect" href="//www.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.gstatic.com" crossorigin> <link rel="preconnect" href="//fonts.googleapis.com" crossorigin> <link rel="preconnect" href="//apis.google.com" crossorigin> <link rel="preconnect" href="//www.google-analytics.com" crossorigin><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"> <link rel="stylesheet" href="//fonts.googleapis.com/css2?family=Material+Icons&family=Material+Symbols+Outlined&display=block"><link rel="stylesheet" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/css/app.css"> <link rel="shortcut icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/favicon-new.png"> <link rel="apple-touch-icon" href="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/touchicon-180-new.png"><link rel="canonical" href="https://developers.google.com/optimization/reference"><link rel="search" type="application/opensearchdescription+xml" title="Google for Developers" href="https://developers.google.com/s/opensearch.xml"> <title>Google OR-Tools Reference &nbsp;|&nbsp; Google for Developers</title> <meta property="og:title" content="Google OR-Tools Reference &nbsp;|&nbsp; Google for Developers"><meta property="og:url" content="https://developers.google.com/optimization/reference"><meta property="og:image" content="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/opengraph/google-blue.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="675"><meta property="og:locale" content="en"><meta name="twitter:card" content="summary_large_image"><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "headline": "Google OR-Tools Reference" } </script><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "OR-Tools", "item": "https://developers.google.com/optimization" },{ "@type": "ListItem", "position": 2, "name": "Google OR-Tools Reference", "item": "https://developers.google.com/optimization/reference" }] } </script> <link rel="stylesheet" href="/extras.css"></head> <body class="" template="page" theme="google-blue" type="article" layout="docs" concierge='closed' display-toc pending> <devsite-progress type="indeterminate" id="app-progress"></devsite-progress> <section class="devsite-wrapper"> <devsite-cookie-notification-bar></devsite-cookie-notification-bar><devsite-header role="banner"> <div class="devsite-header--inner nocontent"> <div class="devsite-top-logo-row-wrapper-wrapper"> <div class="devsite-top-logo-row-wrapper"> <div class="devsite-top-logo-row"> <button type="button" id="devsite-hamburger-menu" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Navigation menu button" visually-hidden aria-label="Open menu"> </button> <div class="devsite-product-name-wrapper"> <a href="https://developers.google.com/optimization"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="Google OR-Tools" src="https://developers.google.com/static/optimization/images/orLogo.png" srcset="https://developers.google.com/static/optimization/images/orLogo_36.png 36w, https://developers.google.com/static/optimization/images/orLogo_48.png 48w, https://developers.google.com/static/optimization/images/orLogo_72.png 72w, https://developers.google.com/static/optimization/images/orLogo_96.png 96w, https://developers.google.com/static/optimization/images/orLogo_480.png 480w, https://developers.google.com/static/optimization/images/orLogo_720.png 720w, https://developers.google.com/static/optimization/images/orLogo_856.png 856w, https://developers.google.com/static/optimization/images/orLogo_960.png 960w, https://developers.google.com/static/optimization/images/orLogo_1440.png 1440w, https://developers.google.com/static/optimization/images/orLogo_1920.png 1920w, https://developers.google.com/static/optimization/images/orLogo_2880.png 2880w" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/optimization" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google OR-Tools" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>OR-Tools </a> </li> </ul> </span> </div> <div class="devsite-top-logo-row-middle"> <div class="devsite-header-upper-tabs"> <devsite-tabs class="upper-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Upper tabs"> <tab class="devsite-active"> <a href="https://developers.google.com/optimization" track-metadata-eventdetail="https://developers.google.com/optimization" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - or-tools" track-metadata-module="primary nav" aria-label="OR-Tools, selected" data-category="Site-Wide Custom Events" data-label="Tab: OR-Tools" track-name="or-tools" > OR-Tools </a> </tab> <tab > <a href="https://developers.google.com/optimization/service" track-metadata-eventdetail="https://developers.google.com/optimization/service" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - or api" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: OR API" track-name="or api" > OR API </a> </tab> </nav> </devsite-tabs> </div> <devsite-search enable-signin enable-search enable-suggestions enable-query-completion project-name="OR-Tools" tenant-name="Google for Developers" project-scope="/optimization" url-scoped="https://developers.google.com/s/results/optimization" > <form class="devsite-search-form" action="https://developers.google.com/s/results" method="GET"> <div class="devsite-search-container"> <button type="button" search-open class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Open search"></button> <div class="devsite-searchbox"> <input aria-activedescendant="" aria-autocomplete="list" aria-label="Search" aria-expanded="false" aria-haspopup="listbox" autocomplete="off" class="devsite-search-field devsite-search-query" name="q" placeholder="Search" role="combobox" type="text" value="" > <div class="devsite-search-image material-icons" aria-hidden="true"> </div> <div class="devsite-search-shortcut-icon-container" aria-hidden="true"> <kbd class="devsite-search-shortcut-icon">/</kbd> </div> </div> </div> </form> <button type="button" search-close class="devsite-search-button devsite-header-icon-button button-flat material-icons" aria-label="Close search"></button> </devsite-search> </div> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> <devsite-user enable-profiles fp-auth id="devsite-user"> <span class="button devsite-top-button" aria-hidden="true" visually-hidden>Sign in</span> </devsite-user> </div> </div> </div> <div class="devsite-collapsible-section "> <div class="devsite-header-background"> <div class="devsite-product-id-row" > <div class="devsite-product-description-row"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/optimization" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Lower Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > OR-Tools </a> </li> </ul> </div> </div> <div class="devsite-doc-set-nav-row"> <devsite-tabs class="lower-tabs"> <nav class="devsite-tabs-wrapper" aria-label="Lower tabs"> <tab > <a href="https://developers.google.com/optimization/install" track-metadata-eventdetail="https://developers.google.com/optimization/install" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - installation" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Installation" track-name="installation" > Installation </a> </tab> <tab > <a href="https://developers.google.com/optimization/introduction" track-metadata-eventdetail="https://developers.google.com/optimization/introduction" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - guides" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" > Guides </a> </tab> <tab class="devsite-active"> <a href="https://developers.google.com/optimization/reference" track-metadata-eventdetail="https://developers.google.com/optimization/reference" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - reference" track-metadata-module="primary nav" aria-label="Reference, selected" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" > Reference </a> </tab> <tab > <a href="https://developers.google.com/optimization/examples" track-metadata-eventdetail="https://developers.google.com/optimization/examples" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - examples" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Examples" track-name="examples" > Examples </a> </tab> <tab > <a href="https://developers.google.com/optimization/support" track-metadata-eventdetail="https://developers.google.com/optimization/support" class="devsite-tabs-content gc-analytics-event " track-type="nav" track-metadata-position="nav - support" track-metadata-module="primary nav" data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" > Support </a> </tab> </nav> </devsite-tabs> </div> </div> </div> </div> </devsite-header> <devsite-book-nav scrollbars > <div class="devsite-book-nav-filter" > <span class="filter-list-icon material-icons" aria-hidden="true"></span> <input type="text" placeholder="Filter" aria-label="Type to filter" role="searchbox"> <span class="filter-clear-button hidden" data-title="Clear filter" aria-label="Clear filter" role="button" tabindex="0"></span> </div> <nav class="devsite-book-nav devsite-nav nocontent" aria-label="Side menu"> <div class="devsite-mobile-header"> <button type="button" id="devsite-close-nav" class="devsite-header-icon-button button-flat material-icons gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Close navigation" aria-label="Close navigation"> </button> <div class="devsite-product-name-wrapper"> <a href="https://developers.google.com/optimization"> <div class="devsite-product-logo-container" size="medium" > <picture> <img class="devsite-product-logo" alt="Google OR-Tools" src="https://developers.google.com/static/optimization/images/orLogo.png" srcset="https://developers.google.com/static/optimization/images/orLogo_36.png 36w, https://developers.google.com/static/optimization/images/orLogo_48.png 48w, https://developers.google.com/static/optimization/images/orLogo_72.png 72w, https://developers.google.com/static/optimization/images/orLogo_96.png 96w, https://developers.google.com/static/optimization/images/orLogo_480.png 480w, https://developers.google.com/static/optimization/images/orLogo_720.png 720w, https://developers.google.com/static/optimization/images/orLogo_856.png 856w, https://developers.google.com/static/optimization/images/orLogo_960.png 960w, https://developers.google.com/static/optimization/images/orLogo_1440.png 1440w, https://developers.google.com/static/optimization/images/orLogo_1920.png 1920w, https://developers.google.com/static/optimization/images/orLogo_2880.png 2880w" sizes="64px" loading="lazy" > </picture> </div> </a> <span class="devsite-product-name"> <ul class="devsite-breadcrumb-list" > <li class="devsite-breadcrumb-item devsite-has-google-wordmark"> <a href="https://developers.google.com/optimization" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Upper Header" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="Google OR-Tools" > <svg class="devsite-google-wordmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 148 48"> <title>Google</title> <path class="devsite-google-wordmark-svg-path" d="M19.58,37.65c-9.87,0-18.17-8.04-18.17-17.91c0-9.87,8.3-17.91,18.17-17.91c5.46,0,9.35,2.14,12.27,4.94l-3.45,3.45c-2.1-1.97-4.93-3.49-8.82-3.49c-7.21,0-12.84,5.81-12.84,13.02c0,7.21,5.64,13.02,12.84,13.02c4.67,0,7.34-1.88,9.04-3.58c1.4-1.4,2.32-3.41,2.66-6.16H19.58v-4.89h16.47c0.18,0.87,0.26,1.92,0.26,3.06c0,3.67-1.01,8.21-4.24,11.44C28.93,35.9,24.91,37.65,19.58,37.65z M61.78,26.12c0,6.64-5.1,11.53-11.36,11.53s-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53S61.78,19.43,61.78,26.12z M56.8,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C53.84,33.11,56.8,30.22,56.8,26.12z M87.25,26.12c0,6.64-5.1,11.53-11.36,11.53c-6.26,0-11.36-4.89-11.36-11.53c0-6.68,5.1-11.53,11.36-11.53C82.15,14.59,87.25,19.43,87.25,26.12zM82.28,26.12c0-4.15-2.96-6.99-6.39-6.99c-3.43,0-6.39,2.84-6.39,6.99c0,4.11,2.96,6.99,6.39,6.99C79.32,33.11,82.28,30.22,82.28,26.12z M112.09,15.29v20.7c0,8.52-5.02,12.01-10.96,12.01c-5.59,0-8.95-3.76-10.22-6.81l4.41-1.83c0.79,1.88,2.71,4.1,5.81,4.1c3.8,0,6.16-2.36,6.16-6.77v-1.66h-0.18c-1.14,1.4-3.32,2.62-6.07,2.62c-5.76,0-11.05-5.02-11.05-11.49c0-6.51,5.28-11.57,11.05-11.57c2.75,0,4.93,1.22,6.07,2.58h0.18v-1.88H112.09z M107.64,26.16c0-4.06-2.71-7.03-6.16-7.03c-3.49,0-6.42,2.97-6.42,7.03c0,4.02,2.93,6.94,6.42,6.94C104.93,33.11,107.64,30.18,107.64,26.16z M120.97,3.06v33.89h-5.07V3.06H120.97z M140.89,29.92l3.93,2.62c-1.27,1.88-4.32,5.11-9.61,5.11c-6.55,0-11.28-5.07-11.28-11.53c0-6.86,4.77-11.53,10.71-11.53c5.98,0,8.91,4.76,9.87,7.34l0.52,1.31l-15.42,6.38c1.18,2.31,3.01,3.49,5.59,3.49C137.79,33.11,139.58,31.84,140.89,29.92zM128.79,25.77l10.31-4.28c-0.57-1.44-2.27-2.45-4.28-2.45C132.24,19.04,128.66,21.31,128.79,25.77z"/> </svg>OR-Tools </a> </li> </ul> </span> </div> </div> <div class="devsite-book-nav-wrapper"> <div class="devsite-mobile-nav-top"> <ul class="devsite-nav-list"> <li class="devsite-nav-item"> <a href="/optimization" class="devsite-nav-title gc-analytics-event devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: OR-Tools" track-name="or-tools" data-category="Site-Wide Custom Events" data-label="Responsive Tab: OR-Tools" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > OR-Tools </span> </a> <ul class="devsite-nav-responsive-tabs"> <li class="devsite-nav-item"> <a href="/optimization/install" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Installation" track-name="installation" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Installation" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Installation </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/optimization/introduction" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Guides" track-name="guides" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Guides" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Guides </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> <li class="devsite-nav-item"> <a href="/optimization/reference" class="devsite-nav-title gc-analytics-event devsite-nav-has-children devsite-nav-active" data-category="Site-Wide Custom Events" data-label="Tab: Reference" track-name="reference" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Reference" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip menu="_book"> Reference </span> <span class="devsite-nav-icon material-icons" data-icon="forward" menu="_book"> </span> </a> </li> <li class="devsite-nav-item"> <a href="/optimization/examples" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: Examples" track-name="examples" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Examples" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Examples </span> </a> </li> <li class="devsite-nav-item"> <a href="/optimization/support" class="devsite-nav-title gc-analytics-event devsite-nav-has-children " data-category="Site-Wide Custom Events" data-label="Tab: Support" track-name="support" data-category="Site-Wide Custom Events" data-label="Responsive Tab: Support" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > Support </span> <span class="devsite-nav-icon material-icons" data-icon="forward" > </span> </a> </li> </ul> </li> <li class="devsite-nav-item"> <a href="/optimization/service" class="devsite-nav-title gc-analytics-event " data-category="Site-Wide Custom Events" data-label="Tab: OR API" track-name="or api" data-category="Site-Wide Custom Events" data-label="Responsive Tab: OR API" track-type="globalNav" track-metadata-eventDetail="globalMenu" track-metadata-position="nav"> <span class="devsite-nav-text" tooltip > OR API </span> </a> </li> </ul> </div> <div class="devsite-mobile-nav-bottom"> <ul class="devsite-nav-list" menu="_book"> <li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>OR-Tools Reference</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/optimization/reference" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>C++ Reference</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/optimization/reference/index_cpp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/index_cpp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/index_cpp" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Algorithms</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/optimization/reference/algorithms" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/algorithms" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/algorithms" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/algorithms/dense_doubly_linked_list" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/algorithms/dense_doubly_linked_list" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/algorithms/dense_doubly_linked_list" ><span class="devsite-nav-text" tooltip>dense_doubly_linked_list</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/algorithms/dynamic_partition" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/algorithms/dynamic_partition" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/algorithms/dynamic_partition" ><span class="devsite-nav-text" tooltip>dynamic_partition</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/algorithms/dynamic_permutation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/algorithms/dynamic_permutation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/algorithms/dynamic_permutation" ><span class="devsite-nav-text" tooltip>dynamic_permutation</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/algorithms/find_graph_symmetries" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/algorithms/find_graph_symmetries" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/algorithms/find_graph_symmetries" ><span class="devsite-nav-text" tooltip>find_graph_symmetries</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/algorithms/hungarian" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/algorithms/hungarian" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/algorithms/hungarian" ><span class="devsite-nav-text" tooltip>hungarian</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/algorithms/knapsack_solver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/algorithms/knapsack_solver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/algorithms/knapsack_solver" ><span class="devsite-nav-text" tooltip>knapsack_solver</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/algorithms/knapsack_solver_for_cuts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/algorithms/knapsack_solver_for_cuts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/algorithms/knapsack_solver_for_cuts" ><span class="devsite-nav-text" tooltip>knapsack_solver_for_cuts</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/algorithms/sparse_permutation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/algorithms/sparse_permutation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/algorithms/sparse_permutation" ><span class="devsite-nav-text" tooltip>sparse_permutation</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>CP-SAT</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/optimization/reference/sat" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/all_different" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/all_different" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/all_different" ><span class="devsite-nav-text" tooltip>all_different</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/boolean_problem" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/boolean_problem" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/boolean_problem" ><span class="devsite-nav-text" tooltip>boolean_problem</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/circuit" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/circuit" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/circuit" ><span class="devsite-nav-text" tooltip>circuit</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/clause" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/clause" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/clause" ><span class="devsite-nav-text" tooltip>clause</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cp_constraints" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cp_constraints" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cp_constraints" ><span class="devsite-nav-text" tooltip>cp_constraints</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cp_model" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cp_model" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cp_model" ><span class="devsite-nav-text" tooltip>cp_model</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cp_model_checker" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cp_model_checker" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cp_model_checker" ><span class="devsite-nav-text" tooltip>cp_model_checker</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cp_model_expand" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cp_model_expand" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cp_model_expand" ><span class="devsite-nav-text" tooltip>cp_model_expand</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cp_model_lns" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cp_model_lns" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cp_model_lns" ><span class="devsite-nav-text" tooltip>cp_model_lns</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cp_model_loader" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cp_model_loader" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cp_model_loader" ><span class="devsite-nav-text" tooltip>cp_model_loader</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cp_model_mapping" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cp_model_mapping" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cp_model_mapping" ><span class="devsite-nav-text" tooltip>cp_model_mapping</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cp_model_objective" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cp_model_objective" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cp_model_objective" ><span class="devsite-nav-text" tooltip>cp_model_objective</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cp_model_postsolve" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cp_model_postsolve" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cp_model_postsolve" ><span class="devsite-nav-text" tooltip>cp_model_postsolve</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cp_model_presolve" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cp_model_presolve" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cp_model_presolve" ><span class="devsite-nav-text" tooltip>cp_model_presolve</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cp_model_search" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cp_model_search" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cp_model_search" ><span class="devsite-nav-text" tooltip>cp_model_search</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cp_model_solver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cp_model_solver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cp_model_solver" ><span class="devsite-nav-text" tooltip>cp_model_solver</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cp_model_symmetries" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cp_model_symmetries" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cp_model_symmetries" ><span class="devsite-nav-text" tooltip>cp_model_symmetries</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cp_model_utils" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cp_model_utils" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cp_model_utils" ><span class="devsite-nav-text" tooltip>cp_model_utils</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cumulative" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cumulative" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cumulative" ><span class="devsite-nav-text" tooltip>cumulative</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cumulative_energy" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cumulative_energy" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cumulative_energy" ><span class="devsite-nav-text" tooltip>cumulative_energy</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/cuts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/cuts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/cuts" ><span class="devsite-nav-text" tooltip>cuts</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/diffn" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/diffn" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/diffn" ><span class="devsite-nav-text" tooltip>diffn</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/diffn_util" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/diffn_util" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/diffn_util" ><span class="devsite-nav-text" tooltip>diffn_util</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/disjunctive" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/disjunctive" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/disjunctive" ><span class="devsite-nav-text" tooltip>disjunctive</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/drat_checker" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/drat_checker" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/drat_checker" ><span class="devsite-nav-text" tooltip>drat_checker</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/drat_proof_handler" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/drat_proof_handler" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/drat_proof_handler" ><span class="devsite-nav-text" tooltip>drat_proof_handler</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/drat_writer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/drat_writer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/drat_writer" ><span class="devsite-nav-text" tooltip>drat_writer</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/encoding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/encoding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/encoding" ><span class="devsite-nav-text" tooltip>encoding</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/feasibility_pump" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/feasibility_pump" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/feasibility_pump" ><span class="devsite-nav-text" tooltip>feasibility_pump</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/implied_bounds" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/implied_bounds" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/implied_bounds" ><span class="devsite-nav-text" tooltip>implied_bounds</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/inclusion" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/inclusion" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/inclusion" ><span class="devsite-nav-text" tooltip>inclusion</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/integer" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/integer" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/integer" ><span class="devsite-nav-text" tooltip>integer</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/integer_expr" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/integer_expr" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/integer_expr" ><span class="devsite-nav-text" tooltip>integer_expr</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/integer_search" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/integer_search" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/integer_search" ><span class="devsite-nav-text" tooltip>integer_search</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/intervals" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/intervals" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/intervals" ><span class="devsite-nav-text" tooltip>intervals</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/lb_tree_search" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/lb_tree_search" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/lb_tree_search" ><span class="devsite-nav-text" tooltip>lb_tree_search</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/linear_constraint" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/linear_constraint" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/linear_constraint" ><span class="devsite-nav-text" tooltip>linear_constraint</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/linear_constraint_manager" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/linear_constraint_manager" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/linear_constraint_manager" ><span class="devsite-nav-text" tooltip>linear_constraint_manager</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/linear_programming_constraint" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/linear_programming_constraint" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/linear_programming_constraint" ><span class="devsite-nav-text" tooltip>linear_programming_constraint</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/linear_relaxation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/linear_relaxation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/linear_relaxation" ><span class="devsite-nav-text" tooltip>linear_relaxation</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/lp_utils" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/lp_utils" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/lp_utils" ><span class="devsite-nav-text" tooltip>lp_utils</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/max_hs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/max_hs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/max_hs" ><span class="devsite-nav-text" tooltip>max_hs</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/model" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/model" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/model" ><span class="devsite-nav-text" tooltip>model</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/optimization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/optimization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/optimization" ><span class="devsite-nav-text" tooltip>optimization</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/parameters_validation" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/parameters_validation" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/parameters_validation" ><span class="devsite-nav-text" tooltip>parameters_validation</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/pb_constraint" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/pb_constraint" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/pb_constraint" ><span class="devsite-nav-text" tooltip>pb_constraint</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/precedences" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/precedences" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/precedences" ><span class="devsite-nav-text" tooltip>precedences</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/presolve_context" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/presolve_context" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/presolve_context" ><span class="devsite-nav-text" tooltip>presolve_context</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/presolve_util" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/presolve_util" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/presolve_util" ><span class="devsite-nav-text" tooltip>presolve_util</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/probing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/probing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/probing" ><span class="devsite-nav-text" tooltip>probing</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/pseudo_costs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/pseudo_costs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/pseudo_costs" ><span class="devsite-nav-text" tooltip>pseudo_costs</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/restart" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/restart" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/restart" ><span class="devsite-nav-text" tooltip>restart</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/rins" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/rins" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/rins" ><span class="devsite-nav-text" tooltip>rins</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/sat_base" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/sat_base" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/sat_base" ><span class="devsite-nav-text" tooltip>sat_base</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/sat_decision" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/sat_decision" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/sat_decision" ><span class="devsite-nav-text" tooltip>sat_decision</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/sat_inprocessing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/sat_inprocessing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/sat_inprocessing" ><span class="devsite-nav-text" tooltip>sat_inprocessing</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/sat_solver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/sat_solver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/sat_solver" ><span class="devsite-nav-text" tooltip>sat_solver</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/scheduling_constraints" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/scheduling_constraints" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/scheduling_constraints" ><span class="devsite-nav-text" tooltip>scheduling_constraints</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/scheduling_cuts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/scheduling_cuts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/scheduling_cuts" ><span class="devsite-nav-text" tooltip>scheduling_cuts</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/simplification" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/simplification" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/simplification" ><span class="devsite-nav-text" tooltip>simplification</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/subsolver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/subsolver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/subsolver" ><span class="devsite-nav-text" tooltip>subsolver</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/swig_helper" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/swig_helper" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/swig_helper" ><span class="devsite-nav-text" tooltip>swig_helper</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/symmetry" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/symmetry" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/symmetry" ><span class="devsite-nav-text" tooltip>symmetry</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/symmetry_util" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/symmetry_util" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/symmetry_util" ><span class="devsite-nav-text" tooltip>symmetry_util</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/synchronization" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/synchronization" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/synchronization" ><span class="devsite-nav-text" tooltip>synchronization</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/table" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/table" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/table" ><span class="devsite-nav-text" tooltip>table</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/theta_tree" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/theta_tree" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/theta_tree" ><span class="devsite-nav-text" tooltip>theta_tree</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/timetable" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/timetable" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/timetable" ><span class="devsite-nav-text" tooltip>timetable</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/timetable_edgefinding" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/timetable_edgefinding" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/timetable_edgefinding" ><span class="devsite-nav-text" tooltip>timetable_edgefinding</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/util" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/util" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/util" ><span class="devsite-nav-text" tooltip>util</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/var_domination" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/var_domination" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/var_domination" ><span class="devsite-nav-text" tooltip>var_domination</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/sat/zero_half_cuts" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/sat/zero_half_cuts" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/sat/zero_half_cuts" ><span class="devsite-nav-text" tooltip>zero_half_cuts</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Network Flow and Graph</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/optimization/reference/graph" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/assignment" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/assignment" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/assignment" ><span class="devsite-nav-text" tooltip>assignment</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/christofides" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/christofides" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/christofides" ><span class="devsite-nav-text" tooltip>christofides</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/cliques" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/cliques" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/cliques" ><span class="devsite-nav-text" tooltip>cliques</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/connected_components" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/connected_components" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/connected_components" ><span class="devsite-nav-text" tooltip>connected_components</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/ebert_graph" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/ebert_graph" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/ebert_graph" ><span class="devsite-nav-text" tooltip>ebert_graph</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/eulerian_path" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/eulerian_path" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/eulerian_path" ><span class="devsite-nav-text" tooltip>eulerian_path</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/graph" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/graph" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/graph" ><span class="devsite-nav-text" tooltip>graph</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/graphs" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/graphs" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/graphs" ><span class="devsite-nav-text" tooltip>graphs</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/hamiltonian_path" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/hamiltonian_path" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/hamiltonian_path" ><span class="devsite-nav-text" tooltip>hamiltonian_path</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/io" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/io" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/io" ><span class="devsite-nav-text" tooltip>io</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/iterators" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/iterators" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/iterators" ><span class="devsite-nav-text" tooltip>iterators</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/linear_assignment" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/linear_assignment" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/linear_assignment" ><span class="devsite-nav-text" tooltip>linear_assignment</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/max_flow" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/max_flow" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/max_flow" ><span class="devsite-nav-text" tooltip>max_flow</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/min_cost_flow" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/min_cost_flow" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/min_cost_flow" ><span class="devsite-nav-text" tooltip>min_cost_flow</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/minimum_spanning_tree" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/minimum_spanning_tree" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/minimum_spanning_tree" ><span class="devsite-nav-text" tooltip>minimum_spanning_tree</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/one_tree_lower_bound" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/one_tree_lower_bound" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/one_tree_lower_bound" ><span class="devsite-nav-text" tooltip>one_tree_lower_bound</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/perfect_matching" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/perfect_matching" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/perfect_matching" ><span class="devsite-nav-text" tooltip>perfect_matching</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/shortestpaths" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/shortestpaths" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/shortestpaths" ><span class="devsite-nav-text" tooltip>shortestpaths</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/strongly_connected_components" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/strongly_connected_components" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/strongly_connected_components" ><span class="devsite-nav-text" tooltip>strongly_connected_components</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/topologicalsorter" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/topologicalsorter" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/topologicalsorter" ><span class="devsite-nav-text" tooltip>topologicalsorter</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/graph/util" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/graph/util" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/graph/util" ><span class="devsite-nav-text" tooltip>util</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Linear Solver</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/optimization/reference/linear_solver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/linear_solver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/linear_solver" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/linear_solver/glop_utils" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/linear_solver/glop_utils" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/linear_solver/glop_utils" ><span class="devsite-nav-text" tooltip>glop_utils</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/linear_solver/gurobi_proto_solver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/linear_solver/gurobi_proto_solver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/linear_solver/gurobi_proto_solver" ><span class="devsite-nav-text" tooltip>gurobi_proto_solver</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/linear_solver/linear_expr" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/linear_solver/linear_expr" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/linear_solver/linear_expr" ><span class="devsite-nav-text" tooltip>linear_expr</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/linear_solver/linear_solver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/linear_solver/linear_solver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/linear_solver/linear_solver" ><span class="devsite-nav-text" tooltip>linear_solver</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/linear_solver/linear_solver_callback" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/linear_solver/linear_solver_callback" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/linear_solver/linear_solver_callback" ><span class="devsite-nav-text" tooltip>linear_solver_callback</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/linear_solver/model_exporter" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/linear_solver/model_exporter" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/linear_solver/model_exporter" ><span class="devsite-nav-text" tooltip>model_exporter</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/linear_solver/model_exporter_swig_helper" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/linear_solver/model_exporter_swig_helper" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/linear_solver/model_exporter_swig_helper" ><span class="devsite-nav-text" tooltip>model_exporter_swig_helper</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/linear_solver/model_validator" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/linear_solver/model_validator" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/linear_solver/model_validator" ><span class="devsite-nav-text" tooltip>model_validator</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/linear_solver/pdlp_proto_solver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/linear_solver/pdlp_proto_solver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/linear_solver/pdlp_proto_solver" ><span class="devsite-nav-text" tooltip>pdlp_proto_solver</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/linear_solver/sat_proto_solver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/linear_solver/sat_proto_solver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/linear_solver/sat_proto_solver" ><span class="devsite-nav-text" tooltip>sat_proto_solver</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/linear_solver/sat_solver_utils" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/linear_solver/sat_solver_utils" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/linear_solver/sat_solver_utils" ><span class="devsite-nav-text" tooltip>sat_solver_utils</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/linear_solver/scip_callback" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/linear_solver/scip_callback" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/linear_solver/scip_callback" ><span class="devsite-nav-text" tooltip>scip_callback</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/linear_solver/scip_helper_macros" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/linear_solver/scip_helper_macros" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/linear_solver/scip_helper_macros" ><span class="devsite-nav-text" tooltip>scip_helper_macros</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/linear_solver/scip_proto_solver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/linear_solver/scip_proto_solver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/linear_solver/scip_proto_solver" ><span class="devsite-nav-text" tooltip>scip_proto_solver</span></a></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Routing</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/optimization/reference/constraint_solver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/constraint_solver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/constraint_solver" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/constraint_solver/constraint_solver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/constraint_solver/constraint_solver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/constraint_solver/constraint_solver" ><span class="devsite-nav-text" tooltip>constraint_solver</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/constraint_solver/constraint_solveri" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/constraint_solver/constraint_solveri" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/constraint_solver/constraint_solveri" ><span class="devsite-nav-text" tooltip>constraint_solveri</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/constraint_solver/routing" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/constraint_solver/routing" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/constraint_solver/routing" ><span class="devsite-nav-text" tooltip>routing</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/constraint_solver/routing_filters" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/constraint_solver/routing_filters" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/constraint_solver/routing_filters" ><span class="devsite-nav-text" tooltip>routing_filters</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/constraint_solver/routing_flags" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/constraint_solver/routing_flags" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/constraint_solver/routing_flags" ><span class="devsite-nav-text" tooltip>routing_flags</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/constraint_solver/routing_index_manager" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/constraint_solver/routing_index_manager" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/constraint_solver/routing_index_manager" ><span class="devsite-nav-text" tooltip>routing_index_manager</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/constraint_solver/routing_lp_scheduling" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/constraint_solver/routing_lp_scheduling" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/constraint_solver/routing_lp_scheduling" ><span class="devsite-nav-text" tooltip>routing_lp_scheduling</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/constraint_solver/routing_neighborhoods" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/constraint_solver/routing_neighborhoods" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/constraint_solver/routing_neighborhoods" ><span class="devsite-nav-text" tooltip>routing_neighborhoods</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/constraint_solver/routing_parameters" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/constraint_solver/routing_parameters" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/constraint_solver/routing_parameters" ><span class="devsite-nav-text" tooltip>routing_parameters</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/constraint_solver/routing_search" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/constraint_solver/routing_search" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/constraint_solver/routing_search" ><span class="devsite-nav-text" tooltip>routing_search</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/constraint_solver/routing_types" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/constraint_solver/routing_types" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/constraint_solver/routing_types" ><span class="devsite-nav-text" tooltip>routing_types</span></a></li></ul></div></li></ul></div></li><li class="devsite-nav-item devsite-nav-expandable"><div class="devsite-expandable-nav"> <a class="devsite-nav-toggle" aria-hidden="true"></a><div class="devsite-nav-title devsite-nav-title-no-path" tabindex="0" role="button"> <span class="devsite-nav-text" tooltip>Python Reference</span> </div><ul class="devsite-nav-section"><li class="devsite-nav-item"><a href="/optimization/reference/python/index_python" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/python/index_python" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/python/index_python" ><span class="devsite-nav-text" tooltip>Overview</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/python/algorithms/pywrapknapsack_solver" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/python/algorithms/pywrapknapsack_solver" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/python/algorithms/pywrapknapsack_solver" ><span class="devsite-nav-text" tooltip>Algorithms</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/python/sat/python/cp_model" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/python/sat/python/cp_model" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/python/sat/python/cp_model" ><span class="devsite-nav-text" tooltip>CP-SAT</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/python/graph/pywrapgraph" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/python/graph/pywrapgraph" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/python/graph/pywrapgraph" ><span class="devsite-nav-text" tooltip>Network Flow and Graph</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/python/linear_solver/pywraplp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/python/linear_solver/pywraplp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/python/linear_solver/pywraplp" ><span class="devsite-nav-text" tooltip>Linear Solver</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/python/constraint_solver/pywrapcp" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/python/constraint_solver/pywrapcp" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/python/constraint_solver/pywrapcp" ><span class="devsite-nav-text" tooltip>Routing</span></a></li><li class="devsite-nav-item"><a href="/optimization/reference/python/util/sorted_interval_list" class="devsite-nav-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Book nav link, pathname: /optimization/reference/python/util/sorted_interval_list" track-type="bookNav" track-name="click" track-metadata-eventdetail="/optimization/reference/python/util/sorted_interval_list" ><span class="devsite-nav-text" tooltip>Domain Module</span></a></li></ul></div></li></ul></div></li> </ul> </div> </div> </nav> </devsite-book-nav> <section id="gc-wrapper"> <main role="main" class="devsite-main-content" has-book-nav > <devsite-content> <article class="devsite-article"> <div class="devsite-article-meta nocontent" role="navigation"> <ul class="devsite-breadcrumb-list" aria-label="Breadcrumb"> <li class="devsite-breadcrumb-item "> <a href="https://developers.google.com/" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="1" track-type="globalNav" track-name="breadcrumb" track-metadata-position="1" track-metadata-eventdetail="" > Home </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/products" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="2" track-type="globalNav" track-name="breadcrumb" track-metadata-position="2" track-metadata-eventdetail="" > Products </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/optimization" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="3" track-type="globalNav" track-name="breadcrumb" track-metadata-position="3" track-metadata-eventdetail="Google OR-Tools" > OR-Tools </a> </li> <li class="devsite-breadcrumb-item "> <div class="devsite-breadcrumb-guillemet material-icons" aria-hidden="true"></div> <a href="https://developers.google.com/optimization/reference" class="devsite-breadcrumb-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Breadcrumbs" data-value="4" track-type="globalNav" track-name="breadcrumb" track-metadata-position="4" track-metadata-eventdetail="" > Reference </a> </li> </ul> <devsite-thumb-rating position="header"> </devsite-thumb-rating> </div> <devsite-feedback position="header" project-name="OR-Tools" product-id="106275" bucket="" context="DevSite feedback link" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="header" class="nocontent" project-icon="https://developers.google.com/static/optimization/images/orLogo.png" > <button> Send feedback </button> </devsite-feedback> <h1 class="devsite-page-title" tabindex="-1"> Google OR-Tools Reference </h1> <devsite-feature-tooltip ack-key="AckCollectionsBookmarkTooltipDismiss" analytics-category="Site-Wide Custom Events" analytics-action-show="Callout Profile displayed" analytics-action-close="Callout Profile dismissed" analytics-label="Create Collection Callout" class="devsite-page-bookmark-tooltip nocontent" dismiss-button="true" id="devsite-collections-dropdown" dismiss-button-text="Dismiss" close-button-text="Got it"> <devsite-bookmark></devsite-bookmark> <span slot="popout-heading"> Stay organized with collections </span> <span slot="popout-contents"> Save and categorize content based on your preferences. </span> </devsite-feature-tooltip> <div class="devsite-page-title-meta"><devsite-view-release-notes></devsite-view-release-notes></div> <devsite-toc class="devsite-nav" depth="2" devsite-toc-embedded > </devsite-toc> <div class="devsite-article-body clearfix "> <!-- Python --> <!-- MacOS Sonoma --> <!-- VS 2022 --> <!-- Almalinux 9 --> <!-- Alpine Edge --> <!-- Archlinux --> <!-- Debian 11 --> <!-- Debian 12 --> <!-- Debian SID --> <!-- Fedora 39 --> <!-- Fedora 38 --> <!-- Fedora 37 --> <!-- OpenSuse Leap --> <!-- Rockylinux 9 --> <!-- Ubuntu latest --> <!-- Ubuntu 22.04 LTS --> <!-- Ubuntu 20.04 LTS --> <p>To see OR-Tools reference documentation for C++, .Net, Java or Python, see the following page on GitHub:</p> <p>C++:</p> <ul> <li><a href="https://or-tools.github.io/docs/cpp/index.html">C++ reference (doxygen)</a></li> </ul> <p>.Net:</p> <ul> <li><a href="https://or-tools.github.io/docs/dotnet/index.html">.Net reference (doxygen)</a></li> </ul> <p>Java:</p> <ul> <li><a href="https://or-tools.github.io/docs/javadoc/index.html">Java reference (javadoc)</a></li> <li><a href="https://or-tools.github.io/docs/java/index.html">Java reference (doxygen)</a></li> </ul> <p>Python:</p> <ul> <li><a href="https://or-tools.github.io/docs/pdoc/ortools.html">Python reference (pdoc)</a></li> <li><a href="https://or-tools.github.io/docs/python/index.html">Python reference (doxygen)</a></li> </ul> </div> <devsite-recommendations display="in-page" hidden yield> </devsite-recommendations> <devsite-thumb-rating position="footer"> </devsite-thumb-rating> <devsite-feedback position="footer" project-name="OR-Tools" product-id="106275" bucket="" context="DevSite feedback link" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="footer" class="nocontent" project-icon="https://developers.google.com/static/optimization/images/orLogo.png" > <button> Send feedback </button> </devsite-feedback> <devsite-recommendations id="recommendations-link" yield></devsite-recommendations> <div class="devsite-floating-action-buttons"> </div> </article> <devsite-content-footer class="nocontent"> <p>Except as otherwise noted, the content of this page is licensed under the <a href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 License</a>, and code samples are licensed under the <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache 2.0 License</a>. For details, see the <a href="https://developers.google.com/site-policies">Google Developers Site Policies</a>. Java is a registered trademark of Oracle and/or its affiliates.</p> <p>Last updated 2024-09-16 UTC.</p> </devsite-content-footer> <devsite-notification > </devsite-notification> <div class="devsite-content-data"> <template class="devsite-thumb-rating-feedback"> <devsite-feedback position="thumb-rating" project-name="OR-Tools" product-id="106275" bucket="" context="DevSite feedback link" version="t-devsite-webserver-20241114-r00-rc02.464922260396498922" data-label="Send Feedback Button" track-type="feedback" track-name="sendFeedbackLink" track-metadata-position="thumb-rating" class="nocontent" project-icon="https://developers.google.com/static/optimization/images/orLogo.png" > <button> Need to tell us more? </button> </devsite-feedback> </template> <template class="devsite-content-data-template"> [[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-09-16 UTC."],[],[]] </template> </div> </devsite-content> </main> <devsite-footer-promos class="devsite-footer"> <nav class="devsite-footer-promos nocontent" aria-label="Promotions"> <ul class="devsite-footer-promos-list"> <li class="devsite-footer-promo"> <a href="https://groups.google.com/forum/#!forum/or-tools-discuss" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 1)" > <picture> <img class="devsite-footer-promo-icon" src="https://www.gstatic.com/images/icons/material/product/2x/groups_24dp.png" loading="lazy" alt="Discussion forum"> </picture> <span class="devsite-footer-promo-label"> Discussion forum </span> </a> <div class="devsite-footer-promo-description">Visit our forum</div> </li> <li class="devsite-footer-promo"> <a href="https://discord.gg/ENkQrdf" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 2)" > <picture> <img class="devsite-footer-promo-icon" src="/static/optimization/images/logo-discord.svg" loading="lazy" alt="Discord"> </picture> <span class="devsite-footer-promo-label"> Discord </span> </a> <div class="devsite-footer-promo-description">Join Google OR-Tools Discord server</div> </li> <li class="devsite-footer-promo"> <a href="http://github.com/google/or-tools" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 3)" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-github.svg" loading="lazy" alt="GitHub"> </picture> <span class="devsite-footer-promo-label"> GitHub </span> </a> <div class="devsite-footer-promo-description">Download our code</div> </li> <li class="devsite-footer-promo"> <a href="http://stackoverflow.com/questions/tagged/or-tools+or+cp-sat" class="devsite-footer-promo-title gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Promo Link (index 4)" > <picture> <img class="devsite-footer-promo-icon" src="/static/site-assets/logo-stack-overflow.svg" loading="lazy" alt="Stack Overflow"> </picture> <span class="devsite-footer-promo-label"> Stack Overflow </span> </a> <div class="devsite-footer-promo-description">Ask questions using the or-tools or cp-sat tags</div> </li> </ul> </nav> </devsite-footer-promos> <devsite-footer-linkboxes class="devsite-footer"> <nav class="devsite-footer-linkboxes nocontent" aria-label="Footer links"> <ul class="devsite-footer-linkboxes-list"> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Connect</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//googledevelopers.blogspot.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Blog </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.instagram.com/googlefordevs/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Instagram </a> </li> <li class="devsite-footer-linkbox-item"> <a href="https://www.linkedin.com/showcase/googledevelopers/" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > LinkedIn </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//twitter.com/googledevs" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > X (Twitter) </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//www.youtube.com/user/GoogleDevelopers" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > YouTube </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Programs</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//www.womentechmakers.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Women Techmakers </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/community/gdg" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Google Developer Groups </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/community/experts" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Google Developer Experts </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/community/accelerators" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Accelerators </a> </li> <li class="devsite-footer-linkbox-item"> <a href="/community/gdsc" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Google Developer Student Clubs </a> </li> </ul> </li> <li class="devsite-footer-linkbox "> <h3 class="devsite-footer-linkbox-heading no-link">Developer consoles</h3> <ul class="devsite-footer-linkbox-list"> <li class="devsite-footer-linkbox-item"> <a href="//console.developers.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 1)" > Google API Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//console.cloud.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 2)" > Google Cloud Platform Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//play.google.com/apps/publish" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 3)" > Google Play Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//console.firebase.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 4)" > Firebase Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//console.actions.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 5)" > Actions on Google Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//cast.google.com/publish" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 6)" > Cast SDK Developer Console </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//chrome.google.com/webstore/developer/dashboard" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 7)" > Chrome Web Store Dashboard </a> </li> <li class="devsite-footer-linkbox-item"> <a href="//console.home.google.com" class="devsite-footer-linkbox-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Link (index 8)" > Google Home Developer Console </a> </li> </ul> </li> </ul> </nav> </devsite-footer-linkboxes> <devsite-footer-utility class="devsite-footer"> <div class="devsite-footer-utility nocontent"> <nav class="devsite-footer-sites" aria-label="Other Google Developers websites"> <a href="https://developers.google.com/" class="devsite-footer-sites-logo-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Developers Link"> <picture> <img class="devsite-footer-sites-logo" src="https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/lockup-google-for-developers.svg" loading="lazy" alt="Google Developers"> </picture> </a> <ul class="devsite-footer-sites-list"> <li class="devsite-footer-sites-item"> <a href="//developer.android.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Android Link" > Android </a> </li> <li class="devsite-footer-sites-item"> <a href="//developer.chrome.com/home" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Chrome Link" > Chrome </a> </li> <li class="devsite-footer-sites-item"> <a href="//firebase.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Firebase Link" > Firebase </a> </li> <li class="devsite-footer-sites-item"> <a href="//cloud.google.com" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google Cloud Platform Link" > Google Cloud Platform </a> </li> <li class="devsite-footer-sites-item"> <a href="//ai.google.dev/" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer Google AI Link" > Google AI </a> </li> <li class="devsite-footer-sites-item"> <a href="/products" class="devsite-footer-sites-link gc-analytics-event" data-category="Site-Wide Custom Events" data-label="Footer All products Link" > All products </a> </li> </ul> </nav> <nav class="devsite-footer-utility-links" aria-label="Utility links"> <ul class="devsite-footer-utility-list"> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="/terms/site-terms" data-category="Site-Wide Custom Events" data-label="Footer Terms link" > Terms </a> </li> <li class="devsite-footer-utility-item "> <a class="devsite-footer-utility-link gc-analytics-event" href="//policies.google.com/privacy" data-category="Site-Wide Custom Events" data-label="Footer Privacy link" > Privacy </a> </li> <li class="devsite-footer-utility-item glue-cookie-notification-bar-control"> <a class="devsite-footer-utility-link gc-analytics-event" href="#" data-category="Site-Wide Custom Events" data-label="Footer Manage cookies link" aria-hidden="true" > Manage cookies </a> </li> <li class="devsite-footer-utility-item devsite-footer-utility-button"> <span class="devsite-footer-utility-description">Sign up for the Google for Developers newsletter</span> <a class="devsite-footer-utility-link gc-analytics-event" href="/newsletter/subscribe" data-category="Site-Wide Custom Events" data-label="Footer Subscribe link" > Subscribe </a> </li> </ul> <devsite-language-selector> <ul role="presentation"> <li role="presentation"> <a role="menuitem" lang="en" >English</a> </li> <li role="presentation"> <a role="menuitem" lang="de" >Deutsch</a> </li> <li role="presentation"> <a role="menuitem" lang="es" >Español</a> </li> <li role="presentation"> <a role="menuitem" lang="fr" >Français</a> </li> <li role="presentation"> <a role="menuitem" lang="id" >Indonesia</a> </li> <li role="presentation"> <a role="menuitem" lang="pt_br" >Português – Brasil</a> </li> <li role="presentation"> <a role="menuitem" lang="ru" >Русский</a> </li> <li role="presentation"> <a role="menuitem" lang="zh_cn" >中文 – 简体</a> </li> <li role="presentation"> <a role="menuitem" lang="ja" >日本語</a> </li> <li role="presentation"> <a role="menuitem" lang="ko" >한국어</a> </li> </ul> </devsite-language-selector> </nav> </div> </devsite-footer-utility> <devsite-panel></devsite-panel> <devsite-concierge data-info-panel data-ai-panel data-api-explorer-panel > </devsite-concierge> </section></section> <devsite-sitemask></devsite-sitemask> <devsite-snackbar></devsite-snackbar> <devsite-tooltip ></devsite-tooltip> <devsite-heading-link></devsite-heading-link> <devsite-analytics> <script type="application/json" analytics>[{&#34;dimensions&#34;: {&#34;dimension11&#34;: false, &#34;dimension3&#34;: false, &#34;dimension4&#34;: &#34;OR-Tools&#34;, &#34;dimension6&#34;: &#34;en&#34;, &#34;dimension5&#34;: &#34;en&#34;, &#34;dimension1&#34;: &#34;Signed out&#34;}, &#34;gaid&#34;: &#34;UA-24532603-1&#34;, &#34;metrics&#34;: {&#34;ratings_count&#34;: &#34;metric2&#34;, &#34;ratings_value&#34;: &#34;metric1&#34;}, &#34;purpose&#34;: 1}, {&#34;dimensions&#34;: {&#34;dimension11&#34;: false, &#34;dimension3&#34;: false, &#34;dimension4&#34;: &#34;OR-Tools&#34;, &#34;dimension6&#34;: &#34;en&#34;, &#34;dimension5&#34;: &#34;en&#34;, &#34;dimension1&#34;: &#34;Signed out&#34;}, &#34;gaid&#34;: &#34;UA-10115507-7&#34;, &#34;metrics&#34;: {&#34;ratings_count&#34;: &#34;metric2&#34;, &#34;ratings_value&#34;: &#34;metric1&#34;}, &#34;purpose&#34;: 0}]</script> <script type="application/json" tag-management>{&#34;at&#34;: &#34;True&#34;, &#34;ga4&#34;: [{&#34;id&#34;: &#34;G-272J68FCRF&#34;, &#34;purpose&#34;: 1}, {&#34;id&#34;: &#34;G-6GVLVR3FTD&#34;, &#34;purpose&#34;: 0}], &#34;ga4p&#34;: [{&#34;id&#34;: &#34;G-272J68FCRF&#34;, &#34;purpose&#34;: 1}], &#34;gtm&#34;: [], &#34;parameters&#34;: {&#34;internalUser&#34;: &#34;False&#34;, &#34;language&#34;: {&#34;machineTranslated&#34;: &#34;False&#34;, &#34;requested&#34;: &#34;en&#34;, &#34;served&#34;: &#34;en&#34;}, &#34;pageType&#34;: &#34;article&#34;, &#34;projectName&#34;: &#34;OR-Tools&#34;, &#34;signedIn&#34;: &#34;False&#34;, &#34;tenant&#34;: &#34;developers&#34;, &#34;recommendations&#34;: {&#34;sourcePage&#34;: &#34;&#34;, &#34;sourceType&#34;: 0, &#34;sourceRank&#34;: 0, &#34;sourceIdenticalDescriptions&#34;: 0, &#34;sourceTitleWords&#34;: 0, &#34;sourceDescriptionWords&#34;: 0, &#34;experiment&#34;: &#34;&#34;}, &#34;experiment&#34;: {&#34;ids&#34;: &#34;&#34;}}}</script> </devsite-analytics> <devsite-badger></devsite-badger> <script nonce="DA2jJ2Fzbf3Alsl+ySQtLVLwavH5hc"> (function(d,e,v,s,i,t,E){d['GoogleDevelopersObject']=i; t=e.createElement(v);t.async=1;t.src=s;E=e.getElementsByTagName(v)[0]; E.parentNode.insertBefore(t,E);})(window, document, 'script', 'https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/js/app_loader.js', '[1,"en",null,"/js/devsite_app_module.js","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers","https://developers-dot-devsite-v2-prod.appspot.com",1,null,["/_pwa/developers/manifest.json","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/images/video-placeholder.svg","https://www.gstatic.com/devrel-devsite/prod/v870e399c64f7c43c99a3043db4b3a74327bb93d0914e84a0c3dba90bbfd67625/developers/images/favicon-new.png","https://fonts.googleapis.com/css?family=Google+Sans:400,500|Roboto:400,400italic,500,500italic,700,700italic|Roboto+Mono:400,500,700&display=swap"],1,null,[1,6,8,12,14,17,21,25,50,52,63,70,75,76,80,87,91,92,93,97,98,100,101,102,103,104,105,107,108,109,110,112,113,117,118,120,122,124,125,126,127,129,130,131,132,133,134,135,136,138,140,141,147,148,149,151,152,156,157,158,159,161,163,164,168,169,170,179,180,182,183,186,191,193,196],"AIzaSyAP-jjEJBzmIyKR4F-3XITp8yM9T1gEEI8","AIzaSyB6xiKGDR5O3Ak2okS4rLkauxGUG7XP0hg","developers.google.com","AIzaSyAQk0fBONSGUqCNznf6Krs82Ap1-NV6J4o","AIzaSyCCxcqdrZ_7QMeLCRY20bh_SXdAYqy70KY",null,null,null,["MiscFeatureFlags__enable_view_transitions","Search__enable_ai_search_summaries","Analytics__enable_clearcut_logging","Cloud__enable_cloud_shell_fte_user_flow","TpcFeatures__enable_required_headers","Profiles__require_profile_eligibility_for_signin","Search__enable_dynamic_content_confidential_banner","EngEduTelemetry__enable_engedu_telemetry","DevPro__enable_developer_subscriptions","Cloud__enable_llm_concierge_chat","Experiments__reqs_query_experiments","Cloud__enable_cloudx_experiment_ids","Search__enable_ai_search_summaries_restricted","MiscFeatureFlags__enable_explain_this_code","Search__enable_page_map","Profiles__enable_completecodelab_endpoint","Profiles__enable_recognition_badges","TpcFeatures__enable_mirror_tenant_redirects","BookNav__enable_tenant_cache_key","MiscFeatureFlags__enable_project_variables","Profiles__enable_release_notes_notifications","Concierge__enable_pushui","Concierge__enable_concierge_restricted","Significatio__enable_by_tenant","Profiles__enable_profile_collections","MiscFeatureFlags__developers_footer_image","Cloud__enable_cloudx_ping","Profiles__enable_page_saving","Profiles__enable_awarding_url","MiscFeatureFlags__enable_variable_operator","Search__enable_suggestions_from_borg","Profiles__enable_complete_playlist_endpoint","MiscFeatureFlags__enable_firebase_utm","Profiles__enable_dashboard_curated_recommendations","MiscFeatureFlags__emergency_css","DevPro__enable_cloud_innovators_plus","Cloud__enable_cloud_dlp_service","CloudShell__cloud_code_overflow_menu","Cloud__enable_cloud_facet_chat","Cloud__enable_legacy_calculator_redirect","MiscFeatureFlags__developers_footer_dark_image","Profiles__enable_public_developer_profiles","CloudShell__cloud_shell_button","Cloud__enable_free_trial_server_call","Profiles__enable_developer_profiles_callout","Cloud__enable_cloud_shell","Search__enable_ai_eligibility_checks","Concierge__enable_concierge"],null,null,"AIzaSyBLEMok-5suZ67qRPzx0qUtbnLmyT_kCVE","https://developerscontentserving-pa.clients6.google.com","AIzaSyCM4QpTRSqP5qI4Dvjt4OAScIN8sOUlO-k","https://developerscontentsearch-pa.clients6.google.com",1,4,null,"https://developerprofiles-pa.clients6.google.com",[1,"developers","Google for Developers","developers.google.com",null,"developers-dot-devsite-v2-prod.appspot.com",null,null,[1,1,[1],null,null,null,null,null,null,null,null,[1],null,null,null,null,null,null,[1],[1,null,null,[1,20],"/recommendations/information"],null,null,null,[1,1,1],[1,1,null,1,1]],null,[null,null,null,null,null,null,"/images/lockup-new.svg","/images/touchicon-180-new.png",null,null,null,null,1,null,null,null,null,null,null,null,null,1,null,null,null,"/images/lockup-dark-theme-new.svg",[]],[],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[6,1,14,15,20,22,23,29,32,36],null,[[null,null,null,[3,7,10,2,39,17,4,32,24,11,12,13,34,15,25],null,null,[1,[["docType","Choose a content type",[["Tutorial",null,null,null,null,null,null,null,null,"Tutorial"],["Guide",null,null,null,null,null,null,null,null,"Guide"],["Sample",null,null,null,null,null,null,null,null,"Sample"]]],["product","Choose a product",[["Android",null,null,null,null,null,null,null,null,"Android"],["ARCore",null,null,null,null,null,null,null,null,"ARCore"],["ChromeOS",null,null,null,null,null,null,null,null,"ChromeOS"],["Firebase",null,null,null,null,null,null,null,null,"Firebase"],["Flutter",null,null,null,null,null,null,null,null,"Flutter"],["Assistant",null,null,null,null,null,null,null,null,"Google Assistant"],["GoogleCloud",null,null,null,null,null,null,null,null,"Google Cloud"],["GoogleMapsPlatform",null,null,null,null,null,null,null,null,"Google Maps Platform"],["GooglePay",null,null,null,null,null,null,null,null,"Google Pay & Google Wallet"],["GooglePlay",null,null,null,null,null,null,null,null,"Google Play"],["Tensorflow",null,null,null,null,null,null,null,null,"TensorFlow"]]],["category","Choose a topic",[["AiAndMachineLearning",null,null,null,null,null,null,null,null,"AI and Machine Learning"],["Data",null,null,null,null,null,null,null,null,"Data"],["Enterprise",null,null,null,null,null,null,null,null,"Enterprise"],["Gaming",null,null,null,null,null,null,null,null,"Gaming"],["Mobile",null,null,null,null,null,null,null,null,"Mobile"],["Web",null,null,null,null,null,null,null,null,"Web"]]]]]],[1,1],null,1],[[["UA-24532603-1"],["UA-22084204-5"],null,null,["UA-24532603-5"],null,null,[["G-272J68FCRF"],null,null,[["G-272J68FCRF",2]]],[["UA-24532603-1",2]],null,[["UA-24532603-5",2]],null,1],[[14,11],[6,5],[16,13],[11,8],[15,12],[13,10],[3,2],[12,9],[5,4],[1,1],[4,3]],[[1,1],[2,2]]],null,4,null,null,null,null,null,null,null,null,null,null,null,null,null,"developers.devsite.google"],null,"pk_live_5170syrHvgGVmSx9sBrnWtA5luvk9BwnVcvIi7HizpwauFG96WedXsuXh790rtij9AmGllqPtMLfhe2RSwD6Pn38V00uBCydV4m"]') </script> <devsite-a11y-announce></devsite-a11y-announce> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10