41412 lines
3.5 MiB
41412 lines
3.5 MiB
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="generator" content="pdoc 8.0.0" />
|
|
<title>pywrapcp API documentation</title>
|
|
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2264%22%20height%3D%2264%22%20viewBox%3D%2244.5%202.5%2015%2015%22%3E%3Cpath%20d%3D%22M49.351%2021.041c-.233-.721-.546-2.408-.772-4.076-.042-.09-.067-.187-.046-.288-.166-1.347-.277-2.625-.241-3.351-1.378-1.008-2.271-2.586-2.271-4.362%200-.976.272-1.935.788-2.774.057-.094.122-.18.184-.268-.033-.167-.052-.339-.052-.516%200-1.477%201.202-2.679%202.679-2.679.791%200%201.496.352%201.987.9a6.3%206.3%200%200%201%201.001.029c.492-.564%201.207-.929%202.012-.929%201.477%200%202.679%201.202%202.679%202.679a2.65%202.65%200%200%201-.269%201.148c.383.747.595%201.572.595%202.41%200%202.311-1.507%204.29-3.635%205.107.037.699.147%202.27.423%203.294l.137.461c.156%202.136-4.612%205.166-5.199%203.215zm.127-4.919a4.78%204.78%200%200%200%20.775-.584c-.172-.115-.505-.254-.88-.378zm.331%202.302l.828-.502c-.202-.143-.576-.328-.984-.49zm.45%202.157l.701-.403c-.214-.115-.536-.249-.891-.376l.19.779zM49.13%204.141c0%20.152.123.276.276.276s.275-.124.275-.276-.123-.276-.276-.276-.275.124-.275.276zm.735-.389a1.15%201.15%200%200%201%20.314.783%201.16%201.16%200%200%201-1.162%201.162c-.457%200-.842-.27-1.032-.653-.026.117-.042.238-.042.362a1.68%201.68%200%200%200%201.679%201.679%201.68%201.68%200%200%200%201.679-1.679c0-.843-.626-1.535-1.436-1.654zm3.076%201.654a1.68%201.68%200%200%200%201.679%201.679%201.68%201.68%200%200%200%201.679-1.679c0-.037-.009-.072-.011-.109-.21.3-.541.508-.935.508a1.16%201.16%200%200%201-1.162-1.162%201.14%201.14%200%200%201%20.474-.912c-.015%200-.03-.005-.045-.005-.926.001-1.679.754-1.679%201.68zm1.861-1.265c0%20.152.123.276.276.276s.275-.124.275-.276-.123-.276-.276-.276-.275.124-.275.276zm1.823%204.823c0-.52-.103-1.035-.288-1.52-.466.394-1.06.64-1.717.64-1.144%200-2.116-.725-2.499-1.738-.383%201.012-1.355%201.738-2.499%201.738-.867%200-1.631-.421-2.121-1.062-.307.605-.478%201.267-.478%201.942%200%202.486%202.153%204.51%204.801%204.51s4.801-2.023%204.801-4.51zm-3.032%209.156l-.146-.492c-.276-1.02-.395-2.457-.444-3.268a6.11%206.11%200%200%201-1.18.115%206.01%206.01%200%200%201-2.536-.562l.006.175c.802.215%201.848.612%202.021%201.25.079.295-.021.601-.274.837l-.598.501c.667.304%201.243.698%201.311%201.179.02.144.022.507-.393.787l-.564.365c1.285.521%201.361.96%201.381%201.126.018.142.011.496-.427.746l-.854.489c.064-1.19%201.985-2.585%202.697-3.248zM49.34%209.925c0-.667%201-.667%201%200%200%20.653.818%201.205%201.787%201.205s1.787-.552%201.787-1.205c0-.667%201-.667%201%200%200%201.216-1.25%202.205-2.787%202.205s-2.787-.989-2.787-2.205zm-.887-7.633c-.093.077-.205.114-.317.114a.5.5%200%200%201-.318-.886L49.183.397a.5.5%200%200%201%20.703.068.5.5%200%200%201-.069.703zm7.661-.065c-.086%200-.173-.022-.253-.068l-1.523-.893c-.575-.337-.069-1.2.506-.863l1.523.892a.5.5%200%200%201%20.179.685c-.094.158-.261.247-.432.247z%22%20fill%3D%22%233bb300%22/%3E%3C/svg%3E"/>
|
|
|
|
|
|
<style>/*! * Bootstrap Reboot v5.0.0 (https://getbootstrap.com/) * Copyright 2011-2021 The Bootstrap Authors * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) */*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}</style>
|
|
<style>/*! pygments syntax highlighting */pre{line-height:125%;}td.linenos pre{color:#000000; background-color:#f0f0f0; padding-left:5px; padding-right:5px;}span.linenos{color:#000000; background-color:#f0f0f0; padding-left:5px; padding-right:5px;}td.linenos pre.special{color:#000000; background-color:#ffffc0; padding-left:5px; padding-right:5px;}span.linenos.special{color:#000000; background-color:#ffffc0; padding-left:5px; padding-right:5px;}.pdoc .hll{background-color:#ffffcc}.pdoc{background:#f8f8f8;}.pdoc .c{color:#408080; font-style:italic}.pdoc .err{border:1px solid #FF0000}.pdoc .k{color:#008000; font-weight:bold}.pdoc .o{color:#666666}.pdoc .ch{color:#408080; font-style:italic}.pdoc .cm{color:#408080; font-style:italic}.pdoc .cp{color:#BC7A00}.pdoc .cpf{color:#408080; font-style:italic}.pdoc .c1{color:#408080; font-style:italic}.pdoc .cs{color:#408080; font-style:italic}.pdoc .gd{color:#A00000}.pdoc .ge{font-style:italic}.pdoc .gr{color:#FF0000}.pdoc .gh{color:#000080; font-weight:bold}.pdoc .gi{color:#00A000}.pdoc .go{color:#888888}.pdoc .gp{color:#000080; font-weight:bold}.pdoc .gs{font-weight:bold}.pdoc .gu{color:#800080; font-weight:bold}.pdoc .gt{color:#0044DD}.pdoc .kc{color:#008000; font-weight:bold}.pdoc .kd{color:#008000; font-weight:bold}.pdoc .kn{color:#008000; font-weight:bold}.pdoc .kp{color:#008000}.pdoc .kr{color:#008000; font-weight:bold}.pdoc .kt{color:#B00040}.pdoc .m{color:#666666}.pdoc .s{color:#BA2121}.pdoc .na{color:#7D9029}.pdoc .nb{color:#008000}.pdoc .nc{color:#0000FF; font-weight:bold}.pdoc .no{color:#880000}.pdoc .nd{color:#AA22FF}.pdoc .ni{color:#999999; font-weight:bold}.pdoc .ne{color:#D2413A; font-weight:bold}.pdoc .nf{color:#0000FF}.pdoc .nl{color:#A0A000}.pdoc .nn{color:#0000FF; font-weight:bold}.pdoc .nt{color:#008000; font-weight:bold}.pdoc .nv{color:#19177C}.pdoc .ow{color:#AA22FF; font-weight:bold}.pdoc .w{color:#bbbbbb}.pdoc .mb{color:#666666}.pdoc .mf{color:#666666}.pdoc .mh{color:#666666}.pdoc .mi{color:#666666}.pdoc .mo{color:#666666}.pdoc .sa{color:#BA2121}.pdoc .sb{color:#BA2121}.pdoc .sc{color:#BA2121}.pdoc .dl{color:#BA2121}.pdoc .sd{color:#BA2121; font-style:italic}.pdoc .s2{color:#BA2121}.pdoc .se{color:#BB6622; font-weight:bold}.pdoc .sh{color:#BA2121}.pdoc .si{color:#BB6688; font-weight:bold}.pdoc .sx{color:#008000}.pdoc .sr{color:#BB6688}.pdoc .s1{color:#BA2121}.pdoc .ss{color:#19177C}.pdoc .bp{color:#008000}.pdoc .fm{color:#0000FF}.pdoc .vc{color:#19177C}.pdoc .vg{color:#19177C}.pdoc .vi{color:#19177C}.pdoc .vm{color:#19177C}.pdoc .il{color:#666666}</style>
|
|
<style>/*! pdoc */:root{--pdoc-background:#fff;}.pdoc{--text:#212529;--muted:#6c757d;--link:#3660a5;--link-hover:#1659c5;--code:#f7f7f7;--active:#fff598;--accent:#eee;--accent2:#c1c1c1;--nav-hover:rgba(255, 255, 255, 0.5);--name:#0066BB;--def:#008800;--annotation:#007020;}body{background-color:var(--pdoc-background);}html, body{width:100%;height:100%;}@media (max-width:769px){#navtoggle{cursor:pointer;position:absolute;width:50px;height:40px;top:1rem;right:1rem;border-color:var(--text);color:var(--text);display:flex;opacity:0.8;}#navtoggle:hover{opacity:1;}#togglestate + div{display:none;}#togglestate:checked + div{display:inherit;}main, header{padding:2rem 3vw;}.git-button{display:none !important;}nav input[type="search"]:valid ~ *{display:none !important;}}@media (min-width:770px){:root{--sidebar-width:clamp(12.5rem, 28vw, 22rem);}nav{position:fixed;overflow:auto;height:100vh;width:var(--sidebar-width);}main, header{padding:3rem 2rem 3rem calc(var(--sidebar-width) + 3rem);width:calc(54rem + var(--sidebar-width));max-width:100%;}#navtoggle{display:none;}}#togglestate{display:none;}nav.pdoc{--pad:1.75rem;--indent:1.5rem;background-color:var(--accent);border-right:1px solid var(--accent2);box-shadow:0 0 20px rgba(50, 50, 50, .2) inset;padding:0 0 0 var(--pad);overflow-wrap:anywhere;scrollbar-width:thin; scrollbar-color:var(--accent2) transparent }nav.pdoc::-webkit-scrollbar{width:.4rem; }nav.pdoc::-webkit-scrollbar-thumb{background-color:var(--accent2); }nav.pdoc > div{padding:var(--pad) 0;}nav.pdoc .module-list-button{display:inline-flex;align-items:center;color:var(--text);border-color:var(--muted);margin-bottom:1rem;}nav.pdoc .module-list-button:hover{border-color:var(--text);}nav.pdoc input[type=search]{display:block;outline-offset:0;width:calc(100% - var(--pad));}nav.pdoc .logo{max-width:calc(100% - var(--pad));max-height:35vh;display:block;margin:0 auto 1rem;transform:translate(calc(-.5 * var(--pad)), 0);}nav.pdoc ul{list-style:none;padding-left:0;}nav.pdoc li{display:block;margin:0;padding:.2rem 0 .2rem var(--indent);transition:all 100ms;}nav.pdoc > div > ul > li{padding-left:0;}nav.pdoc li:hover{background-color:var(--nav-hover);}nav.pdoc a, nav.pdoc a:hover{color:var(--text);}nav.pdoc a{display:block;}nav.pdoc > h2:first-of-type{margin-top:1.5rem;}nav.pdoc .class:before{content:"class ";color:var(--muted);}nav.pdoc .function:after{content:"()";color:var(--muted);}nav.pdoc footer:before{content:"";display:block;width:calc(100% - var(--pad));border-top:solid var(--accent2) 1px;margin-top:1.5rem;padding-top:.5rem;}nav.pdoc footer{font-size:small;}html, main{scroll-behavior:smooth;}.pdoc{color:var(--text);box-sizing:border-box;line-height:1.5;background:none;}.pdoc .pdoc-button{display:inline-block;border:solid black 1px;border-radius:2px;font-size:.75rem;padding:calc(0.5em - 1px) 1em;transition:100ms all;}.pdoc .visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important;}.pdoc h1, .pdoc h2, .pdoc h3{font-weight:300;margin:.3em 0;padding:.2em 0;}.pdoc a{text-decoration:none;color:var(--link);}.pdoc a:hover{color:var(--link-hover);}.pdoc blockquote{margin-left:2rem;}.pdoc pre{background-color:var(--code);border-top:1px solid var(--accent2);border-bottom:1px solid var(--accent2);margin-bottom:1em;padding:.5rem 0 .5rem .5rem;overflow-x:auto;}.pdoc code{color:var(--text);padding:.2em .4em;margin:0;font-size:85%;background-color:var(--code);border-radius:6px;}.pdoc a > code{color:inherit;}.pdoc pre > code{display:inline-block;font-size:inherit;background:none;border:none;padding:0;}.pdoc .modulename{margin-top:0;font-weight:bold;}.pdoc .modulename a{color:var(--link);transition:100ms all;}.pdoc .git-button{float:right;border:solid var(--link) 1px;}.pdoc .git-button:hover{background-color:var(--link);color:var(--pdoc-background);}.pdoc details{--shift:-40px;text-align:right;margin-top:var(--shift);margin-bottom:calc(0px - var(--shift));clear:both;filter:opacity(1);}.pdoc details:not([open]){height:0;overflow:visible;}.pdoc details > summary{font-size:.75rem;cursor:pointer;color:var(--muted);border-width:0;padding:0 .7em;display:inline-block;display:inline list-item;user-select:none;}.pdoc details > summary:focus{outline:0;}.pdoc details > div{margin-top:calc(0px - var(--shift) / 2);text-align:left;}.pdoc .docstring{margin-bottom:1.5rem;}.pdoc > section:first-of-type > .docstring{margin-bottom:3rem;}.pdoc .docstring pre{margin-left:1em;margin-right:1em;}.pdoc h1:target,.pdoc h2:target,.pdoc h3:target,.pdoc h4:target,.pdoc h5:target,.pdoc h6:target{background-color:var(--active);box-shadow:-1rem 0 0 0 var(--active);}.pdoc div:target > .attr,.pdoc section:target > .attr,.pdoc dd:target > a{background-color:var(--active);}.pdoc .attr:hover{filter:contrast(0.95);}.pdoc .headerlink{position:absolute;width:0;margin-left:-1.5rem;line-height:1.4rem;font-size:1.5rem;font-weight:normal;transition:all 100ms ease-in-out;opacity:0;}.pdoc .attr > .headerlink{margin-left:-2.5rem;}.pdoc *:hover > .headerlink,.pdoc *:target > .attr > .headerlink{opacity:1;}.pdoc .attr{display:block;color:var(--text);margin:1rem 0 .5rem;padding:.4rem 5rem .4rem 1rem;background-color:var(--accent);}.pdoc .classattr{margin-left:2rem;}.pdoc .name{color:var(--name);font-weight:bold;}.pdoc .def{color:var(--def);font-weight:bold;}.pdoc .signature{white-space:pre-wrap;}.pdoc .annotation{color:var(--annotation);}.pdoc .inherited{margin-left:2rem;}.pdoc .inherited dt{font-weight:700;}.pdoc .inherited dt, .pdoc .inherited dd{display:inline;margin-left:0;margin-bottom:.5rem;}.pdoc .inherited dd:not(:last-child):after{content:", ";}.pdoc .inherited .class:before{content:"class ";}.pdoc .inherited .function a:after{content:"()";}.pdoc .search-result .docstring{overflow:auto;max-height:25vh;}.pdoc .search-result.focused > .attr{background-color:var(--active);}.pdoc .attribution{margin-top:2rem;display:block;opacity:0.5;transition:all 200ms;filter:grayscale(100%);}.pdoc .attribution:hover{opacity:1;filter:grayscale(0%);}.pdoc .attribution img{margin-left:5px;height:35px;vertical-align:middle;width:70px;transition:all 200ms;}</style>
|
|
</head>
|
|
<body> <nav class="pdoc">
|
|
<label id="navtoggle" for="togglestate" class="pdoc-button"><svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke-linecap='round' stroke="currentColor" stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg></label>
|
|
<input id="togglestate" type="checkbox">
|
|
<div>
|
|
|
|
<img src="https://developers.google.com/optimization/images/orLogo.png" class="logo" alt="project logo"/>
|
|
|
|
|
|
|
|
|
|
<h2>API Documentation</h2>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="class" href="#DefaultPhaseParameters">DefaultPhaseParameters</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#DefaultPhaseParameters.__init__">DefaultPhaseParameters</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.CHOOSE_MAX_SUM_IMPACT">CHOOSE_MAX_SUM_IMPACT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.CHOOSE_MAX_AVERAGE_IMPACT">CHOOSE_MAX_AVERAGE_IMPACT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.CHOOSE_MAX_VALUE_IMPACT">CHOOSE_MAX_VALUE_IMPACT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.SELECT_MIN_IMPACT">SELECT_MIN_IMPACT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.SELECT_MAX_IMPACT">SELECT_MAX_IMPACT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.NONE">NONE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.NORMAL">NORMAL</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.VERBOSE">VERBOSE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.var_selection_schema">var_selection_schema</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.value_selection_schema">value_selection_schema</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.initialization_splits">initialization_splits</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.run_all_heuristics">run_all_heuristics</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.heuristic_period">heuristic_period</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.heuristic_num_failures_limit">heuristic_num_failures_limit</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.persistent_impact">persistent_impact</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.random_seed">random_seed</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.display_level">display_level</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DefaultPhaseParameters.decision_builder">decision_builder</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#Solver">Solver</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#Solver.__init__">Solver</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.INT_VAR_DEFAULT">INT_VAR_DEFAULT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.INT_VAR_SIMPLE">INT_VAR_SIMPLE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.CHOOSE_FIRST_UNBOUND">CHOOSE_FIRST_UNBOUND</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.CHOOSE_RANDOM">CHOOSE_RANDOM</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.CHOOSE_MIN_SIZE_LOWEST_MIN">CHOOSE_MIN_SIZE_LOWEST_MIN</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.CHOOSE_MIN_SIZE_HIGHEST_MIN">CHOOSE_MIN_SIZE_HIGHEST_MIN</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.CHOOSE_MIN_SIZE_LOWEST_MAX">CHOOSE_MIN_SIZE_LOWEST_MAX</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.CHOOSE_MIN_SIZE_HIGHEST_MAX">CHOOSE_MIN_SIZE_HIGHEST_MAX</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.CHOOSE_LOWEST_MIN">CHOOSE_LOWEST_MIN</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.CHOOSE_HIGHEST_MAX">CHOOSE_HIGHEST_MAX</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.CHOOSE_MIN_SIZE">CHOOSE_MIN_SIZE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.CHOOSE_MAX_SIZE">CHOOSE_MAX_SIZE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.CHOOSE_MAX_REGRET_ON_MIN">CHOOSE_MAX_REGRET_ON_MIN</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.CHOOSE_PATH">CHOOSE_PATH</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.INT_VALUE_DEFAULT">INT_VALUE_DEFAULT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.INT_VALUE_SIMPLE">INT_VALUE_SIMPLE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.ASSIGN_MIN_VALUE">ASSIGN_MIN_VALUE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.ASSIGN_MAX_VALUE">ASSIGN_MAX_VALUE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.ASSIGN_RANDOM_VALUE">ASSIGN_RANDOM_VALUE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.ASSIGN_CENTER_VALUE">ASSIGN_CENTER_VALUE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.SPLIT_LOWER_HALF">SPLIT_LOWER_HALF</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.SPLIT_UPPER_HALF">SPLIT_UPPER_HALF</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.SEQUENCE_DEFAULT">SEQUENCE_DEFAULT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.SEQUENCE_SIMPLE">SEQUENCE_SIMPLE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.CHOOSE_MIN_SLACK_RANK_FORWARD">CHOOSE_MIN_SLACK_RANK_FORWARD</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.CHOOSE_RANDOM_RANK_FORWARD">CHOOSE_RANDOM_RANK_FORWARD</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.INTERVAL_DEFAULT">INTERVAL_DEFAULT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.INTERVAL_SIMPLE">INTERVAL_SIMPLE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.INTERVAL_SET_TIMES_FORWARD">INTERVAL_SET_TIMES_FORWARD</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.INTERVAL_SET_TIMES_BACKWARD">INTERVAL_SET_TIMES_BACKWARD</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.TWOOPT">TWOOPT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.OROPT">OROPT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.RELOCATE">RELOCATE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.EXCHANGE">EXCHANGE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.CROSS">CROSS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.MAKEACTIVE">MAKEACTIVE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.MAKEINACTIVE">MAKEINACTIVE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.MAKECHAININACTIVE">MAKECHAININACTIVE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.SWAPACTIVE">SWAPACTIVE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.EXTENDEDSWAPACTIVE">EXTENDEDSWAPACTIVE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.PATHLNS">PATHLNS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.FULLPATHLNS">FULLPATHLNS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.UNACTIVELNS">UNACTIVELNS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.INCREMENT">INCREMENT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.DECREMENT">DECREMENT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.SIMPLELNS">SIMPLELNS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.GE">GE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.LE">LE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.EQ">EQ</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.DELAYED_PRIORITY">DELAYED_PRIORITY</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.VAR_PRIORITY">VAR_PRIORITY</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Solver.NORMAL_PRIORITY">NORMAL_PRIORITY</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Parameters">Parameters</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.DefaultSolverParameters">DefaultSolverParameters</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.AddConstraint">AddConstraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Solve">Solve</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.NewSearch">NewSearch</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.NextSolution">NextSolution</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.RestartSearch">RestartSearch</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.EndSearch">EndSearch</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SolveAndCommit">SolveAndCommit</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.CheckAssignment">CheckAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.CheckConstraint">CheckConstraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Fail">Fail</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.MemoryUsage">MemoryUsage</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.WallTime">WallTime</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Branches">Branches</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Solutions">Solutions</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Failures">Failures</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.AcceptedNeighbors">AcceptedNeighbors</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Stamp">Stamp</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.FailStamp">FailStamp</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IntVar">IntVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.BoolVar">BoolVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IntConst">IntConst</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Sum">Sum</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ScalProd">ScalProd</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.MonotonicElement">MonotonicElement</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Element">Element</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IndexExpression">IndexExpression</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Min">Min</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Max">Max</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ConvexPiecewiseExpr">ConvexPiecewiseExpr</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SemiContinuousExpr">SemiContinuousExpr</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ConditionalExpression">ConditionalExpression</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.TrueConstraint">TrueConstraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.FalseConstraint">FalseConstraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsEqualCstCt">IsEqualCstCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsEqualCstVar">IsEqualCstVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsEqualCt">IsEqualCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsEqualVar">IsEqualVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsDifferentCstCt">IsDifferentCstCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsDifferentCstVar">IsDifferentCstVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsDifferentVar">IsDifferentVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsDifferentCt">IsDifferentCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsLessOrEqualCstCt">IsLessOrEqualCstCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsLessOrEqualCstVar">IsLessOrEqualCstVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsLessOrEqualVar">IsLessOrEqualVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsLessOrEqualCt">IsLessOrEqualCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsGreaterOrEqualCstCt">IsGreaterOrEqualCstCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsGreaterOrEqualCstVar">IsGreaterOrEqualCstVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsGreaterOrEqualVar">IsGreaterOrEqualVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsGreaterOrEqualCt">IsGreaterOrEqualCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsGreaterCstCt">IsGreaterCstCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsGreaterCstVar">IsGreaterCstVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsGreaterVar">IsGreaterVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsGreaterCt">IsGreaterCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsLessCstCt">IsLessCstCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsLessCstVar">IsLessCstVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsLessVar">IsLessVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsLessCt">IsLessCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SumLessOrEqual">SumLessOrEqual</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SumGreaterOrEqual">SumGreaterOrEqual</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SumEquality">SumEquality</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ScalProdEquality">ScalProdEquality</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ScalProdGreaterOrEqual">ScalProdGreaterOrEqual</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ScalProdLessOrEqual">ScalProdLessOrEqual</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.MinEquality">MinEquality</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.MaxEquality">MaxEquality</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ElementEquality">ElementEquality</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.AbsEquality">AbsEquality</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IndexOfConstraint">IndexOfConstraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ConstraintInitialPropagateCallback">ConstraintInitialPropagateCallback</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.DelayedConstraintInitialPropagateCallback">DelayedConstraintInitialPropagateCallback</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ClosureDemon">ClosureDemon</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.BetweenCt">BetweenCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsBetweenCt">IsBetweenCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsBetweenVar">IsBetweenVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.MemberCt">MemberCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.NotMemberCt">NotMemberCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsMemberCt">IsMemberCt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IsMemberVar">IsMemberVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Count">Count</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Distribute">Distribute</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Deviation">Deviation</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.AllDifferent">AllDifferent</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.AllDifferentExcept">AllDifferentExcept</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SortingConstraint">SortingConstraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.LexicalLess">LexicalLess</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.LexicalLessOrEqual">LexicalLessOrEqual</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.InversePermutationConstraint">InversePermutationConstraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.NullIntersect">NullIntersect</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.NullIntersectExcept">NullIntersectExcept</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Circuit">Circuit</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SubCircuit">SubCircuit</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.DelayedPathCumul">DelayedPathCumul</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.PathCumul">PathCumul</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.AllowedAssignments">AllowedAssignments</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.TransitionConstraint">TransitionConstraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.NonOverlappingBoxesConstraint">NonOverlappingBoxesConstraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Pack">Pack</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.FixedDurationIntervalVar">FixedDurationIntervalVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.FixedInterval">FixedInterval</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IntervalVar">IntervalVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.MirrorInterval">MirrorInterval</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.FixedDurationStartSyncedOnStartIntervalVar">FixedDurationStartSyncedOnStartIntervalVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.FixedDurationStartSyncedOnEndIntervalVar">FixedDurationStartSyncedOnEndIntervalVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.FixedDurationEndSyncedOnStartIntervalVar">FixedDurationEndSyncedOnStartIntervalVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.FixedDurationEndSyncedOnEndIntervalVar">FixedDurationEndSyncedOnEndIntervalVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IntervalRelaxedMin">IntervalRelaxedMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.IntervalRelaxedMax">IntervalRelaxedMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.TemporalDisjunction">TemporalDisjunction</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.DisjunctiveConstraint">DisjunctiveConstraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Cumulative">Cumulative</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Cover">Cover</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Assignment">Assignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.FirstSolutionCollector">FirstSolutionCollector</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.LastSolutionCollector">LastSolutionCollector</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.BestValueSolutionCollector">BestValueSolutionCollector</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.AllSolutionCollector">AllSolutionCollector</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Minimize">Minimize</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Maximize">Maximize</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Optimize">Optimize</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.WeightedMinimize">WeightedMinimize</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.WeightedMaximize">WeightedMaximize</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.WeightedOptimize">WeightedOptimize</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.TabuSearch">TabuSearch</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SimulatedAnnealing">SimulatedAnnealing</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.LubyRestart">LubyRestart</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ConstantRestart">ConstantRestart</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.TimeLimit">TimeLimit</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.BranchesLimit">BranchesLimit</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.FailuresLimit">FailuresLimit</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SolutionsLimit">SolutionsLimit</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Limit">Limit</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.CustomLimit">CustomLimit</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SearchLog">SearchLog</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SearchTrace">SearchTrace</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.PrintModelVisitor">PrintModelVisitor</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.StatisticsModelVisitor">StatisticsModelVisitor</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.AssignVariableValue">AssignVariableValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.VariableLessOrEqualValue">VariableLessOrEqualValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.VariableGreaterOrEqualValue">VariableGreaterOrEqualValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SplitVariableDomain">SplitVariableDomain</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.AssignVariableValueOrFail">AssignVariableValueOrFail</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.AssignVariablesValues">AssignVariablesValues</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.FailDecision">FailDecision</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Decision">Decision</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Compose">Compose</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Try">Try</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.DefaultPhase">DefaultPhase</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ScheduleOrPostpone">ScheduleOrPostpone</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ScheduleOrExpedite">ScheduleOrExpedite</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.RankFirstInterval">RankFirstInterval</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.RankLastInterval">RankLastInterval</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Phase">Phase</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.DecisionBuilderFromAssignment">DecisionBuilderFromAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ConstraintAdder">ConstraintAdder</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SolveOnce">SolveOnce</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.NestedOptimize">NestedOptimize</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.RestoreAssignment">RestoreAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.StoreAssignment">StoreAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Operator">Operator</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.RandomLnsOperator">RandomLnsOperator</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.MoveTowardTargetOperator">MoveTowardTargetOperator</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ConcatenateOperators">ConcatenateOperators</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.RandomConcatenateOperators">RandomConcatenateOperators</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.NeighborhoodLimit">NeighborhoodLimit</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.LocalSearchPhase">LocalSearchPhase</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.LocalSearchPhaseParameters">LocalSearchPhaseParameters</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SearchDepth">SearchDepth</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SearchLeftDepth">SearchLeftDepth</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SolveDepth">SolveDepth</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Rand64">Rand64</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Rand32">Rand32</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ReSeed">ReSeed</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.LocalSearchProfile">LocalSearchProfile</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Constraints">Constraints</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Accept">Accept</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.FinishCurrentSearch">FinishCurrentSearch</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.RestartCurrentSearch">RestartCurrentSearch</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ShouldFail">ShouldFail</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.Add">Add</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.TreeNoCycle">TreeNoCycle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SearchLogWithCallback">SearchLogWithCallback</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.ElementFunction">ElementFunction</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.VarEvalValStrPhase">VarEvalValStrPhase</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.VarStrValEvalPhase">VarStrValEvalPhase</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.VarEvalValEvalPhase">VarEvalValEvalPhase</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.VarStrValEvalTieBreakPhase">VarStrValEvalTieBreakPhase</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.VarEvalValEvalTieBreakPhase">VarEvalValEvalTieBreakPhase</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.EvalEvalStrPhase">EvalEvalStrPhase</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.EvalEvalStrTieBreakPhase">EvalEvalStrTieBreakPhase</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.GuidedLocalSearch">GuidedLocalSearch</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver.SumObjectiveFilter">SumObjectiveFilter</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver_DefaultSolverParameters">Solver_DefaultSolverParameters</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Solver_MemoryUsage">Solver_MemoryUsage</a>
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#BaseObject">BaseObject</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#BaseObject.__init__">BaseObject</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#BaseObject.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BaseObject.DebugString">DebugString</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#PropagationBaseObject">PropagationBaseObject</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#PropagationBaseObject.__init__">PropagationBaseObject</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#PropagationBaseObject.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PropagationBaseObject.DebugString">DebugString</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PropagationBaseObject.solver">solver</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PropagationBaseObject.Name">Name</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#Decision">Decision</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#Decision.__init__">Decision</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Decision.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Decision.ApplyWrapper">ApplyWrapper</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Decision.RefuteWrapper">RefuteWrapper</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Decision.DebugString">DebugString</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#DecisionBuilder">DecisionBuilder</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#DecisionBuilder.__init__">DecisionBuilder</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DecisionBuilder.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#DecisionBuilder.NextWrapper">NextWrapper</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#DecisionBuilder.DebugString">DebugString</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#Demon">Demon</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#Demon.__init__">Demon</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Demon.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Demon.RunWrapper">RunWrapper</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Demon.Priority">Priority</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Demon.DebugString">DebugString</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Demon.Inhibit">Inhibit</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Demon.Desinhibit">Desinhibit</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#Constraint">Constraint</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#Constraint.__init__">Constraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Constraint.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Constraint.Post">Post</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Constraint.InitialPropagateWrapper">InitialPropagateWrapper</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Constraint.DebugString">DebugString</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Constraint.Var">Var</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Constraint.Square">Square</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Constraint.MapTo">MapTo</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Constraint.IndexOf">IndexOf</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#SearchMonitor">SearchMonitor</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.__init__">SearchMonitor</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#SearchMonitor.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.EnterSearch">EnterSearch</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.RestartSearch">RestartSearch</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.ExitSearch">ExitSearch</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.BeginNextDecision">BeginNextDecision</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.EndNextDecision">EndNextDecision</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.ApplyDecision">ApplyDecision</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.RefuteDecision">RefuteDecision</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.AfterDecision">AfterDecision</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.BeginFail">BeginFail</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.EndFail">EndFail</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.BeginInitialPropagation">BeginInitialPropagation</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.EndInitialPropagation">EndInitialPropagation</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.AcceptSolution">AcceptSolution</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.AtSolution">AtSolution</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.NoMoreSolutions">NoMoreSolutions</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.LocalOptimum">LocalOptimum</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.AcceptDelta">AcceptDelta</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.AcceptNeighbor">AcceptNeighbor</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchMonitor.solver">solver</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#IntExpr">IntExpr</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#IntExpr.__init__">IntExpr</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#IntExpr.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.Min">Min</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.SetMin">SetMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.Max">Max</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.SetMax">SetMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.SetRange">SetRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.SetValue">SetValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.Bound">Bound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.IsVar">IsVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.Var">Var</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.VarWithName">VarWithName</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.WhenRange">WhenRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.Square">Square</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.MapTo">MapTo</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.IndexOf">IndexOf</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.IsMember">IsMember</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.Member">Member</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntExpr.NotMember">NotMember</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#IntVarIterator">IntVarIterator</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#IntVarIterator.__init__">IntVarIterator</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#IntVarIterator.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarIterator.Init">Init</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarIterator.Ok">Ok</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarIterator.Value">Value</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarIterator.Next">Next</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarIterator.DebugString">DebugString</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarIterator.next">next</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#IntVar">IntVar</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#IntVar.__init__">IntVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#IntVar.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.IsVar">IsVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.Var">Var</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.Value">Value</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.RemoveValue">RemoveValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.RemoveInterval">RemoveInterval</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.RemoveValues">RemoveValues</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.SetValues">SetValues</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.WhenBound">WhenBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.WhenDomain">WhenDomain</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.Size">Size</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.Contains">Contains</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.HoleIteratorAux">HoleIteratorAux</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.DomainIteratorAux">DomainIteratorAux</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.OldMin">OldMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.OldMax">OldMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.DomainIterator">DomainIterator</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVar.HoleIterator">HoleIterator</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#SolutionCollector">SolutionCollector</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.__init__">SolutionCollector</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#SolutionCollector.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.DebugString">DebugString</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.Add">Add</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.AddObjective">AddObjective</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.EnterSearch">EnterSearch</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.SolutionCount">SolutionCount</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.Solution">Solution</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.WallTime">WallTime</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.Branches">Branches</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.Failures">Failures</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.ObjectiveValue">ObjectiveValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.Value">Value</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.StartValue">StartValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.EndValue">EndValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.DurationValue">DurationValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.PerformedValue">PerformedValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.ForwardSequence">ForwardSequence</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.BackwardSequence">BackwardSequence</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolutionCollector.Unperformed">Unperformed</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#OptimizeVar">OptimizeVar</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#OptimizeVar.__init__">OptimizeVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#OptimizeVar.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#OptimizeVar.Best">Best</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#OptimizeVar.Var">Var</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#OptimizeVar.AcceptDelta">AcceptDelta</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#OptimizeVar.EnterSearch">EnterSearch</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#OptimizeVar.BeginNextDecision">BeginNextDecision</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#OptimizeVar.RefuteDecision">RefuteDecision</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#OptimizeVar.AtSolution">AtSolution</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#OptimizeVar.AcceptSolution">AcceptSolution</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#OptimizeVar.DebugString">DebugString</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#SearchLimit">SearchLimit</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#SearchLimit.__init__">SearchLimit</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#SearchLimit.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchLimit.Crossed">Crossed</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchLimit.Check">Check</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchLimit.Init">Init</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchLimit.EnterSearch">EnterSearch</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchLimit.BeginNextDecision">BeginNextDecision</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchLimit.RefuteDecision">RefuteDecision</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SearchLimit.DebugString">DebugString</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#IntervalVar">IntervalVar</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#IntervalVar.__init__">IntervalVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#IntervalVar.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StartMin">StartMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StartMax">StartMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.SetStartMin">SetStartMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.SetStartMax">SetStartMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.SetStartRange">SetStartRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.OldStartMin">OldStartMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.OldStartMax">OldStartMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.WhenStartRange">WhenStartRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.WhenStartBound">WhenStartBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.DurationMin">DurationMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.DurationMax">DurationMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.SetDurationMin">SetDurationMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.SetDurationMax">SetDurationMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.SetDurationRange">SetDurationRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.OldDurationMin">OldDurationMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.OldDurationMax">OldDurationMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.WhenDurationRange">WhenDurationRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.WhenDurationBound">WhenDurationBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.EndMin">EndMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.EndMax">EndMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.SetEndMin">SetEndMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.SetEndMax">SetEndMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.SetEndRange">SetEndRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.OldEndMin">OldEndMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.OldEndMax">OldEndMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.WhenEndRange">WhenEndRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.WhenEndBound">WhenEndBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.MustBePerformed">MustBePerformed</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.MayBePerformed">MayBePerformed</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.CannotBePerformed">CannotBePerformed</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.IsPerformedBound">IsPerformedBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.SetPerformed">SetPerformed</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.WasPerformedBound">WasPerformedBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.WhenPerformedBound">WhenPerformedBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.WhenAnything">WhenAnything</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StartExpr">StartExpr</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.DurationExpr">DurationExpr</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.EndExpr">EndExpr</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.PerformedExpr">PerformedExpr</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.SafeStartExpr">SafeStartExpr</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.SafeDurationExpr">SafeDurationExpr</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.SafeEndExpr">SafeEndExpr</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.EndsAfterEnd">EndsAfterEnd</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.EndsAfterEndWithDelay">EndsAfterEndWithDelay</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.EndsAfterStart">EndsAfterStart</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.EndsAfterStartWithDelay">EndsAfterStartWithDelay</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.EndsAtEnd">EndsAtEnd</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.EndsAtEndWithDelay">EndsAtEndWithDelay</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.EndsAtStart">EndsAtStart</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.EndsAtStartWithDelay">EndsAtStartWithDelay</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StartsAfterEnd">StartsAfterEnd</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StartsAfterEndWithDelay">StartsAfterEndWithDelay</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StartsAfterStart">StartsAfterStart</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StartsAfterStartWithDelay">StartsAfterStartWithDelay</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StartsAtEnd">StartsAtEnd</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StartsAtEndWithDelay">StartsAtEndWithDelay</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StartsAtStart">StartsAtStart</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StartsAtStartWithDelay">StartsAtStartWithDelay</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StaysInSync">StaysInSync</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StaysInSyncWithDelay">StaysInSyncWithDelay</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.EndsAfter">EndsAfter</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.EndsAt">EndsAt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.EndsBefore">EndsBefore</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StartsAfter">StartsAfter</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StartsAt">StartsAt</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.StartsBefore">StartsBefore</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.CrossesDate">CrossesDate</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVar.AvoidsDate">AvoidsDate</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#SequenceVar">SequenceVar</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#SequenceVar.__init__">SequenceVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#SequenceVar.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVar.DebugString">DebugString</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVar.RankFirst">RankFirst</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVar.RankNotFirst">RankNotFirst</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVar.RankLast">RankLast</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVar.RankNotLast">RankNotLast</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVar.Interval">Interval</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVar.Next">Next</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVar.Size">Size</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#AssignmentElement">AssignmentElement</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#AssignmentElement.__init__">AssignmentElement</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#AssignmentElement.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#AssignmentElement.Activate">Activate</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#AssignmentElement.Deactivate">Deactivate</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#AssignmentElement.Activated">Activated</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#IntVarElement">IntVarElement</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#IntVarElement.__init__">IntVarElement</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#IntVarElement.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarElement.Var">Var</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarElement.Min">Min</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarElement.SetMin">SetMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarElement.Max">Max</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarElement.SetMax">SetMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarElement.Value">Value</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarElement.Bound">Bound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarElement.SetRange">SetRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarElement.SetValue">SetValue</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#IntervalVarElement">IntervalVarElement</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.__init__">IntervalVarElement</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#IntervalVarElement.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.Var">Var</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.StartMin">StartMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.StartMax">StartMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.StartValue">StartValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.DurationMin">DurationMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.DurationMax">DurationMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.DurationValue">DurationValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.EndMin">EndMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.EndMax">EndMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.EndValue">EndValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.PerformedMin">PerformedMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.PerformedMax">PerformedMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.PerformedValue">PerformedValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetStartMin">SetStartMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetStartMax">SetStartMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetStartRange">SetStartRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetStartValue">SetStartValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetDurationMin">SetDurationMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetDurationMax">SetDurationMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetDurationRange">SetDurationRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetDurationValue">SetDurationValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetEndMin">SetEndMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetEndMax">SetEndMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetEndRange">SetEndRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetEndValue">SetEndValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetPerformedMin">SetPerformedMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetPerformedMax">SetPerformedMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetPerformedRange">SetPerformedRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarElement.SetPerformedValue">SetPerformedValue</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#SequenceVarElement">SequenceVarElement</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#SequenceVarElement.__init__">SequenceVarElement</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#SequenceVarElement.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarElement.Var">Var</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarElement.ForwardSequence">ForwardSequence</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarElement.BackwardSequence">BackwardSequence</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarElement.Unperformed">Unperformed</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarElement.SetSequence">SetSequence</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarElement.SetForwardSequence">SetForwardSequence</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarElement.SetBackwardSequence">SetBackwardSequence</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarElement.SetUnperformed">SetUnperformed</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#Assignment">Assignment</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#Assignment.__init__">Assignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Assignment.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Clear">Clear</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Empty">Empty</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Size">Size</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.NumIntVars">NumIntVars</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.NumIntervalVars">NumIntervalVars</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.NumSequenceVars">NumSequenceVars</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Store">Store</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Restore">Restore</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Load">Load</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Save">Save</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.AddObjective">AddObjective</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Objective">Objective</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.HasObjective">HasObjective</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.ObjectiveMin">ObjectiveMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.ObjectiveMax">ObjectiveMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.ObjectiveValue">ObjectiveValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.ObjectiveBound">ObjectiveBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetObjectiveMin">SetObjectiveMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetObjectiveMax">SetObjectiveMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetObjectiveValue">SetObjectiveValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetObjectiveRange">SetObjectiveRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Min">Min</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Max">Max</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Value">Value</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Bound">Bound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetMin">SetMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetMax">SetMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetRange">SetRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetValue">SetValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.StartMin">StartMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.StartMax">StartMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.StartValue">StartValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.DurationMin">DurationMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.DurationMax">DurationMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.DurationValue">DurationValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.EndMin">EndMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.EndMax">EndMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.EndValue">EndValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.PerformedMin">PerformedMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.PerformedMax">PerformedMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.PerformedValue">PerformedValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetStartMin">SetStartMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetStartMax">SetStartMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetStartRange">SetStartRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetStartValue">SetStartValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetDurationMin">SetDurationMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetDurationMax">SetDurationMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetDurationRange">SetDurationRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetDurationValue">SetDurationValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetEndMin">SetEndMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetEndMax">SetEndMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetEndRange">SetEndRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetEndValue">SetEndValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetPerformedMin">SetPerformedMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetPerformedMax">SetPerformedMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetPerformedRange">SetPerformedRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetPerformedValue">SetPerformedValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Add">Add</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.ForwardSequence">ForwardSequence</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.BackwardSequence">BackwardSequence</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Unperformed">Unperformed</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetSequence">SetSequence</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetForwardSequence">SetForwardSequence</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetBackwardSequence">SetBackwardSequence</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SetUnperformed">SetUnperformed</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Activate">Activate</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Deactivate">Deactivate</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.Activated">Activated</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.DebugString">DebugString</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.IntVarContainer">IntVarContainer</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.MutableIntVarContainer">MutableIntVarContainer</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.IntervalVarContainer">IntervalVarContainer</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.MutableIntervalVarContainer">MutableIntervalVarContainer</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.SequenceVarContainer">SequenceVarContainer</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Assignment.MutableSequenceVarContainer">MutableSequenceVarContainer</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#Pack">Pack</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#Pack.__init__">Pack</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#Pack.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Pack.AddWeightedSumLessOrEqualConstantDimension">AddWeightedSumLessOrEqualConstantDimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Pack.AddWeightedSumEqualVarDimension">AddWeightedSumEqualVarDimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Pack.AddSumVariableWeightsLessOrEqualConstantDimension">AddSumVariableWeightsLessOrEqualConstantDimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Pack.AddWeightedSumOfAssignedDimension">AddWeightedSumOfAssignedDimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Pack.AddCountUsedBinDimension">AddCountUsedBinDimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Pack.AddCountAssignedItemsDimension">AddCountAssignedItemsDimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Pack.Post">Post</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Pack.InitialPropagateWrapper">InitialPropagateWrapper</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#Pack.DebugString">DebugString</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#DisjunctiveConstraint">DisjunctiveConstraint</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#DisjunctiveConstraint.__init__">DisjunctiveConstraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#DisjunctiveConstraint.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#DisjunctiveConstraint.SequenceVar">SequenceVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#DisjunctiveConstraint.SetTransitionTime">SetTransitionTime</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#DisjunctiveConstraint.TransitionTime">TransitionTime</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#RevInteger">RevInteger</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#RevInteger.__init__">RevInteger</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RevInteger.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RevInteger.Value">Value</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RevInteger.SetValue">SetValue</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#NumericalRevInteger">NumericalRevInteger</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#NumericalRevInteger.__init__">NumericalRevInteger</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#NumericalRevInteger.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#NumericalRevInteger.Add">Add</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#NumericalRevInteger.Incr">Incr</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#NumericalRevInteger.Decr">Decr</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#RevBool">RevBool</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#RevBool.__init__">RevBool</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RevBool.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RevBool.Value">Value</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RevBool.SetValue">SetValue</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#IntVarContainer">IntVarContainer</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#IntVarContainer.__init__">IntVarContainer</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#IntVarContainer.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarContainer.Contains">Contains</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarContainer.Element">Element</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarContainer.Size">Size</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarContainer.Store">Store</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarContainer.Restore">Restore</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#IntervalVarContainer">IntervalVarContainer</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#IntervalVarContainer.__init__">IntervalVarContainer</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#IntervalVarContainer.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarContainer.Contains">Contains</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarContainer.Element">Element</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarContainer.Size">Size</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarContainer.Store">Store</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntervalVarContainer.Restore">Restore</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#SequenceVarContainer">SequenceVarContainer</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#SequenceVarContainer.__init__">SequenceVarContainer</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#SequenceVarContainer.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarContainer.Contains">Contains</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarContainer.Element">Element</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarContainer.Size">Size</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarContainer.Store">Store</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarContainer.Restore">Restore</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#LocalSearchOperator">LocalSearchOperator</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#LocalSearchOperator.__init__">LocalSearchOperator</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#LocalSearchOperator.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#LocalSearchOperator.NextNeighbor">NextNeighbor</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#LocalSearchOperator.Start">Start</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#IntVarLocalSearchOperatorTemplate">IntVarLocalSearchOperatorTemplate</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchOperatorTemplate.__init__">IntVarLocalSearchOperatorTemplate</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#IntVarLocalSearchOperatorTemplate.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchOperatorTemplate.Start">Start</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchOperatorTemplate.IsIncremental">IsIncremental</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchOperatorTemplate.Size">Size</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchOperatorTemplate.Value">Value</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchOperatorTemplate.OldValue">OldValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchOperatorTemplate.SetValue">SetValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchOperatorTemplate.OnStart">OnStart</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#IntVarLocalSearchOperator">IntVarLocalSearchOperator</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchOperator.__init__">IntVarLocalSearchOperator</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#IntVarLocalSearchOperator.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchOperator.NextNeighbor">NextNeighbor</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchOperator.OneNeighbor">OneNeighbor</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#SequenceVarLocalSearchOperatorTemplate">SequenceVarLocalSearchOperatorTemplate</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#SequenceVarLocalSearchOperatorTemplate.__init__">SequenceVarLocalSearchOperatorTemplate</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#SequenceVarLocalSearchOperatorTemplate.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarLocalSearchOperatorTemplate.Start">Start</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarLocalSearchOperatorTemplate.IsIncremental">IsIncremental</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarLocalSearchOperatorTemplate.Size">Size</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarLocalSearchOperatorTemplate.Value">Value</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarLocalSearchOperatorTemplate.OldValue">OldValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarLocalSearchOperatorTemplate.SetValue">SetValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SequenceVarLocalSearchOperatorTemplate.OnStart">OnStart</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#SequenceVarLocalSearchOperator">SequenceVarLocalSearchOperator</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#SequenceVarLocalSearchOperator.__init__">SequenceVarLocalSearchOperator</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#SequenceVarLocalSearchOperator.thisown">thisown</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#BaseLns">BaseLns</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#BaseLns.__init__">BaseLns</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#BaseLns.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BaseLns.InitFragments">InitFragments</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BaseLns.NextFragment">NextFragment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BaseLns.AppendToFragment">AppendToFragment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BaseLns.FragmentSize">FragmentSize</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#ChangeValue">ChangeValue</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#ChangeValue.__init__">ChangeValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#ChangeValue.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#ChangeValue.ModifyValue">ModifyValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#ChangeValue.OneNeighbor">OneNeighbor</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#PathOperator">PathOperator</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#PathOperator.__init__">PathOperator</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#PathOperator.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PathOperator.Neighbor">Neighbor</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#LocalSearchFilter">LocalSearchFilter</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#LocalSearchFilter.__init__">LocalSearchFilter</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#LocalSearchFilter.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#LocalSearchFilter.Accept">Accept</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#LocalSearchFilter.IsIncremental">IsIncremental</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#LocalSearchFilter.Synchronize">Synchronize</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#LocalSearchFilterManager">LocalSearchFilterManager</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#LocalSearchFilterManager.__init__">LocalSearchFilterManager</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#LocalSearchFilterManager.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#LocalSearchFilterManager.DebugString">DebugString</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#LocalSearchFilterManager.Accept">Accept</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#LocalSearchFilterManager.Synchronize">Synchronize</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#IntVarLocalSearchFilter">IntVarLocalSearchFilter</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchFilter.__init__">IntVarLocalSearchFilter</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#IntVarLocalSearchFilter.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchFilter.Synchronize">Synchronize</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchFilter.Size">Size</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchFilter.Value">Value</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#IntVarLocalSearchFilter.IndexFromVar">IndexFromVar</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#BooleanVar">BooleanVar</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#BooleanVar.__init__">BooleanVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#BooleanVar.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.Min">Min</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.SetMin">SetMin</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.Max">Max</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.SetMax">SetMax</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.SetRange">SetRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.Bound">Bound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.Value">Value</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.RemoveValue">RemoveValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.RemoveInterval">RemoveInterval</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.WhenBound">WhenBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.WhenRange">WhenRange</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.WhenDomain">WhenDomain</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.Size">Size</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.Contains">Contains</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.HoleIteratorAux">HoleIteratorAux</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.DomainIteratorAux">DomainIteratorAux</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#BooleanVar.DebugString">DebugString</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#PyDecision">PyDecision</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#PyDecision.__init__">PyDecision</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PyDecision.ApplyWrapper">ApplyWrapper</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PyDecision.RefuteWrapper">RefuteWrapper</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PyDecision.DebugString">DebugString</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#PyDecisionBuilder">PyDecisionBuilder</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#PyDecisionBuilder.__init__">PyDecisionBuilder</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PyDecisionBuilder.NextWrapper">NextWrapper</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PyDecisionBuilder.DebugString">DebugString</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#PyDemon">PyDemon</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#PyDemon.RunWrapper">RunWrapper</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PyDemon.DebugString">DebugString</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#PyConstraintDemon">PyConstraintDemon</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#PyConstraintDemon.__init__">PyConstraintDemon</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PyConstraintDemon.Run">Run</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PyConstraintDemon.Priority">Priority</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PyConstraintDemon.DebugString">DebugString</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#PyConstraint">PyConstraint</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#PyConstraint.__init__">PyConstraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PyConstraint.Demon">Demon</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PyConstraint.DelayedDemon">DelayedDemon</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PyConstraint.InitialPropagateDemon">InitialPropagateDemon</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PyConstraint.DelayedInitialPropagateDemon">DelayedInitialPropagateDemon</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PyConstraint.InitialPropagateWrapper">InitialPropagateWrapper</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#PyConstraint.DebugString">DebugString</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#RoutingIndexManager">RoutingIndexManager</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#RoutingIndexManager.__init__">RoutingIndexManager</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingIndexManager.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingIndexManager.GetNumberOfNodes">GetNumberOfNodes</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingIndexManager.GetNumberOfVehicles">GetNumberOfVehicles</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingIndexManager.GetNumberOfIndices">GetNumberOfIndices</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingIndexManager.GetStartIndex">GetStartIndex</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingIndexManager.GetEndIndex">GetEndIndex</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingIndexManager.NodeToIndex">NodeToIndex</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingIndexManager.IndexToNode">IndexToNode</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#DefaultRoutingModelParameters">DefaultRoutingModelParameters</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#DefaultRoutingSearchParameters">DefaultRoutingSearchParameters</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#FindErrorInRoutingSearchParameters">FindErrorInRoutingSearchParameters</a>
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#RoutingModel">RoutingModel</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#RoutingModel.__init__">RoutingModel</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.ROUTING_NOT_SOLVED">ROUTING_NOT_SOLVED</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.ROUTING_SUCCESS">ROUTING_SUCCESS</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.ROUTING_FAIL">ROUTING_FAIL</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.ROUTING_FAIL_TIMEOUT">ROUTING_FAIL_TIMEOUT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.ROUTING_INVALID">ROUTING_INVALID</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.PICKUP_AND_DELIVERY_NO_ORDER">PICKUP_AND_DELIVERY_NO_ORDER</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.PICKUP_AND_DELIVERY_LIFO">PICKUP_AND_DELIVERY_LIFO</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.PICKUP_AND_DELIVERY_FIFO">PICKUP_AND_DELIVERY_FIFO</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.RegisterUnaryTransitVector">RegisterUnaryTransitVector</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.RegisterUnaryTransitCallback">RegisterUnaryTransitCallback</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.RegisterPositiveUnaryTransitCallback">RegisterPositiveUnaryTransitCallback</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.RegisterTransitMatrix">RegisterTransitMatrix</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.RegisterTransitCallback">RegisterTransitCallback</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.RegisterPositiveTransitCallback">RegisterPositiveTransitCallback</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.TransitCallback">TransitCallback</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.UnaryTransitCallbackOrNull">UnaryTransitCallbackOrNull</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddDimension">AddDimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddDimensionWithVehicleTransits">AddDimensionWithVehicleTransits</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddDimensionWithVehicleCapacity">AddDimensionWithVehicleCapacity</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddDimensionWithVehicleTransitAndCapacity">AddDimensionWithVehicleTransitAndCapacity</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddConstantDimensionWithSlack">AddConstantDimensionWithSlack</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddConstantDimension">AddConstantDimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddVectorDimension">AddVectorDimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddMatrixDimension">AddMatrixDimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.MakePathSpansAndTotalSlacks">MakePathSpansAndTotalSlacks</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetAllDimensionNames">GetAllDimensionNames</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetDimensions">GetDimensions</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetDimensionsWithSoftOrSpanCosts">GetDimensionsWithSoftOrSpanCosts</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetGlobalDimensionCumulOptimizers">GetGlobalDimensionCumulOptimizers</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetGlobalDimensionCumulMPOptimizers">GetGlobalDimensionCumulMPOptimizers</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetLocalDimensionCumulOptimizers">GetLocalDimensionCumulOptimizers</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetLocalDimensionCumulMPOptimizers">GetLocalDimensionCumulMPOptimizers</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetMutableGlobalCumulOptimizer">GetMutableGlobalCumulOptimizer</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetMutableGlobalCumulMPOptimizer">GetMutableGlobalCumulMPOptimizer</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetMutableLocalCumulOptimizer">GetMutableLocalCumulOptimizer</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetMutableLocalCumulMPOptimizer">GetMutableLocalCumulMPOptimizer</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.HasDimension">HasDimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetDimensionOrDie">GetDimensionOrDie</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetMutableDimension">GetMutableDimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SetPrimaryConstrainedDimension">SetPrimaryConstrainedDimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetPrimaryConstrainedDimension">GetPrimaryConstrainedDimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetDimensionResourceGroupIndices">GetDimensionResourceGroupIndices</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddDisjunction">AddDisjunction</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetDisjunctionIndices">GetDisjunctionIndices</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetDisjunctionPenalty">GetDisjunctionPenalty</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetDisjunctionMaxCardinality">GetDisjunctionMaxCardinality</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetNumberOfDisjunctions">GetNumberOfDisjunctions</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetPerfectBinaryDisjunctions">GetPerfectBinaryDisjunctions</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.IgnoreDisjunctionsAlreadyForcedToZero">IgnoreDisjunctionsAlreadyForcedToZero</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddSoftSameVehicleConstraint">AddSoftSameVehicleConstraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SetAllowedVehiclesForIndex">SetAllowedVehiclesForIndex</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.IsVehicleAllowedForIndex">IsVehicleAllowedForIndex</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddPickupAndDelivery">AddPickupAndDelivery</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddPickupAndDeliverySets">AddPickupAndDeliverySets</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetPickupIndexPairs">GetPickupIndexPairs</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetDeliveryIndexPairs">GetDeliveryIndexPairs</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SetPickupAndDeliveryPolicyOfAllVehicles">SetPickupAndDeliveryPolicyOfAllVehicles</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SetPickupAndDeliveryPolicyOfVehicle">SetPickupAndDeliveryPolicyOfVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetPickupAndDeliveryPolicyOfVehicle">GetPickupAndDeliveryPolicyOfVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetNumOfSingletonNodes">GetNumOfSingletonNodes</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.TYPE_ADDED_TO_VEHICLE">TYPE_ADDED_TO_VEHICLE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.ADDED_TYPE_REMOVED_FROM_VEHICLE">ADDED_TYPE_REMOVED_FROM_VEHICLE</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.TYPE_ON_VEHICLE_UP_TO_VISIT">TYPE_ON_VEHICLE_UP_TO_VISIT</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED">TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SetVisitType">SetVisitType</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetVisitType">GetVisitType</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetSingleNodesOfType">GetSingleNodesOfType</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetPairIndicesOfType">GetPairIndicesOfType</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetVisitTypePolicy">GetVisitTypePolicy</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.CloseVisitTypes">CloseVisitTypes</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetNumberOfVisitTypes">GetNumberOfVisitTypes</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddHardTypeIncompatibility">AddHardTypeIncompatibility</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddTemporalTypeIncompatibility">AddTemporalTypeIncompatibility</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetHardTypeIncompatibilitiesOfType">GetHardTypeIncompatibilitiesOfType</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetTemporalTypeIncompatibilitiesOfType">GetTemporalTypeIncompatibilitiesOfType</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.HasHardTypeIncompatibilities">HasHardTypeIncompatibilities</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.HasTemporalTypeIncompatibilities">HasTemporalTypeIncompatibilities</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddSameVehicleRequiredTypeAlternatives">AddSameVehicleRequiredTypeAlternatives</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddRequiredTypeAlternativesWhenAddingType">AddRequiredTypeAlternativesWhenAddingType</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddRequiredTypeAlternativesWhenRemovingType">AddRequiredTypeAlternativesWhenRemovingType</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetSameVehicleRequiredTypeAlternativesOfType">GetSameVehicleRequiredTypeAlternativesOfType</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetRequiredTypeAlternativesWhenAddingType">GetRequiredTypeAlternativesWhenAddingType</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetRequiredTypeAlternativesWhenRemovingType">GetRequiredTypeAlternativesWhenRemovingType</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.HasSameVehicleTypeRequirements">HasSameVehicleTypeRequirements</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.HasTemporalTypeRequirements">HasTemporalTypeRequirements</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.HasTypeRegulations">HasTypeRegulations</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.UnperformedPenalty">UnperformedPenalty</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.UnperformedPenaltyOrValue">UnperformedPenaltyOrValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetDepot">GetDepot</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SetMaximumNumberOfActiveVehicles">SetMaximumNumberOfActiveVehicles</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetMaximumNumberOfActiveVehicles">GetMaximumNumberOfActiveVehicles</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SetArcCostEvaluatorOfAllVehicles">SetArcCostEvaluatorOfAllVehicles</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SetArcCostEvaluatorOfVehicle">SetArcCostEvaluatorOfVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SetFixedCostOfAllVehicles">SetFixedCostOfAllVehicles</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SetFixedCostOfVehicle">SetFixedCostOfVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetFixedCostOfVehicle">GetFixedCostOfVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SetAmortizedCostFactorsOfAllVehicles">SetAmortizedCostFactorsOfAllVehicles</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SetAmortizedCostFactorsOfVehicle">SetAmortizedCostFactorsOfVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetAmortizedLinearCostFactorOfVehicles">GetAmortizedLinearCostFactorOfVehicles</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetAmortizedQuadraticCostFactorOfVehicles">GetAmortizedQuadraticCostFactorOfVehicles</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.ConsiderEmptyRouteCostsForVehicle">ConsiderEmptyRouteCostsForVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AreEmptyRouteCostsConsideredForVehicle">AreEmptyRouteCostsConsideredForVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SetFirstSolutionEvaluator">SetFirstSolutionEvaluator</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddLocalSearchOperator">AddLocalSearchOperator</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddSearchMonitor">AddSearchMonitor</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddAtSolutionCallback">AddAtSolutionCallback</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddVariableMinimizedByFinalizer">AddVariableMinimizedByFinalizer</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddVariableMaximizedByFinalizer">AddVariableMaximizedByFinalizer</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddWeightedVariableMinimizedByFinalizer">AddWeightedVariableMinimizedByFinalizer</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddVariableTargetToFinalizer">AddVariableTargetToFinalizer</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.CloseModel">CloseModel</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.CloseModelWithParameters">CloseModelWithParameters</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.Solve">Solve</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SolveWithParameters">SolveWithParameters</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SolveFromAssignmentWithParameters">SolveFromAssignmentWithParameters</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SolveFromAssignmentsWithParameters">SolveFromAssignmentsWithParameters</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.SetAssignmentFromOtherModelAssignment">SetAssignmentFromOtherModelAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.ComputeLowerBound">ComputeLowerBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.status">status</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.ApplyLocks">ApplyLocks</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.ApplyLocksToAllVehicles">ApplyLocksToAllVehicles</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.PreAssignment">PreAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.MutablePreAssignment">MutablePreAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.WriteAssignment">WriteAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.ReadAssignment">ReadAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.RestoreAssignment">RestoreAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.ReadAssignmentFromRoutes">ReadAssignmentFromRoutes</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.RoutesToAssignment">RoutesToAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AssignmentToRoutes">AssignmentToRoutes</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.CompactAssignment">CompactAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.CompactAndCheckAssignment">CompactAndCheckAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddToAssignment">AddToAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddIntervalToAssignment">AddIntervalToAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.PackCumulsOfOptimizerDimensionsFromAssignment">PackCumulsOfOptimizerDimensionsFromAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.AddLocalSearchFilter">AddLocalSearchFilter</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.Start">Start</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.End">End</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.IsStart">IsStart</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.IsEnd">IsEnd</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.VehicleIndex">VehicleIndex</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.Next">Next</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.IsVehicleUsed">IsVehicleUsed</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.NextVar">NextVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.ActiveVar">ActiveVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.ActiveVehicleVar">ActiveVehicleVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.VehicleCostsConsideredVar">VehicleCostsConsideredVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.VehicleVar">VehicleVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.CostVar">CostVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetArcCostForVehicle">GetArcCostForVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.CostsAreHomogeneousAcrossVehicles">CostsAreHomogeneousAcrossVehicles</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetHomogeneousCost">GetHomogeneousCost</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetArcCostForFirstSolution">GetArcCostForFirstSolution</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetArcCostForClass">GetArcCostForClass</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetCostClassIndexOfVehicle">GetCostClassIndexOfVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.HasVehicleWithCostClassIndex">HasVehicleWithCostClassIndex</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetCostClassesCount">GetCostClassesCount</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetNonZeroCostClassesCount">GetNonZeroCostClassesCount</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetVehicleClassIndexOfVehicle">GetVehicleClassIndexOfVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetVehicleOfClass">GetVehicleOfClass</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetVehicleClassesCount">GetVehicleClassesCount</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetSameVehicleIndicesOfIndex">GetSameVehicleIndicesOfIndex</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetVehicleTypeContainer">GetVehicleTypeContainer</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.ArcIsMoreConstrainedThanArc">ArcIsMoreConstrainedThanArc</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.DebugOutputAssignment">DebugOutputAssignment</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.solver">solver</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.CheckLimit">CheckLimit</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.RemainingTime">RemainingTime</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.nodes">nodes</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.vehicles">vehicles</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.Size">Size</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetNumberOfDecisionsInFirstSolution">GetNumberOfDecisionsInFirstSolution</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetNumberOfRejectsInFirstSolution">GetNumberOfRejectsInFirstSolution</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.GetAutomaticFirstSolutionStrategy">GetAutomaticFirstSolutionStrategy</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.IsMatchingModel">IsMatchingModel</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.MakeGuidedSlackFinalizer">MakeGuidedSlackFinalizer</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingModel.MakeSelfDependentDimensionFinalizer">MakeSelfDependentDimensionFinalizer</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.kNoPenalty">kNoPenalty</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.kNoDisjunction">kNoDisjunction</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModel.kNoDimension">kNoDimension</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#RoutingModelVisitor">RoutingModelVisitor</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#RoutingModelVisitor.__init__">RoutingModelVisitor</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModelVisitor.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModelVisitor.kLightElement">kLightElement</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModelVisitor.kLightElement2">kLightElement2</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingModelVisitor.kRemoveValues">kRemoveValues</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#GlobalVehicleBreaksConstraint">GlobalVehicleBreaksConstraint</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#GlobalVehicleBreaksConstraint.__init__">GlobalVehicleBreaksConstraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#GlobalVehicleBreaksConstraint.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#GlobalVehicleBreaksConstraint.DebugString">DebugString</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#GlobalVehicleBreaksConstraint.Post">Post</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#GlobalVehicleBreaksConstraint.InitialPropagateWrapper">InitialPropagateWrapper</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#TypeRegulationsChecker">TypeRegulationsChecker</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#TypeRegulationsChecker.__init__">TypeRegulationsChecker</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#TypeRegulationsChecker.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#TypeRegulationsChecker.CheckVehicle">CheckVehicle</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#TypeIncompatibilityChecker">TypeIncompatibilityChecker</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#TypeIncompatibilityChecker.__init__">TypeIncompatibilityChecker</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#TypeIncompatibilityChecker.thisown">thisown</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#TypeRequirementChecker">TypeRequirementChecker</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#TypeRequirementChecker.__init__">TypeRequirementChecker</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#TypeRequirementChecker.thisown">thisown</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#TypeRegulationsConstraint">TypeRegulationsConstraint</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#TypeRegulationsConstraint.__init__">TypeRegulationsConstraint</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#TypeRegulationsConstraint.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#TypeRegulationsConstraint.Post">Post</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#TypeRegulationsConstraint.InitialPropagateWrapper">InitialPropagateWrapper</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="class" href="#RoutingDimension">RoutingDimension</a>
|
|
<ul class="memberlist">
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.__init__">RoutingDimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="variable" href="#RoutingDimension.thisown">thisown</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.model">model</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.GetTransitValue">GetTransitValue</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.GetTransitValueFromClass">GetTransitValueFromClass</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.CumulVar">CumulVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.TransitVar">TransitVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.FixedTransitVar">FixedTransitVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.SlackVar">SlackVar</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.SetSpanUpperBoundForVehicle">SetSpanUpperBoundForVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.SetSpanCostCoefficientForVehicle">SetSpanCostCoefficientForVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.SetSpanCostCoefficientForAllVehicles">SetSpanCostCoefficientForAllVehicles</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.SetGlobalSpanCostCoefficient">SetGlobalSpanCostCoefficient</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.SetCumulVarSoftUpperBound">SetCumulVarSoftUpperBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.HasCumulVarSoftUpperBound">HasCumulVarSoftUpperBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.GetCumulVarSoftUpperBound">GetCumulVarSoftUpperBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.GetCumulVarSoftUpperBoundCoefficient">GetCumulVarSoftUpperBoundCoefficient</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.SetCumulVarSoftLowerBound">SetCumulVarSoftLowerBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.HasCumulVarSoftLowerBound">HasCumulVarSoftLowerBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.GetCumulVarSoftLowerBound">GetCumulVarSoftLowerBound</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.GetCumulVarSoftLowerBoundCoefficient">GetCumulVarSoftLowerBoundCoefficient</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.SetBreakIntervalsOfVehicle">SetBreakIntervalsOfVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.SetBreakDistanceDurationOfVehicle">SetBreakDistanceDurationOfVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.InitializeBreaks">InitializeBreaks</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.HasBreakConstraints">HasBreakConstraints</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.GetPreTravelEvaluatorOfVehicle">GetPreTravelEvaluatorOfVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.GetPostTravelEvaluatorOfVehicle">GetPostTravelEvaluatorOfVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.base_dimension">base_dimension</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.ShortestTransitionSlack">ShortestTransitionSlack</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.name">name</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.SetPickupToDeliveryLimitFunctionForPair">SetPickupToDeliveryLimitFunctionForPair</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.HasPickupToDeliveryLimits">HasPickupToDeliveryLimits</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.AddNodePrecedence">AddNodePrecedence</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.GetSpanUpperBoundForVehicle">GetSpanUpperBoundForVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.GetSpanCostCoefficientForVehicle">GetSpanCostCoefficientForVehicle</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.global_span_cost_coefficient">global_span_cost_coefficient</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.GetGlobalOptimizerOffset">GetGlobalOptimizerOffset</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#RoutingDimension.GetLocalOptimizerOffsetForVehicle">GetLocalOptimizerOffsetForVehicle</a>
|
|
</li>
|
|
</ul>
|
|
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#MakeSetValuesFromTargets">MakeSetValuesFromTargets</a>
|
|
</li>
|
|
<li>
|
|
<a class="function" href="#SolveModelWithSat">SolveModelWithSat</a>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
<footer>OR-Tools 9.1</footer>
|
|
|
|
<a class="attribution" title="pdoc: Python API documentation generator" href="https://pdoc.dev">
|
|
built with <span class="visually-hidden">pdoc</span><img
|
|
alt="pdoc logo"
|
|
src="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20role%3D%22img%22%20aria-label%3D%22pdoc%20logo%22%20width%3D%22300%22%20height%3D%22150%22%20viewBox%3D%22-1%200%2060%2030%22%3E%3Ctitle%3Epdoc%3C/title%3E%3Cpath%20d%3D%22M29.621%2021.293c-.011-.273-.214-.475-.511-.481a.5.5%200%200%200-.489.503l-.044%201.393c-.097.551-.695%201.215-1.566%201.704-.577.428-1.306.486-2.193.182-1.426-.617-2.467-1.654-3.304-2.487l-.173-.172a3.43%203.43%200%200%200-.365-.306.49.49%200%200%200-.286-.196c-1.718-1.06-4.931-1.47-7.353.191l-.219.15c-1.707%201.187-3.413%202.131-4.328%201.03-.02-.027-.49-.685-.141-1.763.233-.721.546-2.408.772-4.076.042-.09.067-.187.046-.288.166-1.347.277-2.625.241-3.351%201.378-1.008%202.271-2.586%202.271-4.362%200-.976-.272-1.935-.788-2.774-.057-.094-.122-.18-.184-.268.033-.167.052-.339.052-.516%200-1.477-1.202-2.679-2.679-2.679-.791%200-1.496.352-1.987.9a6.3%206.3%200%200%200-1.001.029c-.492-.564-1.207-.929-2.012-.929-1.477%200-2.679%201.202-2.679%202.679A2.65%202.65%200%200%200%20.97%206.554c-.383.747-.595%201.572-.595%202.41%200%202.311%201.507%204.29%203.635%205.107-.037.699-.147%202.27-.423%203.294l-.137.461c-.622%202.042-2.515%208.257%201.727%2010.643%201.614.908%203.06%201.248%204.317%201.248%202.665%200%204.492-1.524%205.322-2.401%201.476-1.559%202.886-1.854%206.491.82%201.877%201.393%203.514%201.753%204.861%201.068%202.223-1.713%202.811-3.867%203.399-6.374.077-.846.056-1.469.054-1.537zm-4.835%204.313c-.054.305-.156.586-.242.629-.034-.007-.131-.022-.307-.157-.145-.111-.314-.478-.456-.908.221.121.432.25.675.355.115.039.219.051.33.081zm-2.251-1.238c-.05.33-.158.648-.252.694-.022.001-.125-.018-.307-.157-.217-.166-.488-.906-.639-1.573.358.344.754.693%201.198%201.036zm-3.887-2.337c-.006-.116-.018-.231-.041-.342.635.145%201.189.368%201.599.625.097.231.166.481.174.642-.03.049-.055.101-.067.158-.046.013-.128.026-.298.004-.278-.037-.901-.57-1.367-1.087zm-1.127-.497c.116.306.176.625.12.71-.019.014-.117.045-.345.016-.206-.027-.604-.332-.986-.695.41-.051.816-.056%201.211-.031zm-4.535%201.535c.209.22.379.47.358.598-.006.041-.088.138-.351.234-.144.055-.539-.063-.979-.259a11.66%2011.66%200%200%200%20.972-.573zm.983-.664c.359-.237.738-.418%201.126-.554.25.237.479.548.457.694-.006.042-.087.138-.351.235-.174.064-.694-.105-1.232-.375zm-3.381%201.794c-.022.145-.061.29-.149.401-.133.166-.358.248-.69.251h-.002c-.133%200-.306-.26-.45-.621.417.091.854.07%201.291-.031zm-2.066-8.077a4.78%204.78%200%200%201-.775-.584c.172-.115.505-.254.88-.378l-.105.962zm-.331%202.302a10.32%2010.32%200%200%201-.828-.502c.202-.143.576-.328.984-.49l-.156.992zm-.45%202.157l-.701-.403c.214-.115.536-.249.891-.376a11.57%2011.57%200%200%201-.19.779zm-.181%201.716c.064.398.194.702.298.893-.194-.051-.435-.162-.736-.398.061-.119.224-.3.438-.495zM8.87%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zm-.735-.389a1.15%201.15%200%200%200-.314.783%201.16%201.16%200%200%200%201.162%201.162c.457%200%20.842-.27%201.032-.653.026.117.042.238.042.362a1.68%201.68%200%200%201-1.679%201.679%201.68%201.68%200%200%201-1.679-1.679c0-.843.626-1.535%201.436-1.654zM5.059%205.406A1.68%201.68%200%200%201%203.38%207.085a1.68%201.68%200%200%201-1.679-1.679c0-.037.009-.072.011-.109.21.3.541.508.935.508a1.16%201.16%200%200%200%201.162-1.162%201.14%201.14%200%200%200-.474-.912c.015%200%20.03-.005.045-.005.926.001%201.679.754%201.679%201.68zM3.198%204.141c0%20.152-.123.276-.276.276s-.275-.124-.275-.276.123-.276.276-.276.275.124.275.276zM1.375%208.964c0-.52.103-1.035.288-1.52.466.394%201.06.64%201.717.64%201.144%200%202.116-.725%202.499-1.738.383%201.012%201.355%201.738%202.499%201.738.867%200%201.631-.421%202.121-1.062.307.605.478%201.267.478%201.942%200%202.486-2.153%204.51-4.801%204.51s-4.801-2.023-4.801-4.51zm24.342%2019.349c-.985.498-2.267.168-3.813-.979-3.073-2.281-5.453-3.199-7.813-.705-1.315%201.391-4.163%203.365-8.423.97-3.174-1.786-2.239-6.266-1.261-9.479l.146-.492c.276-1.02.395-2.457.444-3.268a6.11%206.11%200%200%200%201.18.115%206.01%206.01%200%200%200%202.536-.562l-.006.175c-.802.215-1.848.612-2.021%201.25-.079.295.021.601.274.837.219.203.415.364.598.501-.667.304-1.243.698-1.311%201.179-.02.144-.022.507.393.787.213.144.395.26.564.365-1.285.521-1.361.96-1.381%201.126-.018.142-.011.496.427.746l.854.489c-.473.389-.971.914-.999%201.429-.018.278.095.532.316.713.675.556%201.231.721%201.653.721.059%200%20.104-.014.158-.02.207.707.641%201.64%201.513%201.64h.013c.8-.008%201.236-.345%201.462-.626.173-.216.268-.457.325-.692.424.195.93.374%201.372.374.151%200%20.294-.021.423-.068.732-.27.944-.704.993-1.021.009-.061.003-.119.002-.179.266.086.538.147.789.147.15%200%20.294-.021.423-.069.542-.2.797-.489.914-.754.237.147.478.258.704.288.106.014.205.021.296.021.356%200%20.595-.101.767-.229.438.435%201.094.992%201.656%201.067.106.014.205.021.296.021a1.56%201.56%200%200%200%20.323-.035c.17.575.453%201.289.866%201.605.358.273.665.362.914.362a.99.99%200%200%200%20.421-.093%201.03%201.03%200%200%200%20.245-.164c.168.428.39.846.68%201.068.358.273.665.362.913.362a.99.99%200%200%200%20.421-.093c.317-.148.512-.448.639-.762.251.157.495.257.726.257.127%200%20.25-.024.37-.071.427-.17.706-.617.841-1.314.022-.015.047-.022.068-.038.067-.051.133-.104.196-.159-.443%201.486-1.107%202.761-2.086%203.257zM8.66%209.925a.5.5%200%201%200-1%200c0%20.653-.818%201.205-1.787%201.205s-1.787-.552-1.787-1.205a.5.5%200%201%200-1%200c0%201.216%201.25%202.205%202.787%202.205s2.787-.989%202.787-2.205zm4.4%2015.965l-.208.097c-2.661%201.258-4.708%201.436-6.086.527-1.542-1.017-1.88-3.19-1.844-4.198a.4.4%200%200%200-.385-.414c-.242-.029-.406.164-.414.385-.046%201.249.367%203.686%202.202%204.896.708.467%201.547.7%202.51.7%201.248%200%202.706-.392%204.362-1.174l.185-.086a.4.4%200%200%200%20.205-.527c-.089-.204-.326-.291-.527-.206zM9.547%202.292c.093.077.205.114.317.114a.5.5%200%200%200%20.318-.886L8.817.397a.5.5%200%200%200-.703.068.5.5%200%200%200%20.069.703l1.364%201.124zm-7.661-.065c.086%200%20.173-.022.253-.068l1.523-.893a.5.5%200%200%200-.506-.863l-1.523.892a.5.5%200%200%200-.179.685c.094.158.261.247.432.247z%22%20transform%3D%22matrix%28-1%200%200%201%2058%200%29%22%20fill%3D%22%233bb300%22/%3E%3Cpath%20d%3D%22M.3%2021.86V10.18q0-.46.02-.68.04-.22.18-.5.28-.54%201.34-.54%201.06%200%201.42.28.38.26.44.78.76-1.04%202.38-1.04%201.64%200%203.1%201.54%201.46%201.54%201.46%203.58%200%202.04-1.46%203.58-1.44%201.54-3.08%201.54-1.64%200-2.38-.92v4.04q0%20.46-.04.68-.02.22-.18.5-.14.3-.5.42-.36.12-.98.12-.62%200-1-.12-.36-.12-.52-.4-.14-.28-.18-.5-.02-.22-.02-.68zm3.96-9.42q-.46.54-.46%201.18%200%20.64.46%201.18.48.52%201.2.52.74%200%201.24-.52.52-.52.52-1.18%200-.66-.48-1.18-.48-.54-1.26-.54-.76%200-1.22.54zm14.741-8.36q.16-.3.54-.42.38-.12%201-.12.64%200%201.02.12.38.12.52.42.16.3.18.54.04.22.04.68v11.94q0%20.46-.04.7-.02.22-.18.5-.3.54-1.7.54-1.38%200-1.54-.98-.84.96-2.34.96-1.8%200-3.28-1.56-1.48-1.58-1.48-3.66%200-2.1%201.48-3.68%201.5-1.58%203.28-1.58%201.48%200%202.3%201v-4.2q0-.46.02-.68.04-.24.18-.52zm-3.24%2010.86q.52.54%201.26.54.74%200%201.22-.54.5-.54.5-1.18%200-.66-.48-1.22-.46-.56-1.26-.56-.8%200-1.28.56-.48.54-.48%201.2%200%20.66.52%201.2zm7.833-1.2q0-2.4%201.68-3.96%201.68-1.56%203.84-1.56%202.16%200%203.82%201.56%201.66%201.54%201.66%203.94%200%201.66-.86%202.96-.86%201.28-2.1%201.9-1.22.6-2.54.6-1.32%200-2.56-.64-1.24-.66-2.1-1.92-.84-1.28-.84-2.88zm4.18%201.44q.64.48%201.3.48.66%200%201.32-.5.66-.5.66-1.48%200-.98-.62-1.46-.62-.48-1.34-.48-.72%200-1.34.5-.62.5-.62%201.48%200%20.96.64%201.46zm11.412-1.44q0%20.84.56%201.32.56.46%201.18.46.64%200%201.18-.36.56-.38.9-.38.6%200%201.46%201.06.46.58.46%201.04%200%20.76-1.1%201.42-1.14.8-2.8.8-1.86%200-3.58-1.34-.82-.64-1.34-1.7-.52-1.08-.52-2.36%200-1.3.52-2.34.52-1.06%201.34-1.7%201.66-1.32%203.54-1.32.76%200%201.48.22.72.2%201.06.4l.32.2q.36.24.56.38.52.4.52.92%200%20.5-.42%201.14-.72%201.1-1.38%201.1-.38%200-1.08-.44-.36-.34-1.04-.34-.66%200-1.24.48-.58.48-.58%201.34z%22%20fill%3D%22green%22/%3E%3C/svg%3E"/>
|
|
</a>
|
|
</div>
|
|
</nav>
|
|
<main class="pdoc">
|
|
<section>
|
|
<h1 class="modulename">
|
|
pywrapcp </h1>
|
|
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="c1"># This file was automatically generated by SWIG (http://www.swig.org).</span>
|
|
<span class="c1"># Version 4.0.2</span>
|
|
<span class="c1">#</span>
|
|
<span class="c1"># Do not make changes to this file unless you know what you are doing--modify</span>
|
|
<span class="c1"># the SWIG interface file instead.</span>
|
|
|
|
<span class="kn">from</span> <span class="nn">sys</span> <span class="kn">import</span> <span class="n">version_info</span> <span class="k">as</span> <span class="n">_swig_python_version_info</span>
|
|
<span class="k">if</span> <span class="n">_swig_python_version_info</span> <span class="o"><</span> <span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">7</span><span class="p">,</span> <span class="mi">0</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">RuntimeError</span><span class="p">(</span><span class="s2">"Python 2.7 or later required"</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Import the low-level C/C++ module</span>
|
|
<span class="k">if</span> <span class="n">__package__</span> <span class="ow">or</span> <span class="s2">"."</span> <span class="ow">in</span> <span class="vm">__name__</span><span class="p">:</span>
|
|
<span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">_pywrapcp</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="kn">import</span> <span class="nn">_pywrapcp</span>
|
|
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="kn">import</span> <span class="nn">builtins</span> <span class="k">as</span> <span class="nn">__builtin__</span>
|
|
<span class="k">except</span> <span class="ne">ImportError</span><span class="p">:</span>
|
|
<span class="kn">import</span> <span class="nn">__builtin__</span>
|
|
|
|
<span class="k">def</span> <span class="nf">_swig_repr</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="n">strthis</span> <span class="o">=</span> <span class="s2">"proxy of "</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="fm">__repr__</span><span class="p">()</span>
|
|
<span class="k">except</span> <span class="n">__builtin__</span><span class="o">.</span><span class="n">Exception</span><span class="p">:</span>
|
|
<span class="n">strthis</span> <span class="o">=</span> <span class="s2">""</span>
|
|
<span class="k">return</span> <span class="s2">"<</span><span class="si">%s</span><span class="s2">.</span><span class="si">%s</span><span class="s2">; </span><span class="si">%s</span><span class="s2"> >"</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__module__</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="n">strthis</span><span class="p">,)</span>
|
|
|
|
|
|
<span class="k">def</span> <span class="nf">_swig_setattr_nondynamic_instance_variable</span><span class="p">(</span><span class="nb">set</span><span class="p">):</span>
|
|
<span class="k">def</span> <span class="nf">set_instance_attr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="n">name</span> <span class="o">==</span> <span class="s2">"thisown"</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">value</span><span class="p">)</span>
|
|
<span class="k">elif</span> <span class="n">name</span> <span class="o">==</span> <span class="s2">"this"</span><span class="p">:</span>
|
|
<span class="nb">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
<span class="k">elif</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="ow">and</span> <span class="nb">isinstance</span><span class="p">(</span><span class="nb">getattr</span><span class="p">(</span><span class="nb">type</span><span class="p">(</span><span class="bp">self</span><span class="p">),</span> <span class="n">name</span><span class="p">),</span> <span class="nb">property</span><span class="p">):</span>
|
|
<span class="nb">set</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"You cannot add instance attributes to </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">set_instance_attr</span>
|
|
|
|
|
|
<span class="k">def</span> <span class="nf">_swig_setattr_nondynamic_class_variable</span><span class="p">(</span><span class="nb">set</span><span class="p">):</span>
|
|
<span class="k">def</span> <span class="nf">set_class_attr</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="nb">hasattr</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> <span class="ow">and</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="nb">getattr</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">name</span><span class="p">),</span> <span class="nb">property</span><span class="p">):</span>
|
|
<span class="nb">set</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"You cannot add class attributes to </span><span class="si">%s</span><span class="s2">"</span> <span class="o">%</span> <span class="bp">cls</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">set_class_attr</span>
|
|
|
|
|
|
<span class="k">def</span> <span class="nf">_swig_add_metaclass</span><span class="p">(</span><span class="n">metaclass</span><span class="p">):</span>
|
|
<span class="sd">"""Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""</span>
|
|
<span class="k">def</span> <span class="nf">wrapper</span><span class="p">(</span><span class="bp">cls</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="n">metaclass</span><span class="p">(</span><span class="bp">cls</span><span class="o">.</span><span class="vm">__name__</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__bases__</span><span class="p">,</span> <span class="bp">cls</span><span class="o">.</span><span class="vm">__dict__</span><span class="o">.</span><span class="n">copy</span><span class="p">())</span>
|
|
<span class="k">return</span> <span class="n">wrapper</span>
|
|
|
|
|
|
<span class="k">class</span> <span class="nc">_SwigNonDynamicMeta</span><span class="p">(</span><span class="nb">type</span><span class="p">):</span>
|
|
<span class="sd">"""Meta class to enforce nondynamic attributes (no new attributes) for a class"""</span>
|
|
<span class="fm">__setattr__</span> <span class="o">=</span> <span class="n">_swig_setattr_nondynamic_class_variable</span><span class="p">(</span><span class="nb">type</span><span class="o">.</span><span class="fm">__setattr__</span><span class="p">)</span>
|
|
|
|
|
|
<span class="kn">import</span> <span class="nn">weakref</span>
|
|
|
|
<span class="k">class</span> <span class="nc">DefaultPhaseParameters</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This struct holds all parameters for the default search.</span>
|
|
<span class="sd"> DefaultPhaseParameters is only used by Solver::MakeDefaultPhase methods.</span>
|
|
<span class="sd"> Note this is for advanced users only.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
<span class="n">CHOOSE_MAX_SUM_IMPACT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_CHOOSE_MAX_SUM_IMPACT</span>
|
|
<span class="n">CHOOSE_MAX_AVERAGE_IMPACT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_CHOOSE_MAX_AVERAGE_IMPACT</span>
|
|
<span class="n">CHOOSE_MAX_VALUE_IMPACT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_CHOOSE_MAX_VALUE_IMPACT</span>
|
|
<span class="n">SELECT_MIN_IMPACT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_SELECT_MIN_IMPACT</span>
|
|
<span class="n">SELECT_MAX_IMPACT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_SELECT_MAX_IMPACT</span>
|
|
<span class="n">NONE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_NONE</span>
|
|
<span class="n">NORMAL</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_NORMAL</span>
|
|
<span class="n">VERBOSE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_VERBOSE</span>
|
|
<span class="n">var_selection_schema</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_var_selection_schema_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_var_selection_schema_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">"""</span>
|
|
<span class="s2"> This parameter describes how the next variable to instantiate</span>
|
|
<span class="s2"> will be chosen.</span>
|
|
<span class="s2"> """</span><span class="p">)</span>
|
|
<span class="n">value_selection_schema</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_value_selection_schema_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_value_selection_schema_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">""" This parameter describes which value to select for a given var."""</span><span class="p">)</span>
|
|
<span class="n">initialization_splits</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_initialization_splits_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_initialization_splits_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">"""</span>
|
|
<span class="s2"> Maximum number of intervals that the initialization of impacts will scan</span>
|
|
<span class="s2"> per variable.</span>
|
|
<span class="s2"> """</span><span class="p">)</span>
|
|
<span class="n">run_all_heuristics</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_run_all_heuristics_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_run_all_heuristics_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">"""</span>
|
|
<span class="s2"> The default phase will run heuristics periodically. This parameter</span>
|
|
<span class="s2"> indicates if we should run all heuristics, or a randomly selected</span>
|
|
<span class="s2"> one.</span>
|
|
<span class="s2"> """</span><span class="p">)</span>
|
|
<span class="n">heuristic_period</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_heuristic_period_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_heuristic_period_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">"""</span>
|
|
<span class="s2"> The distance in nodes between each run of the heuristics. A</span>
|
|
<span class="s2"> negative or null value will mean that we will not run heuristics</span>
|
|
<span class="s2"> at all.</span>
|
|
<span class="s2"> """</span><span class="p">)</span>
|
|
<span class="n">heuristic_num_failures_limit</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_heuristic_num_failures_limit_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_heuristic_num_failures_limit_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">""" The failure limit for each heuristic that we run."""</span><span class="p">)</span>
|
|
<span class="n">persistent_impact</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_persistent_impact_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_persistent_impact_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">"""</span>
|
|
<span class="s2"> Whether to keep the impact from the first search for other searches,</span>
|
|
<span class="s2"> or to recompute the impact for each new search.</span>
|
|
<span class="s2"> """</span><span class="p">)</span>
|
|
<span class="n">random_seed</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_random_seed_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_random_seed_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">""" Seed used to initialize the random part in some heuristics."""</span><span class="p">)</span>
|
|
<span class="n">display_level</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_display_level_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_display_level_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">"""</span>
|
|
<span class="s2"> This represents the amount of information displayed by the default search.</span>
|
|
<span class="s2"> NONE means no display, VERBOSE means extra information.</span>
|
|
<span class="s2"> """</span><span class="p">)</span>
|
|
<span class="n">decision_builder</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_decision_builder_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_decision_builder_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">""" When defined, this overrides the default impact based decision builder."""</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_DefaultPhaseParameters</span><span class="p">())</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_DefaultPhaseParameters</span>
|
|
|
|
<span class="c1"># Register DefaultPhaseParameters in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_swigregister</span><span class="p">(</span><span class="n">DefaultPhaseParameters</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">Solver</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Solver Class</span>
|
|
|
|
<span class="sd"> A solver represents the main computation engine. It implements the entire</span>
|
|
<span class="sd"> range of Constraint Programming protocols:</span>
|
|
<span class="sd"> - Reversibility</span>
|
|
<span class="sd"> - Propagation</span>
|
|
<span class="sd"> - Search</span>
|
|
|
|
<span class="sd"> Usually, Constraint Programming code consists of</span>
|
|
<span class="sd"> - the creation of the Solver,</span>
|
|
<span class="sd"> - the creation of the decision variables of the model,</span>
|
|
<span class="sd"> - the creation of the constraints of the model and their addition to the</span>
|
|
<span class="sd"> solver() through the AddConstraint() method,</span>
|
|
<span class="sd"> - the creation of the main DecisionBuilder class,</span>
|
|
<span class="sd"> - the launch of the solve() method with the decision builder.</span>
|
|
|
|
<span class="sd"> For the time being, Solver is neither MT_SAFE nor MT_HOT.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
<span class="n">INT_VAR_DEFAULT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INT_VAR_DEFAULT</span>
|
|
<span class="sa">r</span><span class="sd">""" The default behavior is CHOOSE_FIRST_UNBOUND."""</span>
|
|
<span class="n">INT_VAR_SIMPLE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INT_VAR_SIMPLE</span>
|
|
<span class="sa">r</span><span class="sd">""" The simple selection is CHOOSE_FIRST_UNBOUND."""</span>
|
|
<span class="n">CHOOSE_FIRST_UNBOUND</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_FIRST_UNBOUND</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Select the first unbound variable.</span>
|
|
<span class="sd"> Variables are considered in the order of the vector of IntVars used</span>
|
|
<span class="sd"> to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_RANDOM</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_RANDOM</span>
|
|
<span class="sa">r</span><span class="sd">""" Randomly select one of the remaining unbound variables."""</span>
|
|
<span class="n">CHOOSE_MIN_SIZE_LOWEST_MIN</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MIN_SIZE_LOWEST_MIN</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the smallest size,</span>
|
|
<span class="sd"> i.e., the smallest number of possible values.</span>
|
|
<span class="sd"> In case of a tie, the selected variables is the one with the lowest min</span>
|
|
<span class="sd"> value.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, first being defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_MIN_SIZE_HIGHEST_MIN</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MIN_SIZE_HIGHEST_MIN</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the smallest size,</span>
|
|
<span class="sd"> i.e., the smallest number of possible values.</span>
|
|
<span class="sd"> In case of a tie, the selected variable is the one with the highest min</span>
|
|
<span class="sd"> value.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, first being defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_MIN_SIZE_LOWEST_MAX</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MIN_SIZE_LOWEST_MAX</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the smallest size,</span>
|
|
<span class="sd"> i.e., the smallest number of possible values.</span>
|
|
<span class="sd"> In case of a tie, the selected variables is the one with the lowest max</span>
|
|
<span class="sd"> value.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, first being defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_MIN_SIZE_HIGHEST_MAX</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MIN_SIZE_HIGHEST_MAX</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the smallest size,</span>
|
|
<span class="sd"> i.e., the smallest number of possible values.</span>
|
|
<span class="sd"> In case of a tie, the selected variable is the one with the highest max</span>
|
|
<span class="sd"> value.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, first being defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_LOWEST_MIN</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_LOWEST_MIN</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the smallest minimal</span>
|
|
<span class="sd"> value.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, "first" defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_HIGHEST_MAX</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_HIGHEST_MAX</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the highest maximal</span>
|
|
<span class="sd"> value.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, first being defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_MIN_SIZE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MIN_SIZE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the smallest size.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, first being defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_MAX_SIZE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MAX_SIZE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the highest size.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, first being defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_MAX_REGRET_ON_MIN</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MAX_REGRET_ON_MIN</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the largest</span>
|
|
<span class="sd"> gap between the first and the second values of the domain.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_PATH</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_PATH</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Selects the next unbound variable on a path, the path being defined by</span>
|
|
<span class="sd"> the variables: var[i] corresponds to the index of the next of i.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">INT_VALUE_DEFAULT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INT_VALUE_DEFAULT</span>
|
|
<span class="sa">r</span><span class="sd">""" The default behavior is ASSIGN_MIN_VALUE."""</span>
|
|
<span class="n">INT_VALUE_SIMPLE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INT_VALUE_SIMPLE</span>
|
|
<span class="sa">r</span><span class="sd">""" The simple selection is ASSIGN_MIN_VALUE."""</span>
|
|
<span class="n">ASSIGN_MIN_VALUE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ASSIGN_MIN_VALUE</span>
|
|
<span class="sa">r</span><span class="sd">""" Selects the min value of the selected variable."""</span>
|
|
<span class="n">ASSIGN_MAX_VALUE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ASSIGN_MAX_VALUE</span>
|
|
<span class="sa">r</span><span class="sd">""" Selects the max value of the selected variable."""</span>
|
|
<span class="n">ASSIGN_RANDOM_VALUE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ASSIGN_RANDOM_VALUE</span>
|
|
<span class="sa">r</span><span class="sd">""" Selects randomly one of the possible values of the selected variable."""</span>
|
|
<span class="n">ASSIGN_CENTER_VALUE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ASSIGN_CENTER_VALUE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Selects the first possible value which is the closest to the center</span>
|
|
<span class="sd"> of the domain of the selected variable.</span>
|
|
<span class="sd"> The center is defined as (min + max) / 2.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">SPLIT_LOWER_HALF</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SPLIT_LOWER_HALF</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Split the domain in two around the center, and choose the lower</span>
|
|
<span class="sd"> part first.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">SPLIT_UPPER_HALF</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SPLIT_UPPER_HALF</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Split the domain in two around the center, and choose the lower</span>
|
|
<span class="sd"> part first.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">SEQUENCE_DEFAULT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SEQUENCE_DEFAULT</span>
|
|
<span class="n">SEQUENCE_SIMPLE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SEQUENCE_SIMPLE</span>
|
|
<span class="n">CHOOSE_MIN_SLACK_RANK_FORWARD</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MIN_SLACK_RANK_FORWARD</span>
|
|
<span class="n">CHOOSE_RANDOM_RANK_FORWARD</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_RANDOM_RANK_FORWARD</span>
|
|
<span class="n">INTERVAL_DEFAULT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INTERVAL_DEFAULT</span>
|
|
<span class="sa">r</span><span class="sd">""" The default is INTERVAL_SET_TIMES_FORWARD."""</span>
|
|
<span class="n">INTERVAL_SIMPLE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INTERVAL_SIMPLE</span>
|
|
<span class="sa">r</span><span class="sd">""" The simple is INTERVAL_SET_TIMES_FORWARD."""</span>
|
|
<span class="n">INTERVAL_SET_TIMES_FORWARD</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INTERVAL_SET_TIMES_FORWARD</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Selects the variable with the lowest starting time of all variables,</span>
|
|
<span class="sd"> and fixes its starting time to this lowest value.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">INTERVAL_SET_TIMES_BACKWARD</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INTERVAL_SET_TIMES_BACKWARD</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Selects the variable with the highest ending time of all variables,</span>
|
|
<span class="sd"> and fixes the ending time to this highest values.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">TWOOPT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TWOOPT</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which reverses a sub-chain of a path. It is called TwoOpt</span>
|
|
<span class="sd"> because it breaks two arcs on the path; resulting paths are called</span>
|
|
<span class="sd"> two-optimal.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 -> 5</span>
|
|
<span class="sd"> (where (1, 5) are first and last nodes of the path and can therefore not</span>
|
|
<span class="sd"> be moved):</span>
|
|
<span class="sd"> 1 -> [3 -> 2] -> 4 -> 5</span>
|
|
<span class="sd"> 1 -> [4 -> 3 -> 2] -> 5</span>
|
|
<span class="sd"> 1 -> 2 -> [4 -> 3] -> 5</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">OROPT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_OROPT</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Relocate: OROPT and RELOCATE.</span>
|
|
<span class="sd"> Operator which moves a sub-chain of a path to another position; the</span>
|
|
<span class="sd"> specified chain length is the fixed length of the chains being moved.</span>
|
|
<span class="sd"> When this length is 1, the operator simply moves a node to another</span>
|
|
<span class="sd"> position.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 -> 5, for a chain</span>
|
|
<span class="sd"> length of 2 (where (1, 5) are first and last nodes of the path and can</span>
|
|
<span class="sd"> therefore not be moved):</span>
|
|
<span class="sd"> 1 -> 4 -> [2 -> 3] -> 5</span>
|
|
<span class="sd"> 1 -> [3 -> 4] -> 2 -> 5</span>
|
|
|
|
<span class="sd"> Using Relocate with chain lengths of 1, 2 and 3 together is equivalent</span>
|
|
<span class="sd"> to the OrOpt operator on a path. The OrOpt operator is a limited</span>
|
|
<span class="sd"> version of 3Opt (breaks 3 arcs on a path).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">RELOCATE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RELOCATE</span>
|
|
<span class="sa">r</span><span class="sd">""" Relocate neighborhood with length of 1 (see OROPT comment)."""</span>
|
|
<span class="n">EXCHANGE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_EXCHANGE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which exchanges the positions of two nodes.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 -> 5</span>
|
|
<span class="sd"> (where (1, 5) are first and last nodes of the path and can therefore not</span>
|
|
<span class="sd"> be moved):</span>
|
|
<span class="sd"> 1 -> [3] -> [2] -> 4 -> 5</span>
|
|
<span class="sd"> 1 -> [4] -> 3 -> [2] -> 5</span>
|
|
<span class="sd"> 1 -> 2 -> [4] -> [3] -> 5</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CROSS</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CROSS</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which cross exchanges the starting chains of 2 paths, including</span>
|
|
<span class="sd"> exchanging the whole paths.</span>
|
|
<span class="sd"> First and last nodes are not moved.</span>
|
|
<span class="sd"> Possible neighbors for the paths 1 -> 2 -> 3 -> 4 -> 5 and 6 -> 7 -> 8</span>
|
|
<span class="sd"> (where (1, 5) and (6, 8) are first and last nodes of the paths and can</span>
|
|
<span class="sd"> therefore not be moved):</span>
|
|
<span class="sd"> 1 -> [7] -> 3 -> 4 -> 5 6 -> [2] -> 8</span>
|
|
<span class="sd"> 1 -> [7] -> 4 -> 5 6 -> [2 -> 3] -> 8</span>
|
|
<span class="sd"> 1 -> [7] -> 5 6 -> [2 -> 3 -> 4] -> 8</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">MAKEACTIVE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MAKEACTIVE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which inserts an inactive node into a path.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 with 5 inactive</span>
|
|
<span class="sd"> (where 1 and 4 are first and last nodes of the path) are:</span>
|
|
<span class="sd"> 1 -> [5] -> 2 -> 3 -> 4</span>
|
|
<span class="sd"> 1 -> 2 -> [5] -> 3 -> 4</span>
|
|
<span class="sd"> 1 -> 2 -> 3 -> [5] -> 4</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">MAKEINACTIVE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MAKEINACTIVE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which makes path nodes inactive.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 (where 1 and 4 are</span>
|
|
<span class="sd"> first and last nodes of the path) are:</span>
|
|
<span class="sd"> 1 -> 3 -> 4 with 2 inactive</span>
|
|
<span class="sd"> 1 -> 2 -> 4 with 3 inactive</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">MAKECHAININACTIVE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MAKECHAININACTIVE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which makes a "chain" of path nodes inactive.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 (where 1 and 4 are</span>
|
|
<span class="sd"> first and last nodes of the path) are:</span>
|
|
<span class="sd"> 1 -> 3 -> 4 with 2 inactive</span>
|
|
<span class="sd"> 1 -> 2 -> 4 with 3 inactive</span>
|
|
<span class="sd"> 1 -> 4 with 2 and 3 inactive</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">SWAPACTIVE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SWAPACTIVE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which replaces an active node by an inactive one.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 with 5 inactive</span>
|
|
<span class="sd"> (where 1 and 4 are first and last nodes of the path) are:</span>
|
|
<span class="sd"> 1 -> [5] -> 3 -> 4 with 2 inactive</span>
|
|
<span class="sd"> 1 -> 2 -> [5] -> 4 with 3 inactive</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">EXTENDEDSWAPACTIVE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_EXTENDEDSWAPACTIVE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which makes an inactive node active and an active one inactive.</span>
|
|
<span class="sd"> It is similar to SwapActiveOperator except that it tries to insert the</span>
|
|
<span class="sd"> inactive node in all possible positions instead of just the position of</span>
|
|
<span class="sd"> the node made inactive.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 with 5 inactive</span>
|
|
<span class="sd"> (where 1 and 4 are first and last nodes of the path) are:</span>
|
|
<span class="sd"> 1 -> [5] -> 3 -> 4 with 2 inactive</span>
|
|
<span class="sd"> 1 -> 3 -> [5] -> 4 with 2 inactive</span>
|
|
<span class="sd"> 1 -> [5] -> 2 -> 4 with 3 inactive</span>
|
|
<span class="sd"> 1 -> 2 -> [5] -> 4 with 3 inactive</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">PATHLNS</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_PATHLNS</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which relaxes two sub-chains of three consecutive arcs each.</span>
|
|
<span class="sd"> Each sub-chain is defined by a start node and the next three arcs. Those</span>
|
|
<span class="sd"> six arcs are relaxed to build a new neighbor.</span>
|
|
<span class="sd"> PATHLNS explores all possible pairs of starting nodes and so defines</span>
|
|
<span class="sd"> n^2 neighbors, n being the number of nodes.</span>
|
|
<span class="sd"> Note that the two sub-chains can be part of the same path; they even may</span>
|
|
<span class="sd"> overlap.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">FULLPATHLNS</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FULLPATHLNS</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which relaxes one entire path and all inactive nodes, thus</span>
|
|
<span class="sd"> defining num_paths neighbors.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">UNACTIVELNS</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_UNACTIVELNS</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which relaxes all inactive nodes and one sub-chain of six</span>
|
|
<span class="sd"> consecutive arcs. That way the path can be improved by inserting</span>
|
|
<span class="sd"> inactive nodes or swapping arcs.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">INCREMENT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INCREMENT</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which defines one neighbor per variable. Each neighbor tries to</span>
|
|
<span class="sd"> increment by one the value of the corresponding variable. When a new</span>
|
|
<span class="sd"> solution is found the neighborhood is rebuilt from scratch, i.e., tries</span>
|
|
<span class="sd"> to increment values in the variable order.</span>
|
|
<span class="sd"> Consider for instance variables x and y. x is incremented one by one to</span>
|
|
<span class="sd"> its max, and when it is not possible to increment x anymore, y is</span>
|
|
<span class="sd"> incremented once. If this is a solution, then next neighbor tries to</span>
|
|
<span class="sd"> increment x.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">DECREMENT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DECREMENT</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which defines a neighborhood to decrement values.</span>
|
|
<span class="sd"> The behavior is the same as INCREMENT, except values are decremented</span>
|
|
<span class="sd"> instead of incremented.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">SIMPLELNS</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SIMPLELNS</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which defines one neighbor per variable. Each neighbor relaxes</span>
|
|
<span class="sd"> one variable.</span>
|
|
<span class="sd"> When a new solution is found the neighborhood is rebuilt from scratch.</span>
|
|
<span class="sd"> Consider for instance variables x and y. First x is relaxed and the</span>
|
|
<span class="sd"> solver is looking for the best possible solution (with only x relaxed).</span>
|
|
<span class="sd"> Then y is relaxed, and the solver is looking for a new solution.</span>
|
|
<span class="sd"> If a new solution is found, then the next variable to be relaxed is x.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">GE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_GE</span>
|
|
<span class="sa">r</span><span class="sd">""" Move is accepted when the current objective value >= objective.Min."""</span>
|
|
<span class="n">LE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LE</span>
|
|
<span class="sa">r</span><span class="sd">""" Move is accepted when the current objective value <= objective.Max."""</span>
|
|
<span class="n">EQ</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_EQ</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Move is accepted when the current objective value is in the interval</span>
|
|
<span class="sd"> objective.Min .. objective.Max.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">DELAYED_PRIORITY</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DELAYED_PRIORITY</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> DELAYED_PRIORITY is the lowest priority: Demons will be processed after</span>
|
|
<span class="sd"> VAR_PRIORITY and NORMAL_PRIORITY demons.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">VAR_PRIORITY</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VAR_PRIORITY</span>
|
|
<span class="sa">r</span><span class="sd">""" VAR_PRIORITY is between DELAYED_PRIORITY and NORMAL_PRIORITY."""</span>
|
|
<span class="n">NORMAL_PRIORITY</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NORMAL_PRIORITY</span>
|
|
<span class="sa">r</span><span class="sd">""" NORMAL_PRIORITY is the highest priority: Demons will be processed first."""</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_Solver</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">))</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__python_constraints</span> <span class="o">=</span> <span class="p">[]</span>
|
|
|
|
|
|
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_Solver</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::ConstraintSolverParameters"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Stored Parameters."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="nd">@staticmethod</span>
|
|
<span class="k">def</span> <span class="nf">DefaultSolverParameters</span><span class="p">()</span> <span class="o">-></span> <span class="s2">"operations_research::ConstraintSolverParameters"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Create a ConstraintSolverParameters proto with all the default values."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DefaultSolverParameters</span><span class="p">()</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">c</span><span class="p">:</span> <span class="s2">"Constraint"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds the constraint 'c' to the model.</span>
|
|
|
|
<span class="sd"> After calling this method, and until there is a backtrack that undoes the</span>
|
|
<span class="sd"> addition, any assignment of variables to values must satisfy the given</span>
|
|
<span class="sd"> constraint in order to be considered feasible. There are two fairly</span>
|
|
<span class="sd"> different use cases:</span>
|
|
|
|
<span class="sd"> - the most common use case is modeling: the given constraint is really</span>
|
|
<span class="sd"> part of the problem that the user is trying to solve. In this use case,</span>
|
|
<span class="sd"> AddConstraint is called outside of search (i.e., with state() ==</span>
|
|
<span class="sd"> OUTSIDE_SEARCH). Most users should only use AddConstraint in this</span>
|
|
<span class="sd"> way. In this case, the constraint will belong to the model forever: it</span>
|
|
<span class="sd"> cannot not be removed by backtracking.</span>
|
|
|
|
<span class="sd"> - a rarer use case is that 'c' is not a real constraint of the model. It</span>
|
|
<span class="sd"> may be a constraint generated by a branching decision (a constraint whose</span>
|
|
<span class="sd"> goal is to restrict the search space), a symmetry breaking constraint (a</span>
|
|
<span class="sd"> constraint that does restrict the search space, but in a way that cannot</span>
|
|
<span class="sd"> have an impact on the quality of the solutions in the subtree), or an</span>
|
|
<span class="sd"> inferred constraint that, while having no semantic value to the model (it</span>
|
|
<span class="sd"> does not restrict the set of solutions), is worth having because we</span>
|
|
<span class="sd"> believe it may strengthen the propagation. In these cases, it happens</span>
|
|
<span class="sd"> that the constraint is added during the search (i.e., with state() ==</span>
|
|
<span class="sd"> IN_SEARCH or state() == IN_ROOT_NODE). When a constraint is</span>
|
|
<span class="sd"> added during a search, it applies only to the subtree of the search tree</span>
|
|
<span class="sd"> rooted at the current node, and will be automatically removed by</span>
|
|
<span class="sd"> backtracking.</span>
|
|
|
|
<span class="sd"> This method does not take ownership of the constraint. If the constraint</span>
|
|
<span class="sd"> has been created by any factory method (Solver::MakeXXX), it will</span>
|
|
<span class="sd"> automatically be deleted. However, power users who implement their own</span>
|
|
<span class="sd"> constraints should do: solver.AddConstraint(solver.RevAlloc(new</span>
|
|
<span class="sd"> MyConstraint(...));</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AddConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Solve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Solve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NewSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NewSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NextSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NextSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RestartSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RestartSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_EndSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolveAndCommit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SolveAndCommit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CheckAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Checks whether the given assignment satisfies all relevant constraints."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CheckAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CheckConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">:</span> <span class="s2">"Constraint"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Checks whether adding this constraint will lead to an immediate</span>
|
|
<span class="sd"> failure. It will return false if the model is already inconsistent, or if</span>
|
|
<span class="sd"> adding the constraint makes it inconsistent.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CheckConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Fail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Abandon the current branch in the search tree. A backtrack will follow."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Fail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="nd">@staticmethod</span>
|
|
<span class="k">def</span> <span class="nf">MemoryUsage</span><span class="p">()</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Current memory usage in bytes"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MemoryUsage</span><span class="p">()</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WallTime</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> DEPRECATED: Use Now() instead.</span>
|
|
<span class="sd"> Time elapsed, in ms since the creation of the solver.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_WallTime</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Branches</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" The number of branches explored since the creation of the solver."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Branches</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Solutions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" The number of solutions found since the start of the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Solutions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Failures</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" The number of failures encountered since the creation of the solver."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Failures</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AcceptedNeighbors</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" The number of accepted neighbors."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AcceptedNeighbors</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Stamp</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"uint64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The stamp indicates how many moves in the search tree we have performed.</span>
|
|
<span class="sd"> It is useful to detect if we need to update same lazy structures.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Stamp</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FailStamp</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"uint64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" The fail_stamp() is incremented after each backtrack."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FailStamp</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IntVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> MakeIntVar will create the best range based int var for the bounds given.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> MakeIntVar will create a variable with the given sparse domain.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> MakeIntVar will create a variable with the given sparse domain.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> MakeIntVar will create the best range based int var for the bounds given.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 5:*</span>
|
|
<span class="sd"> MakeIntVar will create a variable with the given sparse domain.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 6:*</span>
|
|
<span class="sd"> MakeIntVar will create a variable with the given sparse domain.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IntVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BoolVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> MakeBoolVar will create a variable with a {0, 1} domain.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> MakeBoolVar will create a variable with a {0, 1} domain.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_BoolVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IntConst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> IntConst will create a constant expression.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> IntConst will create a constant expression.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IntConst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Sum</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" sum of all vars."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Sum</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ScalProd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> scalar product</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> scalar product</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScalProd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MonotonicElement</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator1"</span><span class="p">,</span> <span class="n">increasing</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Function based element. The constraint takes ownership of the</span>
|
|
<span class="sd"> callback. The callback must be monotonic. It must be able to</span>
|
|
<span class="sd"> cope with any possible value in the domain of 'index'</span>
|
|
<span class="sd"> (potentially negative ones too). Furtermore, monotonicity is not</span>
|
|
<span class="sd"> checked. Thus giving a non-monotonic function, or specifying an</span>
|
|
<span class="sd"> incorrect increasing parameter will result in undefined behavior.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MonotonicElement</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">increasing</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> values[index]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> values[index]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> Function-based element. The constraint takes ownership of the</span>
|
|
<span class="sd"> callback. The callback must be able to cope with any possible</span>
|
|
<span class="sd"> value in the domain of 'index' (potentially negative ones too).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> 2D version of function-based element expression, values(expr1, expr2).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 5:*</span>
|
|
<span class="sd"> vars[expr]</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IndexExpression</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the expression expr such that vars[expr] == value.</span>
|
|
<span class="sd"> It assumes that vars are all different.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IndexExpression</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Min</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> std::min(vars)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> std::min (left, right)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> std::min(expr, value)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> std::min(expr, value)</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Min</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Max</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> std::max(vars)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> std::max(left, right)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> std::max(expr, value)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> std::max(expr, value)</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Max</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ConvexPiecewiseExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">early_cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">early_date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">late_date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">late_cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Convex piecewise function."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConvexPiecewiseExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">early_cost</span><span class="p">,</span> <span class="n">early_date</span><span class="p">,</span> <span class="n">late_date</span><span class="p">,</span> <span class="n">late_cost</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SemiContinuousExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">fixed_charge</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Semi continuous Expression (x <= 0 -> f(x) = 0; x > 0 -> f(x) = ax + b)</span>
|
|
<span class="sd"> a >= 0 and b >= 0</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SemiContinuousExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">fixed_charge</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ConditionalExpression</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Conditional Expr condition ? expr : unperformed_value"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConditionalExpression</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TrueConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This constraint always succeeds."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TrueConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FalseConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FalseConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" boolvar == (var == value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var == value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">v2</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (v1 == v2)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">,</span> <span class="n">v2</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">v2</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (v1 == v2)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">,</span> <span class="n">v2</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsDifferentCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" boolvar == (var != value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsDifferentCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsDifferentCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var != value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsDifferentCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsDifferentVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">v2</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (v1 != v2)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsDifferentVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">,</span> <span class="n">v2</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsDifferentCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">v2</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (v1 != v2)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsDifferentCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">,</span> <span class="n">v2</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessOrEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" boolvar == (var <= value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessOrEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessOrEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var <= value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessOrEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessOrEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (left <= right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessOrEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessOrEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (left <= right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessOrEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterOrEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" boolvar == (var >= value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterOrEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterOrEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var >= value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterOrEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterOrEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (left >= right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterOrEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterOrEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (left >= right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterOrEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">c</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (v > c)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var > value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (left > right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (left > right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">c</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (v < c)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var < value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (left < right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (left < right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SumLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">cst</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Variation on arrays."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SumLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">cst</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SumGreaterOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">cst</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SumGreaterOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">cst</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SumEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SumEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ScalProdEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScalProdEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ScalProdGreaterOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScalProdGreaterOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ScalProdLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScalProdLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MinEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">min_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MinEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">min_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MaxEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">max_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MaxEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">max_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ElementEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ElementEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AbsEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">abs_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates the constraint abs(var) == abs_var."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AbsEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">abs_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IndexOfConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">target</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This constraint is a special case of the element constraint with</span>
|
|
<span class="sd"> an array of integer variables, where the variables are all</span>
|
|
<span class="sd"> different and the index variable is constrained such that</span>
|
|
<span class="sd"> vars[index] == target.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IndexOfConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">target</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">:</span> <span class="s2">"Constraint"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Demon *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is a specialized case of the MakeConstraintDemon</span>
|
|
<span class="sd"> method to call the InitiatePropagate of the constraint 'ct'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DelayedConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">:</span> <span class="s2">"Constraint"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Demon *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is a specialized case of the MakeConstraintDemon</span>
|
|
<span class="sd"> method to call the InitiatePropagate of the constraint 'ct' with</span>
|
|
<span class="sd"> low priority.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DelayedConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ClosureDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">closure</span><span class="p">:</span> <span class="s2">"operations_research::Solver::Closure"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Demon *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a demon from a closure."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ClosureDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">closure</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BetweenCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" (l <= expr <= u)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_BetweenCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsBetweenCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (l <= expr <= u)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsBetweenCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsBetweenVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsBetweenVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NotMemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> expr not in set.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> expr should not be in the list of forbidden intervals [start[i]..end[i]].</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> expr should not be in the list of forbidden intervals [start[i]..end[i]].</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NotMemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsMemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsMemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsMemberVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsMemberVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Count</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> |{i | vars[i] == value}| == max_count</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> |{i | vars[i] == value}| == max_count</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Count</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Distribute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Aggregated version of count: |{i | v[i] == values[j]}| == cards[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Aggregated version of count: |{i | v[i] == values[j]}| == cards[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> Aggregated version of count: |{i | v[i] == j}| == cards[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> Aggregated version of count with bounded cardinalities:</span>
|
|
<span class="sd"> forall j in 0 .. card_size - 1: card_min <= |{i | v[i] == j}| <= card_max</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 5:*</span>
|
|
<span class="sd"> Aggregated version of count with bounded cardinalities:</span>
|
|
<span class="sd"> forall j in 0 .. card_size - 1:</span>
|
|
<span class="sd"> card_min[j] <= |{i | v[i] == j}| <= card_max[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 6:*</span>
|
|
<span class="sd"> Aggregated version of count with bounded cardinalities:</span>
|
|
<span class="sd"> forall j in 0 .. card_size - 1:</span>
|
|
<span class="sd"> card_min[j] <= |{i | v[i] == j}| <= card_max[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 7:*</span>
|
|
<span class="sd"> Aggregated version of count with bounded cardinalities:</span>
|
|
<span class="sd"> forall j in 0 .. card_size - 1:</span>
|
|
<span class="sd"> card_min[j] <= |{i | v[i] == values[j]}| <= card_max[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 8:*</span>
|
|
<span class="sd"> Aggregated version of count with bounded cardinalities:</span>
|
|
<span class="sd"> forall j in 0 .. card_size - 1:</span>
|
|
<span class="sd"> card_min[j] <= |{i | v[i] == values[j]}| <= card_max[j]</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Distribute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Deviation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">deviation_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">total_sum</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Deviation constraint:</span>
|
|
<span class="sd"> sum_i |n * vars[i] - total_sum| <= deviation_var and</span>
|
|
<span class="sd"> sum_i vars[i] == total_sum</span>
|
|
<span class="sd"> n = #vars</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Deviation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">deviation_var</span><span class="p">,</span> <span class="n">total_sum</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AllDifferent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> All variables are pairwise different. This corresponds to the</span>
|
|
<span class="sd"> stronger version of the propagation algorithm.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> All variables are pairwise different. If 'stronger_propagation'</span>
|
|
<span class="sd"> is true, stronger, and potentially slower propagation will</span>
|
|
<span class="sd"> occur. This API will be deprecated in the future.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AllDifferent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AllDifferentExcept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">escape_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> All variables are pairwise different, unless they are assigned to</span>
|
|
<span class="sd"> the escape value.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AllDifferentExcept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">escape_value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SortingConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="nb">sorted</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint binding the arrays of variables "vars" and</span>
|
|
<span class="sd"> "sorted_vars": sorted_vars[0] must be equal to the minimum of all</span>
|
|
<span class="sd"> variables in vars, and so on: the value of sorted_vars[i] must be</span>
|
|
<span class="sd"> equal to the i-th value of variables invars.</span>
|
|
|
|
<span class="sd"> This constraint propagates in both directions: from "vars" to</span>
|
|
<span class="sd"> "sorted_vars" and vice-versa.</span>
|
|
|
|
<span class="sd"> Behind the scenes, this constraint maintains that:</span>
|
|
<span class="sd"> - sorted is always increasing.</span>
|
|
<span class="sd"> - whatever the values of vars, there exists a permutation that</span>
|
|
<span class="sd"> injects its values into the sorted variables.</span>
|
|
|
|
<span class="sd"> For more info, please have a look at:</span>
|
|
<span class="sd"> https://mpi-inf.mpg.de/~mehlhorn/ftp/Mehlhorn-Thiel.pdf</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SortingConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="nb">sorted</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LexicalLess</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint that enforces that left is lexicographically less</span>
|
|
<span class="sd"> than right.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LexicalLess</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LexicalLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint that enforces that left is lexicographically less</span>
|
|
<span class="sd"> than or equal to right.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LexicalLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InversePermutationConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint that enforces that 'left' and 'right' both</span>
|
|
<span class="sd"> represent permutations of [0..left.size()-1], and that 'right' is</span>
|
|
<span class="sd"> the inverse permutation of 'left', i.e. for all i in</span>
|
|
<span class="sd"> [0..left.size()-1], right[left[i]] = i.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_InversePermutationConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NullIntersect</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">second_vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint that states that all variables in the first</span>
|
|
<span class="sd"> vector are different from all variables in the second</span>
|
|
<span class="sd"> group. Thus the set of values in the first vector does not</span>
|
|
<span class="sd"> intersect with the set of values in the second vector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NullIntersect</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_vars</span><span class="p">,</span> <span class="n">second_vars</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NullIntersectExcept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">second_vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">escape_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint that states that all variables in the first</span>
|
|
<span class="sd"> vector are different from all variables from the second group,</span>
|
|
<span class="sd"> unless they are assigned to the escape value. Thus the set of</span>
|
|
<span class="sd"> values in the first vector minus the escape value does not</span>
|
|
<span class="sd"> intersect with the set of values in the second vector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NullIntersectExcept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_vars</span><span class="p">,</span> <span class="n">second_vars</span><span class="p">,</span> <span class="n">escape_value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Circuit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Force the "nexts" variable to create a complete Hamiltonian path."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Circuit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SubCircuit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Force the "nexts" variable to create a complete Hamiltonian path</span>
|
|
<span class="sd"> for those that do not loop upon themselves.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SubCircuit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DelayedPathCumul</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">active</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">cumuls</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">transits</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Delayed version of the same constraint: propagation on the nexts variables</span>
|
|
<span class="sd"> is delayed until all constraints have propagated.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DelayedPathCumul</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">,</span> <span class="n">active</span><span class="p">,</span> <span class="n">cumuls</span><span class="p">,</span> <span class="n">transits</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PathCumul</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates a constraint which accumulates values along a path such that:</span>
|
|
<span class="sd"> cumuls[next[i]] = cumuls[i] + transits[i].</span>
|
|
<span class="sd"> Active variables indicate if the corresponding next variable is active;</span>
|
|
<span class="sd"> this could be useful to model unperformed nodes in a routing problem.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a constraint which accumulates values along a path such that:</span>
|
|
<span class="sd"> cumuls[next[i]] = cumuls[i] + transit_evaluator(i, next[i]).</span>
|
|
<span class="sd"> Active variables indicate if the corresponding next variable is active;</span>
|
|
<span class="sd"> this could be useful to model unperformed nodes in a routing problem.</span>
|
|
<span class="sd"> Ownership of transit_evaluator is taken and it must be a repeatable</span>
|
|
<span class="sd"> callback.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> Creates a constraint which accumulates values along a path such that:</span>
|
|
<span class="sd"> cumuls[next[i]] = cumuls[i] + transit_evaluator(i, next[i]) + slacks[i].</span>
|
|
<span class="sd"> Active variables indicate if the corresponding next variable is active;</span>
|
|
<span class="sd"> this could be useful to model unperformed nodes in a routing problem.</span>
|
|
<span class="sd"> Ownership of transit_evaluator is taken and it must be a repeatable</span>
|
|
<span class="sd"> callback.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_PathCumul</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AllowedAssignments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This method creates a constraint where the graph of the relation</span>
|
|
<span class="sd"> between the variables is given in extension. There are 'arity'</span>
|
|
<span class="sd"> variables involved in the relation and the graph is given by a</span>
|
|
<span class="sd"> integer tuple set.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Compatibility layer for Python API.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AllowedAssignments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TransitionConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TransitionConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NonOverlappingBoxesConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NonOverlappingBoxesConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Pack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">number_of_bins</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Pack *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This constraint packs all variables onto 'number_of_bins'</span>
|
|
<span class="sd"> variables. For any given variable, a value of 'number_of_bins'</span>
|
|
<span class="sd"> indicates that the variable is not assigned to any bin.</span>
|
|
<span class="sd"> Dimensions, i.e., cumulative constraints on this packing, can be</span>
|
|
<span class="sd"> added directly from the pack class.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Pack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">number_of_bins</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FixedDurationIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration. The duration must</span>
|
|
<span class="sd"> be greater than 0. If optional is true, then the interval can be</span>
|
|
<span class="sd"> performed or unperformed. If optional is false, then the interval</span>
|
|
<span class="sd"> is always performed.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a performed interval var with a fixed duration. The duration must</span>
|
|
<span class="sd"> be greater than 0.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration, and performed_variable.</span>
|
|
<span class="sd"> The duration must be greater than 0.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedDurationIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FixedInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a fixed and performed interval."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start_min</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">start_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">duration_min</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">duration_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">end_min</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">end_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">optional</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var by specifying the bounds on start,</span>
|
|
<span class="sd"> duration, and end.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start_min</span><span class="p">,</span> <span class="n">start_max</span><span class="p">,</span> <span class="n">duration_min</span><span class="p">,</span> <span class="n">duration_max</span><span class="p">,</span> <span class="n">end_min</span><span class="p">,</span> <span class="n">end_max</span><span class="p">,</span> <span class="n">optional</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MirrorInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var that is the mirror image of the given one, that</span>
|
|
<span class="sd"> is, the interval var obtained by reversing the axis.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MirrorInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FixedDurationStartSyncedOnStartIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">offset</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration whose start is</span>
|
|
<span class="sd"> synchronized with the start of another interval, with a given</span>
|
|
<span class="sd"> offset. The performed status is also in sync with the performed</span>
|
|
<span class="sd"> status of the given interval variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedDurationStartSyncedOnStartIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FixedDurationStartSyncedOnEndIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">offset</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration whose start is</span>
|
|
<span class="sd"> synchronized with the end of another interval, with a given</span>
|
|
<span class="sd"> offset. The performed status is also in sync with the performed</span>
|
|
<span class="sd"> status of the given interval variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedDurationStartSyncedOnEndIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FixedDurationEndSyncedOnStartIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">offset</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration whose end is</span>
|
|
<span class="sd"> synchronized with the start of another interval, with a given</span>
|
|
<span class="sd"> offset. The performed status is also in sync with the performed</span>
|
|
<span class="sd"> status of the given interval variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedDurationEndSyncedOnStartIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FixedDurationEndSyncedOnEndIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">offset</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration whose end is</span>
|
|
<span class="sd"> synchronized with the end of another interval, with a given</span>
|
|
<span class="sd"> offset. The performed status is also in sync with the performed</span>
|
|
<span class="sd"> status of the given interval variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedDurationEndSyncedOnEndIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IntervalRelaxedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates and returns an interval variable that wraps around the given one,</span>
|
|
<span class="sd"> relaxing the min start and end. Relaxing means making unbounded when</span>
|
|
<span class="sd"> optional. If the variable is non-optional, this method returns</span>
|
|
<span class="sd"> interval_var.</span>
|
|
|
|
<span class="sd"> More precisely, such an interval variable behaves as follows:</span>
|
|
<span class="sd"> When the underlying must be performed, the returned interval variable</span>
|
|
<span class="sd"> behaves exactly as the underlying;</span>
|
|
<span class="sd"> When the underlying may or may not be performed, the returned interval</span>
|
|
<span class="sd"> variable behaves like the underlying, except that it is unbounded on</span>
|
|
<span class="sd"> the min side;</span>
|
|
<span class="sd"> When the underlying cannot be performed, the returned interval variable</span>
|
|
<span class="sd"> is of duration 0 and must be performed in an interval unbounded on</span>
|
|
<span class="sd"> both sides.</span>
|
|
|
|
<span class="sd"> This is very useful to implement propagators that may only modify</span>
|
|
<span class="sd"> the start max or end max.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IntervalRelaxedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IntervalRelaxedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates and returns an interval variable that wraps around the given one,</span>
|
|
<span class="sd"> relaxing the max start and end. Relaxing means making unbounded when</span>
|
|
<span class="sd"> optional. If the variable is non optional, this method returns</span>
|
|
<span class="sd"> interval_var.</span>
|
|
|
|
<span class="sd"> More precisely, such an interval variable behaves as follows:</span>
|
|
<span class="sd"> When the underlying must be performed, the returned interval variable</span>
|
|
<span class="sd"> behaves exactly as the underlying;</span>
|
|
<span class="sd"> When the underlying may or may not be performed, the returned interval</span>
|
|
<span class="sd"> variable behaves like the underlying, except that it is unbounded on</span>
|
|
<span class="sd"> the max side;</span>
|
|
<span class="sd"> When the underlying cannot be performed, the returned interval variable</span>
|
|
<span class="sd"> is of duration 0 and must be performed in an interval unbounded on</span>
|
|
<span class="sd"> both sides.</span>
|
|
|
|
<span class="sd"> This is very useful for implementing propagators that may only modify</span>
|
|
<span class="sd"> the start min or end min.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IntervalRelaxedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TemporalDisjunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This constraint implements a temporal disjunction between two</span>
|
|
<span class="sd"> interval vars t1 and t2. 'alt' indicates which alternative was</span>
|
|
<span class="sd"> chosen (alt == 0 is equivalent to t1 before t2).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This constraint implements a temporal disjunction between two</span>
|
|
<span class="sd"> interval vars.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TemporalDisjunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DisjunctiveConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">intervals</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntervalVar * > const &"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DisjunctiveConstraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This constraint forces all interval vars into an non-overlapping</span>
|
|
<span class="sd"> sequence. Intervals with zero duration can be scheduled anywhere.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DisjunctiveConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">intervals</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Cumulative</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This constraint forces that, for any integer t, the sum of the demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should only contain non-negative values. Zero values are</span>
|
|
<span class="sd"> supported, and the corresponding intervals are filtered out, as they</span>
|
|
<span class="sd"> neither impact nor are impacted by this constraint.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This constraint forces that, for any integer t, the sum of the demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should only contain non-negative values. Zero values are</span>
|
|
<span class="sd"> supported, and the corresponding intervals are filtered out, as they</span>
|
|
<span class="sd"> neither impact nor are impacted by this constraint.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> This constraint forces that, for any integer t, the sum of the demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should only contain non-negative values. Zero values are</span>
|
|
<span class="sd"> supported, and the corresponding intervals are filtered out, as they</span>
|
|
<span class="sd"> neither impact nor are impacted by this constraint.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> This constraint enforces that, for any integer t, the sum of the demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should only contain non-negative values. Zero values are</span>
|
|
<span class="sd"> supported, and the corresponding intervals are filtered out, as they</span>
|
|
<span class="sd"> neither impact nor are impacted by this constraint.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 5:*</span>
|
|
<span class="sd"> This constraint enforces that, for any integer t, the sum of demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should be positive.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 6:*</span>
|
|
<span class="sd"> This constraint enforces that, for any integer t, the sum of demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should be positive.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Cumulative</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Cover</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntervalVar * > const &"</span><span class="p">,</span> <span class="n">target_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This constraint states that the target_var is the convex hull of</span>
|
|
<span class="sd"> the intervals. If none of the interval variables is performed,</span>
|
|
<span class="sd"> then the target var is unperformed too. Also, if the target</span>
|
|
<span class="sd"> variable is unperformed, then all the intervals variables are</span>
|
|
<span class="sd"> unperformed too.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Cover</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">target_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Assignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This method creates an empty assignment.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This method creates an assignment which is a copy of 'a'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Assignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FirstSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SolutionCollector *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Collect the first solution of the search.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Collect the first solution of the search. The variables will need to</span>
|
|
<span class="sd"> be added later.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FirstSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LastSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SolutionCollector *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Collect the last solution of the search.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Collect the last solution of the search. The variables will need to</span>
|
|
<span class="sd"> be added later.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LastSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BestValueSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SolutionCollector *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Collect the solution corresponding to the optimal value of the objective</span>
|
|
<span class="sd"> of 'assignment'; if 'assignment' does not have an objective no solution is</span>
|
|
<span class="sd"> collected. This collector only collects one solution corresponding to the</span>
|
|
<span class="sd"> best objective value (the first one found).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Collect the solution corresponding to the optimal value of the</span>
|
|
<span class="sd"> objective of 'assignment'; if 'assignment' does not have an objective no</span>
|
|
<span class="sd"> solution is collected. This collector only collects one solution</span>
|
|
<span class="sd"> corresponding to the best objective value (the first one</span>
|
|
<span class="sd"> found). The variables will need to be added later.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_BestValueSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AllSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SolutionCollector *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Collect all solutions of the search.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Collect all solutions of the search. The variables will need to</span>
|
|
<span class="sd"> be added later.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AllSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Minimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a minimization objective."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Minimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Maximize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a maximization objective."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Maximize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a objective with a given sense (true = maximization)."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WeightedMinimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates a minimization weighted objective. The actual objective is</span>
|
|
<span class="sd"> scalar_prod(sub_objectives, weights).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a minimization weighted objective. The actual objective is</span>
|
|
<span class="sd"> scalar_prod(sub_objectives, weights).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_WeightedMinimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WeightedMaximize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates a maximization weigthed objective.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a maximization weigthed objective.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_WeightedMaximize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WeightedOptimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates a weighted objective with a given sense (true = maximization).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a weighted objective with a given sense (true = maximization).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_WeightedOptimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TabuSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">keep_tenure</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">forbid_tenure</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">tabu_factor</span><span class="p">:</span> <span class="s2">"double"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> MetaHeuristics which try to get the search out of local optima.</span>
|
|
<span class="sd"> Creates a Tabu Search monitor.</span>
|
|
<span class="sd"> In the context of local search the behavior is similar to MakeOptimize(),</span>
|
|
<span class="sd"> creating an objective in a given sense. The behavior differs once a local</span>
|
|
<span class="sd"> optimum is reached: thereafter solutions which degrade the value of the</span>
|
|
<span class="sd"> objective are allowed if they are not "tabu". A solution is "tabu" if it</span>
|
|
<span class="sd"> doesn't respect the following rules:</span>
|
|
<span class="sd"> - improving the best solution found so far</span>
|
|
<span class="sd"> - variables in the "keep" list must keep their value, variables in the</span>
|
|
<span class="sd"> "forbid" list must not take the value they have in the list.</span>
|
|
<span class="sd"> Variables with new values enter the tabu lists after each new solution</span>
|
|
<span class="sd"> found and leave the lists after a given number of iterations (called</span>
|
|
<span class="sd"> tenure). Only the variables passed to the method can enter the lists.</span>
|
|
<span class="sd"> The tabu criterion is softened by the tabu factor which gives the number</span>
|
|
<span class="sd"> of "tabu" violations which is tolerated; a factor of 1 means no violations</span>
|
|
<span class="sd"> allowed; a factor of 0 means all violations are allowed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TabuSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">step</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">keep_tenure</span><span class="p">,</span> <span class="n">forbid_tenure</span><span class="p">,</span> <span class="n">tabu_factor</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SimulatedAnnealing</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">initial_temperature</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a Simulated Annealing monitor."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SimulatedAnnealing</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">step</span><span class="p">,</span> <span class="n">initial_temperature</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LubyRestart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">scale_factor</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This search monitor will restart the search periodically.</span>
|
|
<span class="sd"> At the iteration n, it will restart after scale_factor * Luby(n) failures</span>
|
|
<span class="sd"> where Luby is the Luby Strategy (i.e. 1 1 2 1 1 2 4 1 1 2 1 1 2 4 8...).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LubyRestart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">scale_factor</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ConstantRestart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">frequency</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This search monitor will restart the search periodically after 'frequency'</span>
|
|
<span class="sd"> failures.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConstantRestart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">frequency</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TimeLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RegularLimit *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TimeLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BranchesLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">branches</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RegularLimit *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a search limit that constrains the number of branches</span>
|
|
<span class="sd"> explored in the search tree.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_BranchesLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">branches</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FailuresLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">failures</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RegularLimit *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a search limit that constrains the number of failures</span>
|
|
<span class="sd"> that can happen when exploring the search tree.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FailuresLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">failures</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolutionsLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solutions</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RegularLimit *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a search limit that constrains the number of solutions found</span>
|
|
<span class="sd"> during the search.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SolutionsLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solutions</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchLimit *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Limits the search with the 'time', 'branches', 'failures' and</span>
|
|
<span class="sd"> 'solutions' limits. 'smart_time_check' reduces the calls to the wall</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a search limit from its protobuf description</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> Creates a search limit that is reached when either of the underlying limit</span>
|
|
<span class="sd"> is reached. That is, the returned limit is more stringent than both</span>
|
|
<span class="sd"> argument limits.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CustomLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">limiter</span><span class="p">:</span> <span class="s2">"std::function< bool () >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchLimit *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Callback-based search limit. Search stops when limiter returns true; if</span>
|
|
<span class="sd"> this happens at a leaf the corresponding solution will be rejected.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CustomLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">limiter</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SearchLog</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SearchLog</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SearchTrace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a search monitor that will trace precisely the behavior of the</span>
|
|
<span class="sd"> search. Use this only for low level debugging.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SearchTrace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PrintModelVisitor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::ModelVisitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Prints the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_PrintModelVisitor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StatisticsModelVisitor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::ModelVisitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Displays some nice statistics on the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_StatisticsModelVisitor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AssignVariableValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Decisions."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AssignVariableValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VariableLessOrEqualValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VariableLessOrEqualValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VariableGreaterOrEqualValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VariableGreaterOrEqualValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SplitVariableDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">start_with_lower_half</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SplitVariableDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">val</span><span class="p">,</span> <span class="n">start_with_lower_half</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AssignVariableValueOrFail</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AssignVariableValueOrFail</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AssignVariablesValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AssignVariablesValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FailDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FailDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Decision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">apply</span><span class="p">:</span> <span class="s2">"operations_research::Solver::Action"</span><span class="p">,</span> <span class="n">refute</span><span class="p">:</span> <span class="s2">"operations_research::Solver::Action"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Decision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">apply</span><span class="p">,</span> <span class="n">refute</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Compose</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dbs</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::DecisionBuilder * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Compose</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dbs</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Try</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dbs</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::DecisionBuilder * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Try</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dbs</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DefaultPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DefaultPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ScheduleOrPostpone</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">est</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">marker</span><span class="p">:</span> <span class="s2">"int64_t *const"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision that tries to schedule a task at a given time.</span>
|
|
<span class="sd"> On the Apply branch, it will set that interval var as performed and set</span>
|
|
<span class="sd"> its start to 'est'. On the Refute branch, it will just update the</span>
|
|
<span class="sd"> 'marker' to 'est' + 1. This decision is used in the</span>
|
|
<span class="sd"> INTERVAL_SET_TIMES_FORWARD strategy.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScheduleOrPostpone</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">est</span><span class="p">,</span> <span class="n">marker</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ScheduleOrExpedite</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">est</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">marker</span><span class="p">:</span> <span class="s2">"int64_t *const"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision that tries to schedule a task at a given time.</span>
|
|
<span class="sd"> On the Apply branch, it will set that interval var as performed and set</span>
|
|
<span class="sd"> its end to 'est'. On the Refute branch, it will just update the</span>
|
|
<span class="sd"> 'marker' to 'est' - 1. This decision is used in the</span>
|
|
<span class="sd"> INTERVAL_SET_TIMES_BACKWARD strategy.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScheduleOrExpedite</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">est</span><span class="p">,</span> <span class="n">marker</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RankFirstInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision that tries to rank first the ith interval var</span>
|
|
<span class="sd"> in the sequence variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RankFirstInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RankLastInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision that tries to rank last the ith interval var</span>
|
|
<span class="sd"> in the sequence variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RankLastInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Phase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Phase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DecisionBuilderFromAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">db</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision builder for which the left-most leaf corresponds</span>
|
|
<span class="sd"> to assignment, the rest of the tree being explored using 'db'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DecisionBuilderFromAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="nb">vars</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ConstraintAdder</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">:</span> <span class="s2">"Constraint"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision builder that will add the given constraint to</span>
|
|
<span class="sd"> the model.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConstraintAdder</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolveOnce</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">db</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">,</span> <span class="n">monitors</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::SearchMonitor * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SolveOnce</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">monitors</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NestedOptimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NestedOptimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RestoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a DecisionBuilder which restores an Assignment</span>
|
|
<span class="sd"> (calls void Assignment::Restore())</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RestoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a DecisionBuilder which stores an Assignment</span>
|
|
<span class="sd"> (calls void Assignment::Store())</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_StoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Operator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Operator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RandomLnsOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RandomLnsOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MoveTowardTargetOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates a local search operator that tries to move the assignment of some</span>
|
|
<span class="sd"> variables toward a target. The target is given as an Assignment. This</span>
|
|
<span class="sd"> operator generates neighbors in which the only difference compared to the</span>
|
|
<span class="sd"> current state is that one variable that belongs to the target assignment</span>
|
|
<span class="sd"> is set to its target value.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a local search operator that tries to move the assignment of some</span>
|
|
<span class="sd"> variables toward a target. The target is given either as two vectors: a</span>
|
|
<span class="sd"> vector of variables and a vector of associated target values. The two</span>
|
|
<span class="sd"> vectors should be of the same length. This operator generates neighbors in</span>
|
|
<span class="sd"> which the only difference compared to the current state is that one</span>
|
|
<span class="sd"> variable that belongs to the given vector is set to its target value.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MoveTowardTargetOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ConcatenateOperators</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConcatenateOperators</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RandomConcatenateOperators</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Randomized version of local search concatenator; calls a random operator</span>
|
|
<span class="sd"> at each call to MakeNextNeighbor().</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Randomized version of local search concatenator; calls a random operator</span>
|
|
<span class="sd"> at each call to MakeNextNeighbor(). The provided seed is used to</span>
|
|
<span class="sd"> initialize the random number generator.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RandomConcatenateOperators</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NeighborhoodLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="s2">"LocalSearchOperator"</span><span class="p">,</span> <span class="n">limit</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a local search operator that wraps another local search</span>
|
|
<span class="sd"> operator and limits the number of neighbors explored (i.e., calls</span>
|
|
<span class="sd"> to MakeNextNeighbor from the current solution (between two calls</span>
|
|
<span class="sd"> to Start()). When this limit is reached, MakeNextNeighbor()</span>
|
|
<span class="sd"> returns false. The counter is cleared when Start() is called.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NeighborhoodLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">limit</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LocalSearchPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LocalSearchPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LocalSearchPhaseParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchPhaseParameters *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LocalSearchPhaseParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SearchDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Gets the search depth of the current active search. Returns -1 if</span>
|
|
<span class="sd"> there is no active search opened.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SearchDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SearchLeftDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Gets the search left depth of the current active search. Returns -1 if</span>
|
|
<span class="sd"> there is no active search opened.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SearchLeftDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolveDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Gets the number of nested searches. It returns 0 outside search,</span>
|
|
<span class="sd"> 1 during the top level search, 2 or more in case of nested searches.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SolveDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Rand64</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns a random value between 0 and 'size' - 1;"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Rand64</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Rand32</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">:</span> <span class="s2">"int32_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int32_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns a random value between 0 and 'size' - 1;"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Rand32</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ReSeed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">seed</span><span class="p">:</span> <span class="s2">"int32_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Reseed the solver random generator."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ReSeed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">seed</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LocalSearchProfile</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns local search profiling information in a human readable format."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LocalSearchProfile</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Constraints</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Counts the number of constraints that have been added</span>
|
|
<span class="sd"> to the solver before the search.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Constraints</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">visitor</span><span class="p">:</span> <span class="s2">"operations_research::ModelVisitor *const"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Accepts the given model visitor."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">visitor</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FinishCurrentSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Tells the solver to kill or restart the current search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FinishCurrentSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RestartCurrentSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RestartCurrentSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ShouldFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> These methods are only useful for the SWIG wrappers, which need a way</span>
|
|
<span class="sd"> to externally cause the Solver to fail.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ShouldFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ct</span><span class="p">,</span> <span class="n">PyConstraint</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__python_constraints</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ct</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">AddConstraint</span><span class="p">(</span><span class="n">ct</span><span class="p">)</span>
|
|
|
|
|
|
<span class="k">def</span> <span class="nf">TreeNoCycle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">active</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexFilter1"</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TreeNoCycle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">,</span> <span class="n">active</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SearchLogWithCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">period</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"std::function< std::string () >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SearchLogWithCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">period</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ElementFunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ElementFunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VarEvalValStrPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">var_evaluator</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">,</span> <span class="n">val_str</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IntValueStrategy"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VarEvalValStrPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">var_evaluator</span><span class="p">,</span> <span class="n">val_str</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VarStrValEvalPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">var_str</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IntVarStrategy"</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VarStrValEvalPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">var_str</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VarEvalValEvalPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">var_eval</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VarEvalValEvalPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">var_eval</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VarStrValEvalTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">var_str</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IntVarStrategy"</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VarStrValEvalTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">var_str</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VarEvalValEvalTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">var_eval</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VarEvalValEvalTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">var_eval</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EvalEvalStrPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">,</span> <span class="nb">str</span><span class="p">:</span> <span class="s2">"operations_research::Solver::EvaluatorStrategy"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_EvalEvalStrPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EvalEvalStrTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator1"</span><span class="p">,</span> <span class="nb">str</span><span class="p">:</span> <span class="s2">"operations_research::Solver::EvaluatorStrategy"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_EvalEvalStrTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GuidedLocalSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_GuidedLocalSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SumObjectiveFilter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">,</span> <span class="n">filter_enum</span><span class="p">:</span> <span class="s2">"operations_research::Solver::LocalSearchFilterBound"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchFilter *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SumObjectiveFilter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">filter_enum</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register Solver in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_swigregister</span><span class="p">(</span><span class="n">Solver</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Solver_DefaultSolverParameters</span><span class="p">()</span> <span class="o">-></span> <span class="s2">"operations_research::ConstraintSolverParameters"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Create a ConstraintSolverParameters proto with all the default values."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DefaultSolverParameters</span><span class="p">()</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Solver_MemoryUsage</span><span class="p">()</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Current memory usage in bytes"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MemoryUsage</span><span class="p">()</span>
|
|
|
|
<span class="k">class</span> <span class="nc">BaseObject</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> A BaseObject is the root of all reversibly allocated objects.</span>
|
|
<span class="sd"> A DebugString method and the associated << operator are implemented</span>
|
|
<span class="sd"> as a convenience.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">BaseObject</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseObject_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_BaseObject</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_BaseObject</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseObject_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseObject___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseObject___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_BaseObject</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register BaseObject in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseObject_swigregister</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">PropagationBaseObject</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> NOLINT</span>
|
|
<span class="sd"> The PropagationBaseObject is a subclass of BaseObject that is also</span>
|
|
<span class="sd"> friend to the Solver class. It allows accessing methods useful when</span>
|
|
<span class="sd"> writing new constraints or new expressions.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">PropagationBaseObject</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PropagationBaseObject_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_PropagationBaseObject</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="n">s</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_PropagationBaseObject</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PropagationBaseObject_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Solver *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PropagationBaseObject_solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Object naming."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PropagationBaseObject_Name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_PropagationBaseObject</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register PropagationBaseObject in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PropagationBaseObject_swigregister</span><span class="p">(</span><span class="n">PropagationBaseObject</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">Decision</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> A Decision represents a choice point in the search tree. The two main</span>
|
|
<span class="sd"> methods are Apply() to go left, or Refute() to go right.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">Decision</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_Decision</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_Decision</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ApplyWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Apply will be called first when the decision is executed."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision_ApplyWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RefuteWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Refute will be called after a backtrack."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision_RefuteWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_Decision</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register Decision in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision_swigregister</span><span class="p">(</span><span class="n">Decision</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">DecisionBuilder</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> A DecisionBuilder is responsible for creating the search tree. The</span>
|
|
<span class="sd"> important method is Next(), which returns the next decision to execute.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">DecisionBuilder</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DecisionBuilder_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_DecisionBuilder</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_DecisionBuilder</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NextWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This is the main method of the decision builder class. It must</span>
|
|
<span class="sd"> return a decision (an instance of the class Decision). If it</span>
|
|
<span class="sd"> returns nullptr, this means that the decision builder has finished</span>
|
|
<span class="sd"> its work.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DecisionBuilder_NextWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DecisionBuilder_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DecisionBuilder___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DecisionBuilder___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_DecisionBuilder</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register DecisionBuilder in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DecisionBuilder_swigregister</span><span class="p">(</span><span class="n">DecisionBuilder</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">Demon</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> A Demon is the base element of a propagation queue. It is the main</span>
|
|
<span class="sd"> object responsible for implementing the actual propagation</span>
|
|
<span class="sd"> of the constraint and pruning the inconsistent values in the domains</span>
|
|
<span class="sd"> of the variables. The main concept is that demons are listeners that are</span>
|
|
<span class="sd"> attached to the variables and listen to their modifications.</span>
|
|
<span class="sd"> There are two methods:</span>
|
|
<span class="sd"> - Run() is the actual method called when the demon is processed.</span>
|
|
<span class="sd"> - priority() returns its priority. Standard priorities are slow, normal</span>
|
|
<span class="sd"> or fast. "immediate" is reserved for variables and is treated separately.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This indicates the priority of a demon. Immediate demons are treated</span>
|
|
<span class="sd"> separately and corresponds to variables.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">Demon</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_Demon</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_Demon</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RunWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is the main callback of the demon."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_RunWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Priority</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Solver::DemonPriority"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method returns the priority of the demon. Usually a demon is</span>
|
|
<span class="sd"> fast, slow or normal. Immediate demons are reserved for internal</span>
|
|
<span class="sd"> use to maintain variables.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_Priority</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Inhibit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method inhibits the demon in the search tree below the</span>
|
|
<span class="sd"> current position.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_Inhibit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Desinhibit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method un-inhibits the demon that was previously inhibited."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_Desinhibit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_Demon</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register Demon in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_swigregister</span><span class="p">(</span><span class="n">Demon</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">Constraint</span><span class="p">(</span><span class="n">PropagationBaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> A constraint is the main modeling object. It provides two methods:</span>
|
|
<span class="sd"> - Post() is responsible for creating the demons and attaching them to</span>
|
|
<span class="sd"> immediate demons().</span>
|
|
<span class="sd"> - InitialPropagate() is called once just after Post and performs</span>
|
|
<span class="sd"> the initial propagation. The subsequent propagations will be performed</span>
|
|
<span class="sd"> by the demons Posted during the post() method.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">Constraint</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_Constraint</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="n">solver</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_Constraint</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is called when the constraint is processed by the</span>
|
|
<span class="sd"> solver. Its main usage is to attach demons to variables.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method performs the initial propagation of the</span>
|
|
<span class="sd"> constraint. It is called just after the post.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a Boolean variable representing the status of the constraint</span>
|
|
<span class="sd"> (false = constraint is violated, true = constraint is satisfied). It</span>
|
|
<span class="sd"> returns nullptr if the constraint does not support this API.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__abs__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___abs__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Square</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_Square</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MapTo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_MapTo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IndexOf</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_IndexOf</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_Constraint</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register Constraint in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_swigregister</span><span class="p">(</span><span class="n">Constraint</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">SearchMonitor</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" A search monitor is a simple set of callbacks to monitor all search events"""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">SearchMonitor</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_SearchMonitor</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="n">s</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_SearchMonitor</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Beginning of the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RestartSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Restart the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_RestartSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ExitSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" End of the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_ExitSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Before calling DecisionBuilder::Next."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" After calling DecisionBuilder::Next, along with the returned decision."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_EndNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ApplyDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Before applying the decision."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_ApplyDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Before refuting the decision."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AfterDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">,</span> <span class="n">apply</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Just after refuting or applying the decision, apply is true after Apply.</span>
|
|
<span class="sd"> This is called only if the Apply() or Refute() methods have not failed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_AfterDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">,</span> <span class="n">apply</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BeginFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Just when the failure occurs."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_BeginFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" After completing the backtrack."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_EndFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BeginInitialPropagation</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Before the initial propagation."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_BeginInitialPropagation</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndInitialPropagation</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" After the initial propagation."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_EndInitialPropagation</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AcceptSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is called when a solution is found. It asserts whether the</span>
|
|
<span class="sd"> solution is valid. A value of false indicates that the solution</span>
|
|
<span class="sd"> should be discarded.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_AcceptSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AtSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is called when a valid solution is found. If the</span>
|
|
<span class="sd"> return value is true, then search will resume after. If the result</span>
|
|
<span class="sd"> is false, then search will stop there.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_AtSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NoMoreSolutions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" When the search tree is finished."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_NoMoreSolutions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LocalOptimum</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> When a local optimum is reached. If 'true' is returned, the last solution</span>
|
|
<span class="sd"> is discarded and the search proceeds with the next one.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_LocalOptimum</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AcceptDelta</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_AcceptDelta</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AcceptNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" After accepting a neighbor during local search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_AcceptNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Solver *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_SearchMonitor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register SearchMonitor in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_swigregister</span><span class="p">(</span><span class="n">SearchMonitor</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">IntExpr</span><span class="p">(</span><span class="n">PropagationBaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The class IntExpr is the base of all integer expressions in</span>
|
|
<span class="sd"> constraint programming.</span>
|
|
<span class="sd"> It contains the basic protocol for an expression:</span>
|
|
<span class="sd"> - setting and modifying its bound</span>
|
|
<span class="sd"> - querying if it is bound</span>
|
|
<span class="sd"> - listening to events modifying its bounds</span>
|
|
<span class="sd"> - casting it into a variable (instance of IntVar)</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method sets both the min and the max of the expression."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method sets the value of the expression."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if the min and the max of the expression are equal."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if the expression is indeed a variable."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_IsVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a variable from the expression."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VarWithName</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a variable from the expression and set the name of the</span>
|
|
<span class="sd"> resulting var. If the expression is already a variable, then it</span>
|
|
<span class="sd"> will set the name of the expression, possibly overwriting it.</span>
|
|
<span class="sd"> This is just a shortcut to Var() followed by set_name().</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_VarWithName</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Attach a demon that will watch the min or the max of the expression.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Attach a demon that will watch the min or the max of the expression.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_WhenRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__mod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___mod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__abs__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___abs__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Square</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Square</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MapTo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_MapTo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IndexOf</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_IndexOf</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsMember</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_IsMember</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Member</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Member</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NotMember</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">starts</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">,</span> <span class="n">ends</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_NotMember</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">starts</span><span class="p">,</span> <span class="n">ends</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register IntExpr in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_swigregister</span><span class="p">(</span><span class="n">IntExpr</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">IntVarIterator</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The class Iterator has two direct subclasses. HoleIterators</span>
|
|
<span class="sd"> iterates over all holes, that is value removed between the</span>
|
|
<span class="sd"> current min and max of the variable since the last time the</span>
|
|
<span class="sd"> variable was processed in the queue. DomainIterators iterates</span>
|
|
<span class="sd"> over all elements of the variable domain. Both iterators are not</span>
|
|
<span class="sd"> robust to domain changes. Hole iterators can also report values outside</span>
|
|
<span class="sd"> the current min and max of the variable.</span>
|
|
<span class="sd"> HoleIterators should only be called from a demon attached to the</span>
|
|
<span class="sd"> variable that has created this iterator.</span>
|
|
<span class="sd"> IntVar* current_var;</span>
|
|
<span class="sd"> std::unique_ptr<IntVarIterator> it(current_var->MakeHoleIterator(false));</span>
|
|
<span class="sd"> for (const int64_t hole : InitAndGetValues(it)) {</span>
|
|
<span class="sd"> use the hole</span>
|
|
<span class="sd"> }</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Init</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method must be called before each loop."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_Init</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Ok</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method indicates if we can call Value() or not."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_Ok</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method returns the current value of the iterator."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Next</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method moves the iterator to the next value."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_Next</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Pretty Print."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">Init</span><span class="p">()</span>
|
|
<span class="k">return</span> <span class="bp">self</span>
|
|
|
|
<span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">Ok</span><span class="p">():</span>
|
|
<span class="n">result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Value</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">Next</span><span class="p">()</span>
|
|
<span class="k">return</span> <span class="n">result</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">StopIteration</span><span class="p">()</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__next__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
|
|
|
|
|
|
<span class="c1"># Register IntVarIterator in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_swigregister</span><span class="p">(</span><span class="n">IntVarIterator</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">IntVar</span><span class="p">(</span><span class="n">IntExpr</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The class IntVar is a subset of IntExpr. In addition to the</span>
|
|
<span class="sd"> IntExpr protocol, it offers persistence, removing values from the domains,</span>
|
|
<span class="sd"> and a finer model for events.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_IsVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method returns the value of the variable. This method checks</span>
|
|
<span class="sd"> before that the variable is bound.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RemoveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method removes the value 'v' from the domain of the variable."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_RemoveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RemoveInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method removes the interval 'l' .. 'u' from the domain of</span>
|
|
<span class="sd"> the variable. It assumes that 'l' <= 'u'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_RemoveInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RemoveValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method remove the values from the domain of the variable."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_RemoveValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method intersects the current domain with the values in the array."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_SetValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This method attaches a demon that will be awakened when the</span>
|
|
<span class="sd"> variable is bound.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This method attaches a closure that will be awakened when the</span>
|
|
<span class="sd"> variable is bound.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_WhenBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This method attaches a demon that will watch any domain</span>
|
|
<span class="sd"> modification of the domain of the variable.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This method attaches a closure that will watch any domain</span>
|
|
<span class="sd"> modification of the domain of the variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_WhenDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"uint64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method returns the number of values in the domain of the variable."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method returns whether the value 'v' is in the domain of the</span>
|
|
<span class="sd"> variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HoleIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVarIterator *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a hole iterator. When 'reversible' is false, the returned</span>
|
|
<span class="sd"> object is created on the normal C++ heap and the solver does NOT</span>
|
|
<span class="sd"> take ownership of the object.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_HoleIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DomainIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVarIterator *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a domain iterator. When 'reversible' is false, the</span>
|
|
<span class="sd"> returned object is created on the normal C++ heap and the solver</span>
|
|
<span class="sd"> does NOT take ownership of the object.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_DomainIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the previous min."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_OldMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the previous max."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_OldMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DomainIterator</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="nb">iter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">DomainIteratorAux</span><span class="p">(</span><span class="kc">False</span><span class="p">))</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HoleIterator</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="nb">iter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">HoleIteratorAux</span><span class="p">(</span><span class="kc">False</span><span class="p">))</span>
|
|
|
|
|
|
<span class="c1"># Register IntVar in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_swigregister</span><span class="p">(</span><span class="n">IntVar</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">SolutionCollector</span><span class="p">(</span><span class="n">SearchMonitor</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This class is the root class of all solution collectors.</span>
|
|
<span class="sd"> It implements a basic query API to be used independently</span>
|
|
<span class="sd"> of the collector used.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">objective</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_AddObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">objective</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Beginning of the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolutionCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns how many solutions were stored during the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_SolutionCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Solution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Solution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WallTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the wall time in ms for the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_WallTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Branches</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of branches when the nth solution was found."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Branches</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Failures</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the number of failures encountered at the time of the nth</span>
|
|
<span class="sd"> solution.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Failures</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the objective value of the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_ObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is a shortcut to get the Value of 'var' in the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is a shortcut to get the StartValue of 'var' in the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is a shortcut to get the EndValue of 'var' in the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is a shortcut to get the DurationValue of 'var' in the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is a shortcut to get the PerformedValue of 'var' in the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This is a shortcut to get the ForwardSequence of 'var' in the</span>
|
|
<span class="sd"> nth solution. The forward sequence is the list of ranked interval</span>
|
|
<span class="sd"> variables starting from the start of the sequence.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This is a shortcut to get the BackwardSequence of 'var' in the</span>
|
|
<span class="sd"> nth solution. The backward sequence is the list of ranked interval</span>
|
|
<span class="sd"> variables starting from the end of the sequence.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This is a shortcut to get the list of unperformed of 'var' in the</span>
|
|
<span class="sd"> nth solution.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register SolutionCollector in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_swigregister</span><span class="p">(</span><span class="n">SolutionCollector</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">OptimizeVar</span><span class="p">(</span><span class="n">SearchMonitor</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This class encapsulates an objective. It requires the direction</span>
|
|
<span class="sd"> (minimize or maximize), the variable to optimize, and the</span>
|
|
<span class="sd"> improvement step.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Best</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the best value found during search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_Best</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the variable that is optimized."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AcceptDelta</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Internal methods."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_AcceptDelta</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">db</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">db</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AtSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_AtSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AcceptSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_AcceptSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register OptimizeVar in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_swigregister</span><span class="p">(</span><span class="n">OptimizeVar</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">SearchLimit</span><span class="p">(</span><span class="n">SearchMonitor</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" Base class of all search limits."""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_SearchLimit</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Crossed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if the limit has been crossed."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_Crossed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Check</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is called to check the status of the limit. A return</span>
|
|
<span class="sd"> value of true indicates that we have indeed crossed the limit. In</span>
|
|
<span class="sd"> that case, this method will not be called again and the remaining</span>
|
|
<span class="sd"> search will be discarded.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_Check</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Init</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method is called when the search limit is initialized."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_Init</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Internal methods."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register SearchLimit in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_swigregister</span><span class="p">(</span><span class="n">SearchLimit</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">IntervalVar</span><span class="p">(</span><span class="n">PropagationBaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Interval variables are often used in scheduling. The main characteristics</span>
|
|
<span class="sd"> of an IntervalVar are the start position, duration, and end</span>
|
|
<span class="sd"> date. All these characteristics can be queried and set, and demons can</span>
|
|
<span class="sd"> be posted on their modifications.</span>
|
|
|
|
<span class="sd"> An important aspect is optionality: an IntervalVar can be performed or not.</span>
|
|
<span class="sd"> If unperformed, then it simply does not exist, and its characteristics</span>
|
|
<span class="sd"> cannot be accessed any more. An interval var is automatically marked</span>
|
|
<span class="sd"> as unperformed when it is not consistent anymore (start greater</span>
|
|
<span class="sd"> than end, duration < 0...)</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> These methods query, set, and watch the start position of the</span>
|
|
<span class="sd"> interval var.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenStartBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenStartBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" These methods query, set, and watch the duration of the interval var."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenDurationBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenDurationBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" These methods query, set, and watch the end position of the interval var."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenEndBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenEndBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MustBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> These methods query, set, and watch the performed status of the</span>
|
|
<span class="sd"> interval var.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_MustBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MayBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_MayBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CannotBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_CannotBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_IsPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetPerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WasPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WasPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenAnything</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Attaches a demon awakened when anything about this interval changes.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Attaches a closure awakened when anything about this interval changes.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenAnything</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> These methods create expressions encapsulating the start, end</span>
|
|
<span class="sd"> and duration of the interval var. Please note that these must not</span>
|
|
<span class="sd"> be used if the interval var is unperformed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_DurationExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_PerformedExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SafeStartExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> These methods create expressions encapsulating the start, end</span>
|
|
<span class="sd"> and duration of the interval var. If the interval var is</span>
|
|
<span class="sd"> unperformed, they will return the unperformed_value.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SafeStartExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SafeDurationExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SafeDurationExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SafeEndExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SafeEndExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAfterEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAfterEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAfterEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAfterEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAfterStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAfterStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAfterStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAfterStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAtEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAtEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAtEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAtEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAtStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAtStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAtStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAtStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAfterEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAfterEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAfterEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAfterEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAfterStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAfterStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAfterStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAfterStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAtEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAtEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAtEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAtEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAtStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAtStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAtStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAtStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StaysInSync</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StaysInSync</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StaysInSyncWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StaysInSyncWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAfter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAfter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsBefore</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsBefore</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAfter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAfter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsBefore</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsBefore</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CrossesDate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_CrossesDate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AvoidsDate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_AvoidsDate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register IntervalVar in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_swigregister</span><span class="p">(</span><span class="n">IntervalVar</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">SequenceVar</span><span class="p">(</span><span class="n">PropagationBaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> A sequence variable is a variable whose domain is a set of possible</span>
|
|
<span class="sd"> orderings of the interval variables. It allows ordering of tasks. It</span>
|
|
<span class="sd"> has two sets of methods: ComputePossibleFirstsAndLasts(), which</span>
|
|
<span class="sd"> returns the list of interval variables that can be ranked first or</span>
|
|
<span class="sd"> last; and RankFirst/RankNotFirst/RankLast/RankNotLast, which can be</span>
|
|
<span class="sd"> used to create the search decision.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RankFirst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Ranks the index_th interval var first of all unranked interval</span>
|
|
<span class="sd"> vars. After that, it will no longer be considered ranked.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_RankFirst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RankNotFirst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Indicates that the index_th interval var will not be ranked first</span>
|
|
<span class="sd"> of all currently unranked interval vars.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_RankNotFirst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RankLast</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Ranks the index_th interval var first of all unranked interval</span>
|
|
<span class="sd"> vars. After that, it will no longer be considered ranked.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_RankLast</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RankNotLast</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Indicates that the index_th interval var will not be ranked first</span>
|
|
<span class="sd"> of all currently unranked interval vars.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_RankNotLast</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Interval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the index_th interval of the sequence."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_Interval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Next</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the next of the index_th interval of the sequence."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_Next</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of interval vars in the sequence."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register SequenceVar in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_swigregister</span><span class="p">(</span><span class="n">SequenceVar</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">AssignmentElement</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Activate</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">AssignmentElement_Activate</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Deactivate</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">AssignmentElement_Deactivate</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Activated</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">AssignmentElement_Activated</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_AssignmentElement</span>
|
|
|
|
<span class="c1"># Register AssignmentElement in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">AssignmentElement_swigregister</span><span class="p">(</span><span class="n">AssignmentElement</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">IntVarElement</span><span class="p">(</span><span class="n">AssignmentElement</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">:</span> <span class="s2">"IntVarElement"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">:</span> <span class="s2">"IntVarElement"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_IntVarElement</span>
|
|
|
|
<span class="c1"># Register IntVarElement in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_swigregister</span><span class="p">(</span><span class="n">IntVarElement</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">IntervalVarElement</span><span class="p">(</span><span class="n">AssignmentElement</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_PerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_PerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetStartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetDurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetEndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetPerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetPerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetPerformedRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetPerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">:</span> <span class="s2">"IntervalVarElement"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">:</span> <span class="s2">"IntervalVarElement"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_IntervalVarElement</span>
|
|
|
|
<span class="c1"># Register IntervalVarElement in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_swigregister</span><span class="p">(</span><span class="n">IntervalVarElement</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">SequenceVarElement</span><span class="p">(</span><span class="n">AssignmentElement</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The SequenceVarElement stores a partial representation of ranked</span>
|
|
<span class="sd"> interval variables in the underlying sequence variable.</span>
|
|
<span class="sd"> This representation consists of three vectors:</span>
|
|
<span class="sd"> - the forward sequence. That is the list of interval variables</span>
|
|
<span class="sd"> ranked first in the sequence. The first element of the backward</span>
|
|
<span class="sd"> sequence is the first interval in the sequence variable.</span>
|
|
<span class="sd"> - the backward sequence. That is the list of interval variables</span>
|
|
<span class="sd"> ranked last in the sequence. The first element of the backward</span>
|
|
<span class="sd"> sequence is the last interval in the sequence variable.</span>
|
|
<span class="sd"> - The list of unperformed interval variables.</span>
|
|
<span class="sd"> Furthermore, if all performed variables are ranked, then by</span>
|
|
<span class="sd"> convention, the forward_sequence will contain all such variables</span>
|
|
<span class="sd"> and the backward_sequence will be empty.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SequenceVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_SetSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_SetForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetBackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_SetBackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetUnperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_SetUnperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">:</span> <span class="s2">"SequenceVarElement"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">:</span> <span class="s2">"SequenceVarElement"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_SequenceVarElement</span>
|
|
|
|
<span class="c1"># Register SequenceVarElement in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_swigregister</span><span class="p">(</span><span class="n">SequenceVarElement</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">Assignment</span><span class="p">(</span><span class="n">PropagationBaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> An Assignment is a variable -> domains mapping, used</span>
|
|
<span class="sd"> to report solutions to the user.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Clear</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Clear</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Empty</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Empty</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NumIntVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_NumIntVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NumIntervalVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_NumIntervalVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NumSequenceVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_NumSequenceVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Load</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Load</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Save</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Save</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_AddObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Objective</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Objective</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_HasObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ObjectiveMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_ObjectiveMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ObjectiveMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_ObjectiveMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_ObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ObjectiveBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_ObjectiveBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetObjectiveMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetObjectiveMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetObjectiveMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetObjectiveMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetObjectiveRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetObjectiveRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Min</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Min</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Max</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Max</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_PerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_PerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetStartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetDurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetEndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetPerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetPerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetPerformedRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetPerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetBackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetBackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetUnperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetUnperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Activate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Activate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Deactivate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Deactivate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Activated</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Activated</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IntVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::IntContainer const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_IntVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MutableIntVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::IntContainer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_MutableIntVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IntervalVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::IntervalContainer const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_IntervalVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MutableIntervalVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::IntervalContainer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_MutableIntervalVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SequenceVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::SequenceContainer const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SequenceVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MutableSequenceVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::SequenceContainer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_MutableSequenceVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register Assignment in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_swigregister</span><span class="p">(</span><span class="n">Assignment</span><span class="p">)</span>
|
|
|
|
|
|
<span class="k">def</span> <span class="fm">__lshift__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::ostream &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="fm">__lshift__</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
<span class="k">class</span> <span class="nc">Pack</span><span class="p">(</span><span class="n">Constraint</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddWeightedSumLessOrEqualConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Dimensions are additional constraints than can restrict what is</span>
|
|
<span class="sd"> possible with the pack constraint. It can be used to set capacity</span>
|
|
<span class="sd"> limits, to count objects per bin, to compute unassigned</span>
|
|
<span class="sd"> penalties...</span>
|
|
<span class="sd"> This dimension imposes that for all bins b, the weighted sum</span>
|
|
<span class="sd"> (weights[i]) of all objects i assigned to 'b' is less or equal</span>
|
|
<span class="sd"> 'bounds[b]'.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This dimension imposes that for all bins b, the weighted sum</span>
|
|
<span class="sd"> (weights->Run(i)) of all objects i assigned to 'b' is less or</span>
|
|
<span class="sd"> equal to 'bounds[b]'. Ownership of the callback is transferred to</span>
|
|
<span class="sd"> the pack constraint.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> This dimension imposes that for all bins b, the weighted sum</span>
|
|
<span class="sd"> (weights->Run(i, b) of all objects i assigned to 'b' is less or</span>
|
|
<span class="sd"> equal to 'bounds[b]'. Ownership of the callback is transferred to</span>
|
|
<span class="sd"> the pack constraint.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddWeightedSumLessOrEqualConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddWeightedSumEqualVarDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This dimension imposes that for all bins b, the weighted sum</span>
|
|
<span class="sd"> (weights[i]) of all objects i assigned to 'b' is equal to loads[b].</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This dimension imposes that for all bins b, the weighted sum</span>
|
|
<span class="sd"> (weights->Run(i, b)) of all objects i assigned to 'b' is equal to</span>
|
|
<span class="sd"> loads[b].</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddWeightedSumEqualVarDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddSumVariableWeightsLessOrEqualConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">usage</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This dimension imposes:</span>
|
|
<span class="sd"> forall b in bins,</span>
|
|
<span class="sd"> sum (i in items: usage[i] * is_assigned(i, b)) <= capacity[b]</span>
|
|
<span class="sd"> where is_assigned(i, b) is true if and only if item i is assigned</span>
|
|
<span class="sd"> to the bin b.</span>
|
|
|
|
<span class="sd"> This can be used to model shapes of items by linking variables of</span>
|
|
<span class="sd"> the same item on parallel dimensions with an allowed assignment</span>
|
|
<span class="sd"> constraint.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddSumVariableWeightsLessOrEqualConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">usage</span><span class="p">,</span> <span class="n">capacity</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddWeightedSumOfAssignedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">weights</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">,</span> <span class="n">cost_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This dimension enforces that cost_var == sum of weights[i] for</span>
|
|
<span class="sd"> all objects 'i' assigned to a bin.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddWeightedSumOfAssignedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">weights</span><span class="p">,</span> <span class="n">cost_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddCountUsedBinDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">count_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This dimension links 'count_var' to the actual number of bins used in the</span>
|
|
<span class="sd"> pack.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddCountUsedBinDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">count_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddCountAssignedItemsDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">count_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This dimension links 'count_var' to the actual number of items</span>
|
|
<span class="sd"> assigned to a bin in the pack.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddCountAssignedItemsDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">count_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register Pack in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_swigregister</span><span class="p">(</span><span class="n">Pack</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">DisjunctiveConstraint</span><span class="p">(</span><span class="n">Constraint</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SequenceVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SequenceVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a sequence variable from the constraint."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DisjunctiveConstraint_SequenceVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetTransitionTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">transition_time</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Add a transition time between intervals. It forces the distance between</span>
|
|
<span class="sd"> the end of interval a and start of interval b that follows it to be at</span>
|
|
<span class="sd"> least transition_time(a, b). This function must always return</span>
|
|
<span class="sd"> a positive or null value.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DisjunctiveConstraint_SetTransitionTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">transition_time</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TransitionTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">before_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">after_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DisjunctiveConstraint_TransitionTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">before_index</span><span class="p">,</span> <span class="n">after_index</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register DisjunctiveConstraint in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DisjunctiveConstraint_swigregister</span><span class="p">(</span><span class="n">DisjunctiveConstraint</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">RevInteger</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This class adds reversibility to a POD type.</span>
|
|
<span class="sd"> It contains the stamp optimization. i.e. the SaveValue call is done</span>
|
|
<span class="sd"> only once per node of the search tree. Please note that actual</span>
|
|
<span class="sd"> stamps always starts at 1, thus an initial value of 0 will always</span>
|
|
<span class="sd"> trigger the first SaveValue.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"long long const &"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevInteger_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_RevInteger</span><span class="p">(</span><span class="n">val</span><span class="p">))</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"long long const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevInteger_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"long long const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevInteger_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_RevInteger</span>
|
|
|
|
<span class="c1"># Register RevInteger in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevInteger_swigregister</span><span class="p">(</span><span class="n">RevInteger</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">NumericalRevInteger</span><span class="p">(</span><span class="n">RevInteger</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" Subclass of Rev<T> which adds numerical operations."""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"long long const &"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">NumericalRevInteger_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_NumericalRevInteger</span><span class="p">(</span><span class="n">val</span><span class="p">))</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">,</span> <span class="n">to_add</span><span class="p">:</span> <span class="s2">"long long const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">NumericalRevInteger_Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">to_add</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Incr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">NumericalRevInteger_Incr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Decr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">NumericalRevInteger_Decr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_NumericalRevInteger</span>
|
|
|
|
<span class="c1"># Register NumericalRevInteger in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">NumericalRevInteger_swigregister</span><span class="p">(</span><span class="n">NumericalRevInteger</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">RevBool</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This class adds reversibility to a POD type.</span>
|
|
<span class="sd"> It contains the stamp optimization. i.e. the SaveValue call is done</span>
|
|
<span class="sd"> only once per node of the search tree. Please note that actual</span>
|
|
<span class="sd"> stamps always starts at 1, thus an initial value of 0 will always</span>
|
|
<span class="sd"> trigger the first SaveValue.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"bool const &"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevBool_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_RevBool</span><span class="p">(</span><span class="n">val</span><span class="p">))</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevBool_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"bool const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevBool_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_RevBool</span>
|
|
|
|
<span class="c1"># Register RevBool in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevBool_swigregister</span><span class="p">(</span><span class="n">RevBool</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">IntVarContainer</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVarElement *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">:</span> <span class="s2">"IntVarContainer"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true if this and 'container' both represent the same V* -> E map.</span>
|
|
<span class="sd"> Runs in linear time; requires that the == operator on the type E is well</span>
|
|
<span class="sd"> defined.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">:</span> <span class="s2">"IntVarContainer"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_IntVarContainer</span>
|
|
|
|
<span class="c1"># Register IntVarContainer in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_swigregister</span><span class="p">(</span><span class="n">IntVarContainer</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">IntervalVarContainer</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVarElement *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">:</span> <span class="s2">"IntervalVarContainer"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true if this and 'container' both represent the same V* -> E map.</span>
|
|
<span class="sd"> Runs in linear time; requires that the == operator on the type E is well</span>
|
|
<span class="sd"> defined.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">:</span> <span class="s2">"IntervalVarContainer"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_IntervalVarContainer</span>
|
|
|
|
<span class="c1"># Register IntervalVarContainer in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_swigregister</span><span class="p">(</span><span class="n">IntervalVarContainer</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">SequenceVarContainer</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SequenceVarElement *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">:</span> <span class="s2">"SequenceVarContainer"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true if this and 'container' both represent the same V* -> E map.</span>
|
|
<span class="sd"> Runs in linear time; requires that the == operator on the type E is well</span>
|
|
<span class="sd"> defined.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">:</span> <span class="s2">"SequenceVarContainer"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_SequenceVarContainer</span>
|
|
|
|
<span class="c1"># Register SequenceVarContainer in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_swigregister</span><span class="p">(</span><span class="n">SequenceVarContainer</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">LocalSearchOperator</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This class represent a reversible FIFO structure.</span>
|
|
<span class="sd"> The main difference w.r.t a standard FIFO structure is that a Solver is</span>
|
|
<span class="sd"> given as parameter to the modifiers such that the solver can store the</span>
|
|
<span class="sd"> backtrack information</span>
|
|
<span class="sd"> Iterator's traversing order should not be changed, as some algorithm</span>
|
|
<span class="sd"> depend on it to be consistent.</span>
|
|
<span class="sd"> It's main use is to store a list of demons in the various classes of</span>
|
|
<span class="sd"> variables.</span>
|
|
<span class="sd"> The base class for all local search operators.</span>
|
|
|
|
<span class="sd"> A local search operator is an object that defines the neighborhood of a</span>
|
|
<span class="sd"> solution. In other words, a neighborhood is the set of solutions which can</span>
|
|
<span class="sd"> be reached from a given solution using an operator.</span>
|
|
|
|
<span class="sd"> The behavior of the LocalSearchOperator class is similar to iterators.</span>
|
|
<span class="sd"> The operator is synchronized with an assignment (gives the</span>
|
|
<span class="sd"> current values of the variables); this is done in the Start() method.</span>
|
|
|
|
<span class="sd"> Then one can iterate over the neighbors using the MakeNextNeighbor method.</span>
|
|
<span class="sd"> This method returns an assignment which represents the incremental changes</span>
|
|
<span class="sd"> to the current solution. It also returns a second assignment representing</span>
|
|
<span class="sd"> the changes to the last solution defined by the neighborhood operator; this</span>
|
|
<span class="sd"> assignment is empty if the neighborhood operator cannot track this</span>
|
|
<span class="sd"> information.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NextNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchOperator_NextNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchOperator_Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_LocalSearchOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register LocalSearchOperator in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchOperator_swigregister</span><span class="p">(</span><span class="n">LocalSearchOperator</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">IntVarLocalSearchOperatorTemplate</span><span class="p">(</span><span class="n">LocalSearchOperator</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" Base operator class for operators manipulating variables."""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method should not be overridden. Override OnStart() instead which is</span>
|
|
<span class="sd"> called before exiting this method.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"long long const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the value in the current assignment of the variable of given</span>
|
|
<span class="sd"> index.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"long long const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_OldValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"long long const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OnStart</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Called by Start() after synchronizing the operator with the current</span>
|
|
<span class="sd"> assignment. Should be overridden instead of Start() to avoid calling</span>
|
|
<span class="sd"> VarLocalSearchOperator::Start explicitly.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_OnStart</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register IntVarLocalSearchOperatorTemplate in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_swigregister</span><span class="p">(</span><span class="n">IntVarLocalSearchOperatorTemplate</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">IntVarLocalSearchOperator</span><span class="p">(</span><span class="n">IntVarLocalSearchOperatorTemplate</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">IntVarLocalSearchOperator</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperator_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_IntVarLocalSearchOperator</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_IntVarLocalSearchOperator</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NextNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Redefines MakeNextNeighbor to export a simpler interface. The calls to</span>
|
|
<span class="sd"> ApplyChanges() and RevertChanges() are factored in this method, hiding</span>
|
|
<span class="sd"> both delta and deltadelta from subclasses which only need to override</span>
|
|
<span class="sd"> MakeOneNeighbor().</span>
|
|
<span class="sd"> Therefore this method should not be overridden. Override MakeOneNeighbor()</span>
|
|
<span class="sd"> instead.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperator_NextNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OneNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a new neighbor. It returns false when the neighborhood is</span>
|
|
<span class="sd"> completely explored.</span>
|
|
<span class="sd"> MakeNextNeighbor() in a subclass of IntVarLocalSearchOperator.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperator_OneNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_IntVarLocalSearchOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register IntVarLocalSearchOperator in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperator_swigregister</span><span class="p">(</span><span class="n">IntVarLocalSearchOperator</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">SequenceVarLocalSearchOperatorTemplate</span><span class="p">(</span><span class="n">LocalSearchOperator</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" Base operator class for operators manipulating variables."""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method should not be overridden. Override OnStart() instead which is</span>
|
|
<span class="sd"> called before exiting this method.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the value in the current assignment of the variable of given</span>
|
|
<span class="sd"> index.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_OldValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OnStart</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Called by Start() after synchronizing the operator with the current</span>
|
|
<span class="sd"> assignment. Should be overridden instead of Start() to avoid calling</span>
|
|
<span class="sd"> VarLocalSearchOperator::Start explicitly.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_OnStart</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register SequenceVarLocalSearchOperatorTemplate in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_swigregister</span><span class="p">(</span><span class="n">SequenceVarLocalSearchOperatorTemplate</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">SequenceVarLocalSearchOperator</span><span class="p">(</span><span class="n">SequenceVarLocalSearchOperatorTemplate</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="c1"># Register SequenceVarLocalSearchOperator in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperator_swigregister</span><span class="p">(</span><span class="n">SequenceVarLocalSearchOperator</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">BaseLns</span><span class="p">(</span><span class="n">IntVarLocalSearchOperator</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This is the base class for building an Lns operator. An Lns fragment is a</span>
|
|
<span class="sd"> collection of variables which will be relaxed. Fragments are built with</span>
|
|
<span class="sd"> NextFragment(), which returns false if there are no more fragments to build.</span>
|
|
<span class="sd"> Optionally one can override InitFragments, which is called from</span>
|
|
<span class="sd"> LocalSearchOperator::Start to initialize fragment data.</span>
|
|
|
|
<span class="sd"> Here's a sample relaxing one variable at a time:</span>
|
|
|
|
<span class="sd"> class OneVarLns : public BaseLns {</span>
|
|
<span class="sd"> public:</span>
|
|
<span class="sd"> OneVarLns(const std::vector<IntVar*>& vars) : BaseLns(vars), index_(0) {}</span>
|
|
<span class="sd"> virtual ~OneVarLns() {}</span>
|
|
<span class="sd"> virtual void InitFragments() { index_ = 0; }</span>
|
|
<span class="sd"> virtual bool NextFragment() {</span>
|
|
<span class="sd"> const int size = Size();</span>
|
|
<span class="sd"> if (index_ < size) {</span>
|
|
<span class="sd"> AppendToFragment(index_);</span>
|
|
<span class="sd"> ++index_;</span>
|
|
<span class="sd"> return true;</span>
|
|
<span class="sd"> } else {</span>
|
|
<span class="sd"> return false;</span>
|
|
<span class="sd"> }</span>
|
|
<span class="sd"> }</span>
|
|
|
|
<span class="sd"> private:</span>
|
|
<span class="sd"> int index_;</span>
|
|
<span class="sd"> };</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">BaseLns</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_BaseLns</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_BaseLns</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitFragments</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_InitFragments</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NextFragment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_NextFragment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AppendToFragment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_AppendToFragment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FragmentSize</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_FragmentSize</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns___getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns___len__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_BaseLns</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register BaseLns in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_swigregister</span><span class="p">(</span><span class="n">BaseLns</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">ChangeValue</span><span class="p">(</span><span class="n">IntVarLocalSearchOperator</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Defines operators which change the value of variables;</span>
|
|
<span class="sd"> each neighbor corresponds to *one* modified variable.</span>
|
|
<span class="sd"> Sub-classes have to define ModifyValue which determines what the new</span>
|
|
<span class="sd"> variable value is going to be (given the current value and the variable).</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">ChangeValue</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">ChangeValue_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_ChangeValue</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_ChangeValue</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ModifyValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">ChangeValue_ModifyValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OneNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method should not be overridden. Override ModifyValue() instead."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">ChangeValue_OneNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_ChangeValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register ChangeValue in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">ChangeValue_swigregister</span><span class="p">(</span><span class="n">ChangeValue</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">PathOperator</span><span class="p">(</span><span class="n">IntVarLocalSearchOperator</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Base class of the local search operators dedicated to path modifications</span>
|
|
<span class="sd"> (a path is a set of nodes linked together by arcs).</span>
|
|
<span class="sd"> This family of neighborhoods supposes they are handling next variables</span>
|
|
<span class="sd"> representing the arcs (var[i] represents the node immediately after i on</span>
|
|
<span class="sd"> a path).</span>
|
|
<span class="sd"> Several services are provided:</span>
|
|
<span class="sd"> - arc manipulators (SetNext(), ReverseChain(), MoveChain())</span>
|
|
<span class="sd"> - path inspectors (Next(), Prev(), IsPathEnd())</span>
|
|
<span class="sd"> - path iterators: operators need a given number of nodes to define a</span>
|
|
<span class="sd"> neighbor; this class provides the iteration on a given number of (base)</span>
|
|
<span class="sd"> nodes which can be used to define a neighbor (through the BaseNode method)</span>
|
|
<span class="sd"> Subclasses only need to override MakeNeighbor to create neighbors using</span>
|
|
<span class="sd"> the services above (no direct manipulation of assignments).</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Neighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PathOperator_Neighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register PathOperator in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PathOperator_swigregister</span><span class="p">(</span><span class="n">PathOperator</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">LocalSearchFilter</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Classes to which this template function can be applied to as of 04/2014.</span>
|
|
<span class="sd"> Usage: LocalSearchOperator* op = MakeLocalSearchOperator<Relocate>(...);</span>
|
|
<span class="sd"> class TwoOpt;</span>
|
|
<span class="sd"> class Relocate;</span>
|
|
<span class="sd"> class Exchange;</span>
|
|
<span class="sd"> class Cross;</span>
|
|
<span class="sd"> class MakeActiveOperator;</span>
|
|
<span class="sd"> class MakeInactiveOperator;</span>
|
|
<span class="sd"> class MakeChainInactiveOperator;</span>
|
|
<span class="sd"> class SwapActiveOperator;</span>
|
|
<span class="sd"> class ExtendedSwapActiveOperator;</span>
|
|
<span class="sd"> class MakeActiveAndRelocate;</span>
|
|
<span class="sd"> class RelocateAndMakeActiveOperator;</span>
|
|
<span class="sd"> class RelocateAndMakeInactiveOperator;</span>
|
|
<span class="sd"> Local Search Filters are used for fast neighbor pruning.</span>
|
|
<span class="sd"> Filtering a move is done in several phases:</span>
|
|
<span class="sd"> - in the Relax phase, filters determine which parts of their internals</span>
|
|
<span class="sd"> will be changed by the candidate, and modify intermediary State</span>
|
|
<span class="sd"> - in the Accept phase, filters check that the candidate is feasible,</span>
|
|
<span class="sd"> - if the Accept phase succeeds, the solver may decide to trigger a</span>
|
|
<span class="sd"> Synchronize phase that makes filters change their internal representation</span>
|
|
<span class="sd"> to the last candidate,</span>
|
|
<span class="sd"> - otherwise (Accept fails or the solver does not want to synchronize),</span>
|
|
<span class="sd"> a Revert phase makes filters erase any intermediary State generated by the</span>
|
|
<span class="sd"> Relax and Accept phases.</span>
|
|
<span class="sd"> A given filter has phases called with the following pattern:</span>
|
|
<span class="sd"> (Relax.Accept.Synchronize | Relax.Accept.Revert | Relax.Revert)*.</span>
|
|
<span class="sd"> Filters's Revert() is always called in the reverse order their Accept() was</span>
|
|
<span class="sd"> called, to allow late filters to use state done/undone by early filters'</span>
|
|
<span class="sd"> Accept()/Revert().</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">objective_min</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">objective_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Accepts a "delta" given the assignment with which the filter has been</span>
|
|
<span class="sd"> synchronized; the delta holds the variables which have been modified and</span>
|
|
<span class="sd"> their new value.</span>
|
|
<span class="sd"> If the filter represents a part of the global objective, its contribution</span>
|
|
<span class="sd"> must be between objective_min and objective_max.</span>
|
|
<span class="sd"> Sample: supposing one wants to maintain a[0,1] + b[0,1] <= 1,</span>
|
|
<span class="sd"> for the assignment (a,1), (b,0), the delta (b,1) will be rejected</span>
|
|
<span class="sd"> but the delta (a,0) will be accepted.</span>
|
|
<span class="sd"> TODO(user): Remove arguments when there are no more need for those.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilter_Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">,</span> <span class="n">objective_min</span><span class="p">,</span> <span class="n">objective_max</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilter_IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Synchronizes the filter with the current solution, delta being the</span>
|
|
<span class="sd"> difference with the solution passed to the previous call to Synchronize()</span>
|
|
<span class="sd"> or IncrementalSynchronize(). 'delta' can be used to incrementally</span>
|
|
<span class="sd"> synchronizing the filter with the new solution by only considering the</span>
|
|
<span class="sd"> changes in delta.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilter_Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">delta</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_LocalSearchFilter</span>
|
|
|
|
<span class="c1"># Register LocalSearchFilter in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilter_swigregister</span><span class="p">(</span><span class="n">LocalSearchFilter</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">LocalSearchFilterManager</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Filter manager: when a move is made, filters are executed to decide whether</span>
|
|
<span class="sd"> the solution is feasible and compute parts of the new cost. This class</span>
|
|
<span class="sd"> schedules filter execution and composes costs as a sum.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilterManager_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilterManager_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_LocalSearchFilterManager</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">))</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">monitor</span><span class="p">:</span> <span class="s2">"operations_research::LocalSearchMonitor *const"</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">objective_min</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">objective_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true iff all filters return true, and the sum of their accepted</span>
|
|
<span class="sd"> objectives is between objective_min and objective_max.</span>
|
|
<span class="sd"> The monitor has its Begin/EndFiltering events triggered.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilterManager_Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">monitor</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">,</span> <span class="n">objective_min</span><span class="p">,</span> <span class="n">objective_max</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Synchronizes all filters to assignment."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilterManager_Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">delta</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_LocalSearchFilterManager</span>
|
|
|
|
<span class="c1"># Register LocalSearchFilterManager in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilterManager_swigregister</span><span class="p">(</span><span class="n">LocalSearchFilterManager</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">IntVarLocalSearchFilter</span><span class="p">(</span><span class="n">LocalSearchFilter</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">IntVarLocalSearchFilter</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_IntVarLocalSearchFilter</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_IntVarLocalSearchFilter</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method should not be overridden. Override OnSynchronize() instead</span>
|
|
<span class="sd"> which is called before exiting this method.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">delta</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IndexFromVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_IndexFromVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_IntVarLocalSearchFilter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register IntVarLocalSearchFilter in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_swigregister</span><span class="p">(</span><span class="n">IntVarLocalSearchFilter</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">BooleanVar</span><span class="p">(</span><span class="n">IntVar</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RemoveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_RemoveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RemoveInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_RemoveInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Demon"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_WhenBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Demon"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_WhenRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Demon"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_WhenDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"uint64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HoleIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVarIterator *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_HoleIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DomainIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVarIterator *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_DomainIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register BooleanVar in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_swigregister</span><span class="p">(</span><span class="n">BooleanVar</span><span class="p">)</span>
|
|
|
|
|
|
<span class="k">class</span> <span class="nc">PyDecision</span><span class="p">(</span><span class="n">Decision</span><span class="p">):</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">Decision</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ApplyWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">Apply</span><span class="p">(</span><span class="n">solver</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s1">'CP Solver fail'</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
|
|
<span class="n">solver</span><span class="o">.</span><span class="n">ShouldFail</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RefuteWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">Refute</span><span class="p">(</span><span class="n">solver</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s1">'CP Solver fail'</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
|
|
<span class="n">solver</span><span class="o">.</span><span class="n">ShouldFail</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="s2">"PyDecision"</span>
|
|
|
|
|
|
<span class="k">class</span> <span class="nc">PyDecisionBuilder</span><span class="p">(</span><span class="n">DecisionBuilder</span><span class="p">):</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">DecisionBuilder</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NextWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">Next</span><span class="p">(</span><span class="n">solver</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s1">'CP Solver fail'</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="n">solver</span><span class="o">.</span><span class="n">FailDecision</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="s2">"PyDecisionBuilder"</span>
|
|
|
|
|
|
<span class="k">class</span> <span class="nc">PyDemon</span><span class="p">(</span><span class="n">Demon</span><span class="p">):</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RunWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">Run</span><span class="p">(</span><span class="n">solver</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s1">'CP Solver fail'</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
|
|
<span class="n">solver</span><span class="o">.</span><span class="n">ShouldFail</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="s2">"PyDemon"</span>
|
|
|
|
|
|
<span class="k">class</span> <span class="nc">PyConstraintDemon</span><span class="p">(</span><span class="n">PyDemon</span><span class="p">):</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="n">delayed</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">PyDemon</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__constraint</span> <span class="o">=</span> <span class="n">ct</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__method</span> <span class="o">=</span> <span class="n">method</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__delayed</span> <span class="o">=</span> <span class="n">delayed</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__args</span> <span class="o">=</span> <span class="n">args</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__method</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__constraint</span><span class="p">,</span> <span class="o">*</span><span class="bp">self</span><span class="o">.</span><span class="n">__args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Priority</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="n">Solver</span><span class="o">.</span><span class="n">DELAYED_PRIORITY</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__delayed</span> <span class="k">else</span> <span class="n">Solver</span><span class="o">.</span><span class="n">NORMAL_PRIORITY</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="s1">'PyConstraintDemon'</span>
|
|
|
|
|
|
<span class="k">class</span> <span class="nc">PyConstraint</span><span class="p">(</span><span class="n">Constraint</span><span class="p">):</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="n">Constraint</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__demons</span> <span class="o">=</span> <span class="p">[]</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Demon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">demon</span> <span class="o">=</span> <span class="n">PyConstraintDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__demons</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">demon</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">demon</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DelayedDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">demon</span> <span class="o">=</span> <span class="n">PyConstraintDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__demons</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">demon</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">demon</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitialPropagateDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">solver</span><span class="p">()</span><span class="o">.</span><span class="n">ConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DelayedInitialPropagateDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">solver</span><span class="p">()</span><span class="o">.</span><span class="n">DelayedConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">InitialPropagate</span><span class="p">()</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s1">'CP Solver fail'</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">solver</span><span class="p">()</span><span class="o">.</span><span class="n">ShouldFail</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="s2">"PyConstraint"</span>
|
|
|
|
|
|
|
|
<span class="k">class</span> <span class="nc">RoutingIndexManager</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Manager for any NodeIndex <-> variable index conversion. The routing solver</span>
|
|
<span class="sd"> uses variable indices internally and through its API. These variable indices</span>
|
|
<span class="sd"> are tricky to manage directly because one Node can correspond to a multitude</span>
|
|
<span class="sd"> of variables, depending on the number of times they appear in the model, and</span>
|
|
<span class="sd"> if they're used as start and/or end points. This class aims to simplify</span>
|
|
<span class="sd"> variable index usage, allowing users to use NodeIndex instead.</span>
|
|
|
|
<span class="sd"> Usage:</span>
|
|
|
|
<span class="sd"> .. code-block:: c++</span>
|
|
|
|
<span class="sd"> auto starts_ends = ...; /// These are NodeIndex.</span>
|
|
<span class="sd"> RoutingIndexManager manager(10, 4, starts_ends); // 10 nodes, 4 vehicles.</span>
|
|
<span class="sd"> RoutingModel model(manager);</span>
|
|
|
|
<span class="sd"> Then, use 'manager.NodeToIndex(node)' whenever model requires a variable</span>
|
|
<span class="sd"> index.</span>
|
|
|
|
<span class="sd"> Note: the mapping between node indices and variables indices is subject to</span>
|
|
<span class="sd"> change so no assumption should be made on it. The only guarantee is that</span>
|
|
<span class="sd"> indices range between 0 and n-1, where n = number of vehicles * 2 (for start</span>
|
|
<span class="sd"> and end nodes) + number of non-start or end nodes.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_RoutingIndexManager</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_RoutingIndexManager</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumberOfNodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_GetNumberOfNodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumberOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_GetNumberOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumberOfIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_GetNumberOfIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetStartIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_GetStartIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetEndIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_GetEndIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NodeToIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">:</span> <span class="s2">"operations_research::RoutingIndexManager::NodeIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_NodeToIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IndexToNode</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingIndexManager::NodeIndex"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_IndexToNode</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register RoutingIndexManager in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_swigregister</span><span class="p">(</span><span class="n">RoutingIndexManager</span><span class="p">)</span>
|
|
|
|
|
|
<span class="k">def</span> <span class="nf">DefaultRoutingModelParameters</span><span class="p">()</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModelParameters"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultRoutingModelParameters</span><span class="p">()</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DefaultRoutingSearchParameters</span><span class="p">()</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingSearchParameters"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultRoutingSearchParameters</span><span class="p">()</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FindErrorInRoutingSearchParameters</span><span class="p">(</span><span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns an empty std::string if the routing search parameters are valid, and</span>
|
|
<span class="sd"> a non-empty, human readable error description if they're not.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">FindErrorInRoutingSearchParameters</span><span class="p">(</span><span class="n">search_parameters</span><span class="p">)</span>
|
|
<span class="n">BOOL_UNSPECIFIED</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BOOL_UNSPECIFIED</span>
|
|
<span class="n">BOOL_FALSE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BOOL_FALSE</span>
|
|
<span class="n">BOOL_TRUE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BOOL_TRUE</span>
|
|
<span class="k">class</span> <span class="nc">RoutingModel</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
<span class="n">ROUTING_NOT_SOLVED</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ROUTING_NOT_SOLVED</span>
|
|
<span class="sa">r</span><span class="sd">""" Problem not solved yet (before calling RoutingModel::Solve())."""</span>
|
|
<span class="n">ROUTING_SUCCESS</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ROUTING_SUCCESS</span>
|
|
<span class="sa">r</span><span class="sd">""" Problem solved successfully after calling RoutingModel::Solve()."""</span>
|
|
<span class="n">ROUTING_FAIL</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ROUTING_FAIL</span>
|
|
<span class="sa">r</span><span class="sd">""" No solution found to the problem after calling RoutingModel::Solve()."""</span>
|
|
<span class="n">ROUTING_FAIL_TIMEOUT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ROUTING_FAIL_TIMEOUT</span>
|
|
<span class="sa">r</span><span class="sd">""" Time limit reached before finding a solution with RoutingModel::Solve()."""</span>
|
|
<span class="n">ROUTING_INVALID</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ROUTING_INVALID</span>
|
|
<span class="sa">r</span><span class="sd">""" Model, model parameters or flags are not valid."""</span>
|
|
<span class="n">PICKUP_AND_DELIVERY_NO_ORDER</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_PICKUP_AND_DELIVERY_NO_ORDER</span>
|
|
<span class="sa">r</span><span class="sd">""" Any precedence is accepted."""</span>
|
|
<span class="n">PICKUP_AND_DELIVERY_LIFO</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_PICKUP_AND_DELIVERY_LIFO</span>
|
|
<span class="sa">r</span><span class="sd">""" Deliveries must be performed in reverse order of pickups."""</span>
|
|
<span class="n">PICKUP_AND_DELIVERY_FIFO</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_PICKUP_AND_DELIVERY_FIFO</span>
|
|
<span class="sa">r</span><span class="sd">""" Deliveries must be performed in the same order as pickups."""</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_RoutingModel</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_RoutingModel</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RegisterUnaryTransitVector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Registers 'callback' and returns its index."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterUnaryTransitVector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RegisterUnaryTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::TransitCallback1"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterUnaryTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RegisterPositiveUnaryTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::TransitCallback1"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterPositiveUnaryTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RegisterTransitMatrix</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterTransitMatrix</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RegisterTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::TransitCallback2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RegisterPositiveTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::TransitCallback2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterPositiveTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::TransitCallback2 const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_TransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">UnaryTransitCallbackOrNull</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::TransitCallback1 const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_UnaryTransitCallbackOrNull</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Model creation</span>
|
|
<span class="sd"> Methods to add dimensions to routes; dimensions represent quantities</span>
|
|
<span class="sd"> accumulated at nodes along the routes. They represent quantities such as</span>
|
|
<span class="sd"> weights or volumes carried along the route, or distance or times.</span>
|
|
<span class="sd"> Quantities at a node are represented by "cumul" variables and the increase</span>
|
|
<span class="sd"> or decrease of quantities between nodes are represented by "transit"</span>
|
|
<span class="sd"> variables. These variables are linked as follows:</span>
|
|
<span class="sd"> if j == next(i), cumul(j) = cumul(i) + transit(i) + slack(i)</span>
|
|
<span class="sd"> where slack is a positive slack variable (can represent waiting times for</span>
|
|
<span class="sd"> a time dimension).</span>
|
|
<span class="sd"> Setting the value of fix_start_cumul_to_zero to true will force the</span>
|
|
<span class="sd"> "cumul" variable of the start node of all vehicles to be equal to 0.</span>
|
|
<span class="sd"> Creates a dimension where the transit variable is constrained to be</span>
|
|
<span class="sd"> equal to evaluator(i, next(i)); 'slack_max' is the upper bound of the</span>
|
|
<span class="sd"> slack variable and 'capacity' is the upper bound of the cumul variables.</span>
|
|
<span class="sd"> 'name' is the name used to reference the dimension; this name is used to</span>
|
|
<span class="sd"> get cumul and transit variables from the routing model.</span>
|
|
<span class="sd"> Returns false if a dimension with the same name has already been created</span>
|
|
<span class="sd"> (and doesn't create the new dimension).</span>
|
|
<span class="sd"> Takes ownership of the callback 'evaluator'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddDimensionWithVehicleTransits</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_indices</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddDimensionWithVehicleTransits</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_indices</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddDimensionWithVehicleCapacity</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle_capacities</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddDimensionWithVehicleCapacity</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">,</span> <span class="n">vehicle_capacities</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddDimensionWithVehicleTransitAndCapacity</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_indices</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle_capacities</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddDimensionWithVehicleTransitAndCapacity</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_indices</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">,</span> <span class="n">vehicle_capacities</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddConstantDimensionWithSlack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::pair< int,bool >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a dimension where the transit variable is constrained to be</span>
|
|
<span class="sd"> equal to 'value'; 'capacity' is the upper bound of the cumul variables.</span>
|
|
<span class="sd"> 'name' is the name used to reference the dimension; this name is used to</span>
|
|
<span class="sd"> get cumul and transit variables from the routing model.</span>
|
|
<span class="sd"> Returns a pair consisting of an index to the registered unary transit</span>
|
|
<span class="sd"> callback and a bool denoting whether the dimension has been created.</span>
|
|
<span class="sd"> It is false if a dimension with the same name has already been created</span>
|
|
<span class="sd"> (and doesn't create the new dimension but still register a new callback).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddConstantDimensionWithSlack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::pair< int,bool >"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddVectorDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::pair< int,bool >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a dimension where the transit variable is constrained to be</span>
|
|
<span class="sd"> equal to 'values[i]' for node i; 'capacity' is the upper bound of</span>
|
|
<span class="sd"> the cumul variables. 'name' is the name used to reference the dimension;</span>
|
|
<span class="sd"> this name is used to get cumul and transit variables from the routing</span>
|
|
<span class="sd"> model.</span>
|
|
<span class="sd"> Returns a pair consisting of an index to the registered unary transit</span>
|
|
<span class="sd"> callback and a bool denoting whether the dimension has been created.</span>
|
|
<span class="sd"> It is false if a dimension with the same name has already been created</span>
|
|
<span class="sd"> (and doesn't create the new dimension but still register a new callback).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddVectorDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddMatrixDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > >"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::pair< int,bool >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a dimension where the transit variable is constrained to be</span>
|
|
<span class="sd"> equal to 'values[i][next(i)]' for node i; 'capacity' is the upper bound of</span>
|
|
<span class="sd"> the cumul variables. 'name' is the name used to reference the dimension;</span>
|
|
<span class="sd"> this name is used to get cumul and transit variables from the routing</span>
|
|
<span class="sd"> model.</span>
|
|
<span class="sd"> Returns a pair consisting of an index to the registered transit callback</span>
|
|
<span class="sd"> and a bool denoting whether the dimension has been created.</span>
|
|
<span class="sd"> It is false if a dimension with the same name has already been created</span>
|
|
<span class="sd"> (and doesn't create the new dimension but still register a new callback).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddMatrixDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MakePathSpansAndTotalSlacks</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">,</span> <span class="n">spans</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * >"</span><span class="p">,</span> <span class="n">total_slacks</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> For every vehicle of the routing model:</span>
|
|
<span class="sd"> - if total_slacks[vehicle] is not nullptr, constrains it to be the sum of</span>
|
|
<span class="sd"> slacks on that vehicle, that is,</span>
|
|
<span class="sd"> dimension->CumulVar(end) - dimension->CumulVar(start) -</span>
|
|
<span class="sd"> sum_{node in path of vehicle} dimension->FixedTransitVar(node).</span>
|
|
<span class="sd"> - if spans[vehicle] is not nullptr, constrains it to be</span>
|
|
<span class="sd"> dimension->CumulVar(end) - dimension->CumulVar(start)</span>
|
|
<span class="sd"> This does stronger propagation than a decomposition, and takes breaks into</span>
|
|
<span class="sd"> account.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_MakePathSpansAndTotalSlacks</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">,</span> <span class="n">spans</span><span class="p">,</span> <span class="n">total_slacks</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetAllDimensionNames</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::string >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Outputs the names of all dimensions added to the routing engine."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetAllDimensionNames</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDimensions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< operations_research::RoutingDimension * > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns all dimensions of the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDimensions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDimensionsWithSoftOrSpanCosts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< operations_research::RoutingDimension * >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns dimensions with soft or vehicle span costs."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDimensionsWithSoftOrSpanCosts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetGlobalDimensionCumulOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::unique_ptr< operations_research::GlobalDimensionCumulOptimizer > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns [global|local]_dimension_optimizers_, which are empty if the model</span>
|
|
<span class="sd"> has not been closed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetGlobalDimensionCumulOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetGlobalDimensionCumulMPOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::unique_ptr< operations_research::GlobalDimensionCumulOptimizer > > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetGlobalDimensionCumulMPOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetLocalDimensionCumulOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::unique_ptr< operations_research::LocalDimensionCumulOptimizer > > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetLocalDimensionCumulOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetLocalDimensionCumulMPOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::unique_ptr< operations_research::LocalDimensionCumulOptimizer > > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetLocalDimensionCumulMPOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetMutableGlobalCumulOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::GlobalDimensionCumulOptimizer *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the global/local dimension cumul optimizer for a given dimension,</span>
|
|
<span class="sd"> or nullptr if there is none.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMutableGlobalCumulOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetMutableGlobalCumulMPOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::GlobalDimensionCumulOptimizer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMutableGlobalCumulMPOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetMutableLocalCumulOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalDimensionCumulOptimizer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMutableLocalCumulOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetMutableLocalCumulMPOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalDimensionCumulOptimizer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMutableLocalCumulMPOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if a dimension exists for a given dimension name."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDimensionOrDie</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingDimension const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns a dimension from its name. Dies if the dimension does not exist."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDimensionOrDie</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetMutableDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingDimension *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a dimension from its name. Returns nullptr if the dimension does</span>
|
|
<span class="sd"> not exist.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMutableDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPrimaryConstrainedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Set the given dimension as "primary constrained". As of August 2013, this</span>
|
|
<span class="sd"> is only used by ArcIsMoreConstrainedThanArc().</span>
|
|
<span class="sd"> "dimension" must be the name of an existing dimension, or be empty, in</span>
|
|
<span class="sd"> which case there will not be a primary dimension after this call.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetPrimaryConstrainedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetPrimaryConstrainedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Get the primary constrained dimension, or an empty string if it is unset."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetPrimaryConstrainedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDimensionResourceGroupIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the indices of resource groups for this dimension. This method can</span>
|
|
<span class="sd"> only be called after the model has been closed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDimensionResourceGroupIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddDisjunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::DisjunctionIndex"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a disjunction constraint on the indices: exactly 'max_cardinality' of</span>
|
|
<span class="sd"> the indices are active. Start and end indices of any vehicle cannot be</span>
|
|
<span class="sd"> part of a disjunction.</span>
|
|
|
|
<span class="sd"> If a penalty is given, at most 'max_cardinality' of the indices can be</span>
|
|
<span class="sd"> active, and if less are active, 'penalty' is payed per inactive index.</span>
|
|
<span class="sd"> This is equivalent to adding the constraint:</span>
|
|
<span class="sd"> p + Sum(i)active[i] == max_cardinality</span>
|
|
<span class="sd"> where p is an integer variable, and the following cost to the cost</span>
|
|
<span class="sd"> function:</span>
|
|
<span class="sd"> p * penalty.</span>
|
|
<span class="sd"> 'penalty' must be positive to make the disjunction optional; a negative</span>
|
|
<span class="sd"> penalty will force 'max_cardinality' indices of the disjunction to be</span>
|
|
<span class="sd"> performed, and therefore p == 0.</span>
|
|
<span class="sd"> Note: passing a vector with a single index will model an optional index</span>
|
|
<span class="sd"> with a penalty cost if it is not visited.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddDisjunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDisjunctionIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< operations_research::RoutingModel::DisjunctionIndex > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the indices of the disjunctions to which an index belongs."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDisjunctionIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDisjunctionPenalty</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::DisjunctionIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the penalty of the node disjunction of index 'index'."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDisjunctionPenalty</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDisjunctionMaxCardinality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::DisjunctionIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the maximum number of possible active nodes of the node</span>
|
|
<span class="sd"> disjunction of index 'index'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDisjunctionMaxCardinality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumberOfDisjunctions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of node disjunctions in the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNumberOfDisjunctions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetPerfectBinaryDisjunctions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::pair< int64_t,int64_t > >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the list of all perfect binary disjunctions, as pairs of variable</span>
|
|
<span class="sd"> indices: a disjunction is "perfect" when its variables do not appear in</span>
|
|
<span class="sd"> any other disjunction. Each pair is sorted (lowest variable index first),</span>
|
|
<span class="sd"> and the output vector is also sorted (lowest pairs first).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetPerfectBinaryDisjunctions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IgnoreDisjunctionsAlreadyForcedToZero</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> SPECIAL: Makes the solver ignore all the disjunctions whose active</span>
|
|
<span class="sd"> variables are all trivially zero (i.e. Max() == 0), by setting their</span>
|
|
<span class="sd"> max_cardinality to 0.</span>
|
|
<span class="sd"> This can be useful when using the BaseBinaryDisjunctionNeighborhood</span>
|
|
<span class="sd"> operators, in the context of arc-based routing.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IgnoreDisjunctionsAlreadyForcedToZero</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddSoftSameVehicleConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">indices</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">,</span> <span class="n">cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a soft constraint to force a set of variable indices to be on the</span>
|
|
<span class="sd"> same vehicle. If all nodes are not on the same vehicle, each extra vehicle</span>
|
|
<span class="sd"> used adds 'cost' to the cost function.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddSoftSameVehicleConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">indices</span><span class="p">,</span> <span class="n">cost</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetAllowedVehiclesForIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicles</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets the vehicles which can visit a given node. If the node is in a</span>
|
|
<span class="sd"> disjunction, this will not prevent it from being unperformed.</span>
|
|
<span class="sd"> Specifying an empty vector of vehicles has no effect (all vehicles</span>
|
|
<span class="sd"> will be allowed to visit the node).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetAllowedVehiclesForIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicles</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsVehicleAllowedForIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if a vehicle is allowed to visit a given node."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IsVehicleAllowedForIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddPickupAndDelivery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pickup</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">delivery</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Notifies that index1 and index2 form a pair of nodes which should belong</span>
|
|
<span class="sd"> to the same route. This methods helps the search find better solutions,</span>
|
|
<span class="sd"> especially in the local search phase.</span>
|
|
<span class="sd"> It should be called each time you have an equality constraint linking</span>
|
|
<span class="sd"> the vehicle variables of two node (including for instance pickup and</span>
|
|
<span class="sd"> delivery problems):</span>
|
|
<span class="sd"> Solver* const solver = routing.solver();</span>
|
|
<span class="sd"> int64_t index1 = manager.NodeToIndex(node1);</span>
|
|
<span class="sd"> int64_t index2 = manager.NodeToIndex(node2);</span>
|
|
<span class="sd"> solver->AddConstraint(solver->MakeEquality(</span>
|
|
<span class="sd"> routing.VehicleVar(index1),</span>
|
|
<span class="sd"> routing.VehicleVar(index2)));</span>
|
|
<span class="sd"> routing.AddPickupAndDelivery(index1, index2);</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddPickupAndDelivery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pickup</span><span class="p">,</span> <span class="n">delivery</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddPickupAndDeliverySets</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pickup_disjunction</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::DisjunctionIndex"</span><span class="p">,</span> <span class="n">delivery_disjunction</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::DisjunctionIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as AddPickupAndDelivery but notifying that the performed node from</span>
|
|
<span class="sd"> the disjunction of index 'pickup_disjunction' is on the same route as the</span>
|
|
<span class="sd"> performed node from the disjunction of index 'delivery_disjunction'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddPickupAndDeliverySets</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pickup_disjunction</span><span class="p">,</span> <span class="n">delivery_disjunction</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetPickupIndexPairs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::pair< int,int > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns pairs for which the node is a pickup; the first element of each</span>
|
|
<span class="sd"> pair is the index in the pickup and delivery pairs list in which the</span>
|
|
<span class="sd"> pickup appears, the second element is its index in the pickups list.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetPickupIndexPairs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDeliveryIndexPairs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::pair< int,int > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Same as above for deliveries."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDeliveryIndexPairs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPickupAndDeliveryPolicyOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">policy</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::PickupAndDeliveryPolicy"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets the Pickup and delivery policy of all vehicles. It is equivalent to</span>
|
|
<span class="sd"> calling SetPickupAndDeliveryPolicyOfVehicle on all vehicles.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetPickupAndDeliveryPolicyOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">policy</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPickupAndDeliveryPolicyOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">policy</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::PickupAndDeliveryPolicy"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetPickupAndDeliveryPolicyOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">policy</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetPickupAndDeliveryPolicyOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::PickupAndDeliveryPolicy"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetPickupAndDeliveryPolicyOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumOfSingletonNodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the number of non-start/end nodes which do not appear in a</span>
|
|
<span class="sd"> pickup/delivery pair.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNumOfSingletonNodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="n">TYPE_ADDED_TO_VEHICLE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_TYPE_ADDED_TO_VEHICLE</span>
|
|
<span class="sa">r</span><span class="sd">""" When visited, the number of types 'T' on the vehicle increases by one."""</span>
|
|
<span class="n">ADDED_TYPE_REMOVED_FROM_VEHICLE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ADDED_TYPE_REMOVED_FROM_VEHICLE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> When visited, one instance of type 'T' previously added to the route</span>
|
|
<span class="sd"> (TYPE_ADDED_TO_VEHICLE), if any, is removed from the vehicle.</span>
|
|
<span class="sd"> If the type was not previously added to the route or all added instances</span>
|
|
<span class="sd"> have already been removed, this visit has no effect on the types.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">TYPE_ON_VEHICLE_UP_TO_VISIT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_TYPE_ON_VEHICLE_UP_TO_VISIT</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> With the following policy, the visit enforces that type 'T' is</span>
|
|
<span class="sd"> considered on the route from its start until this node is visited.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The visit doesn't have an impact on the number of types 'T' on the</span>
|
|
<span class="sd"> route, as it's (virtually) added and removed directly.</span>
|
|
<span class="sd"> This policy can be used for visits which are part of an incompatibility</span>
|
|
<span class="sd"> or requirement set without affecting the type count on the route.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetVisitType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">type_policy</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::VisitTypePolicy"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetVisitType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="nb">type</span><span class="p">,</span> <span class="n">type_policy</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetVisitType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVisitType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetSingleNodesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetSingleNodesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetPairIndicesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetPairIndicesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetVisitTypePolicy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::VisitTypePolicy"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVisitTypePolicy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CloseVisitTypes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This function should be called once all node visit types have been set and</span>
|
|
<span class="sd"> prior to adding any incompatibilities/requirements.</span>
|
|
<span class="sd"> "close" types.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CloseVisitTypes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumberOfVisitTypes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNumberOfVisitTypes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddHardTypeIncompatibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type1</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">type2</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Incompatibilities:</span>
|
|
<span class="sd"> Two nodes with "hard" incompatible types cannot share the same route at</span>
|
|
<span class="sd"> all, while with a "temporal" incompatibility they can't be on the same</span>
|
|
<span class="sd"> route at the same time.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddHardTypeIncompatibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type1</span><span class="p">,</span> <span class="n">type2</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddTemporalTypeIncompatibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type1</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">type2</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddTemporalTypeIncompatibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type1</span><span class="p">,</span> <span class="n">type2</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetHardTypeIncompatibilitiesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"absl::flat_hash_set< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns visit types incompatible with a given type."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetHardTypeIncompatibilitiesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetTemporalTypeIncompatibilitiesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"absl::flat_hash_set< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetTemporalTypeIncompatibilitiesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasHardTypeIncompatibilities</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true iff any hard (resp. temporal) type incompatibilities have</span>
|
|
<span class="sd"> been added to the model.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasHardTypeIncompatibilities</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasTemporalTypeIncompatibilities</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasTemporalTypeIncompatibilities</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddSameVehicleRequiredTypeAlternatives</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">:</span> <span class="s2">"absl::flat_hash_set< int >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Requirements:</span>
|
|
<span class="sd"> NOTE: As of 2019-04, cycles in the requirement graph are not supported,</span>
|
|
<span class="sd"> and lead to the dependent nodes being skipped if possible (otherwise</span>
|
|
<span class="sd"> the model is considered infeasible).</span>
|
|
<span class="sd"> The following functions specify that "dependent_type" requires at least</span>
|
|
<span class="sd"> one of the types in "required_type_alternatives".</span>
|
|
|
|
<span class="sd"> For same-vehicle requirements, a node of dependent type type_D requires at</span>
|
|
<span class="sd"> least one node of type type_R among the required alternatives on the same</span>
|
|
<span class="sd"> route.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddSameVehicleRequiredTypeAlternatives</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddRequiredTypeAlternativesWhenAddingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">:</span> <span class="s2">"absl::flat_hash_set< int >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> If type_D depends on type_R when adding type_D, any node_D of type_D and</span>
|
|
<span class="sd"> VisitTypePolicy TYPE_ADDED_TO_VEHICLE or</span>
|
|
<span class="sd"> TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED requires at least one type_R on its</span>
|
|
<span class="sd"> vehicle at the time node_D is visited.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddRequiredTypeAlternativesWhenAddingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddRequiredTypeAlternativesWhenRemovingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">:</span> <span class="s2">"absl::flat_hash_set< int >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The following requirements apply when visiting dependent nodes that remove</span>
|
|
<span class="sd"> their type from the route, i.e. type_R must be on the vehicle when type_D</span>
|
|
<span class="sd"> of VisitTypePolicy ADDED_TYPE_REMOVED_FROM_VEHICLE,</span>
|
|
<span class="sd"> TYPE_ON_VEHICLE_UP_TO_VISIT or TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED is</span>
|
|
<span class="sd"> visited.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddRequiredTypeAlternativesWhenRemovingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetSameVehicleRequiredTypeAlternativesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< absl::flat_hash_set< int > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the set of same-vehicle requirement alternatives for the given</span>
|
|
<span class="sd"> type.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetSameVehicleRequiredTypeAlternativesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetRequiredTypeAlternativesWhenAddingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< absl::flat_hash_set< int > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the set of requirement alternatives when adding the given type."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetRequiredTypeAlternativesWhenAddingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetRequiredTypeAlternativesWhenRemovingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< absl::flat_hash_set< int > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the set of requirement alternatives when removing the given type."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetRequiredTypeAlternativesWhenRemovingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasSameVehicleTypeRequirements</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true iff any same-route (resp. temporal) type requirements have</span>
|
|
<span class="sd"> been added to the model.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasSameVehicleTypeRequirements</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasTemporalTypeRequirements</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasTemporalTypeRequirements</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasTypeRegulations</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true iff the model has any incompatibilities or requirements set</span>
|
|
<span class="sd"> on node types.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasTypeRegulations</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">UnperformedPenalty</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Get the "unperformed" penalty of a node. This is only well defined if the</span>
|
|
<span class="sd"> node is only part of a single Disjunction, and that disjunction has a</span>
|
|
<span class="sd"> penalty. For forced active nodes returns max int64_t. In all other cases,</span>
|
|
<span class="sd"> this returns 0.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_UnperformedPenalty</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">UnperformedPenaltyOrValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">var_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as above except that it returns default_value instead of 0 when</span>
|
|
<span class="sd"> penalty is not well defined (default value is passed as first argument to</span>
|
|
<span class="sd"> simplify the usage of the method in a callback).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_UnperformedPenaltyOrValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default_value</span><span class="p">,</span> <span class="n">var_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDepot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the variable index of the first starting or ending node of all</span>
|
|
<span class="sd"> routes. If all routes start and end at the same node (single depot), this</span>
|
|
<span class="sd"> is the node returned.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDepot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMaximumNumberOfActiveVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">max_active_vehicles</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Constrains the maximum number of active vehicles, aka the number of</span>
|
|
<span class="sd"> vehicles which do not have an empty route. For instance, this can be used</span>
|
|
<span class="sd"> to limit the number of routes in the case where there are fewer drivers</span>
|
|
<span class="sd"> than vehicles and that the fleet of vehicle is heterogeneous.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetMaximumNumberOfActiveVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">max_active_vehicles</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetMaximumNumberOfActiveVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the maximum number of active vehicles."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMaximumNumberOfActiveVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetArcCostEvaluatorOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets the cost function of the model such that the cost of a segment of a</span>
|
|
<span class="sd"> route between node 'from' and 'to' is evaluator(from, to), whatever the</span>
|
|
<span class="sd"> route or vehicle performing the route.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetArcCostEvaluatorOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetArcCostEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Sets the cost function for a given vehicle route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetArcCostEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetFixedCostOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets the fixed cost of all vehicle routes. It is equivalent to calling</span>
|
|
<span class="sd"> SetFixedCostOfVehicle on all vehicle routes.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetFixedCostOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetFixedCostOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Sets the fixed cost of one vehicle route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetFixedCostOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetFixedCostOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the route fixed cost taken into account if the route of the</span>
|
|
<span class="sd"> vehicle is not empty, aka there's at least one node on the route other</span>
|
|
<span class="sd"> than the first and last nodes.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetFixedCostOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetAmortizedCostFactorsOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">linear_cost_factor</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">quadratic_cost_factor</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The following methods set the linear and quadratic cost factors of</span>
|
|
<span class="sd"> vehicles (must be positive values). The default value of these parameters</span>
|
|
<span class="sd"> is zero for all vehicles.</span>
|
|
|
|
<span class="sd"> When set, the cost_ of the model will contain terms aiming at reducing the</span>
|
|
<span class="sd"> number of vehicles used in the model, by adding the following to the</span>
|
|
<span class="sd"> objective for every vehicle v:</span>
|
|
<span class="sd"> INDICATOR(v used in the model) *</span>
|
|
<span class="sd"> [linear_cost_factor_of_vehicle_[v]</span>
|
|
<span class="sd"> - quadratic_cost_factor_of_vehicle_[v]*(square of length of route v)]</span>
|
|
<span class="sd"> i.e. for every used vehicle, we add the linear factor as fixed cost, and</span>
|
|
<span class="sd"> subtract the square of the route length multiplied by the quadratic</span>
|
|
<span class="sd"> factor. This second term aims at making the routes as dense as possible.</span>
|
|
|
|
<span class="sd"> Sets the linear and quadratic cost factor of all vehicles.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetAmortizedCostFactorsOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">linear_cost_factor</span><span class="p">,</span> <span class="n">quadratic_cost_factor</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetAmortizedCostFactorsOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">linear_cost_factor</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">quadratic_cost_factor</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Sets the linear and quadratic cost factor of the given vehicle."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetAmortizedCostFactorsOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">linear_cost_factor</span><span class="p">,</span> <span class="n">quadratic_cost_factor</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetAmortizedLinearCostFactorOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetAmortizedLinearCostFactorOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetAmortizedQuadraticCostFactorOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetAmortizedQuadraticCostFactorOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ConsiderEmptyRouteCostsForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">consider_costs</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ConsiderEmptyRouteCostsForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">consider_costs</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AreEmptyRouteCostsConsideredForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AreEmptyRouteCostsConsideredForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetFirstSolutionEvaluator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Gets/sets the evaluator used during the search. Only relevant when</span>
|
|
<span class="sd"> RoutingSearchParameters.first_solution_strategy = EVALUATOR_STRATEGY.</span>
|
|
<span class="sd"> Takes ownership of evaluator.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetFirstSolutionEvaluator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddLocalSearchOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ls_operator</span><span class="p">:</span> <span class="s2">"LocalSearchOperator"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a local search operator to the set of operators used to solve the</span>
|
|
<span class="sd"> vehicle routing problem.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddLocalSearchOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ls_operator</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddSearchMonitor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">monitor</span><span class="p">:</span> <span class="s2">"SearchMonitor"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Adds a search monitor to the search used to solve the routing model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddSearchMonitor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">monitor</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddAtSolutionCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"std::function< void () >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a callback called each time a solution is found during the search.</span>
|
|
<span class="sd"> This is a shortcut to creating a monitor to call the callback on</span>
|
|
<span class="sd"> AtSolution() and adding it with AddSearchMonitor.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddAtSolutionCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddVariableMinimizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a variable to minimize in the solution finalizer. The solution</span>
|
|
<span class="sd"> finalizer is called each time a solution is found during the search and</span>
|
|
<span class="sd"> allows to instantiate secondary variables (such as dimension cumul</span>
|
|
<span class="sd"> variables).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddVariableMinimizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddVariableMaximizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a variable to maximize in the solution finalizer (see above for</span>
|
|
<span class="sd"> information on the solution finalizer).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddVariableMaximizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddWeightedVariableMinimizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a variable to minimize in the solution finalizer, with a weighted</span>
|
|
<span class="sd"> priority: the higher the more priority it has.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddWeightedVariableMinimizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">cost</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddVariableTargetToFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">target</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Add a variable to set the closest possible to the target value in the</span>
|
|
<span class="sd"> solution finalizer.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddVariableTargetToFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">target</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CloseModel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Closes the current routing model; after this method is called, no</span>
|
|
<span class="sd"> modification to the model can be done, but RoutesToAssignment becomes</span>
|
|
<span class="sd"> available. Note that CloseModel() is automatically called by Solve() and</span>
|
|
<span class="sd"> other methods that produce solution.</span>
|
|
<span class="sd"> This is equivalent to calling</span>
|
|
<span class="sd"> CloseModelWithParameters(DefaultRoutingSearchParameters()).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CloseModel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CloseModelWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as above taking search parameters (as of 10/2015 some the parameters</span>
|
|
<span class="sd"> have to be set when closing the model).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CloseModelWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Solve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Solves the current routing model; closes the current model.</span>
|
|
<span class="sd"> This is equivalent to calling</span>
|
|
<span class="sd"> SolveWithParameters(DefaultRoutingSearchParameters())</span>
|
|
<span class="sd"> or</span>
|
|
<span class="sd"> SolveFromAssignmentWithParameters(assignment,</span>
|
|
<span class="sd"> DefaultRoutingSearchParameters()).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_Solve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolveWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">,</span> <span class="n">solutions</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::Assignment const * > *"</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Solves the current routing model with the given parameters. If 'solutions'</span>
|
|
<span class="sd"> is specified, it will contain the k best solutions found during the search</span>
|
|
<span class="sd"> (from worst to best, including the one returned by this method), where k</span>
|
|
<span class="sd"> corresponds to the 'number_of_solutions_to_collect' in</span>
|
|
<span class="sd"> 'search_parameters'. Note that the Assignment returned by the method and</span>
|
|
<span class="sd"> the ones in solutions are owned by the underlying solver and should not be</span>
|
|
<span class="sd"> deleted.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SolveWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">,</span> <span class="n">solutions</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolveFromAssignmentWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">,</span> <span class="n">solutions</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::Assignment const * > *"</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as above, except that if assignment is not null, it will be used as</span>
|
|
<span class="sd"> the initial solution.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SolveFromAssignmentWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">,</span> <span class="n">solutions</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolveFromAssignmentsWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignments</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::Assignment const * > const &"</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">,</span> <span class="n">solutions</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::Assignment const * > *"</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as above but will try all assignments in order as first solutions</span>
|
|
<span class="sd"> until one succeeds.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SolveFromAssignmentsWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignments</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">,</span> <span class="n">solutions</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetAssignmentFromOtherModelAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">target_assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">source_model</span><span class="p">:</span> <span class="s2">"RoutingModel"</span><span class="p">,</span> <span class="n">source_assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Given a "source_model" and its "source_assignment", resets</span>
|
|
<span class="sd"> "target_assignment" with the IntVar variables (nexts_, and vehicle_vars_</span>
|
|
<span class="sd"> if costs aren't homogeneous across vehicles) of "this" model, with the</span>
|
|
<span class="sd"> values set according to those in "other_assignment".</span>
|
|
<span class="sd"> The objective_element of target_assignment is set to this->cost_.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetAssignmentFromOtherModelAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">target_assignment</span><span class="p">,</span> <span class="n">source_model</span><span class="p">,</span> <span class="n">source_assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ComputeLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Computes a lower bound to the routing problem solving a linear assignment</span>
|
|
<span class="sd"> problem. The routing model must be closed before calling this method.</span>
|
|
<span class="sd"> Note that problems with node disjunction constraints (including optional</span>
|
|
<span class="sd"> nodes) and non-homogenous costs are not supported (the method returns 0 in</span>
|
|
<span class="sd"> these cases).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ComputeLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">status</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::Status"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the current status of the routing model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_status</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ApplyLocks</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locks</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Applies a lock chain to the next search. 'locks' represents an ordered</span>
|
|
<span class="sd"> vector of nodes representing a partial route which will be fixed during</span>
|
|
<span class="sd"> the next search; it will constrain next variables such that:</span>
|
|
<span class="sd"> next[locks[i]] == locks[i+1].</span>
|
|
|
|
<span class="sd"> Returns the next variable at the end of the locked chain; this variable is</span>
|
|
<span class="sd"> not locked. An assignment containing the locks can be obtained by calling</span>
|
|
<span class="sd"> PreAssignment().</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ApplyLocks</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locks</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ApplyLocksToAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locks</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > > const &"</span><span class="p">,</span> <span class="n">close_routes</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Applies lock chains to all vehicles to the next search, such that locks[p]</span>
|
|
<span class="sd"> is the lock chain for route p. Returns false if the locks do not contain</span>
|
|
<span class="sd"> valid routes; expects that the routes do not contain the depots,</span>
|
|
<span class="sd"> i.e. there are empty vectors in place of empty routes.</span>
|
|
<span class="sd"> If close_routes is set to true, adds the end nodes to the route of each</span>
|
|
<span class="sd"> vehicle and deactivates other nodes.</span>
|
|
<span class="sd"> An assignment containing the locks can be obtained by calling</span>
|
|
<span class="sd"> PreAssignment().</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ApplyLocksToAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locks</span><span class="p">,</span> <span class="n">close_routes</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *const"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns an assignment used to fix some of the variables of the problem.</span>
|
|
<span class="sd"> In practice, this assignment locks partial routes of the problem. This</span>
|
|
<span class="sd"> can be used in the context of locking the parts of the routes which have</span>
|
|
<span class="sd"> already been driven in online routing problems.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_PreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MutablePreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_MutablePreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WriteAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Writes the current solution to a file containing an AssignmentProto.</span>
|
|
<span class="sd"> Returns false if the file cannot be opened or if there is no current</span>
|
|
<span class="sd"> solution.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_WriteAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ReadAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Reads an assignment from a file and returns the current solution.</span>
|
|
<span class="sd"> Returns nullptr if the file cannot be opened or if the assignment is not</span>
|
|
<span class="sd"> valid.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ReadAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RestoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Restores an assignment as a solution in the routing model and returns the</span>
|
|
<span class="sd"> new solution. Returns nullptr if the assignment is not valid.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RestoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ReadAssignmentFromRoutes</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">routes</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > > const &"</span><span class="p">,</span> <span class="n">ignore_inactive_indices</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Restores the routes as the current solution. Returns nullptr if the</span>
|
|
<span class="sd"> solution cannot be restored (routes do not contain a valid solution). Note</span>
|
|
<span class="sd"> that calling this method will run the solver to assign values to the</span>
|
|
<span class="sd"> dimension variables; this may take considerable amount of time, especially</span>
|
|
<span class="sd"> when using dimensions with slack.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ReadAssignmentFromRoutes</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">routes</span><span class="p">,</span> <span class="n">ignore_inactive_indices</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RoutesToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">routes</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > > const &"</span><span class="p">,</span> <span class="n">ignore_inactive_indices</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">close_routes</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Fills an assignment from a specification of the routes of the</span>
|
|
<span class="sd"> vehicles. The routes are specified as lists of variable indices that</span>
|
|
<span class="sd"> appear on the routes of the vehicles. The indices of the outer vector in</span>
|
|
<span class="sd"> 'routes' correspond to vehicles IDs, the inner vector contains the</span>
|
|
<span class="sd"> variable indices on the routes for the given vehicle. The inner vectors</span>
|
|
<span class="sd"> must not contain the start and end indices, as these are determined by the</span>
|
|
<span class="sd"> routing model. Sets the value of NextVars in the assignment, adding the</span>
|
|
<span class="sd"> variables to the assignment if necessary. The method does not touch other</span>
|
|
<span class="sd"> variables in the assignment. The method can only be called after the model</span>
|
|
<span class="sd"> is closed. With ignore_inactive_indices set to false, this method will</span>
|
|
<span class="sd"> fail (return nullptr) in case some of the route contain indices that are</span>
|
|
<span class="sd"> deactivated in the model; when set to true, these indices will be</span>
|
|
<span class="sd"> skipped. Returns true if routes were successfully</span>
|
|
<span class="sd"> loaded. However, such assignment still might not be a valid</span>
|
|
<span class="sd"> solution to the routing problem due to more complex constraints;</span>
|
|
<span class="sd"> it is advisible to call solver()->CheckSolution() afterwards.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RoutesToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">routes</span><span class="p">,</span> <span class="n">ignore_inactive_indices</span><span class="p">,</span> <span class="n">close_routes</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AssignmentToRoutes</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">routes</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > > *const"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Converts the solution in the given assignment to routes for all vehicles.</span>
|
|
<span class="sd"> Expects that assignment contains a valid solution (i.e. routes for all</span>
|
|
<span class="sd"> vehicles end with an end index for that vehicle).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AssignmentToRoutes</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">routes</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CompactAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Converts the solution in the given assignment to routes for all vehicles.</span>
|
|
<span class="sd"> If the returned vector is route_indices, route_indices[i][j] is the index</span>
|
|
<span class="sd"> for jth location visited on route i. Note that contrary to</span>
|
|
<span class="sd"> AssignmentToRoutes, the vectors do include start and end locations.</span>
|
|
<span class="sd"> Returns a compacted version of the given assignment, in which all vehicles</span>
|
|
<span class="sd"> with id lower or equal to some N have non-empty routes, and all vehicles</span>
|
|
<span class="sd"> with id greater than N have empty routes. Does not take ownership of the</span>
|
|
<span class="sd"> returned object.</span>
|
|
<span class="sd"> If found, the cost of the compact assignment is the same as in the</span>
|
|
<span class="sd"> original assignment and it preserves the values of 'active' variables.</span>
|
|
<span class="sd"> Returns nullptr if a compact assignment was not found.</span>
|
|
<span class="sd"> This method only works in homogenous mode, and it only swaps equivalent</span>
|
|
<span class="sd"> vehicles (vehicles with the same start and end nodes). When creating the</span>
|
|
<span class="sd"> compact assignment, the empty plan is replaced by the route assigned to</span>
|
|
<span class="sd"> the compatible vehicle with the highest id. Note that with more complex</span>
|
|
<span class="sd"> constraints on vehicle variables, this method might fail even if a compact</span>
|
|
<span class="sd"> solution exists.</span>
|
|
<span class="sd"> This method changes the vehicle and dimension variables as necessary.</span>
|
|
<span class="sd"> While compacting the solution, only basic checks on vehicle variables are</span>
|
|
<span class="sd"> performed; if one of these checks fails no attempts to repair it are made</span>
|
|
<span class="sd"> (instead, the method returns nullptr).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CompactAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CompactAndCheckAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as CompactAssignment() but also checks the validity of the final</span>
|
|
<span class="sd"> compact solution; if it is not valid, no attempts to repair it are made</span>
|
|
<span class="sd"> (instead, the method returns nullptr).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CompactAndCheckAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Adds an extra variable to the vehicle routing assignment."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddIntervalToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddIntervalToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PackCumulsOfOptimizerDimensionsFromAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">original_assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">duration_limit</span><span class="p">:</span> <span class="s2">"absl::Duration"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> For every dimension in the model with an optimizer in</span>
|
|
<span class="sd"> local/global_dimension_optimizers_, this method tries to pack the cumul</span>
|
|
<span class="sd"> values of the dimension, such that:</span>
|
|
<span class="sd"> - The cumul costs (span costs, soft lower and upper bound costs, etc) are</span>
|
|
<span class="sd"> minimized.</span>
|
|
<span class="sd"> - The cumuls of the ends of the routes are minimized for this given</span>
|
|
<span class="sd"> minimal cumul cost.</span>
|
|
<span class="sd"> - Given these minimal end cumuls, the route start cumuls are maximized.</span>
|
|
<span class="sd"> Returns the assignment resulting from allocating these packed cumuls with</span>
|
|
<span class="sd"> the solver, and nullptr if these cumuls could not be set by the solver.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_PackCumulsOfOptimizerDimensionsFromAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">original_assignment</span><span class="p">,</span> <span class="n">duration_limit</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddLocalSearchFilter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">filter</span><span class="p">:</span> <span class="s2">"LocalSearchFilter"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a custom local search filter to the list of filters used to speed up</span>
|
|
<span class="sd"> local search by pruning unfeasible variable assignments.</span>
|
|
<span class="sd"> Calling this method after the routing model has been closed (CloseModel()</span>
|
|
<span class="sd"> or Solve() has been called) has no effect.</span>
|
|
<span class="sd"> The routing model does not take ownership of the filter.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddLocalSearchFilter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">filter</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Model inspection.</span>
|
|
<span class="sd"> Returns the variable index of the starting node of a vehicle route.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">End</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the variable index of the ending node of a vehicle route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_End</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if 'index' represents the first node of a route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IsStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if 'index' represents the last node of a route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IsEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VehicleIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the vehicle of the given start/end index, and -1 if the given</span>
|
|
<span class="sd"> index is not a vehicle start/end.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_VehicleIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Next</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Assignment inspection</span>
|
|
<span class="sd"> Returns the variable index of the node directly after the node</span>
|
|
<span class="sd"> corresponding to 'index' in 'assignment'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_Next</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsVehicleUsed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if the route of 'vehicle' is non empty in 'assignment'."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IsVehicleUsed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NextVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the next variable of the node corresponding to index. Note that</span>
|
|
<span class="sd"> NextVar(index) == index is equivalent to ActiveVar(index) == 0.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_NextVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ActiveVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the active variable of the node corresponding to index."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ActiveVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ActiveVehicleVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the active variable of the vehicle. It will be equal to 1 iff the</span>
|
|
<span class="sd"> route of the vehicle is not empty, 0 otherwise.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ActiveVehicleVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VehicleCostsConsideredVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the variable specifying whether or not costs are considered for</span>
|
|
<span class="sd"> vehicle.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_VehicleCostsConsideredVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VehicleVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the vehicle variable of the node corresponding to index. Note that</span>
|
|
<span class="sd"> VehicleVar(index) == -1 is equivalent to ActiveVar(index) == 0.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_VehicleVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CostVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the global cost variable which is being minimized."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CostVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetArcCostForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost of the transit arc between two nodes for a given vehicle.</span>
|
|
<span class="sd"> Input are variable indices of node. This returns 0 if vehicle < 0.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetArcCostForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CostsAreHomogeneousAcrossVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Whether costs are homogeneous across all vehicles."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CostsAreHomogeneousAcrossVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetHomogeneousCost</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost of the segment between two nodes supposing all vehicle</span>
|
|
<span class="sd"> costs are the same (returns the cost for the first vehicle otherwise).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetHomogeneousCost</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetArcCostForFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost of the arc in the context of the first solution strategy.</span>
|
|
<span class="sd"> This is typically a simplification of the actual cost; see the .cc.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetArcCostForFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetArcCostForClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">cost_class_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost of the segment between two nodes for a given cost</span>
|
|
<span class="sd"> class. Input are variable indices of nodes and the cost class.</span>
|
|
<span class="sd"> Unlike GetArcCostForVehicle(), if cost_class is kNoCost, then the</span>
|
|
<span class="sd"> returned cost won't necessarily be zero: only some of the components</span>
|
|
<span class="sd"> of the cost that depend on the cost class will be omited. See the code</span>
|
|
<span class="sd"> for details.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetArcCostForClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">,</span> <span class="n">cost_class_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetCostClassIndexOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::CostClassIndex"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Get the cost class index of the given vehicle."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetCostClassIndexOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasVehicleWithCostClassIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost_class_index</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::CostClassIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true iff the model contains a vehicle with the given</span>
|
|
<span class="sd"> cost_class_index.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasVehicleWithCostClassIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost_class_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetCostClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of different cost classes in the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetCostClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNonZeroCostClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Ditto, minus the 'always zero', built-in cost class."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNonZeroCostClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetVehicleClassIndexOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::VehicleClassIndex"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVehicleClassIndexOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetVehicleOfClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle_class</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::VehicleClassIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a vehicle of the given vehicle class, and -1 if there are no</span>
|
|
<span class="sd"> vehicles for this class.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVehicleOfClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle_class</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetVehicleClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of different vehicle classes in the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVehicleClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetSameVehicleIndicesOfIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns variable indices of nodes constrained to be on the same route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetSameVehicleIndicesOfIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetVehicleTypeContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::VehicleTypeContainer const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVehicleTypeContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ArcIsMoreConstrainedThanArc</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_from</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to1</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to2</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns whether the arc from->to1 is more constrained than from->to2,</span>
|
|
<span class="sd"> taking into account, in order:</span>
|
|
<span class="sd"> - whether the destination node isn't an end node</span>
|
|
<span class="sd"> - whether the destination node is mandatory</span>
|
|
<span class="sd"> - whether the destination node is bound to the same vehicle as the source</span>
|
|
<span class="sd"> - the "primary constrained" dimension (see SetPrimaryConstrainedDimension)</span>
|
|
<span class="sd"> It then breaks ties using, in order:</span>
|
|
<span class="sd"> - the arc cost (taking unperformed penalties into account)</span>
|
|
<span class="sd"> - the size of the vehicle vars of "to1" and "to2" (lowest size wins)</span>
|
|
<span class="sd"> - the value: the lowest value of the indices to1 and to2 wins.</span>
|
|
<span class="sd"> See the .cc for details.</span>
|
|
<span class="sd"> The more constrained arc is typically preferable when building a</span>
|
|
<span class="sd"> first solution. This method is intended to be used as a callback for the</span>
|
|
<span class="sd"> BestValueByComparisonSelector value selector.</span>
|
|
<span class="sd"> Args:</span>
|
|
<span class="sd"> from: the variable index of the source node</span>
|
|
<span class="sd"> to1: the variable index of the first candidate destination node.</span>
|
|
<span class="sd"> to2: the variable index of the second candidate destination node.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ArcIsMoreConstrainedThanArc</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_from</span><span class="p">,</span> <span class="n">to1</span><span class="p">,</span> <span class="n">to2</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugOutputAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution_assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">dimension_to_print</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Print some debugging information about an assignment, including the</span>
|
|
<span class="sd"> feasible intervals of the CumulVar for dimension "dimension_to_print"</span>
|
|
<span class="sd"> at each step of the routes.</span>
|
|
<span class="sd"> If "dimension_to_print" is omitted, all dimensions will be printed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_DebugOutputAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution_assignment</span><span class="p">,</span> <span class="n">dimension_to_print</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Solver *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a vector cumul_bounds, for which cumul_bounds[i][j] is a pair</span>
|
|
<span class="sd"> containing the minimum and maximum of the CumulVar of the jth node on</span>
|
|
<span class="sd"> route i.</span>
|
|
<span class="sd"> - cumul_bounds[i][j].first is the minimum.</span>
|
|
<span class="sd"> - cumul_bounds[i][j].second is the maximum.</span>
|
|
<span class="sd"> Returns the underlying constraint solver. Can be used to add extra</span>
|
|
<span class="sd"> constraints and/or modify search algorithms.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CheckLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if the search limit has been crossed."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CheckLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RemainingTime</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"absl::Duration"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the time left in the search limit."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RemainingTime</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">nodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sizes and indices</span>
|
|
<span class="sd"> Returns the number of nodes in the model.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_nodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">vehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of vehicle routes in the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_vehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of next variables in the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumberOfDecisionsInFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns statistics on first solution search, number of decisions sent to</span>
|
|
<span class="sd"> filters, number of decisions rejected by filters.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNumberOfDecisionsInFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumberOfRejectsInFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNumberOfRejectsInFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetAutomaticFirstSolutionStrategy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::FirstSolutionStrategy::Value"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the automatic first solution strategy selected."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetAutomaticFirstSolutionStrategy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsMatchingModel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if a vehicle/node matching problem is detected."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IsMatchingModel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MakeGuidedSlackFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">,</span> <span class="n">initializer</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The next few members are in the public section only for testing purposes.</span>
|
|
|
|
<span class="sd"> MakeGuidedSlackFinalizer creates a DecisionBuilder for the slacks of a</span>
|
|
<span class="sd"> dimension using a callback to choose which values to start with.</span>
|
|
<span class="sd"> The finalizer works only when all next variables in the model have</span>
|
|
<span class="sd"> been fixed. It has the following two characteristics:</span>
|
|
<span class="sd"> 1. It follows the routes defined by the nexts variables when choosing a</span>
|
|
<span class="sd"> variable to make a decision on.</span>
|
|
<span class="sd"> 2. When it comes to choose a value for the slack of node i, the decision</span>
|
|
<span class="sd"> builder first calls the callback with argument i, and supposingly the</span>
|
|
<span class="sd"> returned value is x it creates decisions slack[i] = x, slack[i] = x +</span>
|
|
<span class="sd"> 1, slack[i] = x - 1, slack[i] = x + 2, etc.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_MakeGuidedSlackFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">,</span> <span class="n">initializer</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MakeSelfDependentDimensionFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> MakeSelfDependentDimensionFinalizer is a finalizer for the slacks of a</span>
|
|
<span class="sd"> self-dependent dimension. It makes an extensive use of the caches of the</span>
|
|
<span class="sd"> state dependent transits.</span>
|
|
<span class="sd"> In detail, MakeSelfDependentDimensionFinalizer returns a composition of a</span>
|
|
<span class="sd"> local search decision builder with a greedy descent operator for the cumul</span>
|
|
<span class="sd"> of the start of each route and a guided slack finalizer. Provided there</span>
|
|
<span class="sd"> are no time windows and the maximum slacks are large enough, once the</span>
|
|
<span class="sd"> cumul of the start of route is fixed, the guided finalizer can find</span>
|
|
<span class="sd"> optimal values of the slacks for the rest of the route in time</span>
|
|
<span class="sd"> proportional to the length of the route. Therefore the composed finalizer</span>
|
|
<span class="sd"> generally works in time O(log(t)*n*m), where t is the latest possible</span>
|
|
<span class="sd"> departute time, n is the number of nodes in the network and m is the</span>
|
|
<span class="sd"> number of vehicles.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_MakeSelfDependentDimensionFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register RoutingModel in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_swigregister</span><span class="p">(</span><span class="n">RoutingModel</span><span class="p">)</span>
|
|
<span class="n">cvar</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">cvar</span>
|
|
<span class="n">RoutingModel</span><span class="o">.</span><span class="n">kNoPenalty</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">cvar</span><span class="o">.</span><span class="n">RoutingModel_kNoPenalty</span>
|
|
<span class="n">RoutingModel</span><span class="o">.</span><span class="n">kNoDisjunction</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">cvar</span><span class="o">.</span><span class="n">RoutingModel_kNoDisjunction</span>
|
|
<span class="n">RoutingModel</span><span class="o">.</span><span class="n">kNoDimension</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">cvar</span><span class="o">.</span><span class="n">RoutingModel_kNoDimension</span>
|
|
|
|
<span class="k">class</span> <span class="nc">RoutingModelVisitor</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" Routing model visitor."""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModelVisitor_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_RoutingModelVisitor</span><span class="p">())</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_RoutingModelVisitor</span>
|
|
|
|
<span class="c1"># Register RoutingModelVisitor in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModelVisitor_swigregister</span><span class="p">(</span><span class="n">RoutingModelVisitor</span><span class="p">)</span>
|
|
<span class="n">RoutingModelVisitor</span><span class="o">.</span><span class="n">kLightElement</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">cvar</span><span class="o">.</span><span class="n">RoutingModelVisitor_kLightElement</span>
|
|
<span class="n">RoutingModelVisitor</span><span class="o">.</span><span class="n">kLightElement2</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">cvar</span><span class="o">.</span><span class="n">RoutingModelVisitor_kLightElement2</span>
|
|
<span class="n">RoutingModelVisitor</span><span class="o">.</span><span class="n">kRemoveValues</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">cvar</span><span class="o">.</span><span class="n">RoutingModelVisitor_kRemoveValues</span>
|
|
|
|
<span class="k">class</span> <span class="nc">GlobalVehicleBreaksConstraint</span><span class="p">(</span><span class="n">Constraint</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> GlobalVehicleBreaksConstraint ensures breaks constraints are enforced on</span>
|
|
<span class="sd"> all vehicles in the dimension passed to its constructor.</span>
|
|
<span class="sd"> It is intended to be used for dimensions representing time.</span>
|
|
<span class="sd"> A break constraint ensures break intervals fit on the route of a vehicle.</span>
|
|
<span class="sd"> For a given vehicle, it forces break intervals to be disjoint from visit</span>
|
|
<span class="sd"> intervals, where visit intervals start at CumulVar(node) and last for</span>
|
|
<span class="sd"> node_visit_transit[node]. Moreover, it ensures that there is enough time</span>
|
|
<span class="sd"> between two consecutive nodes of a route to do transit and vehicle breaks,</span>
|
|
<span class="sd"> i.e. if Next(nodeA) = nodeB, CumulVar(nodeA) = tA and CumulVar(nodeB) = tB,</span>
|
|
<span class="sd"> then SlackVar(nodeA) >= sum_{breaks [tA, tB)} duration(break).</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">GlobalVehicleBreaksConstraint_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_GlobalVehicleBreaksConstraint</span><span class="p">(</span><span class="n">dimension</span><span class="p">))</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">GlobalVehicleBreaksConstraint_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">GlobalVehicleBreaksConstraint_Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">GlobalVehicleBreaksConstraint_InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_GlobalVehicleBreaksConstraint</span>
|
|
|
|
<span class="c1"># Register GlobalVehicleBreaksConstraint in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">GlobalVehicleBreaksConstraint_swigregister</span><span class="p">(</span><span class="n">GlobalVehicleBreaksConstraint</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">TypeRegulationsChecker</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_TypeRegulationsChecker</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CheckVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">next_accessor</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRegulationsChecker_CheckVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">,</span> <span class="n">next_accessor</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register TypeRegulationsChecker in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRegulationsChecker_swigregister</span><span class="p">(</span><span class="n">TypeRegulationsChecker</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">TypeIncompatibilityChecker</span><span class="p">(</span><span class="n">TypeRegulationsChecker</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" Checker for type incompatibilities."""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">model</span><span class="p">:</span> <span class="s2">"RoutingModel"</span><span class="p">,</span> <span class="n">check_hard_incompatibilities</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeIncompatibilityChecker_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_TypeIncompatibilityChecker</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">check_hard_incompatibilities</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_TypeIncompatibilityChecker</span>
|
|
|
|
<span class="c1"># Register TypeIncompatibilityChecker in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeIncompatibilityChecker_swigregister</span><span class="p">(</span><span class="n">TypeIncompatibilityChecker</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">TypeRequirementChecker</span><span class="p">(</span><span class="n">TypeRegulationsChecker</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" Checker for type requirements."""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">model</span><span class="p">:</span> <span class="s2">"RoutingModel"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRequirementChecker_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_TypeRequirementChecker</span><span class="p">(</span><span class="n">model</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_TypeRequirementChecker</span>
|
|
|
|
<span class="c1"># Register TypeRequirementChecker in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRequirementChecker_swigregister</span><span class="p">(</span><span class="n">TypeRequirementChecker</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">TypeRegulationsConstraint</span><span class="p">(</span><span class="n">Constraint</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The following constraint ensures that incompatibilities and requirements</span>
|
|
<span class="sd"> between types are respected.</span>
|
|
|
|
<span class="sd"> It verifies both "hard" and "temporal" incompatibilities.</span>
|
|
<span class="sd"> Two nodes with hard incompatible types cannot be served by the same vehicle</span>
|
|
<span class="sd"> at all, while with a temporal incompatibility they can't be on the same</span>
|
|
<span class="sd"> route at the same time.</span>
|
|
<span class="sd"> The VisitTypePolicy of a node determines how visiting it impacts the type</span>
|
|
<span class="sd"> count on the route.</span>
|
|
|
|
<span class="sd"> For example, for</span>
|
|
<span class="sd"> - three temporally incompatible types T1 T2 and T3</span>
|
|
<span class="sd"> - 2 pairs of nodes a1/r1 and a2/r2 of type T1 and T2 respectively, with</span>
|
|
<span class="sd"> - a1 and a2 of VisitTypePolicy TYPE_ADDED_TO_VEHICLE</span>
|
|
<span class="sd"> - r1 and r2 of policy ADDED_TYPE_REMOVED_FROM_VEHICLE</span>
|
|
<span class="sd"> - 3 nodes A, UV and AR of type T3, respectively with type policies</span>
|
|
<span class="sd"> TYPE_ADDED_TO_VEHICLE, TYPE_ON_VEHICLE_UP_TO_VISIT and</span>
|
|
<span class="sd"> TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED</span>
|
|
<span class="sd"> the configurations</span>
|
|
<span class="sd"> UV --> a1 --> r1 --> a2 --> r2, a1 --> r1 --> a2 --> r2 --> A and</span>
|
|
<span class="sd"> a1 --> r1 --> AR --> a2 --> r2 are acceptable, whereas the configurations</span>
|
|
<span class="sd"> a1 --> a2 --> r1 --> ..., or A --> a1 --> r1 --> ..., or</span>
|
|
<span class="sd"> a1 --> r1 --> UV --> ... are not feasible.</span>
|
|
|
|
<span class="sd"> It also verifies same-vehicle and temporal type requirements.</span>
|
|
<span class="sd"> A node of type T_d with a same-vehicle requirement for type T_r needs to be</span>
|
|
<span class="sd"> served by the same vehicle as a node of type T_r.</span>
|
|
<span class="sd"> Temporal requirements, on the other hand, can take effect either when the</span>
|
|
<span class="sd"> dependent type is being added to the route or when it's removed from it,</span>
|
|
<span class="sd"> which is determined by the dependent node's VisitTypePolicy.</span>
|
|
<span class="sd"> In the above example:</span>
|
|
<span class="sd"> - If T3 is required on the same vehicle as T1, A, AR or UV must be on the</span>
|
|
<span class="sd"> same vehicle as a1.</span>
|
|
<span class="sd"> - If T2 is required when adding T1, a2 must be visited *before* a1, and if</span>
|
|
<span class="sd"> r2 is also visited on the route, it must be *after* a1, i.e. T2 must be on</span>
|
|
<span class="sd"> the vehicle when a1 is visited:</span>
|
|
<span class="sd"> ... --> a2 --> ... --> a1 --> ... --> r2 --> ...</span>
|
|
<span class="sd"> - If T3 is required when removing T1, T3 needs to be on the vehicle when</span>
|
|
<span class="sd"> r1 is visited:</span>
|
|
<span class="sd"> ... --> A --> ... --> r1 --> ... OR ... --> r1 --> ... --> UV --> ...</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">model</span><span class="p">:</span> <span class="s2">"RoutingModel"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRegulationsConstraint_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_TypeRegulationsConstraint</span><span class="p">(</span><span class="n">model</span><span class="p">))</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRegulationsConstraint_Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRegulationsConstraint_InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_TypeRegulationsConstraint</span>
|
|
|
|
<span class="c1"># Register TypeRegulationsConstraint in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRegulationsConstraint_swigregister</span><span class="p">(</span><span class="n">TypeRegulationsConstraint</span><span class="p">)</span>
|
|
|
|
<span class="k">class</span> <span class="nc">RoutingDimension</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Dimensions represent quantities accumulated at nodes along the routes. They</span>
|
|
<span class="sd"> represent quantities such as weights or volumes carried along the route, or</span>
|
|
<span class="sd"> distance or times.</span>
|
|
|
|
<span class="sd"> Quantities at a node are represented by "cumul" variables and the increase</span>
|
|
<span class="sd"> or decrease of quantities between nodes are represented by "transit"</span>
|
|
<span class="sd"> variables. These variables are linked as follows:</span>
|
|
|
|
<span class="sd"> if j == next(i),</span>
|
|
<span class="sd"> cumuls(j) = cumuls(i) + transits(i) + slacks(i) +</span>
|
|
<span class="sd"> state_dependent_transits(i)</span>
|
|
|
|
<span class="sd"> where slack is a positive slack variable (can represent waiting times for</span>
|
|
<span class="sd"> a time dimension), and state_dependent_transits is a non-purely functional</span>
|
|
<span class="sd"> version of transits_. Favour transits over state_dependent_transits when</span>
|
|
<span class="sd"> possible, because purely functional callbacks allow more optimisations and</span>
|
|
<span class="sd"> make the model faster and easier to solve.</span>
|
|
<span class="sd"> for a given vehicle, it is passed as an external vector, it would be better</span>
|
|
<span class="sd"> to have this information here.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_RoutingDimension</span>
|
|
|
|
<span class="k">def</span> <span class="nf">model</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the model on which the dimension was created."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_model</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetTransitValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the transition value for a given pair of nodes (as var index);</span>
|
|
<span class="sd"> this value is the one taken by the corresponding transit variable when</span>
|
|
<span class="sd"> the 'next' variable for 'from_index' is bound to 'to_index'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetTransitValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetTransitValueFromClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle_class</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as above but taking a vehicle class of the dimension instead of a</span>
|
|
<span class="sd"> vehicle (the class of a vehicle can be obtained with vehicle_to_class()).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetTransitValueFromClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">,</span> <span class="n">vehicle_class</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CumulVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Get the cumul, transit and slack variables for the given node (given as</span>
|
|
<span class="sd"> int64_t var index).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_CumulVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TransitVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_TransitVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FixedTransitVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_FixedTransitVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SlackVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SlackVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetSpanUpperBoundForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">upper_bound</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets an upper bound on the dimension span on a given vehicle. This is the</span>
|
|
<span class="sd"> preferred way to limit the "length" of the route of a vehicle according to</span>
|
|
<span class="sd"> a dimension.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetSpanUpperBoundForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">upper_bound</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetSpanCostCoefficientForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets a cost proportional to the dimension span on a given vehicle,</span>
|
|
<span class="sd"> or on all vehicles at once. "coefficient" must be nonnegative.</span>
|
|
<span class="sd"> This is handy to model costs proportional to idle time when the dimension</span>
|
|
<span class="sd"> represents time.</span>
|
|
<span class="sd"> The cost for a vehicle is</span>
|
|
<span class="sd"> span_cost = coefficient * (dimension end value - dimension start value).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetSpanCostCoefficientForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetSpanCostCoefficientForAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetSpanCostCoefficientForAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetGlobalSpanCostCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets a cost proportional to the *global* dimension span, that is the</span>
|
|
<span class="sd"> difference between the largest value of route end cumul variables and</span>
|
|
<span class="sd"> the smallest value of route start cumul variables.</span>
|
|
<span class="sd"> In other words:</span>
|
|
<span class="sd"> global_span_cost =</span>
|
|
<span class="sd"> coefficient * (Max(dimension end value) - Min(dimension start value)).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetGlobalSpanCostCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">upper_bound</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets a soft upper bound to the cumul variable of a given variable index.</span>
|
|
<span class="sd"> If the value of the cumul variable is greater than the bound, a cost</span>
|
|
<span class="sd"> proportional to the difference between this value and the bound is added</span>
|
|
<span class="sd"> to the cost function of the model:</span>
|
|
<span class="sd"> cumulVar <= upper_bound -> cost = 0</span>
|
|
<span class="sd"> cumulVar > upper_bound -> cost = coefficient * (cumulVar - upper_bound)</span>
|
|
<span class="sd"> This is also handy to model tardiness costs when the dimension represents</span>
|
|
<span class="sd"> time.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">upper_bound</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true if a soft upper bound has been set for a given variable</span>
|
|
<span class="sd"> index.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_HasCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the soft upper bound of a cumul variable for a given variable</span>
|
|
<span class="sd"> index. The "hard" upper bound of the variable is returned if no soft upper</span>
|
|
<span class="sd"> bound has been set.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetCumulVarSoftUpperBoundCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost coefficient of the soft upper bound of a cumul variable</span>
|
|
<span class="sd"> for a given variable index. If no soft upper bound has been set, 0 is</span>
|
|
<span class="sd"> returned.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetCumulVarSoftUpperBoundCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">lower_bound</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets a soft lower bound to the cumul variable of a given variable index.</span>
|
|
<span class="sd"> If the value of the cumul variable is less than the bound, a cost</span>
|
|
<span class="sd"> proportional to the difference between this value and the bound is added</span>
|
|
<span class="sd"> to the cost function of the model:</span>
|
|
<span class="sd"> cumulVar > lower_bound -> cost = 0</span>
|
|
<span class="sd"> cumulVar <= lower_bound -> cost = coefficient * (lower_bound -</span>
|
|
<span class="sd"> cumulVar).</span>
|
|
<span class="sd"> This is also handy to model earliness costs when the dimension represents</span>
|
|
<span class="sd"> time.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">lower_bound</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true if a soft lower bound has been set for a given variable</span>
|
|
<span class="sd"> index.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_HasCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the soft lower bound of a cumul variable for a given variable</span>
|
|
<span class="sd"> index. The "hard" lower bound of the variable is returned if no soft lower</span>
|
|
<span class="sd"> bound has been set.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetCumulVarSoftLowerBoundCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost coefficient of the soft lower bound of a cumul variable</span>
|
|
<span class="sd"> for a given variable index. If no soft lower bound has been set, 0 is</span>
|
|
<span class="sd"> returned.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetCumulVarSoftLowerBoundCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetBreakIntervalsOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">breaks</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntervalVar * >"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">node_visit_transits</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets the breaks for a given vehicle. Breaks are represented by</span>
|
|
<span class="sd"> IntervalVars. They may interrupt transits between nodes and increase</span>
|
|
<span class="sd"> the value of corresponding slack variables.</span>
|
|
<span class="sd"> A break may take place before the start of a vehicle, after the end of</span>
|
|
<span class="sd"> a vehicle, or during a travel i -> j.</span>
|
|
|
|
<span class="sd"> In that case, the interval [break.Start(), break.End()) must be a subset</span>
|
|
<span class="sd"> of [CumulVar(i) + pre_travel(i, j), CumulVar(j) - post_travel(i, j)). In</span>
|
|
<span class="sd"> other words, a break may not overlap any node n's visit, given by</span>
|
|
<span class="sd"> [CumulVar(n) - post_travel(_, n), CumulVar(n) + pre_travel(n, _)).</span>
|
|
<span class="sd"> This formula considers post_travel(_, start) and pre_travel(end, _) to be</span>
|
|
<span class="sd"> 0; pre_travel will never be called on any (_, start) and post_travel will</span>
|
|
<span class="sd"> never we called on any (end, _). If pre_travel_evaluator or</span>
|
|
<span class="sd"> post_travel_evaluator is -1, it will be taken as a function that always</span>
|
|
<span class="sd"> returns 0.</span>
|
|
<span class="sd"> Deprecated, sets pre_travel(i, j) = node_visit_transit[i].</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetBreakIntervalsOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">breaks</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">,</span> <span class="n">node_visit_transits</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetBreakDistanceDurationOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distance</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> With breaks supposed to be consecutive, this forces the distance between</span>
|
|
<span class="sd"> breaks of size at least minimum_break_duration to be at most distance.</span>
|
|
<span class="sd"> This supposes that the time until route start and after route end are</span>
|
|
<span class="sd"> infinite breaks.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetBreakDistanceDurationOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distance</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitializeBreaks</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets up vehicle_break_intervals_, vehicle_break_distance_duration_,</span>
|
|
<span class="sd"> pre_travel_evaluators and post_travel_evaluators.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_InitializeBreaks</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasBreakConstraints</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if any break interval or break distance was defined."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_HasBreakConstraints</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetPreTravelEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetPreTravelEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetPostTravelEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetPostTravelEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">base_dimension</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingDimension const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the parent in the dependency tree if any or nullptr otherwise."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_base_dimension</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ShortestTransitionSlack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> It makes sense to use the function only for self-dependent dimension.</span>
|
|
<span class="sd"> For such dimensions the value of the slack of a node determines the</span>
|
|
<span class="sd"> transition cost of the next transit. Provided that</span>
|
|
<span class="sd"> 1. cumul[node] is fixed,</span>
|
|
<span class="sd"> 2. next[node] and next[next[node]] (if exists) are fixed,</span>
|
|
<span class="sd"> the value of slack[node] for which cumul[next[node]] + transit[next[node]]</span>
|
|
<span class="sd"> is minimized can be found in O(1) using this function.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_ShortestTransitionSlack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the name of the dimension."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPickupToDeliveryLimitFunctionForPair</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">limit_function</span><span class="p">:</span> <span class="s2">"operations_research::RoutingDimension::PickupToDeliveryLimitFunction"</span><span class="p">,</span> <span class="n">pair_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetPickupToDeliveryLimitFunctionForPair</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">limit_function</span><span class="p">,</span> <span class="n">pair_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasPickupToDeliveryLimits</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_HasPickupToDeliveryLimits</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddNodePrecedence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_node</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">second_node</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">offset</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_AddNodePrecedence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_node</span><span class="p">,</span> <span class="n">second_node</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetSpanUpperBoundForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetSpanUpperBoundForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetSpanCostCoefficientForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetSpanCostCoefficientForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">global_span_cost_coefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_global_span_cost_coefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetGlobalOptimizerOffset</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetGlobalOptimizerOffset</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetLocalOptimizerOffsetForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetLocalOptimizerOffsetForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="c1"># Register RoutingDimension in _pywrapcp:</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_swigregister</span><span class="p">(</span><span class="n">RoutingDimension</span><span class="p">)</span>
|
|
|
|
|
|
<span class="k">def</span> <span class="nf">MakeSetValuesFromTargets</span><span class="p">(</span><span class="n">solver</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">,</span> <span class="n">variables</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * >"</span><span class="p">,</span> <span class="n">targets</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> A decision builder which tries to assign values to variables as close as</span>
|
|
<span class="sd"> possible to target values first.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">MakeSetValuesFromTargets</span><span class="p">(</span><span class="n">solver</span><span class="p">,</span> <span class="n">variables</span><span class="p">,</span> <span class="n">targets</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolveModelWithSat</span><span class="p">(</span><span class="n">model</span><span class="p">:</span> <span class="s2">"RoutingModel"</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">,</span> <span class="n">initial_solution</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">solution</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Attempts to solve the model using the cp-sat solver. As of 5/2019, will</span>
|
|
<span class="sd"> solve the TSP corresponding to the model if it has a single vehicle.</span>
|
|
<span class="sd"> Therefore the resulting solution might not actually be feasible. Will return</span>
|
|
<span class="sd"> false if a solution could not be found.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolveModelWithSat</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">,</span> <span class="n">initial_solution</span><span class="p">,</span> <span class="n">solution</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
</section>
|
|
<section id="DefaultPhaseParameters">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#DefaultPhaseParameters">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">DefaultPhaseParameters</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">DefaultPhaseParameters</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This struct holds all parameters for the default search.</span>
|
|
<span class="sd"> DefaultPhaseParameters is only used by Solver::MakeDefaultPhase methods.</span>
|
|
<span class="sd"> Note this is for advanced users only.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
<span class="n">CHOOSE_MAX_SUM_IMPACT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_CHOOSE_MAX_SUM_IMPACT</span>
|
|
<span class="n">CHOOSE_MAX_AVERAGE_IMPACT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_CHOOSE_MAX_AVERAGE_IMPACT</span>
|
|
<span class="n">CHOOSE_MAX_VALUE_IMPACT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_CHOOSE_MAX_VALUE_IMPACT</span>
|
|
<span class="n">SELECT_MIN_IMPACT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_SELECT_MIN_IMPACT</span>
|
|
<span class="n">SELECT_MAX_IMPACT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_SELECT_MAX_IMPACT</span>
|
|
<span class="n">NONE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_NONE</span>
|
|
<span class="n">NORMAL</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_NORMAL</span>
|
|
<span class="n">VERBOSE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_VERBOSE</span>
|
|
<span class="n">var_selection_schema</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_var_selection_schema_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_var_selection_schema_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">"""</span>
|
|
<span class="s2"> This parameter describes how the next variable to instantiate</span>
|
|
<span class="s2"> will be chosen.</span>
|
|
<span class="s2"> """</span><span class="p">)</span>
|
|
<span class="n">value_selection_schema</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_value_selection_schema_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_value_selection_schema_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">""" This parameter describes which value to select for a given var."""</span><span class="p">)</span>
|
|
<span class="n">initialization_splits</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_initialization_splits_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_initialization_splits_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">"""</span>
|
|
<span class="s2"> Maximum number of intervals that the initialization of impacts will scan</span>
|
|
<span class="s2"> per variable.</span>
|
|
<span class="s2"> """</span><span class="p">)</span>
|
|
<span class="n">run_all_heuristics</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_run_all_heuristics_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_run_all_heuristics_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">"""</span>
|
|
<span class="s2"> The default phase will run heuristics periodically. This parameter</span>
|
|
<span class="s2"> indicates if we should run all heuristics, or a randomly selected</span>
|
|
<span class="s2"> one.</span>
|
|
<span class="s2"> """</span><span class="p">)</span>
|
|
<span class="n">heuristic_period</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_heuristic_period_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_heuristic_period_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">"""</span>
|
|
<span class="s2"> The distance in nodes between each run of the heuristics. A</span>
|
|
<span class="s2"> negative or null value will mean that we will not run heuristics</span>
|
|
<span class="s2"> at all.</span>
|
|
<span class="s2"> """</span><span class="p">)</span>
|
|
<span class="n">heuristic_num_failures_limit</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_heuristic_num_failures_limit_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_heuristic_num_failures_limit_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">""" The failure limit for each heuristic that we run."""</span><span class="p">)</span>
|
|
<span class="n">persistent_impact</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_persistent_impact_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_persistent_impact_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">"""</span>
|
|
<span class="s2"> Whether to keep the impact from the first search for other searches,</span>
|
|
<span class="s2"> or to recompute the impact for each new search.</span>
|
|
<span class="s2"> """</span><span class="p">)</span>
|
|
<span class="n">random_seed</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_random_seed_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_random_seed_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">""" Seed used to initialize the random part in some heuristics."""</span><span class="p">)</span>
|
|
<span class="n">display_level</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_display_level_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_display_level_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">"""</span>
|
|
<span class="s2"> This represents the amount of information displayed by the default search.</span>
|
|
<span class="s2"> NONE means no display, VERBOSE means extra information.</span>
|
|
<span class="s2"> """</span><span class="p">)</span>
|
|
<span class="n">decision_builder</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_decision_builder_get</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_decision_builder_set</span><span class="p">,</span> <span class="n">doc</span><span class="o">=</span><span class="sa">r</span><span class="s2">""" When defined, this overrides the default impact based decision builder."""</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_DefaultPhaseParameters</span><span class="p">())</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_DefaultPhaseParameters</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This struct holds all parameters for the default search.
|
|
DefaultPhaseParameters is only used by Solver::MakeDefaultPhase methods.
|
|
Note this is for advanced users only.</p>
|
|
</div>
|
|
|
|
|
|
<div id="DefaultPhaseParameters.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#DefaultPhaseParameters.__init__">#  </a>
|
|
|
|
|
|
<span class="name">DefaultPhaseParameters</span><span class="signature">()</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultPhaseParameters_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_DefaultPhaseParameters</span><span class="p">())</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.CHOOSE_MAX_SUM_IMPACT" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.CHOOSE_MAX_SUM_IMPACT">#  </a>
|
|
|
|
<span class="name">CHOOSE_MAX_SUM_IMPACT</span><span class="default_value"> = 0</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.CHOOSE_MAX_AVERAGE_IMPACT" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.CHOOSE_MAX_AVERAGE_IMPACT">#  </a>
|
|
|
|
<span class="name">CHOOSE_MAX_AVERAGE_IMPACT</span><span class="default_value"> = 1</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.CHOOSE_MAX_VALUE_IMPACT" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.CHOOSE_MAX_VALUE_IMPACT">#  </a>
|
|
|
|
<span class="name">CHOOSE_MAX_VALUE_IMPACT</span><span class="default_value"> = 2</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.SELECT_MIN_IMPACT" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.SELECT_MIN_IMPACT">#  </a>
|
|
|
|
<span class="name">SELECT_MIN_IMPACT</span><span class="default_value"> = 0</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.SELECT_MAX_IMPACT" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.SELECT_MAX_IMPACT">#  </a>
|
|
|
|
<span class="name">SELECT_MAX_IMPACT</span><span class="default_value"> = 1</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.NONE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.NONE">#  </a>
|
|
|
|
<span class="name">NONE</span><span class="default_value"> = 0</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.NORMAL" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.NORMAL">#  </a>
|
|
|
|
<span class="name">NORMAL</span><span class="default_value"> = 1</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.VERBOSE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.VERBOSE">#  </a>
|
|
|
|
<span class="name">VERBOSE</span><span class="default_value"> = 2</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.var_selection_schema" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.var_selection_schema">#  </a>
|
|
|
|
<span class="name">var_selection_schema</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>This parameter describes how the next variable to instantiate
|
|
will be chosen.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.value_selection_schema" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.value_selection_schema">#  </a>
|
|
|
|
<span class="name">value_selection_schema</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>This parameter describes which value to select for a given var.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.initialization_splits" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.initialization_splits">#  </a>
|
|
|
|
<span class="name">initialization_splits</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Maximum number of intervals that the initialization of impacts will scan
|
|
per variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.run_all_heuristics" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.run_all_heuristics">#  </a>
|
|
|
|
<span class="name">run_all_heuristics</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The default phase will run heuristics periodically. This parameter
|
|
indicates if we should run all heuristics, or a randomly selected
|
|
one.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.heuristic_period" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.heuristic_period">#  </a>
|
|
|
|
<span class="name">heuristic_period</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The distance in nodes between each run of the heuristics. A
|
|
negative or null value will mean that we will not run heuristics
|
|
at all.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.heuristic_num_failures_limit" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.heuristic_num_failures_limit">#  </a>
|
|
|
|
<span class="name">heuristic_num_failures_limit</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The failure limit for each heuristic that we run.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.persistent_impact" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.persistent_impact">#  </a>
|
|
|
|
<span class="name">persistent_impact</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Whether to keep the impact from the first search for other searches,
|
|
or to recompute the impact for each new search.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.random_seed" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.random_seed">#  </a>
|
|
|
|
<span class="name">random_seed</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Seed used to initialize the random part in some heuristics.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.display_level" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.display_level">#  </a>
|
|
|
|
<span class="name">display_level</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>This represents the amount of information displayed by the default search.
|
|
NONE means no display, VERBOSE means extra information.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="DefaultPhaseParameters.decision_builder" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DefaultPhaseParameters.decision_builder">#  </a>
|
|
|
|
<span class="name">decision_builder</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>When defined, this overrides the default impact based decision builder.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="Solver">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#Solver">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">Solver</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">Solver</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Solver Class</span>
|
|
|
|
<span class="sd"> A solver represents the main computation engine. It implements the entire</span>
|
|
<span class="sd"> range of Constraint Programming protocols:</span>
|
|
<span class="sd"> - Reversibility</span>
|
|
<span class="sd"> - Propagation</span>
|
|
<span class="sd"> - Search</span>
|
|
|
|
<span class="sd"> Usually, Constraint Programming code consists of</span>
|
|
<span class="sd"> - the creation of the Solver,</span>
|
|
<span class="sd"> - the creation of the decision variables of the model,</span>
|
|
<span class="sd"> - the creation of the constraints of the model and their addition to the</span>
|
|
<span class="sd"> solver() through the AddConstraint() method,</span>
|
|
<span class="sd"> - the creation of the main DecisionBuilder class,</span>
|
|
<span class="sd"> - the launch of the solve() method with the decision builder.</span>
|
|
|
|
<span class="sd"> For the time being, Solver is neither MT_SAFE nor MT_HOT.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
<span class="n">INT_VAR_DEFAULT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INT_VAR_DEFAULT</span>
|
|
<span class="sa">r</span><span class="sd">""" The default behavior is CHOOSE_FIRST_UNBOUND."""</span>
|
|
<span class="n">INT_VAR_SIMPLE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INT_VAR_SIMPLE</span>
|
|
<span class="sa">r</span><span class="sd">""" The simple selection is CHOOSE_FIRST_UNBOUND."""</span>
|
|
<span class="n">CHOOSE_FIRST_UNBOUND</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_FIRST_UNBOUND</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Select the first unbound variable.</span>
|
|
<span class="sd"> Variables are considered in the order of the vector of IntVars used</span>
|
|
<span class="sd"> to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_RANDOM</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_RANDOM</span>
|
|
<span class="sa">r</span><span class="sd">""" Randomly select one of the remaining unbound variables."""</span>
|
|
<span class="n">CHOOSE_MIN_SIZE_LOWEST_MIN</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MIN_SIZE_LOWEST_MIN</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the smallest size,</span>
|
|
<span class="sd"> i.e., the smallest number of possible values.</span>
|
|
<span class="sd"> In case of a tie, the selected variables is the one with the lowest min</span>
|
|
<span class="sd"> value.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, first being defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_MIN_SIZE_HIGHEST_MIN</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MIN_SIZE_HIGHEST_MIN</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the smallest size,</span>
|
|
<span class="sd"> i.e., the smallest number of possible values.</span>
|
|
<span class="sd"> In case of a tie, the selected variable is the one with the highest min</span>
|
|
<span class="sd"> value.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, first being defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_MIN_SIZE_LOWEST_MAX</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MIN_SIZE_LOWEST_MAX</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the smallest size,</span>
|
|
<span class="sd"> i.e., the smallest number of possible values.</span>
|
|
<span class="sd"> In case of a tie, the selected variables is the one with the lowest max</span>
|
|
<span class="sd"> value.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, first being defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_MIN_SIZE_HIGHEST_MAX</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MIN_SIZE_HIGHEST_MAX</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the smallest size,</span>
|
|
<span class="sd"> i.e., the smallest number of possible values.</span>
|
|
<span class="sd"> In case of a tie, the selected variable is the one with the highest max</span>
|
|
<span class="sd"> value.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, first being defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_LOWEST_MIN</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_LOWEST_MIN</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the smallest minimal</span>
|
|
<span class="sd"> value.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, "first" defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_HIGHEST_MAX</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_HIGHEST_MAX</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the highest maximal</span>
|
|
<span class="sd"> value.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, first being defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_MIN_SIZE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MIN_SIZE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the smallest size.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, first being defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_MAX_SIZE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MAX_SIZE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the highest size.</span>
|
|
<span class="sd"> In case of a tie, the first one is selected, first being defined by the</span>
|
|
<span class="sd"> order in the vector of IntVars used to create the selector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_MAX_REGRET_ON_MIN</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MAX_REGRET_ON_MIN</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Among unbound variables, select the variable with the largest</span>
|
|
<span class="sd"> gap between the first and the second values of the domain.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CHOOSE_PATH</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_PATH</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Selects the next unbound variable on a path, the path being defined by</span>
|
|
<span class="sd"> the variables: var[i] corresponds to the index of the next of i.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">INT_VALUE_DEFAULT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INT_VALUE_DEFAULT</span>
|
|
<span class="sa">r</span><span class="sd">""" The default behavior is ASSIGN_MIN_VALUE."""</span>
|
|
<span class="n">INT_VALUE_SIMPLE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INT_VALUE_SIMPLE</span>
|
|
<span class="sa">r</span><span class="sd">""" The simple selection is ASSIGN_MIN_VALUE."""</span>
|
|
<span class="n">ASSIGN_MIN_VALUE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ASSIGN_MIN_VALUE</span>
|
|
<span class="sa">r</span><span class="sd">""" Selects the min value of the selected variable."""</span>
|
|
<span class="n">ASSIGN_MAX_VALUE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ASSIGN_MAX_VALUE</span>
|
|
<span class="sa">r</span><span class="sd">""" Selects the max value of the selected variable."""</span>
|
|
<span class="n">ASSIGN_RANDOM_VALUE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ASSIGN_RANDOM_VALUE</span>
|
|
<span class="sa">r</span><span class="sd">""" Selects randomly one of the possible values of the selected variable."""</span>
|
|
<span class="n">ASSIGN_CENTER_VALUE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ASSIGN_CENTER_VALUE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Selects the first possible value which is the closest to the center</span>
|
|
<span class="sd"> of the domain of the selected variable.</span>
|
|
<span class="sd"> The center is defined as (min + max) / 2.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">SPLIT_LOWER_HALF</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SPLIT_LOWER_HALF</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Split the domain in two around the center, and choose the lower</span>
|
|
<span class="sd"> part first.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">SPLIT_UPPER_HALF</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SPLIT_UPPER_HALF</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Split the domain in two around the center, and choose the lower</span>
|
|
<span class="sd"> part first.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">SEQUENCE_DEFAULT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SEQUENCE_DEFAULT</span>
|
|
<span class="n">SEQUENCE_SIMPLE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SEQUENCE_SIMPLE</span>
|
|
<span class="n">CHOOSE_MIN_SLACK_RANK_FORWARD</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_MIN_SLACK_RANK_FORWARD</span>
|
|
<span class="n">CHOOSE_RANDOM_RANK_FORWARD</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CHOOSE_RANDOM_RANK_FORWARD</span>
|
|
<span class="n">INTERVAL_DEFAULT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INTERVAL_DEFAULT</span>
|
|
<span class="sa">r</span><span class="sd">""" The default is INTERVAL_SET_TIMES_FORWARD."""</span>
|
|
<span class="n">INTERVAL_SIMPLE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INTERVAL_SIMPLE</span>
|
|
<span class="sa">r</span><span class="sd">""" The simple is INTERVAL_SET_TIMES_FORWARD."""</span>
|
|
<span class="n">INTERVAL_SET_TIMES_FORWARD</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INTERVAL_SET_TIMES_FORWARD</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Selects the variable with the lowest starting time of all variables,</span>
|
|
<span class="sd"> and fixes its starting time to this lowest value.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">INTERVAL_SET_TIMES_BACKWARD</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INTERVAL_SET_TIMES_BACKWARD</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Selects the variable with the highest ending time of all variables,</span>
|
|
<span class="sd"> and fixes the ending time to this highest values.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">TWOOPT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TWOOPT</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which reverses a sub-chain of a path. It is called TwoOpt</span>
|
|
<span class="sd"> because it breaks two arcs on the path; resulting paths are called</span>
|
|
<span class="sd"> two-optimal.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 -> 5</span>
|
|
<span class="sd"> (where (1, 5) are first and last nodes of the path and can therefore not</span>
|
|
<span class="sd"> be moved):</span>
|
|
<span class="sd"> 1 -> [3 -> 2] -> 4 -> 5</span>
|
|
<span class="sd"> 1 -> [4 -> 3 -> 2] -> 5</span>
|
|
<span class="sd"> 1 -> 2 -> [4 -> 3] -> 5</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">OROPT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_OROPT</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Relocate: OROPT and RELOCATE.</span>
|
|
<span class="sd"> Operator which moves a sub-chain of a path to another position; the</span>
|
|
<span class="sd"> specified chain length is the fixed length of the chains being moved.</span>
|
|
<span class="sd"> When this length is 1, the operator simply moves a node to another</span>
|
|
<span class="sd"> position.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 -> 5, for a chain</span>
|
|
<span class="sd"> length of 2 (where (1, 5) are first and last nodes of the path and can</span>
|
|
<span class="sd"> therefore not be moved):</span>
|
|
<span class="sd"> 1 -> 4 -> [2 -> 3] -> 5</span>
|
|
<span class="sd"> 1 -> [3 -> 4] -> 2 -> 5</span>
|
|
|
|
<span class="sd"> Using Relocate with chain lengths of 1, 2 and 3 together is equivalent</span>
|
|
<span class="sd"> to the OrOpt operator on a path. The OrOpt operator is a limited</span>
|
|
<span class="sd"> version of 3Opt (breaks 3 arcs on a path).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">RELOCATE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RELOCATE</span>
|
|
<span class="sa">r</span><span class="sd">""" Relocate neighborhood with length of 1 (see OROPT comment)."""</span>
|
|
<span class="n">EXCHANGE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_EXCHANGE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which exchanges the positions of two nodes.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 -> 5</span>
|
|
<span class="sd"> (where (1, 5) are first and last nodes of the path and can therefore not</span>
|
|
<span class="sd"> be moved):</span>
|
|
<span class="sd"> 1 -> [3] -> [2] -> 4 -> 5</span>
|
|
<span class="sd"> 1 -> [4] -> 3 -> [2] -> 5</span>
|
|
<span class="sd"> 1 -> 2 -> [4] -> [3] -> 5</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">CROSS</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CROSS</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which cross exchanges the starting chains of 2 paths, including</span>
|
|
<span class="sd"> exchanging the whole paths.</span>
|
|
<span class="sd"> First and last nodes are not moved.</span>
|
|
<span class="sd"> Possible neighbors for the paths 1 -> 2 -> 3 -> 4 -> 5 and 6 -> 7 -> 8</span>
|
|
<span class="sd"> (where (1, 5) and (6, 8) are first and last nodes of the paths and can</span>
|
|
<span class="sd"> therefore not be moved):</span>
|
|
<span class="sd"> 1 -> [7] -> 3 -> 4 -> 5 6 -> [2] -> 8</span>
|
|
<span class="sd"> 1 -> [7] -> 4 -> 5 6 -> [2 -> 3] -> 8</span>
|
|
<span class="sd"> 1 -> [7] -> 5 6 -> [2 -> 3 -> 4] -> 8</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">MAKEACTIVE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MAKEACTIVE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which inserts an inactive node into a path.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 with 5 inactive</span>
|
|
<span class="sd"> (where 1 and 4 are first and last nodes of the path) are:</span>
|
|
<span class="sd"> 1 -> [5] -> 2 -> 3 -> 4</span>
|
|
<span class="sd"> 1 -> 2 -> [5] -> 3 -> 4</span>
|
|
<span class="sd"> 1 -> 2 -> 3 -> [5] -> 4</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">MAKEINACTIVE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MAKEINACTIVE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which makes path nodes inactive.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 (where 1 and 4 are</span>
|
|
<span class="sd"> first and last nodes of the path) are:</span>
|
|
<span class="sd"> 1 -> 3 -> 4 with 2 inactive</span>
|
|
<span class="sd"> 1 -> 2 -> 4 with 3 inactive</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">MAKECHAININACTIVE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MAKECHAININACTIVE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which makes a "chain" of path nodes inactive.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 (where 1 and 4 are</span>
|
|
<span class="sd"> first and last nodes of the path) are:</span>
|
|
<span class="sd"> 1 -> 3 -> 4 with 2 inactive</span>
|
|
<span class="sd"> 1 -> 2 -> 4 with 3 inactive</span>
|
|
<span class="sd"> 1 -> 4 with 2 and 3 inactive</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">SWAPACTIVE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SWAPACTIVE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which replaces an active node by an inactive one.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 with 5 inactive</span>
|
|
<span class="sd"> (where 1 and 4 are first and last nodes of the path) are:</span>
|
|
<span class="sd"> 1 -> [5] -> 3 -> 4 with 2 inactive</span>
|
|
<span class="sd"> 1 -> 2 -> [5] -> 4 with 3 inactive</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">EXTENDEDSWAPACTIVE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_EXTENDEDSWAPACTIVE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which makes an inactive node active and an active one inactive.</span>
|
|
<span class="sd"> It is similar to SwapActiveOperator except that it tries to insert the</span>
|
|
<span class="sd"> inactive node in all possible positions instead of just the position of</span>
|
|
<span class="sd"> the node made inactive.</span>
|
|
<span class="sd"> Possible neighbors for the path 1 -> 2 -> 3 -> 4 with 5 inactive</span>
|
|
<span class="sd"> (where 1 and 4 are first and last nodes of the path) are:</span>
|
|
<span class="sd"> 1 -> [5] -> 3 -> 4 with 2 inactive</span>
|
|
<span class="sd"> 1 -> 3 -> [5] -> 4 with 2 inactive</span>
|
|
<span class="sd"> 1 -> [5] -> 2 -> 4 with 3 inactive</span>
|
|
<span class="sd"> 1 -> 2 -> [5] -> 4 with 3 inactive</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">PATHLNS</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_PATHLNS</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which relaxes two sub-chains of three consecutive arcs each.</span>
|
|
<span class="sd"> Each sub-chain is defined by a start node and the next three arcs. Those</span>
|
|
<span class="sd"> six arcs are relaxed to build a new neighbor.</span>
|
|
<span class="sd"> PATHLNS explores all possible pairs of starting nodes and so defines</span>
|
|
<span class="sd"> n^2 neighbors, n being the number of nodes.</span>
|
|
<span class="sd"> Note that the two sub-chains can be part of the same path; they even may</span>
|
|
<span class="sd"> overlap.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">FULLPATHLNS</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FULLPATHLNS</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which relaxes one entire path and all inactive nodes, thus</span>
|
|
<span class="sd"> defining num_paths neighbors.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">UNACTIVELNS</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_UNACTIVELNS</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which relaxes all inactive nodes and one sub-chain of six</span>
|
|
<span class="sd"> consecutive arcs. That way the path can be improved by inserting</span>
|
|
<span class="sd"> inactive nodes or swapping arcs.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">INCREMENT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_INCREMENT</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which defines one neighbor per variable. Each neighbor tries to</span>
|
|
<span class="sd"> increment by one the value of the corresponding variable. When a new</span>
|
|
<span class="sd"> solution is found the neighborhood is rebuilt from scratch, i.e., tries</span>
|
|
<span class="sd"> to increment values in the variable order.</span>
|
|
<span class="sd"> Consider for instance variables x and y. x is incremented one by one to</span>
|
|
<span class="sd"> its max, and when it is not possible to increment x anymore, y is</span>
|
|
<span class="sd"> incremented once. If this is a solution, then next neighbor tries to</span>
|
|
<span class="sd"> increment x.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">DECREMENT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DECREMENT</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which defines a neighborhood to decrement values.</span>
|
|
<span class="sd"> The behavior is the same as INCREMENT, except values are decremented</span>
|
|
<span class="sd"> instead of incremented.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">SIMPLELNS</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SIMPLELNS</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Operator which defines one neighbor per variable. Each neighbor relaxes</span>
|
|
<span class="sd"> one variable.</span>
|
|
<span class="sd"> When a new solution is found the neighborhood is rebuilt from scratch.</span>
|
|
<span class="sd"> Consider for instance variables x and y. First x is relaxed and the</span>
|
|
<span class="sd"> solver is looking for the best possible solution (with only x relaxed).</span>
|
|
<span class="sd"> Then y is relaxed, and the solver is looking for a new solution.</span>
|
|
<span class="sd"> If a new solution is found, then the next variable to be relaxed is x.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">GE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_GE</span>
|
|
<span class="sa">r</span><span class="sd">""" Move is accepted when the current objective value >= objective.Min."""</span>
|
|
<span class="n">LE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LE</span>
|
|
<span class="sa">r</span><span class="sd">""" Move is accepted when the current objective value <= objective.Max."""</span>
|
|
<span class="n">EQ</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_EQ</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Move is accepted when the current objective value is in the interval</span>
|
|
<span class="sd"> objective.Min .. objective.Max.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">DELAYED_PRIORITY</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DELAYED_PRIORITY</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> DELAYED_PRIORITY is the lowest priority: Demons will be processed after</span>
|
|
<span class="sd"> VAR_PRIORITY and NORMAL_PRIORITY demons.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">VAR_PRIORITY</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VAR_PRIORITY</span>
|
|
<span class="sa">r</span><span class="sd">""" VAR_PRIORITY is between DELAYED_PRIORITY and NORMAL_PRIORITY."""</span>
|
|
<span class="n">NORMAL_PRIORITY</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NORMAL_PRIORITY</span>
|
|
<span class="sa">r</span><span class="sd">""" NORMAL_PRIORITY is the highest priority: Demons will be processed first."""</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_Solver</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">))</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__python_constraints</span> <span class="o">=</span> <span class="p">[]</span>
|
|
|
|
|
|
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_Solver</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::ConstraintSolverParameters"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Stored Parameters."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="nd">@staticmethod</span>
|
|
<span class="k">def</span> <span class="nf">DefaultSolverParameters</span><span class="p">()</span> <span class="o">-></span> <span class="s2">"operations_research::ConstraintSolverParameters"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Create a ConstraintSolverParameters proto with all the default values."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DefaultSolverParameters</span><span class="p">()</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">c</span><span class="p">:</span> <span class="s2">"Constraint"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds the constraint 'c' to the model.</span>
|
|
|
|
<span class="sd"> After calling this method, and until there is a backtrack that undoes the</span>
|
|
<span class="sd"> addition, any assignment of variables to values must satisfy the given</span>
|
|
<span class="sd"> constraint in order to be considered feasible. There are two fairly</span>
|
|
<span class="sd"> different use cases:</span>
|
|
|
|
<span class="sd"> - the most common use case is modeling: the given constraint is really</span>
|
|
<span class="sd"> part of the problem that the user is trying to solve. In this use case,</span>
|
|
<span class="sd"> AddConstraint is called outside of search (i.e., with state() ==</span>
|
|
<span class="sd"> OUTSIDE_SEARCH). Most users should only use AddConstraint in this</span>
|
|
<span class="sd"> way. In this case, the constraint will belong to the model forever: it</span>
|
|
<span class="sd"> cannot not be removed by backtracking.</span>
|
|
|
|
<span class="sd"> - a rarer use case is that 'c' is not a real constraint of the model. It</span>
|
|
<span class="sd"> may be a constraint generated by a branching decision (a constraint whose</span>
|
|
<span class="sd"> goal is to restrict the search space), a symmetry breaking constraint (a</span>
|
|
<span class="sd"> constraint that does restrict the search space, but in a way that cannot</span>
|
|
<span class="sd"> have an impact on the quality of the solutions in the subtree), or an</span>
|
|
<span class="sd"> inferred constraint that, while having no semantic value to the model (it</span>
|
|
<span class="sd"> does not restrict the set of solutions), is worth having because we</span>
|
|
<span class="sd"> believe it may strengthen the propagation. In these cases, it happens</span>
|
|
<span class="sd"> that the constraint is added during the search (i.e., with state() ==</span>
|
|
<span class="sd"> IN_SEARCH or state() == IN_ROOT_NODE). When a constraint is</span>
|
|
<span class="sd"> added during a search, it applies only to the subtree of the search tree</span>
|
|
<span class="sd"> rooted at the current node, and will be automatically removed by</span>
|
|
<span class="sd"> backtracking.</span>
|
|
|
|
<span class="sd"> This method does not take ownership of the constraint. If the constraint</span>
|
|
<span class="sd"> has been created by any factory method (Solver::MakeXXX), it will</span>
|
|
<span class="sd"> automatically be deleted. However, power users who implement their own</span>
|
|
<span class="sd"> constraints should do: solver.AddConstraint(solver.RevAlloc(new</span>
|
|
<span class="sd"> MyConstraint(...));</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AddConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Solve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Solve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NewSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NewSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NextSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NextSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RestartSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RestartSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_EndSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolveAndCommit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SolveAndCommit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CheckAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Checks whether the given assignment satisfies all relevant constraints."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CheckAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CheckConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">:</span> <span class="s2">"Constraint"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Checks whether adding this constraint will lead to an immediate</span>
|
|
<span class="sd"> failure. It will return false if the model is already inconsistent, or if</span>
|
|
<span class="sd"> adding the constraint makes it inconsistent.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CheckConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Fail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Abandon the current branch in the search tree. A backtrack will follow."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Fail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="nd">@staticmethod</span>
|
|
<span class="k">def</span> <span class="nf">MemoryUsage</span><span class="p">()</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Current memory usage in bytes"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MemoryUsage</span><span class="p">()</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WallTime</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> DEPRECATED: Use Now() instead.</span>
|
|
<span class="sd"> Time elapsed, in ms since the creation of the solver.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_WallTime</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Branches</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" The number of branches explored since the creation of the solver."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Branches</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Solutions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" The number of solutions found since the start of the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Solutions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Failures</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" The number of failures encountered since the creation of the solver."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Failures</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AcceptedNeighbors</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" The number of accepted neighbors."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AcceptedNeighbors</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Stamp</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"uint64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The stamp indicates how many moves in the search tree we have performed.</span>
|
|
<span class="sd"> It is useful to detect if we need to update same lazy structures.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Stamp</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FailStamp</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"uint64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" The fail_stamp() is incremented after each backtrack."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FailStamp</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IntVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> MakeIntVar will create the best range based int var for the bounds given.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> MakeIntVar will create a variable with the given sparse domain.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> MakeIntVar will create a variable with the given sparse domain.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> MakeIntVar will create the best range based int var for the bounds given.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 5:*</span>
|
|
<span class="sd"> MakeIntVar will create a variable with the given sparse domain.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 6:*</span>
|
|
<span class="sd"> MakeIntVar will create a variable with the given sparse domain.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IntVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BoolVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> MakeBoolVar will create a variable with a {0, 1} domain.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> MakeBoolVar will create a variable with a {0, 1} domain.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_BoolVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IntConst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> IntConst will create a constant expression.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> IntConst will create a constant expression.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IntConst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Sum</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" sum of all vars."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Sum</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ScalProd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> scalar product</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> scalar product</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScalProd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MonotonicElement</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator1"</span><span class="p">,</span> <span class="n">increasing</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Function based element. The constraint takes ownership of the</span>
|
|
<span class="sd"> callback. The callback must be monotonic. It must be able to</span>
|
|
<span class="sd"> cope with any possible value in the domain of 'index'</span>
|
|
<span class="sd"> (potentially negative ones too). Furtermore, monotonicity is not</span>
|
|
<span class="sd"> checked. Thus giving a non-monotonic function, or specifying an</span>
|
|
<span class="sd"> incorrect increasing parameter will result in undefined behavior.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MonotonicElement</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">increasing</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> values[index]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> values[index]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> Function-based element. The constraint takes ownership of the</span>
|
|
<span class="sd"> callback. The callback must be able to cope with any possible</span>
|
|
<span class="sd"> value in the domain of 'index' (potentially negative ones too).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> 2D version of function-based element expression, values(expr1, expr2).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 5:*</span>
|
|
<span class="sd"> vars[expr]</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IndexExpression</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the expression expr such that vars[expr] == value.</span>
|
|
<span class="sd"> It assumes that vars are all different.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IndexExpression</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Min</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> std::min(vars)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> std::min (left, right)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> std::min(expr, value)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> std::min(expr, value)</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Min</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Max</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> std::max(vars)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> std::max(left, right)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> std::max(expr, value)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> std::max(expr, value)</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Max</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ConvexPiecewiseExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">early_cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">early_date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">late_date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">late_cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Convex piecewise function."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConvexPiecewiseExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">early_cost</span><span class="p">,</span> <span class="n">early_date</span><span class="p">,</span> <span class="n">late_date</span><span class="p">,</span> <span class="n">late_cost</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SemiContinuousExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">fixed_charge</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Semi continuous Expression (x <= 0 -> f(x) = 0; x > 0 -> f(x) = ax + b)</span>
|
|
<span class="sd"> a >= 0 and b >= 0</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SemiContinuousExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">fixed_charge</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ConditionalExpression</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Conditional Expr condition ? expr : unperformed_value"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConditionalExpression</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TrueConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This constraint always succeeds."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TrueConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FalseConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FalseConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" boolvar == (var == value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var == value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">v2</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (v1 == v2)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">,</span> <span class="n">v2</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">v2</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (v1 == v2)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">,</span> <span class="n">v2</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsDifferentCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" boolvar == (var != value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsDifferentCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsDifferentCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var != value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsDifferentCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsDifferentVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">v2</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (v1 != v2)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsDifferentVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">,</span> <span class="n">v2</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsDifferentCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">v2</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (v1 != v2)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsDifferentCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">,</span> <span class="n">v2</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessOrEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" boolvar == (var <= value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessOrEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessOrEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var <= value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessOrEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessOrEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (left <= right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessOrEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessOrEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (left <= right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessOrEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterOrEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" boolvar == (var >= value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterOrEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterOrEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var >= value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterOrEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterOrEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (left >= right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterOrEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterOrEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (left >= right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterOrEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">c</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (v > c)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var > value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (left > right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsGreaterCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (left > right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">c</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (v < c)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var < value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (left < right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsLessCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (left < right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SumLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">cst</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Variation on arrays."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SumLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">cst</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SumGreaterOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">cst</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SumGreaterOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">cst</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SumEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SumEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ScalProdEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScalProdEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ScalProdGreaterOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScalProdGreaterOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ScalProdLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScalProdLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MinEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">min_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MinEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">min_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MaxEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">max_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MaxEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">max_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ElementEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ElementEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AbsEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">abs_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates the constraint abs(var) == abs_var."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AbsEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">abs_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IndexOfConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">target</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This constraint is a special case of the element constraint with</span>
|
|
<span class="sd"> an array of integer variables, where the variables are all</span>
|
|
<span class="sd"> different and the index variable is constrained such that</span>
|
|
<span class="sd"> vars[index] == target.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IndexOfConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">target</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">:</span> <span class="s2">"Constraint"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Demon *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is a specialized case of the MakeConstraintDemon</span>
|
|
<span class="sd"> method to call the InitiatePropagate of the constraint 'ct'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DelayedConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">:</span> <span class="s2">"Constraint"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Demon *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is a specialized case of the MakeConstraintDemon</span>
|
|
<span class="sd"> method to call the InitiatePropagate of the constraint 'ct' with</span>
|
|
<span class="sd"> low priority.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DelayedConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ClosureDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">closure</span><span class="p">:</span> <span class="s2">"operations_research::Solver::Closure"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Demon *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a demon from a closure."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ClosureDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">closure</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BetweenCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" (l <= expr <= u)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_BetweenCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsBetweenCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (l <= expr <= u)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsBetweenCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsBetweenVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsBetweenVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NotMemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> expr not in set.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> expr should not be in the list of forbidden intervals [start[i]..end[i]].</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> expr should not be in the list of forbidden intervals [start[i]..end[i]].</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NotMemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsMemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsMemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsMemberVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsMemberVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Count</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> |{i | vars[i] == value}| == max_count</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> |{i | vars[i] == value}| == max_count</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Count</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Distribute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Aggregated version of count: |{i | v[i] == values[j]}| == cards[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Aggregated version of count: |{i | v[i] == values[j]}| == cards[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> Aggregated version of count: |{i | v[i] == j}| == cards[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> Aggregated version of count with bounded cardinalities:</span>
|
|
<span class="sd"> forall j in 0 .. card_size - 1: card_min <= |{i | v[i] == j}| <= card_max</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 5:*</span>
|
|
<span class="sd"> Aggregated version of count with bounded cardinalities:</span>
|
|
<span class="sd"> forall j in 0 .. card_size - 1:</span>
|
|
<span class="sd"> card_min[j] <= |{i | v[i] == j}| <= card_max[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 6:*</span>
|
|
<span class="sd"> Aggregated version of count with bounded cardinalities:</span>
|
|
<span class="sd"> forall j in 0 .. card_size - 1:</span>
|
|
<span class="sd"> card_min[j] <= |{i | v[i] == j}| <= card_max[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 7:*</span>
|
|
<span class="sd"> Aggregated version of count with bounded cardinalities:</span>
|
|
<span class="sd"> forall j in 0 .. card_size - 1:</span>
|
|
<span class="sd"> card_min[j] <= |{i | v[i] == values[j]}| <= card_max[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 8:*</span>
|
|
<span class="sd"> Aggregated version of count with bounded cardinalities:</span>
|
|
<span class="sd"> forall j in 0 .. card_size - 1:</span>
|
|
<span class="sd"> card_min[j] <= |{i | v[i] == values[j]}| <= card_max[j]</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Distribute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Deviation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">deviation_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">total_sum</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Deviation constraint:</span>
|
|
<span class="sd"> sum_i |n * vars[i] - total_sum| <= deviation_var and</span>
|
|
<span class="sd"> sum_i vars[i] == total_sum</span>
|
|
<span class="sd"> n = #vars</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Deviation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">deviation_var</span><span class="p">,</span> <span class="n">total_sum</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AllDifferent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> All variables are pairwise different. This corresponds to the</span>
|
|
<span class="sd"> stronger version of the propagation algorithm.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> All variables are pairwise different. If 'stronger_propagation'</span>
|
|
<span class="sd"> is true, stronger, and potentially slower propagation will</span>
|
|
<span class="sd"> occur. This API will be deprecated in the future.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AllDifferent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AllDifferentExcept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">escape_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> All variables are pairwise different, unless they are assigned to</span>
|
|
<span class="sd"> the escape value.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AllDifferentExcept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">escape_value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SortingConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="nb">sorted</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint binding the arrays of variables "vars" and</span>
|
|
<span class="sd"> "sorted_vars": sorted_vars[0] must be equal to the minimum of all</span>
|
|
<span class="sd"> variables in vars, and so on: the value of sorted_vars[i] must be</span>
|
|
<span class="sd"> equal to the i-th value of variables invars.</span>
|
|
|
|
<span class="sd"> This constraint propagates in both directions: from "vars" to</span>
|
|
<span class="sd"> "sorted_vars" and vice-versa.</span>
|
|
|
|
<span class="sd"> Behind the scenes, this constraint maintains that:</span>
|
|
<span class="sd"> - sorted is always increasing.</span>
|
|
<span class="sd"> - whatever the values of vars, there exists a permutation that</span>
|
|
<span class="sd"> injects its values into the sorted variables.</span>
|
|
|
|
<span class="sd"> For more info, please have a look at:</span>
|
|
<span class="sd"> https://mpi-inf.mpg.de/~mehlhorn/ftp/Mehlhorn-Thiel.pdf</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SortingConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="nb">sorted</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LexicalLess</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint that enforces that left is lexicographically less</span>
|
|
<span class="sd"> than right.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LexicalLess</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LexicalLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint that enforces that left is lexicographically less</span>
|
|
<span class="sd"> than or equal to right.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LexicalLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InversePermutationConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint that enforces that 'left' and 'right' both</span>
|
|
<span class="sd"> represent permutations of [0..left.size()-1], and that 'right' is</span>
|
|
<span class="sd"> the inverse permutation of 'left', i.e. for all i in</span>
|
|
<span class="sd"> [0..left.size()-1], right[left[i]] = i.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_InversePermutationConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NullIntersect</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">second_vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint that states that all variables in the first</span>
|
|
<span class="sd"> vector are different from all variables in the second</span>
|
|
<span class="sd"> group. Thus the set of values in the first vector does not</span>
|
|
<span class="sd"> intersect with the set of values in the second vector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NullIntersect</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_vars</span><span class="p">,</span> <span class="n">second_vars</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NullIntersectExcept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">second_vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">escape_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint that states that all variables in the first</span>
|
|
<span class="sd"> vector are different from all variables from the second group,</span>
|
|
<span class="sd"> unless they are assigned to the escape value. Thus the set of</span>
|
|
<span class="sd"> values in the first vector minus the escape value does not</span>
|
|
<span class="sd"> intersect with the set of values in the second vector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NullIntersectExcept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_vars</span><span class="p">,</span> <span class="n">second_vars</span><span class="p">,</span> <span class="n">escape_value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Circuit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Force the "nexts" variable to create a complete Hamiltonian path."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Circuit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SubCircuit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Force the "nexts" variable to create a complete Hamiltonian path</span>
|
|
<span class="sd"> for those that do not loop upon themselves.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SubCircuit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DelayedPathCumul</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">active</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">cumuls</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">transits</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Delayed version of the same constraint: propagation on the nexts variables</span>
|
|
<span class="sd"> is delayed until all constraints have propagated.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DelayedPathCumul</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">,</span> <span class="n">active</span><span class="p">,</span> <span class="n">cumuls</span><span class="p">,</span> <span class="n">transits</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PathCumul</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates a constraint which accumulates values along a path such that:</span>
|
|
<span class="sd"> cumuls[next[i]] = cumuls[i] + transits[i].</span>
|
|
<span class="sd"> Active variables indicate if the corresponding next variable is active;</span>
|
|
<span class="sd"> this could be useful to model unperformed nodes in a routing problem.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a constraint which accumulates values along a path such that:</span>
|
|
<span class="sd"> cumuls[next[i]] = cumuls[i] + transit_evaluator(i, next[i]).</span>
|
|
<span class="sd"> Active variables indicate if the corresponding next variable is active;</span>
|
|
<span class="sd"> this could be useful to model unperformed nodes in a routing problem.</span>
|
|
<span class="sd"> Ownership of transit_evaluator is taken and it must be a repeatable</span>
|
|
<span class="sd"> callback.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> Creates a constraint which accumulates values along a path such that:</span>
|
|
<span class="sd"> cumuls[next[i]] = cumuls[i] + transit_evaluator(i, next[i]) + slacks[i].</span>
|
|
<span class="sd"> Active variables indicate if the corresponding next variable is active;</span>
|
|
<span class="sd"> this could be useful to model unperformed nodes in a routing problem.</span>
|
|
<span class="sd"> Ownership of transit_evaluator is taken and it must be a repeatable</span>
|
|
<span class="sd"> callback.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_PathCumul</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AllowedAssignments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This method creates a constraint where the graph of the relation</span>
|
|
<span class="sd"> between the variables is given in extension. There are 'arity'</span>
|
|
<span class="sd"> variables involved in the relation and the graph is given by a</span>
|
|
<span class="sd"> integer tuple set.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Compatibility layer for Python API.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AllowedAssignments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TransitionConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TransitionConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NonOverlappingBoxesConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NonOverlappingBoxesConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Pack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">number_of_bins</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Pack *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This constraint packs all variables onto 'number_of_bins'</span>
|
|
<span class="sd"> variables. For any given variable, a value of 'number_of_bins'</span>
|
|
<span class="sd"> indicates that the variable is not assigned to any bin.</span>
|
|
<span class="sd"> Dimensions, i.e., cumulative constraints on this packing, can be</span>
|
|
<span class="sd"> added directly from the pack class.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Pack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">number_of_bins</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FixedDurationIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration. The duration must</span>
|
|
<span class="sd"> be greater than 0. If optional is true, then the interval can be</span>
|
|
<span class="sd"> performed or unperformed. If optional is false, then the interval</span>
|
|
<span class="sd"> is always performed.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a performed interval var with a fixed duration. The duration must</span>
|
|
<span class="sd"> be greater than 0.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration, and performed_variable.</span>
|
|
<span class="sd"> The duration must be greater than 0.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedDurationIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FixedInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a fixed and performed interval."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start_min</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">start_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">duration_min</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">duration_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">end_min</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">end_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">optional</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var by specifying the bounds on start,</span>
|
|
<span class="sd"> duration, and end.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start_min</span><span class="p">,</span> <span class="n">start_max</span><span class="p">,</span> <span class="n">duration_min</span><span class="p">,</span> <span class="n">duration_max</span><span class="p">,</span> <span class="n">end_min</span><span class="p">,</span> <span class="n">end_max</span><span class="p">,</span> <span class="n">optional</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MirrorInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var that is the mirror image of the given one, that</span>
|
|
<span class="sd"> is, the interval var obtained by reversing the axis.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MirrorInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FixedDurationStartSyncedOnStartIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">offset</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration whose start is</span>
|
|
<span class="sd"> synchronized with the start of another interval, with a given</span>
|
|
<span class="sd"> offset. The performed status is also in sync with the performed</span>
|
|
<span class="sd"> status of the given interval variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedDurationStartSyncedOnStartIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FixedDurationStartSyncedOnEndIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">offset</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration whose start is</span>
|
|
<span class="sd"> synchronized with the end of another interval, with a given</span>
|
|
<span class="sd"> offset. The performed status is also in sync with the performed</span>
|
|
<span class="sd"> status of the given interval variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedDurationStartSyncedOnEndIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FixedDurationEndSyncedOnStartIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">offset</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration whose end is</span>
|
|
<span class="sd"> synchronized with the start of another interval, with a given</span>
|
|
<span class="sd"> offset. The performed status is also in sync with the performed</span>
|
|
<span class="sd"> status of the given interval variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedDurationEndSyncedOnStartIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FixedDurationEndSyncedOnEndIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">offset</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration whose end is</span>
|
|
<span class="sd"> synchronized with the end of another interval, with a given</span>
|
|
<span class="sd"> offset. The performed status is also in sync with the performed</span>
|
|
<span class="sd"> status of the given interval variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedDurationEndSyncedOnEndIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IntervalRelaxedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates and returns an interval variable that wraps around the given one,</span>
|
|
<span class="sd"> relaxing the min start and end. Relaxing means making unbounded when</span>
|
|
<span class="sd"> optional. If the variable is non-optional, this method returns</span>
|
|
<span class="sd"> interval_var.</span>
|
|
|
|
<span class="sd"> More precisely, such an interval variable behaves as follows:</span>
|
|
<span class="sd"> When the underlying must be performed, the returned interval variable</span>
|
|
<span class="sd"> behaves exactly as the underlying;</span>
|
|
<span class="sd"> When the underlying may or may not be performed, the returned interval</span>
|
|
<span class="sd"> variable behaves like the underlying, except that it is unbounded on</span>
|
|
<span class="sd"> the min side;</span>
|
|
<span class="sd"> When the underlying cannot be performed, the returned interval variable</span>
|
|
<span class="sd"> is of duration 0 and must be performed in an interval unbounded on</span>
|
|
<span class="sd"> both sides.</span>
|
|
|
|
<span class="sd"> This is very useful to implement propagators that may only modify</span>
|
|
<span class="sd"> the start max or end max.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IntervalRelaxedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IntervalRelaxedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates and returns an interval variable that wraps around the given one,</span>
|
|
<span class="sd"> relaxing the max start and end. Relaxing means making unbounded when</span>
|
|
<span class="sd"> optional. If the variable is non optional, this method returns</span>
|
|
<span class="sd"> interval_var.</span>
|
|
|
|
<span class="sd"> More precisely, such an interval variable behaves as follows:</span>
|
|
<span class="sd"> When the underlying must be performed, the returned interval variable</span>
|
|
<span class="sd"> behaves exactly as the underlying;</span>
|
|
<span class="sd"> When the underlying may or may not be performed, the returned interval</span>
|
|
<span class="sd"> variable behaves like the underlying, except that it is unbounded on</span>
|
|
<span class="sd"> the max side;</span>
|
|
<span class="sd"> When the underlying cannot be performed, the returned interval variable</span>
|
|
<span class="sd"> is of duration 0 and must be performed in an interval unbounded on</span>
|
|
<span class="sd"> both sides.</span>
|
|
|
|
<span class="sd"> This is very useful for implementing propagators that may only modify</span>
|
|
<span class="sd"> the start min or end min.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IntervalRelaxedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TemporalDisjunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This constraint implements a temporal disjunction between two</span>
|
|
<span class="sd"> interval vars t1 and t2. 'alt' indicates which alternative was</span>
|
|
<span class="sd"> chosen (alt == 0 is equivalent to t1 before t2).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This constraint implements a temporal disjunction between two</span>
|
|
<span class="sd"> interval vars.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TemporalDisjunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DisjunctiveConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">intervals</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntervalVar * > const &"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DisjunctiveConstraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This constraint forces all interval vars into an non-overlapping</span>
|
|
<span class="sd"> sequence. Intervals with zero duration can be scheduled anywhere.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DisjunctiveConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">intervals</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Cumulative</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This constraint forces that, for any integer t, the sum of the demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should only contain non-negative values. Zero values are</span>
|
|
<span class="sd"> supported, and the corresponding intervals are filtered out, as they</span>
|
|
<span class="sd"> neither impact nor are impacted by this constraint.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This constraint forces that, for any integer t, the sum of the demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should only contain non-negative values. Zero values are</span>
|
|
<span class="sd"> supported, and the corresponding intervals are filtered out, as they</span>
|
|
<span class="sd"> neither impact nor are impacted by this constraint.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> This constraint forces that, for any integer t, the sum of the demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should only contain non-negative values. Zero values are</span>
|
|
<span class="sd"> supported, and the corresponding intervals are filtered out, as they</span>
|
|
<span class="sd"> neither impact nor are impacted by this constraint.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> This constraint enforces that, for any integer t, the sum of the demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should only contain non-negative values. Zero values are</span>
|
|
<span class="sd"> supported, and the corresponding intervals are filtered out, as they</span>
|
|
<span class="sd"> neither impact nor are impacted by this constraint.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 5:*</span>
|
|
<span class="sd"> This constraint enforces that, for any integer t, the sum of demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should be positive.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 6:*</span>
|
|
<span class="sd"> This constraint enforces that, for any integer t, the sum of demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should be positive.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Cumulative</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Cover</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntervalVar * > const &"</span><span class="p">,</span> <span class="n">target_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This constraint states that the target_var is the convex hull of</span>
|
|
<span class="sd"> the intervals. If none of the interval variables is performed,</span>
|
|
<span class="sd"> then the target var is unperformed too. Also, if the target</span>
|
|
<span class="sd"> variable is unperformed, then all the intervals variables are</span>
|
|
<span class="sd"> unperformed too.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Cover</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">target_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Assignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This method creates an empty assignment.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This method creates an assignment which is a copy of 'a'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Assignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FirstSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SolutionCollector *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Collect the first solution of the search.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Collect the first solution of the search. The variables will need to</span>
|
|
<span class="sd"> be added later.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FirstSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LastSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SolutionCollector *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Collect the last solution of the search.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Collect the last solution of the search. The variables will need to</span>
|
|
<span class="sd"> be added later.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LastSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BestValueSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SolutionCollector *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Collect the solution corresponding to the optimal value of the objective</span>
|
|
<span class="sd"> of 'assignment'; if 'assignment' does not have an objective no solution is</span>
|
|
<span class="sd"> collected. This collector only collects one solution corresponding to the</span>
|
|
<span class="sd"> best objective value (the first one found).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Collect the solution corresponding to the optimal value of the</span>
|
|
<span class="sd"> objective of 'assignment'; if 'assignment' does not have an objective no</span>
|
|
<span class="sd"> solution is collected. This collector only collects one solution</span>
|
|
<span class="sd"> corresponding to the best objective value (the first one</span>
|
|
<span class="sd"> found). The variables will need to be added later.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_BestValueSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AllSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SolutionCollector *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Collect all solutions of the search.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Collect all solutions of the search. The variables will need to</span>
|
|
<span class="sd"> be added later.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AllSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Minimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a minimization objective."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Minimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Maximize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a maximization objective."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Maximize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a objective with a given sense (true = maximization)."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WeightedMinimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates a minimization weighted objective. The actual objective is</span>
|
|
<span class="sd"> scalar_prod(sub_objectives, weights).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a minimization weighted objective. The actual objective is</span>
|
|
<span class="sd"> scalar_prod(sub_objectives, weights).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_WeightedMinimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WeightedMaximize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates a maximization weigthed objective.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a maximization weigthed objective.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_WeightedMaximize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WeightedOptimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates a weighted objective with a given sense (true = maximization).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a weighted objective with a given sense (true = maximization).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_WeightedOptimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TabuSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">keep_tenure</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">forbid_tenure</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">tabu_factor</span><span class="p">:</span> <span class="s2">"double"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> MetaHeuristics which try to get the search out of local optima.</span>
|
|
<span class="sd"> Creates a Tabu Search monitor.</span>
|
|
<span class="sd"> In the context of local search the behavior is similar to MakeOptimize(),</span>
|
|
<span class="sd"> creating an objective in a given sense. The behavior differs once a local</span>
|
|
<span class="sd"> optimum is reached: thereafter solutions which degrade the value of the</span>
|
|
<span class="sd"> objective are allowed if they are not "tabu". A solution is "tabu" if it</span>
|
|
<span class="sd"> doesn't respect the following rules:</span>
|
|
<span class="sd"> - improving the best solution found so far</span>
|
|
<span class="sd"> - variables in the "keep" list must keep their value, variables in the</span>
|
|
<span class="sd"> "forbid" list must not take the value they have in the list.</span>
|
|
<span class="sd"> Variables with new values enter the tabu lists after each new solution</span>
|
|
<span class="sd"> found and leave the lists after a given number of iterations (called</span>
|
|
<span class="sd"> tenure). Only the variables passed to the method can enter the lists.</span>
|
|
<span class="sd"> The tabu criterion is softened by the tabu factor which gives the number</span>
|
|
<span class="sd"> of "tabu" violations which is tolerated; a factor of 1 means no violations</span>
|
|
<span class="sd"> allowed; a factor of 0 means all violations are allowed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TabuSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">step</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">keep_tenure</span><span class="p">,</span> <span class="n">forbid_tenure</span><span class="p">,</span> <span class="n">tabu_factor</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SimulatedAnnealing</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">initial_temperature</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a Simulated Annealing monitor."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SimulatedAnnealing</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">step</span><span class="p">,</span> <span class="n">initial_temperature</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LubyRestart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">scale_factor</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This search monitor will restart the search periodically.</span>
|
|
<span class="sd"> At the iteration n, it will restart after scale_factor * Luby(n) failures</span>
|
|
<span class="sd"> where Luby is the Luby Strategy (i.e. 1 1 2 1 1 2 4 1 1 2 1 1 2 4 8...).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LubyRestart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">scale_factor</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ConstantRestart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">frequency</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This search monitor will restart the search periodically after 'frequency'</span>
|
|
<span class="sd"> failures.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConstantRestart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">frequency</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TimeLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RegularLimit *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TimeLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BranchesLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">branches</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RegularLimit *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a search limit that constrains the number of branches</span>
|
|
<span class="sd"> explored in the search tree.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_BranchesLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">branches</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FailuresLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">failures</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RegularLimit *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a search limit that constrains the number of failures</span>
|
|
<span class="sd"> that can happen when exploring the search tree.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FailuresLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">failures</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolutionsLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solutions</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RegularLimit *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a search limit that constrains the number of solutions found</span>
|
|
<span class="sd"> during the search.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SolutionsLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solutions</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchLimit *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Limits the search with the 'time', 'branches', 'failures' and</span>
|
|
<span class="sd"> 'solutions' limits. 'smart_time_check' reduces the calls to the wall</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a search limit from its protobuf description</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> Creates a search limit that is reached when either of the underlying limit</span>
|
|
<span class="sd"> is reached. That is, the returned limit is more stringent than both</span>
|
|
<span class="sd"> argument limits.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CustomLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">limiter</span><span class="p">:</span> <span class="s2">"std::function< bool () >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchLimit *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Callback-based search limit. Search stops when limiter returns true; if</span>
|
|
<span class="sd"> this happens at a leaf the corresponding solution will be rejected.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CustomLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">limiter</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SearchLog</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SearchLog</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SearchTrace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a search monitor that will trace precisely the behavior of the</span>
|
|
<span class="sd"> search. Use this only for low level debugging.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SearchTrace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PrintModelVisitor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::ModelVisitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Prints the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_PrintModelVisitor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StatisticsModelVisitor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::ModelVisitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Displays some nice statistics on the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_StatisticsModelVisitor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AssignVariableValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Decisions."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AssignVariableValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VariableLessOrEqualValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VariableLessOrEqualValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VariableGreaterOrEqualValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VariableGreaterOrEqualValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SplitVariableDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">start_with_lower_half</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SplitVariableDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">val</span><span class="p">,</span> <span class="n">start_with_lower_half</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AssignVariableValueOrFail</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AssignVariableValueOrFail</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AssignVariablesValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AssignVariablesValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FailDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FailDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Decision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">apply</span><span class="p">:</span> <span class="s2">"operations_research::Solver::Action"</span><span class="p">,</span> <span class="n">refute</span><span class="p">:</span> <span class="s2">"operations_research::Solver::Action"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Decision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">apply</span><span class="p">,</span> <span class="n">refute</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Compose</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dbs</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::DecisionBuilder * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Compose</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dbs</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Try</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dbs</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::DecisionBuilder * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Try</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dbs</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DefaultPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DefaultPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ScheduleOrPostpone</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">est</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">marker</span><span class="p">:</span> <span class="s2">"int64_t *const"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision that tries to schedule a task at a given time.</span>
|
|
<span class="sd"> On the Apply branch, it will set that interval var as performed and set</span>
|
|
<span class="sd"> its start to 'est'. On the Refute branch, it will just update the</span>
|
|
<span class="sd"> 'marker' to 'est' + 1. This decision is used in the</span>
|
|
<span class="sd"> INTERVAL_SET_TIMES_FORWARD strategy.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScheduleOrPostpone</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">est</span><span class="p">,</span> <span class="n">marker</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ScheduleOrExpedite</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">est</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">marker</span><span class="p">:</span> <span class="s2">"int64_t *const"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision that tries to schedule a task at a given time.</span>
|
|
<span class="sd"> On the Apply branch, it will set that interval var as performed and set</span>
|
|
<span class="sd"> its end to 'est'. On the Refute branch, it will just update the</span>
|
|
<span class="sd"> 'marker' to 'est' - 1. This decision is used in the</span>
|
|
<span class="sd"> INTERVAL_SET_TIMES_BACKWARD strategy.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScheduleOrExpedite</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">est</span><span class="p">,</span> <span class="n">marker</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RankFirstInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision that tries to rank first the ith interval var</span>
|
|
<span class="sd"> in the sequence variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RankFirstInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RankLastInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision that tries to rank last the ith interval var</span>
|
|
<span class="sd"> in the sequence variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RankLastInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Phase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Phase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DecisionBuilderFromAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">db</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision builder for which the left-most leaf corresponds</span>
|
|
<span class="sd"> to assignment, the rest of the tree being explored using 'db'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DecisionBuilderFromAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="nb">vars</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ConstraintAdder</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">:</span> <span class="s2">"Constraint"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision builder that will add the given constraint to</span>
|
|
<span class="sd"> the model.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConstraintAdder</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolveOnce</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">db</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">,</span> <span class="n">monitors</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::SearchMonitor * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SolveOnce</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">monitors</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NestedOptimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NestedOptimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RestoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a DecisionBuilder which restores an Assignment</span>
|
|
<span class="sd"> (calls void Assignment::Restore())</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RestoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a DecisionBuilder which stores an Assignment</span>
|
|
<span class="sd"> (calls void Assignment::Store())</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_StoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Operator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Operator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RandomLnsOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RandomLnsOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MoveTowardTargetOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates a local search operator that tries to move the assignment of some</span>
|
|
<span class="sd"> variables toward a target. The target is given as an Assignment. This</span>
|
|
<span class="sd"> operator generates neighbors in which the only difference compared to the</span>
|
|
<span class="sd"> current state is that one variable that belongs to the target assignment</span>
|
|
<span class="sd"> is set to its target value.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a local search operator that tries to move the assignment of some</span>
|
|
<span class="sd"> variables toward a target. The target is given either as two vectors: a</span>
|
|
<span class="sd"> vector of variables and a vector of associated target values. The two</span>
|
|
<span class="sd"> vectors should be of the same length. This operator generates neighbors in</span>
|
|
<span class="sd"> which the only difference compared to the current state is that one</span>
|
|
<span class="sd"> variable that belongs to the given vector is set to its target value.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MoveTowardTargetOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ConcatenateOperators</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConcatenateOperators</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RandomConcatenateOperators</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Randomized version of local search concatenator; calls a random operator</span>
|
|
<span class="sd"> at each call to MakeNextNeighbor().</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Randomized version of local search concatenator; calls a random operator</span>
|
|
<span class="sd"> at each call to MakeNextNeighbor(). The provided seed is used to</span>
|
|
<span class="sd"> initialize the random number generator.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RandomConcatenateOperators</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NeighborhoodLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="s2">"LocalSearchOperator"</span><span class="p">,</span> <span class="n">limit</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a local search operator that wraps another local search</span>
|
|
<span class="sd"> operator and limits the number of neighbors explored (i.e., calls</span>
|
|
<span class="sd"> to MakeNextNeighbor from the current solution (between two calls</span>
|
|
<span class="sd"> to Start()). When this limit is reached, MakeNextNeighbor()</span>
|
|
<span class="sd"> returns false. The counter is cleared when Start() is called.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NeighborhoodLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">limit</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LocalSearchPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LocalSearchPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LocalSearchPhaseParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchPhaseParameters *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LocalSearchPhaseParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SearchDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Gets the search depth of the current active search. Returns -1 if</span>
|
|
<span class="sd"> there is no active search opened.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SearchDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SearchLeftDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Gets the search left depth of the current active search. Returns -1 if</span>
|
|
<span class="sd"> there is no active search opened.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SearchLeftDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolveDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Gets the number of nested searches. It returns 0 outside search,</span>
|
|
<span class="sd"> 1 during the top level search, 2 or more in case of nested searches.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SolveDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Rand64</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns a random value between 0 and 'size' - 1;"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Rand64</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Rand32</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">:</span> <span class="s2">"int32_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int32_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns a random value between 0 and 'size' - 1;"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Rand32</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ReSeed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">seed</span><span class="p">:</span> <span class="s2">"int32_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Reseed the solver random generator."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ReSeed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">seed</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LocalSearchProfile</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns local search profiling information in a human readable format."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LocalSearchProfile</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Constraints</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Counts the number of constraints that have been added</span>
|
|
<span class="sd"> to the solver before the search.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Constraints</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">visitor</span><span class="p">:</span> <span class="s2">"operations_research::ModelVisitor *const"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Accepts the given model visitor."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">visitor</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FinishCurrentSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Tells the solver to kill or restart the current search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FinishCurrentSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RestartCurrentSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RestartCurrentSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ShouldFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> These methods are only useful for the SWIG wrappers, which need a way</span>
|
|
<span class="sd"> to externally cause the Solver to fail.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ShouldFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ct</span><span class="p">,</span> <span class="n">PyConstraint</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__python_constraints</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ct</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">AddConstraint</span><span class="p">(</span><span class="n">ct</span><span class="p">)</span>
|
|
|
|
|
|
<span class="k">def</span> <span class="nf">TreeNoCycle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">active</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexFilter1"</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TreeNoCycle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">,</span> <span class="n">active</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SearchLogWithCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">period</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"std::function< std::string () >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SearchLogWithCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">period</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ElementFunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ElementFunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VarEvalValStrPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">var_evaluator</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">,</span> <span class="n">val_str</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IntValueStrategy"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VarEvalValStrPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">var_evaluator</span><span class="p">,</span> <span class="n">val_str</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VarStrValEvalPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">var_str</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IntVarStrategy"</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VarStrValEvalPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">var_str</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VarEvalValEvalPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">var_eval</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VarEvalValEvalPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">var_eval</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VarStrValEvalTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">var_str</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IntVarStrategy"</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VarStrValEvalTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">var_str</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VarEvalValEvalTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">var_eval</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VarEvalValEvalTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">var_eval</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EvalEvalStrPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">,</span> <span class="nb">str</span><span class="p">:</span> <span class="s2">"operations_research::Solver::EvaluatorStrategy"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_EvalEvalStrPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EvalEvalStrTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator1"</span><span class="p">,</span> <span class="nb">str</span><span class="p">:</span> <span class="s2">"operations_research::Solver::EvaluatorStrategy"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_EvalEvalStrTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GuidedLocalSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_GuidedLocalSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SumObjectiveFilter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">,</span> <span class="n">filter_enum</span><span class="p">:</span> <span class="s2">"operations_research::Solver::LocalSearchFilterBound"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchFilter *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SumObjectiveFilter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">filter_enum</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Solver Class</p>
|
|
|
|
<p>A solver represents the main computation engine. It implements the entire
|
|
range of Constraint Programming protocols:</p>
|
|
|
|
<ul>
|
|
<li>Reversibility</li>
|
|
<li>Propagation</li>
|
|
<li>Search</li>
|
|
</ul>
|
|
|
|
<p>Usually, Constraint Programming code consists of</p>
|
|
|
|
<ul>
|
|
<li>the creation of the Solver,</li>
|
|
<li>the creation of the decision variables of the model,</li>
|
|
<li>the creation of the constraints of the model and their addition to the
|
|
solver() through the AddConstraint() method,</li>
|
|
<li>the creation of the main DecisionBuilder class,</li>
|
|
<li>the launch of the solve() method with the decision builder.</li>
|
|
</ul>
|
|
|
|
<p>For the time being, Solver is neither MT_SAFE nor MT_HOT.</p>
|
|
</div>
|
|
|
|
|
|
<div id="Solver.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.__init__">#  </a>
|
|
|
|
|
|
<span class="name">Solver</span><span class="signature">(*args)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_Solver</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">))</span>
|
|
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__python_constraints</span> <span class="o">=</span> <span class="p">[]</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.INT_VAR_DEFAULT" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.INT_VAR_DEFAULT">#  </a>
|
|
|
|
<span class="name">INT_VAR_DEFAULT</span><span class="default_value"> = 0</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The default behavior is CHOOSE_FIRST_UNBOUND.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.INT_VAR_SIMPLE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.INT_VAR_SIMPLE">#  </a>
|
|
|
|
<span class="name">INT_VAR_SIMPLE</span><span class="default_value"> = 1</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The simple selection is CHOOSE_FIRST_UNBOUND.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CHOOSE_FIRST_UNBOUND" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.CHOOSE_FIRST_UNBOUND">#  </a>
|
|
|
|
<span class="name">CHOOSE_FIRST_UNBOUND</span><span class="default_value"> = 2</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Select the first unbound variable.
|
|
Variables are considered in the order of the vector of IntVars used
|
|
to create the selector.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CHOOSE_RANDOM" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.CHOOSE_RANDOM">#  </a>
|
|
|
|
<span class="name">CHOOSE_RANDOM</span><span class="default_value"> = 3</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Randomly select one of the remaining unbound variables.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CHOOSE_MIN_SIZE_LOWEST_MIN" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.CHOOSE_MIN_SIZE_LOWEST_MIN">#  </a>
|
|
|
|
<span class="name">CHOOSE_MIN_SIZE_LOWEST_MIN</span><span class="default_value"> = 4</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Among unbound variables, select the variable with the smallest size,
|
|
i.e., the smallest number of possible values.
|
|
In case of a tie, the selected variables is the one with the lowest min
|
|
value.
|
|
In case of a tie, the first one is selected, first being defined by the
|
|
order in the vector of IntVars used to create the selector.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CHOOSE_MIN_SIZE_HIGHEST_MIN" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.CHOOSE_MIN_SIZE_HIGHEST_MIN">#  </a>
|
|
|
|
<span class="name">CHOOSE_MIN_SIZE_HIGHEST_MIN</span><span class="default_value"> = 5</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Among unbound variables, select the variable with the smallest size,
|
|
i.e., the smallest number of possible values.
|
|
In case of a tie, the selected variable is the one with the highest min
|
|
value.
|
|
In case of a tie, the first one is selected, first being defined by the
|
|
order in the vector of IntVars used to create the selector.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CHOOSE_MIN_SIZE_LOWEST_MAX" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.CHOOSE_MIN_SIZE_LOWEST_MAX">#  </a>
|
|
|
|
<span class="name">CHOOSE_MIN_SIZE_LOWEST_MAX</span><span class="default_value"> = 6</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Among unbound variables, select the variable with the smallest size,
|
|
i.e., the smallest number of possible values.
|
|
In case of a tie, the selected variables is the one with the lowest max
|
|
value.
|
|
In case of a tie, the first one is selected, first being defined by the
|
|
order in the vector of IntVars used to create the selector.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CHOOSE_MIN_SIZE_HIGHEST_MAX" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.CHOOSE_MIN_SIZE_HIGHEST_MAX">#  </a>
|
|
|
|
<span class="name">CHOOSE_MIN_SIZE_HIGHEST_MAX</span><span class="default_value"> = 7</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Among unbound variables, select the variable with the smallest size,
|
|
i.e., the smallest number of possible values.
|
|
In case of a tie, the selected variable is the one with the highest max
|
|
value.
|
|
In case of a tie, the first one is selected, first being defined by the
|
|
order in the vector of IntVars used to create the selector.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CHOOSE_LOWEST_MIN" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.CHOOSE_LOWEST_MIN">#  </a>
|
|
|
|
<span class="name">CHOOSE_LOWEST_MIN</span><span class="default_value"> = 8</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Among unbound variables, select the variable with the smallest minimal
|
|
value.
|
|
In case of a tie, the first one is selected, "first" defined by the
|
|
order in the vector of IntVars used to create the selector.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CHOOSE_HIGHEST_MAX" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.CHOOSE_HIGHEST_MAX">#  </a>
|
|
|
|
<span class="name">CHOOSE_HIGHEST_MAX</span><span class="default_value"> = 9</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Among unbound variables, select the variable with the highest maximal
|
|
value.
|
|
In case of a tie, the first one is selected, first being defined by the
|
|
order in the vector of IntVars used to create the selector.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CHOOSE_MIN_SIZE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.CHOOSE_MIN_SIZE">#  </a>
|
|
|
|
<span class="name">CHOOSE_MIN_SIZE</span><span class="default_value"> = 10</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Among unbound variables, select the variable with the smallest size.
|
|
In case of a tie, the first one is selected, first being defined by the
|
|
order in the vector of IntVars used to create the selector.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CHOOSE_MAX_SIZE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.CHOOSE_MAX_SIZE">#  </a>
|
|
|
|
<span class="name">CHOOSE_MAX_SIZE</span><span class="default_value"> = 11</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Among unbound variables, select the variable with the highest size.
|
|
In case of a tie, the first one is selected, first being defined by the
|
|
order in the vector of IntVars used to create the selector.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CHOOSE_MAX_REGRET_ON_MIN" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.CHOOSE_MAX_REGRET_ON_MIN">#  </a>
|
|
|
|
<span class="name">CHOOSE_MAX_REGRET_ON_MIN</span><span class="default_value"> = 12</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Among unbound variables, select the variable with the largest
|
|
gap between the first and the second values of the domain.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CHOOSE_PATH" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.CHOOSE_PATH">#  </a>
|
|
|
|
<span class="name">CHOOSE_PATH</span><span class="default_value"> = 13</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Selects the next unbound variable on a path, the path being defined by
|
|
the variables: var[i] corresponds to the index of the next of i.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.INT_VALUE_DEFAULT" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.INT_VALUE_DEFAULT">#  </a>
|
|
|
|
<span class="name">INT_VALUE_DEFAULT</span><span class="default_value"> = 0</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The default behavior is ASSIGN_MIN_VALUE.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.INT_VALUE_SIMPLE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.INT_VALUE_SIMPLE">#  </a>
|
|
|
|
<span class="name">INT_VALUE_SIMPLE</span><span class="default_value"> = 1</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The simple selection is ASSIGN_MIN_VALUE.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ASSIGN_MIN_VALUE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.ASSIGN_MIN_VALUE">#  </a>
|
|
|
|
<span class="name">ASSIGN_MIN_VALUE</span><span class="default_value"> = 2</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Selects the min value of the selected variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ASSIGN_MAX_VALUE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.ASSIGN_MAX_VALUE">#  </a>
|
|
|
|
<span class="name">ASSIGN_MAX_VALUE</span><span class="default_value"> = 3</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Selects the max value of the selected variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ASSIGN_RANDOM_VALUE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.ASSIGN_RANDOM_VALUE">#  </a>
|
|
|
|
<span class="name">ASSIGN_RANDOM_VALUE</span><span class="default_value"> = 4</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Selects randomly one of the possible values of the selected variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ASSIGN_CENTER_VALUE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.ASSIGN_CENTER_VALUE">#  </a>
|
|
|
|
<span class="name">ASSIGN_CENTER_VALUE</span><span class="default_value"> = 5</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Selects the first possible value which is the closest to the center
|
|
of the domain of the selected variable.
|
|
The center is defined as (min + max) / 2.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SPLIT_LOWER_HALF" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.SPLIT_LOWER_HALF">#  </a>
|
|
|
|
<span class="name">SPLIT_LOWER_HALF</span><span class="default_value"> = 6</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Split the domain in two around the center, and choose the lower
|
|
part first.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SPLIT_UPPER_HALF" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.SPLIT_UPPER_HALF">#  </a>
|
|
|
|
<span class="name">SPLIT_UPPER_HALF</span><span class="default_value"> = 7</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Split the domain in two around the center, and choose the lower
|
|
part first.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SEQUENCE_DEFAULT" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.SEQUENCE_DEFAULT">#  </a>
|
|
|
|
<span class="name">SEQUENCE_DEFAULT</span><span class="default_value"> = 0</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SEQUENCE_SIMPLE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.SEQUENCE_SIMPLE">#  </a>
|
|
|
|
<span class="name">SEQUENCE_SIMPLE</span><span class="default_value"> = 1</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CHOOSE_MIN_SLACK_RANK_FORWARD" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.CHOOSE_MIN_SLACK_RANK_FORWARD">#  </a>
|
|
|
|
<span class="name">CHOOSE_MIN_SLACK_RANK_FORWARD</span><span class="default_value"> = 2</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CHOOSE_RANDOM_RANK_FORWARD" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.CHOOSE_RANDOM_RANK_FORWARD">#  </a>
|
|
|
|
<span class="name">CHOOSE_RANDOM_RANK_FORWARD</span><span class="default_value"> = 3</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.INTERVAL_DEFAULT" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.INTERVAL_DEFAULT">#  </a>
|
|
|
|
<span class="name">INTERVAL_DEFAULT</span><span class="default_value"> = 0</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The default is INTERVAL_SET_TIMES_FORWARD.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.INTERVAL_SIMPLE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.INTERVAL_SIMPLE">#  </a>
|
|
|
|
<span class="name">INTERVAL_SIMPLE</span><span class="default_value"> = 1</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The simple is INTERVAL_SET_TIMES_FORWARD.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.INTERVAL_SET_TIMES_FORWARD" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.INTERVAL_SET_TIMES_FORWARD">#  </a>
|
|
|
|
<span class="name">INTERVAL_SET_TIMES_FORWARD</span><span class="default_value"> = 2</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Selects the variable with the lowest starting time of all variables,
|
|
and fixes its starting time to this lowest value.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.INTERVAL_SET_TIMES_BACKWARD" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.INTERVAL_SET_TIMES_BACKWARD">#  </a>
|
|
|
|
<span class="name">INTERVAL_SET_TIMES_BACKWARD</span><span class="default_value"> = 3</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Selects the variable with the highest ending time of all variables,
|
|
and fixes the ending time to this highest values.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.TWOOPT" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.TWOOPT">#  </a>
|
|
|
|
<span class="name">TWOOPT</span><span class="default_value"> = 0</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Operator which reverses a sub-chain of a path. It is called TwoOpt
|
|
because it breaks two arcs on the path; resulting paths are called
|
|
two-optimal.
|
|
Possible neighbors for the path 1 -> 2 -> 3 -> 4 -> 5
|
|
(where (1, 5) are first and last nodes of the path and can therefore not
|
|
be moved):
|
|
1 -> [3 -> 2] -> 4 -> 5
|
|
1 -> [4 -> 3 -> 2] -> 5
|
|
1 -> 2 -> [4 -> 3] -> 5</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.OROPT" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.OROPT">#  </a>
|
|
|
|
<span class="name">OROPT</span><span class="default_value"> = 1</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Relocate: OROPT and RELOCATE.
|
|
Operator which moves a sub-chain of a path to another position; the
|
|
specified chain length is the fixed length of the chains being moved.
|
|
When this length is 1, the operator simply moves a node to another
|
|
position.
|
|
Possible neighbors for the path 1 -> 2 -> 3 -> 4 -> 5, for a chain
|
|
length of 2 (where (1, 5) are first and last nodes of the path and can
|
|
therefore not be moved):
|
|
1 -> 4 -> [2 -> 3] -> 5
|
|
1 -> [3 -> 4] -> 2 -> 5</p>
|
|
|
|
<p>Using Relocate with chain lengths of 1, 2 and 3 together is equivalent
|
|
to the OrOpt operator on a path. The OrOpt operator is a limited
|
|
version of 3Opt (breaks 3 arcs on a path).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.RELOCATE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.RELOCATE">#  </a>
|
|
|
|
<span class="name">RELOCATE</span><span class="default_value"> = 2</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Relocate neighborhood with length of 1 (see OROPT comment).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.EXCHANGE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.EXCHANGE">#  </a>
|
|
|
|
<span class="name">EXCHANGE</span><span class="default_value"> = 3</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Operator which exchanges the positions of two nodes.
|
|
Possible neighbors for the path 1 -> 2 -> 3 -> 4 -> 5
|
|
(where (1, 5) are first and last nodes of the path and can therefore not
|
|
be moved):
|
|
1 -> [3] -> [2] -> 4 -> 5
|
|
1 -> [4] -> 3 -> [2] -> 5
|
|
1 -> 2 -> [4] -> [3] -> 5</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CROSS" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.CROSS">#  </a>
|
|
|
|
<span class="name">CROSS</span><span class="default_value"> = 4</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Operator which cross exchanges the starting chains of 2 paths, including
|
|
exchanging the whole paths.
|
|
First and last nodes are not moved.
|
|
Possible neighbors for the paths 1 -> 2 -> 3 -> 4 -> 5 and 6 -> 7 -> 8
|
|
(where (1, 5) and (6, 8) are first and last nodes of the paths and can
|
|
therefore not be moved):
|
|
1 -> [7] -> 3 -> 4 -> 5 6 -> [2] -> 8
|
|
1 -> [7] -> 4 -> 5 6 -> [2 -> 3] -> 8
|
|
1 -> [7] -> 5 6 -> [2 -> 3 -> 4] -> 8</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.MAKEACTIVE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.MAKEACTIVE">#  </a>
|
|
|
|
<span class="name">MAKEACTIVE</span><span class="default_value"> = 5</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Operator which inserts an inactive node into a path.
|
|
Possible neighbors for the path 1 -> 2 -> 3 -> 4 with 5 inactive
|
|
(where 1 and 4 are first and last nodes of the path) are:
|
|
1 -> [5] -> 2 -> 3 -> 4
|
|
1 -> 2 -> [5] -> 3 -> 4
|
|
1 -> 2 -> 3 -> [5] -> 4</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.MAKEINACTIVE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.MAKEINACTIVE">#  </a>
|
|
|
|
<span class="name">MAKEINACTIVE</span><span class="default_value"> = 6</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Operator which makes path nodes inactive.
|
|
Possible neighbors for the path 1 -> 2 -> 3 -> 4 (where 1 and 4 are
|
|
first and last nodes of the path) are:
|
|
1 -> 3 -> 4 with 2 inactive
|
|
1 -> 2 -> 4 with 3 inactive</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.MAKECHAININACTIVE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.MAKECHAININACTIVE">#  </a>
|
|
|
|
<span class="name">MAKECHAININACTIVE</span><span class="default_value"> = 7</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Operator which makes a "chain" of path nodes inactive.
|
|
Possible neighbors for the path 1 -> 2 -> 3 -> 4 (where 1 and 4 are
|
|
first and last nodes of the path) are:
|
|
1 -> 3 -> 4 with 2 inactive
|
|
1 -> 2 -> 4 with 3 inactive
|
|
1 -> 4 with 2 and 3 inactive</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SWAPACTIVE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.SWAPACTIVE">#  </a>
|
|
|
|
<span class="name">SWAPACTIVE</span><span class="default_value"> = 8</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Operator which replaces an active node by an inactive one.
|
|
Possible neighbors for the path 1 -> 2 -> 3 -> 4 with 5 inactive
|
|
(where 1 and 4 are first and last nodes of the path) are:
|
|
1 -> [5] -> 3 -> 4 with 2 inactive
|
|
1 -> 2 -> [5] -> 4 with 3 inactive</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.EXTENDEDSWAPACTIVE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.EXTENDEDSWAPACTIVE">#  </a>
|
|
|
|
<span class="name">EXTENDEDSWAPACTIVE</span><span class="default_value"> = 9</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Operator which makes an inactive node active and an active one inactive.
|
|
It is similar to SwapActiveOperator except that it tries to insert the
|
|
inactive node in all possible positions instead of just the position of
|
|
the node made inactive.
|
|
Possible neighbors for the path 1 -> 2 -> 3 -> 4 with 5 inactive
|
|
(where 1 and 4 are first and last nodes of the path) are:
|
|
1 -> [5] -> 3 -> 4 with 2 inactive
|
|
1 -> 3 -> [5] -> 4 with 2 inactive
|
|
1 -> [5] -> 2 -> 4 with 3 inactive
|
|
1 -> 2 -> [5] -> 4 with 3 inactive</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.PATHLNS" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.PATHLNS">#  </a>
|
|
|
|
<span class="name">PATHLNS</span><span class="default_value"> = 10</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Operator which relaxes two sub-chains of three consecutive arcs each.
|
|
Each sub-chain is defined by a start node and the next three arcs. Those
|
|
six arcs are relaxed to build a new neighbor.
|
|
PATHLNS explores all possible pairs of starting nodes and so defines
|
|
n^2 neighbors, n being the number of nodes.
|
|
Note that the two sub-chains can be part of the same path; they even may
|
|
overlap.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.FULLPATHLNS" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.FULLPATHLNS">#  </a>
|
|
|
|
<span class="name">FULLPATHLNS</span><span class="default_value"> = 11</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Operator which relaxes one entire path and all inactive nodes, thus
|
|
defining num_paths neighbors.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.UNACTIVELNS" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.UNACTIVELNS">#  </a>
|
|
|
|
<span class="name">UNACTIVELNS</span><span class="default_value"> = 12</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Operator which relaxes all inactive nodes and one sub-chain of six
|
|
consecutive arcs. That way the path can be improved by inserting
|
|
inactive nodes or swapping arcs.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.INCREMENT" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.INCREMENT">#  </a>
|
|
|
|
<span class="name">INCREMENT</span><span class="default_value"> = 13</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Operator which defines one neighbor per variable. Each neighbor tries to
|
|
increment by one the value of the corresponding variable. When a new
|
|
solution is found the neighborhood is rebuilt from scratch, i.e., tries
|
|
to increment values in the variable order.
|
|
Consider for instance variables x and y. x is incremented one by one to
|
|
its max, and when it is not possible to increment x anymore, y is
|
|
incremented once. If this is a solution, then next neighbor tries to
|
|
increment x.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.DECREMENT" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.DECREMENT">#  </a>
|
|
|
|
<span class="name">DECREMENT</span><span class="default_value"> = 14</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Operator which defines a neighborhood to decrement values.
|
|
The behavior is the same as INCREMENT, except values are decremented
|
|
instead of incremented.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SIMPLELNS" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.SIMPLELNS">#  </a>
|
|
|
|
<span class="name">SIMPLELNS</span><span class="default_value"> = 15</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Operator which defines one neighbor per variable. Each neighbor relaxes
|
|
one variable.
|
|
When a new solution is found the neighborhood is rebuilt from scratch.
|
|
Consider for instance variables x and y. First x is relaxed and the
|
|
solver is looking for the best possible solution (with only x relaxed).
|
|
Then y is relaxed, and the solver is looking for a new solution.
|
|
If a new solution is found, then the next variable to be relaxed is x.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.GE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.GE">#  </a>
|
|
|
|
<span class="name">GE</span><span class="default_value"> = 0</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Move is accepted when the current objective value >= objective.Min.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.LE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.LE">#  </a>
|
|
|
|
<span class="name">LE</span><span class="default_value"> = 1</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Move is accepted when the current objective value <= objective.Max.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.EQ" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.EQ">#  </a>
|
|
|
|
<span class="name">EQ</span><span class="default_value"> = 2</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Move is accepted when the current objective value is in the interval
|
|
objective.Min .. objective.Max.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.DELAYED_PRIORITY" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.DELAYED_PRIORITY">#  </a>
|
|
|
|
<span class="name">DELAYED_PRIORITY</span><span class="default_value"> = 0</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>DELAYED_PRIORITY is the lowest priority: Demons will be processed after
|
|
VAR_PRIORITY and NORMAL_PRIORITY demons.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.VAR_PRIORITY" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.VAR_PRIORITY">#  </a>
|
|
|
|
<span class="name">VAR_PRIORITY</span><span class="default_value"> = 1</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>VAR_PRIORITY is between DELAYED_PRIORITY and NORMAL_PRIORITY.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.NORMAL_PRIORITY" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Solver.NORMAL_PRIORITY">#  </a>
|
|
|
|
<span class="name">NORMAL_PRIORITY</span><span class="default_value"> = 2</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>NORMAL_PRIORITY is the highest priority: Demons will be processed first.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Parameters" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Parameters">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Parameters</span><span class="signature">(self) -> 'operations_research::ConstraintSolverParameters'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::ConstraintSolverParameters"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Stored Parameters."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Parameters</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Stored Parameters.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.DefaultSolverParameters" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.DefaultSolverParameters">#  </a>
|
|
|
|
<div class="decorator">@staticmethod</div>
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DefaultSolverParameters</span><span class="signature">() -> 'operations_research::ConstraintSolverParameters'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="nd">@staticmethod</span>
|
|
<span class="k">def</span> <span class="nf">DefaultSolverParameters</span><span class="p">()</span> <span class="o">-></span> <span class="s2">"operations_research::ConstraintSolverParameters"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Create a ConstraintSolverParameters proto with all the default values."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DefaultSolverParameters</span><span class="p">()</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Create a ConstraintSolverParameters proto with all the default values.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.AddConstraint" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.AddConstraint">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddConstraint</span><span class="signature">(self, c: <a href="#Constraint">pywrapcp.Constraint</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">c</span><span class="p">:</span> <span class="s2">"Constraint"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds the constraint 'c' to the model.</span>
|
|
|
|
<span class="sd"> After calling this method, and until there is a backtrack that undoes the</span>
|
|
<span class="sd"> addition, any assignment of variables to values must satisfy the given</span>
|
|
<span class="sd"> constraint in order to be considered feasible. There are two fairly</span>
|
|
<span class="sd"> different use cases:</span>
|
|
|
|
<span class="sd"> - the most common use case is modeling: the given constraint is really</span>
|
|
<span class="sd"> part of the problem that the user is trying to solve. In this use case,</span>
|
|
<span class="sd"> AddConstraint is called outside of search (i.e., with state() ==</span>
|
|
<span class="sd"> OUTSIDE_SEARCH). Most users should only use AddConstraint in this</span>
|
|
<span class="sd"> way. In this case, the constraint will belong to the model forever: it</span>
|
|
<span class="sd"> cannot not be removed by backtracking.</span>
|
|
|
|
<span class="sd"> - a rarer use case is that 'c' is not a real constraint of the model. It</span>
|
|
<span class="sd"> may be a constraint generated by a branching decision (a constraint whose</span>
|
|
<span class="sd"> goal is to restrict the search space), a symmetry breaking constraint (a</span>
|
|
<span class="sd"> constraint that does restrict the search space, but in a way that cannot</span>
|
|
<span class="sd"> have an impact on the quality of the solutions in the subtree), or an</span>
|
|
<span class="sd"> inferred constraint that, while having no semantic value to the model (it</span>
|
|
<span class="sd"> does not restrict the set of solutions), is worth having because we</span>
|
|
<span class="sd"> believe it may strengthen the propagation. In these cases, it happens</span>
|
|
<span class="sd"> that the constraint is added during the search (i.e., with state() ==</span>
|
|
<span class="sd"> IN_SEARCH or state() == IN_ROOT_NODE). When a constraint is</span>
|
|
<span class="sd"> added during a search, it applies only to the subtree of the search tree</span>
|
|
<span class="sd"> rooted at the current node, and will be automatically removed by</span>
|
|
<span class="sd"> backtracking.</span>
|
|
|
|
<span class="sd"> This method does not take ownership of the constraint. If the constraint</span>
|
|
<span class="sd"> has been created by any factory method (Solver::MakeXXX), it will</span>
|
|
<span class="sd"> automatically be deleted. However, power users who implement their own</span>
|
|
<span class="sd"> constraints should do: solver.AddConstraint(solver.RevAlloc(new</span>
|
|
<span class="sd"> MyConstraint(...));</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AddConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Adds the constraint 'c' to the model.</p>
|
|
|
|
<p>After calling this method, and until there is a backtrack that undoes the
|
|
addition, any assignment of variables to values must satisfy the given
|
|
constraint in order to be considered feasible. There are two fairly
|
|
different use cases:</p>
|
|
|
|
<ul>
|
|
<li><p>the most common use case is modeling: the given constraint is really
|
|
part of the problem that the user is trying to solve. In this use case,
|
|
AddConstraint is called outside of search (i.e., with state() ==
|
|
OUTSIDE_SEARCH). Most users should only use AddConstraint in this
|
|
way. In this case, the constraint will belong to the model forever: it
|
|
cannot not be removed by backtracking.</p></li>
|
|
<li><p>a rarer use case is that 'c' is not a real constraint of the model. It
|
|
may be a constraint generated by a branching decision (a constraint whose
|
|
goal is to restrict the search space), a symmetry breaking constraint (a
|
|
constraint that does restrict the search space, but in a way that cannot
|
|
have an impact on the quality of the solutions in the subtree), or an
|
|
inferred constraint that, while having no semantic value to the model (it
|
|
does not restrict the set of solutions), is worth having because we
|
|
believe it may strengthen the propagation. In these cases, it happens
|
|
that the constraint is added during the search (i.e., with state() ==
|
|
IN_SEARCH or state() == IN_ROOT_NODE). When a constraint is
|
|
added during a search, it applies only to the subtree of the search tree
|
|
rooted at the current node, and will be automatically removed by
|
|
backtracking.</p></li>
|
|
</ul>
|
|
|
|
<p>This method does not take ownership of the constraint. If the constraint
|
|
has been created by any factory method (Solver::MakeXXX), it will
|
|
automatically be deleted. However, power users who implement their own
|
|
constraints should do: solver.AddConstraint(solver.RevAlloc(new
|
|
MyConstraint(...));</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Solve" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Solve">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Solve</span><span class="signature">(self, *args) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Solve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Solve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.NewSearch" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.NewSearch">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NewSearch</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NewSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NewSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.NextSolution" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.NextSolution">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NextSolution</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NextSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NextSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.RestartSearch" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.RestartSearch">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RestartSearch</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RestartSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RestartSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.EndSearch" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.EndSearch">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndSearch</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_EndSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SolveAndCommit" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SolveAndCommit">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SolveAndCommit</span><span class="signature">(self, *args) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SolveAndCommit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SolveAndCommit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CheckAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.CheckAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">CheckAssignment</span><span class="signature">(self, solution: <a href="#Assignment">pywrapcp.Assignment</a>) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">CheckAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Checks whether the given assignment satisfies all relevant constraints."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CheckAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Checks whether the given assignment satisfies all relevant constraints.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CheckConstraint" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.CheckConstraint">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">CheckConstraint</span><span class="signature">(self, ct: <a href="#Constraint">pywrapcp.Constraint</a>) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">CheckConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">:</span> <span class="s2">"Constraint"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Checks whether adding this constraint will lead to an immediate</span>
|
|
<span class="sd"> failure. It will return false if the model is already inconsistent, or if</span>
|
|
<span class="sd"> adding the constraint makes it inconsistent.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CheckConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Checks whether adding this constraint will lead to an immediate
|
|
failure. It will return false if the model is already inconsistent, or if
|
|
adding the constraint makes it inconsistent.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Fail" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Fail">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Fail</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Fail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Abandon the current branch in the search tree. A backtrack will follow."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Fail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Abandon the current branch in the search tree. A backtrack will follow.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.MemoryUsage" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.MemoryUsage">#  </a>
|
|
|
|
<div class="decorator">@staticmethod</div>
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MemoryUsage</span><span class="signature">() -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="nd">@staticmethod</span>
|
|
<span class="k">def</span> <span class="nf">MemoryUsage</span><span class="p">()</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Current memory usage in bytes"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MemoryUsage</span><span class="p">()</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Current memory usage in bytes</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.WallTime" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.WallTime">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WallTime</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WallTime</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> DEPRECATED: Use Now() instead.</span>
|
|
<span class="sd"> Time elapsed, in ms since the creation of the solver.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_WallTime</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>DEPRECATED: Use Now() instead.
|
|
Time elapsed, in ms since the creation of the solver.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Branches" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Branches">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Branches</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Branches</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" The number of branches explored since the creation of the solver."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Branches</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>The number of branches explored since the creation of the solver.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Solutions" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Solutions">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Solutions</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Solutions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" The number of solutions found since the start of the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Solutions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>The number of solutions found since the start of the search.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Failures" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Failures">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Failures</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Failures</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" The number of failures encountered since the creation of the solver."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Failures</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>The number of failures encountered since the creation of the solver.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.AcceptedNeighbors" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.AcceptedNeighbors">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AcceptedNeighbors</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AcceptedNeighbors</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" The number of accepted neighbors."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AcceptedNeighbors</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>The number of accepted neighbors.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Stamp" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Stamp">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Stamp</span><span class="signature">(self) -> 'uint64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Stamp</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"uint64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The stamp indicates how many moves in the search tree we have performed.</span>
|
|
<span class="sd"> It is useful to detect if we need to update same lazy structures.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Stamp</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>The stamp indicates how many moves in the search tree we have performed.
|
|
It is useful to detect if we need to update same lazy structures.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.FailStamp" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.FailStamp">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">FailStamp</span><span class="signature">(self) -> 'uint64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">FailStamp</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"uint64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" The fail_stamp() is incremented after each backtrack."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FailStamp</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>The fail_stamp() is incremented after each backtrack.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IntVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IntVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IntVar</span><span class="signature">(self, *args) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IntVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> MakeIntVar will create the best range based int var for the bounds given.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> MakeIntVar will create a variable with the given sparse domain.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> MakeIntVar will create a variable with the given sparse domain.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> MakeIntVar will create the best range based int var for the bounds given.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 5:*</span>
|
|
<span class="sd"> MakeIntVar will create a variable with the given sparse domain.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 6:*</span>
|
|
<span class="sd"> MakeIntVar will create a variable with the given sparse domain.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IntVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
MakeIntVar will create the best range based int var for the bounds given.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
MakeIntVar will create a variable with the given sparse domain.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 3:</em>
|
|
MakeIntVar will create a variable with the given sparse domain.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 4:</em>
|
|
MakeIntVar will create the best range based int var for the bounds given.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 5:</em>
|
|
MakeIntVar will create a variable with the given sparse domain.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 6:</em>
|
|
MakeIntVar will create a variable with the given sparse domain.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.BoolVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.BoolVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">BoolVar</span><span class="signature">(self, *args) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">BoolVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> MakeBoolVar will create a variable with a {0, 1} domain.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> MakeBoolVar will create a variable with a {0, 1} domain.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_BoolVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
MakeBoolVar will create a variable with a {0, 1} domain.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
MakeBoolVar will create a variable with a {0, 1} domain.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IntConst" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IntConst">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IntConst</span><span class="signature">(self, *args) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IntConst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> IntConst will create a constant expression.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> IntConst will create a constant expression.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IntConst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
IntConst will create a constant expression.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
IntConst will create a constant expression.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Sum" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Sum">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Sum</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &'
|
|
) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Sum</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" sum of all vars."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Sum</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>sum of all vars.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ScalProd" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ScalProd">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ScalProd</span><span class="signature">(self, *args) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ScalProd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> scalar product</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> scalar product</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScalProd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
scalar product</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
scalar product</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.MonotonicElement" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.MonotonicElement">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MonotonicElement</span><span class="signature">(
|
|
self,
|
|
values: 'operations_research::Solver::IndexEvaluator1',
|
|
increasing: bool,
|
|
index: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MonotonicElement</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator1"</span><span class="p">,</span> <span class="n">increasing</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Function based element. The constraint takes ownership of the</span>
|
|
<span class="sd"> callback. The callback must be monotonic. It must be able to</span>
|
|
<span class="sd"> cope with any possible value in the domain of 'index'</span>
|
|
<span class="sd"> (potentially negative ones too). Furtermore, monotonicity is not</span>
|
|
<span class="sd"> checked. Thus giving a non-monotonic function, or specifying an</span>
|
|
<span class="sd"> incorrect increasing parameter will result in undefined behavior.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MonotonicElement</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">increasing</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Function based element. The constraint takes ownership of the
|
|
callback. The callback must be monotonic. It must be able to
|
|
cope with any possible value in the domain of 'index'
|
|
(potentially negative ones too). Furtermore, monotonicity is not
|
|
checked. Thus giving a non-monotonic function, or specifying an
|
|
incorrect increasing parameter will result in undefined behavior.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Element" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Element">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Element</span><span class="signature">(self, *args) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> values[index]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> values[index]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> Function-based element. The constraint takes ownership of the</span>
|
|
<span class="sd"> callback. The callback must be able to cope with any possible</span>
|
|
<span class="sd"> value in the domain of 'index' (potentially negative ones too).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> 2D version of function-based element expression, values(expr1, expr2).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 5:*</span>
|
|
<span class="sd"> vars[expr]</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
values[index]</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
values[index]</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 3:</em>
|
|
Function-based element. The constraint takes ownership of the
|
|
callback. The callback must be able to cope with any possible
|
|
value in the domain of 'index' (potentially negative ones too).</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 4:</em>
|
|
2D version of function-based element expression, values(expr1, expr2).</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 5:</em>
|
|
vars[expr]</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IndexExpression" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IndexExpression">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IndexExpression</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
value: 'int64_t'
|
|
) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IndexExpression</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the expression expr such that vars[expr] == value.</span>
|
|
<span class="sd"> It assumes that vars are all different.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IndexExpression</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the expression expr such that vars[expr] == value.
|
|
It assumes that vars are all different.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Min" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Min">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Min</span><span class="signature">(self, *args) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Min</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> std::min(vars)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> std::min (left, right)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> std::min(expr, value)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> std::min(expr, value)</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Min</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
std::min(vars)</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
std::min (left, right)</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 3:</em>
|
|
std::min(expr, value)</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 4:</em>
|
|
std::min(expr, value)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Max" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Max">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Max</span><span class="signature">(self, *args) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Max</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> std::max(vars)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> std::max(left, right)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> std::max(expr, value)</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> std::max(expr, value)</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Max</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
std::max(vars)</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
std::max(left, right)</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 3:</em>
|
|
std::max(expr, value)</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 4:</em>
|
|
std::max(expr, value)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ConvexPiecewiseExpr" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ConvexPiecewiseExpr">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ConvexPiecewiseExpr</span><span class="signature">(
|
|
self,
|
|
expr: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
early_cost: 'int64_t',
|
|
early_date: 'int64_t',
|
|
late_date: 'int64_t',
|
|
late_cost: 'int64_t'
|
|
) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ConvexPiecewiseExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">early_cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">early_date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">late_date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">late_cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Convex piecewise function."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConvexPiecewiseExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">early_cost</span><span class="p">,</span> <span class="n">early_date</span><span class="p">,</span> <span class="n">late_date</span><span class="p">,</span> <span class="n">late_cost</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Convex piecewise function.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SemiContinuousExpr" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SemiContinuousExpr">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SemiContinuousExpr</span><span class="signature">(
|
|
self,
|
|
expr: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
fixed_charge: 'int64_t',
|
|
step: 'int64_t'
|
|
) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SemiContinuousExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">fixed_charge</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Semi continuous Expression (x <= 0 -> f(x) = 0; x > 0 -> f(x) = ax + b)</span>
|
|
<span class="sd"> a >= 0 and b >= 0</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SemiContinuousExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">fixed_charge</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Semi continuous Expression (x <= 0 -> f(x) = 0; x > 0 -> f(x) = ax + b)
|
|
a >= 0 and b >= 0</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ConditionalExpression" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ConditionalExpression">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ConditionalExpression</span><span class="signature">(
|
|
self,
|
|
condition: <a href="#IntVar">pywrapcp.IntVar</a>,
|
|
expr: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
unperformed_value: 'int64_t'
|
|
) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ConditionalExpression</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Conditional Expr condition ? expr : unperformed_value"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConditionalExpression</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">condition</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Conditional Expr condition ? expr : unperformed_value</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.TrueConstraint" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.TrueConstraint">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">TrueConstraint</span><span class="signature">(self) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">TrueConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This constraint always succeeds."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TrueConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This constraint always succeeds.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.FalseConstraint" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.FalseConstraint">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">FalseConstraint</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">FalseConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FalseConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsEqualCstCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsEqualCstCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsEqualCstCt</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
value: 'int64_t',
|
|
boolvar: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" boolvar == (var == value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>boolvar == (var == value)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsEqualCstVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsEqualCstVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsEqualCstVar</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
value: 'int64_t'
|
|
) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var == value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>status var of (var == value)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsEqualCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsEqualCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsEqualCt</span><span class="signature">(
|
|
self,
|
|
v1: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
v2: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
b: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">v2</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (v1 == v2)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">,</span> <span class="n">v2</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>b == (v1 == v2)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsEqualVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsEqualVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsEqualVar</span><span class="signature">(
|
|
self,
|
|
v1: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
v2: <a href="#IntExpr">pywrapcp.IntExpr</a>
|
|
) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">v2</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (v1 == v2)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">,</span> <span class="n">v2</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>status var of (v1 == v2)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsDifferentCstCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsDifferentCstCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsDifferentCstCt</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
value: 'int64_t',
|
|
boolvar: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsDifferentCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" boolvar == (var != value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsDifferentCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>boolvar == (var != value)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsDifferentCstVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsDifferentCstVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsDifferentCstVar</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
value: 'int64_t'
|
|
) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsDifferentCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var != value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsDifferentCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>status var of (var != value)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsDifferentVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsDifferentVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsDifferentVar</span><span class="signature">(
|
|
self,
|
|
v1: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
v2: <a href="#IntExpr">pywrapcp.IntExpr</a>
|
|
) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsDifferentVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">v2</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (v1 != v2)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsDifferentVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">,</span> <span class="n">v2</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>status var of (v1 != v2)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsDifferentCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsDifferentCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsDifferentCt</span><span class="signature">(
|
|
self,
|
|
v1: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
v2: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
b: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsDifferentCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">v2</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (v1 != v2)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsDifferentCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v1</span><span class="p">,</span> <span class="n">v2</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>b == (v1 != v2)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsLessOrEqualCstCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsLessOrEqualCstCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsLessOrEqualCstCt</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
value: 'int64_t',
|
|
boolvar: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsLessOrEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" boolvar == (var <= value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessOrEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>boolvar == (var <= value)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsLessOrEqualCstVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsLessOrEqualCstVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsLessOrEqualCstVar</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
value: 'int64_t'
|
|
) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsLessOrEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var <= value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessOrEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>status var of (var <= value)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsLessOrEqualVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsLessOrEqualVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsLessOrEqualVar</span><span class="signature">(
|
|
self,
|
|
left: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
right: <a href="#IntExpr">pywrapcp.IntExpr</a>
|
|
) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsLessOrEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (left <= right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessOrEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>status var of (left <= right)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsLessOrEqualCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsLessOrEqualCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsLessOrEqualCt</span><span class="signature">(
|
|
self,
|
|
left: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
right: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
b: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsLessOrEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (left <= right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessOrEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>b == (left <= right)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsGreaterOrEqualCstCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsGreaterOrEqualCstCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsGreaterOrEqualCstCt</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
value: 'int64_t',
|
|
boolvar: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsGreaterOrEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" boolvar == (var >= value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterOrEqualCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">boolvar</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>boolvar == (var >= value)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsGreaterOrEqualCstVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsGreaterOrEqualCstVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsGreaterOrEqualCstVar</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
value: 'int64_t'
|
|
) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsGreaterOrEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var >= value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterOrEqualCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>status var of (var >= value)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsGreaterOrEqualVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsGreaterOrEqualVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsGreaterOrEqualVar</span><span class="signature">(
|
|
self,
|
|
left: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
right: <a href="#IntExpr">pywrapcp.IntExpr</a>
|
|
) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsGreaterOrEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (left >= right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterOrEqualVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>status var of (left >= right)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsGreaterOrEqualCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsGreaterOrEqualCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsGreaterOrEqualCt</span><span class="signature">(
|
|
self,
|
|
left: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
right: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
b: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsGreaterOrEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (left >= right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterOrEqualCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>b == (left >= right)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsGreaterCstCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsGreaterCstCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsGreaterCstCt</span><span class="signature">(
|
|
self,
|
|
v: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
c: 'int64_t',
|
|
b: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsGreaterCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">c</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (v > c)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>b == (v > c)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsGreaterCstVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsGreaterCstVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsGreaterCstVar</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
value: 'int64_t'
|
|
) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsGreaterCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var > value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>status var of (var > value)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsGreaterVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsGreaterVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsGreaterVar</span><span class="signature">(
|
|
self,
|
|
left: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
right: <a href="#IntExpr">pywrapcp.IntExpr</a>
|
|
) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsGreaterVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (left > right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>status var of (left > right)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsGreaterCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsGreaterCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsGreaterCt</span><span class="signature">(
|
|
self,
|
|
left: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
right: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
b: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsGreaterCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (left > right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsGreaterCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>b == (left > right)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsLessCstCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsLessCstCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsLessCstCt</span><span class="signature">(
|
|
self,
|
|
v: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
c: 'int64_t',
|
|
b: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsLessCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">c</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (v < c)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessCstCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">c</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>b == (v < c)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsLessCstVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsLessCstVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsLessCstVar</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
value: 'int64_t'
|
|
) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsLessCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (var < value)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessCstVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>status var of (var < value)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsLessVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsLessVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsLessVar</span><span class="signature">(
|
|
self,
|
|
left: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
right: <a href="#IntExpr">pywrapcp.IntExpr</a>
|
|
) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsLessVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" status var of (left < right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>status var of (left < right)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsLessCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsLessCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsLessCt</span><span class="signature">(
|
|
self,
|
|
left: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
right: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
b: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsLessCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (left < right)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsLessCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>b == (left < right)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SumLessOrEqual" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SumLessOrEqual">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SumLessOrEqual</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
cst: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SumLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">cst</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Variation on arrays."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SumLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">cst</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Variation on arrays.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SumGreaterOrEqual" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SumGreaterOrEqual">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SumGreaterOrEqual</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
cst: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SumGreaterOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">cst</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SumGreaterOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">cst</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SumEquality" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SumEquality">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SumEquality</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SumEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SumEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ScalProdEquality" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ScalProdEquality">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ScalProdEquality</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ScalProdEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScalProdEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ScalProdGreaterOrEqual" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ScalProdGreaterOrEqual">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ScalProdGreaterOrEqual</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ScalProdGreaterOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScalProdGreaterOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ScalProdLessOrEqual" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ScalProdLessOrEqual">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ScalProdLessOrEqual</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ScalProdLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScalProdLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.MinEquality" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.MinEquality">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MinEquality</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
min_var: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MinEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">min_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MinEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">min_var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.MaxEquality" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.MaxEquality">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MaxEquality</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
max_var: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MaxEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">max_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MaxEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">max_var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ElementEquality" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ElementEquality">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ElementEquality</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ElementEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ElementEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.AbsEquality" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.AbsEquality">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AbsEquality</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntVar">pywrapcp.IntVar</a>,
|
|
abs_var: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AbsEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">abs_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates the constraint abs(var) == abs_var."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AbsEquality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">abs_var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates the constraint abs(var) == abs_var.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IndexOfConstraint" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IndexOfConstraint">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IndexOfConstraint</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
index: <a href="#IntVar">pywrapcp.IntVar</a>,
|
|
target: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IndexOfConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">target</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This constraint is a special case of the element constraint with</span>
|
|
<span class="sd"> an array of integer variables, where the variables are all</span>
|
|
<span class="sd"> different and the index variable is constrained such that</span>
|
|
<span class="sd"> vars[index] == target.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IndexOfConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">target</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This constraint is a special case of the element constraint with
|
|
an array of integer variables, where the variables are all
|
|
different and the index variable is constrained such that
|
|
vars[index] == target.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ConstraintInitialPropagateCallback" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ConstraintInitialPropagateCallback">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ConstraintInitialPropagateCallback</span><span class="signature">(self, ct: <a href="#Constraint">pywrapcp.Constraint</a>) -> 'operations_research::Demon *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">:</span> <span class="s2">"Constraint"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Demon *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is a specialized case of the MakeConstraintDemon</span>
|
|
<span class="sd"> method to call the InitiatePropagate of the constraint 'ct'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method is a specialized case of the MakeConstraintDemon
|
|
method to call the InitiatePropagate of the constraint 'ct'.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.DelayedConstraintInitialPropagateCallback" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.DelayedConstraintInitialPropagateCallback">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DelayedConstraintInitialPropagateCallback</span><span class="signature">(self, ct: <a href="#Constraint">pywrapcp.Constraint</a>) -> 'operations_research::Demon *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DelayedConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">:</span> <span class="s2">"Constraint"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Demon *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is a specialized case of the MakeConstraintDemon</span>
|
|
<span class="sd"> method to call the InitiatePropagate of the constraint 'ct' with</span>
|
|
<span class="sd"> low priority.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DelayedConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method is a specialized case of the MakeConstraintDemon
|
|
method to call the InitiatePropagate of the constraint 'ct' with
|
|
low priority.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ClosureDemon" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ClosureDemon">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ClosureDemon</span><span class="signature">(
|
|
self,
|
|
closure: 'operations_research::Solver::Closure'
|
|
) -> 'operations_research::Demon *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ClosureDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">closure</span><span class="p">:</span> <span class="s2">"operations_research::Solver::Closure"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Demon *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a demon from a closure."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ClosureDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">closure</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a demon from a closure.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.BetweenCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.BetweenCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">BetweenCt</span><span class="signature">(
|
|
self,
|
|
expr: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
l: 'int64_t',
|
|
u: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">BetweenCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" (l <= expr <= u)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_BetweenCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>(l <= expr <= u)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsBetweenCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsBetweenCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsBetweenCt</span><span class="signature">(
|
|
self,
|
|
expr: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
l: 'int64_t',
|
|
u: 'int64_t',
|
|
b: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsBetweenCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" b == (l <= expr <= u)"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsBetweenCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">expr</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>b == (l <= expr <= u)</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsBetweenVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsBetweenVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsBetweenVar</span><span class="signature">(
|
|
self,
|
|
v: <a href="#IntExpr">pywrapcp.IntExpr</a>,
|
|
l: 'int64_t',
|
|
u: 'int64_t'
|
|
) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsBetweenVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntExpr"</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsBetweenVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.MemberCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.MemberCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MemberCt</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.NotMemberCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.NotMemberCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NotMemberCt</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NotMemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> expr not in set.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> expr should not be in the list of forbidden intervals [start[i]..end[i]].</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> expr should not be in the list of forbidden intervals [start[i]..end[i]].</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NotMemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
expr not in set.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
expr should not be in the list of forbidden intervals [start[i]..end[i]].</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 3:</em>
|
|
expr should not be in the list of forbidden intervals [start[i]..end[i]].</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsMemberCt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsMemberCt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsMemberCt</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsMemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsMemberCt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IsMemberVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IsMemberVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsMemberVar</span><span class="signature">(self, *args) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsMemberVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IsMemberVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Count" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Count">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Count</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Count</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> |{i | vars[i] == value}| == max_count</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> |{i | vars[i] == value}| == max_count</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Count</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
|{i | vars[i] == value}| == max_count</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
|{i | vars[i] == value}| == max_count</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Distribute" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Distribute">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Distribute</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Distribute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Aggregated version of count: |{i | v[i] == values[j]}| == cards[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Aggregated version of count: |{i | v[i] == values[j]}| == cards[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> Aggregated version of count: |{i | v[i] == j}| == cards[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> Aggregated version of count with bounded cardinalities:</span>
|
|
<span class="sd"> forall j in 0 .. card_size - 1: card_min <= |{i | v[i] == j}| <= card_max</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 5:*</span>
|
|
<span class="sd"> Aggregated version of count with bounded cardinalities:</span>
|
|
<span class="sd"> forall j in 0 .. card_size - 1:</span>
|
|
<span class="sd"> card_min[j] <= |{i | v[i] == j}| <= card_max[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 6:*</span>
|
|
<span class="sd"> Aggregated version of count with bounded cardinalities:</span>
|
|
<span class="sd"> forall j in 0 .. card_size - 1:</span>
|
|
<span class="sd"> card_min[j] <= |{i | v[i] == j}| <= card_max[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 7:*</span>
|
|
<span class="sd"> Aggregated version of count with bounded cardinalities:</span>
|
|
<span class="sd"> forall j in 0 .. card_size - 1:</span>
|
|
<span class="sd"> card_min[j] <= |{i | v[i] == values[j]}| <= card_max[j]</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 8:*</span>
|
|
<span class="sd"> Aggregated version of count with bounded cardinalities:</span>
|
|
<span class="sd"> forall j in 0 .. card_size - 1:</span>
|
|
<span class="sd"> card_min[j] <= |{i | v[i] == values[j]}| <= card_max[j]</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Distribute</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j]</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Aggregated version of count: |{i | v[i] == values[j]}| == cards[j]</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 3:</em>
|
|
Aggregated version of count: |{i | v[i] == j}| == cards[j]</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 4:</em>
|
|
Aggregated version of count with bounded cardinalities:
|
|
forall j in 0 .. card_size - 1: card_min <= |{i | v[i] == j}| <= card_max</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 5:</em>
|
|
Aggregated version of count with bounded cardinalities:
|
|
forall j in 0 .. card_size - 1:
|
|
card_min[j] <= |{i | v[i] == j}| <= card_max[j]</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 6:</em>
|
|
Aggregated version of count with bounded cardinalities:
|
|
forall j in 0 .. card_size - 1:
|
|
card_min[j] <= |{i | v[i] == j}| <= card_max[j]</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 7:</em>
|
|
Aggregated version of count with bounded cardinalities:
|
|
forall j in 0 .. card_size - 1:
|
|
card_min[j] <= |{i | v[i] == values[j]}| <= card_max[j]</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 8:</em>
|
|
Aggregated version of count with bounded cardinalities:
|
|
forall j in 0 .. card_size - 1:
|
|
card_min[j] <= |{i | v[i] == values[j]}| <= card_max[j]</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Deviation" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Deviation">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Deviation</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
deviation_var: <a href="#IntVar">pywrapcp.IntVar</a>,
|
|
total_sum: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Deviation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">deviation_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">total_sum</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Deviation constraint:</span>
|
|
<span class="sd"> sum_i |n * vars[i] - total_sum| <= deviation_var and</span>
|
|
<span class="sd"> sum_i vars[i] == total_sum</span>
|
|
<span class="sd"> n = #vars</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Deviation</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">deviation_var</span><span class="p">,</span> <span class="n">total_sum</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Deviation constraint:
|
|
sum_i |n * vars[i] - total_sum| <= deviation_var and
|
|
sum_i vars[i] == total_sum
|
|
n = #vars</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.AllDifferent" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.AllDifferent">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AllDifferent</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AllDifferent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> All variables are pairwise different. This corresponds to the</span>
|
|
<span class="sd"> stronger version of the propagation algorithm.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> All variables are pairwise different. If 'stronger_propagation'</span>
|
|
<span class="sd"> is true, stronger, and potentially slower propagation will</span>
|
|
<span class="sd"> occur. This API will be deprecated in the future.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AllDifferent</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
All variables are pairwise different. This corresponds to the
|
|
stronger version of the propagation algorithm.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
All variables are pairwise different. If 'stronger_propagation'
|
|
is true, stronger, and potentially slower propagation will
|
|
occur. This API will be deprecated in the future.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.AllDifferentExcept" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.AllDifferentExcept">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AllDifferentExcept</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
escape_value: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AllDifferentExcept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">escape_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> All variables are pairwise different, unless they are assigned to</span>
|
|
<span class="sd"> the escape value.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AllDifferentExcept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">escape_value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>All variables are pairwise different, unless they are assigned to
|
|
the escape value.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SortingConstraint" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SortingConstraint">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SortingConstraint</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
sorted: 'std::vector< operations_research::IntVar * > const &'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SortingConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="nb">sorted</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint binding the arrays of variables "vars" and</span>
|
|
<span class="sd"> "sorted_vars": sorted_vars[0] must be equal to the minimum of all</span>
|
|
<span class="sd"> variables in vars, and so on: the value of sorted_vars[i] must be</span>
|
|
<span class="sd"> equal to the i-th value of variables invars.</span>
|
|
|
|
<span class="sd"> This constraint propagates in both directions: from "vars" to</span>
|
|
<span class="sd"> "sorted_vars" and vice-versa.</span>
|
|
|
|
<span class="sd"> Behind the scenes, this constraint maintains that:</span>
|
|
<span class="sd"> - sorted is always increasing.</span>
|
|
<span class="sd"> - whatever the values of vars, there exists a permutation that</span>
|
|
<span class="sd"> injects its values into the sorted variables.</span>
|
|
|
|
<span class="sd"> For more info, please have a look at:</span>
|
|
<span class="sd"> https://mpi-inf.mpg.de/~mehlhorn/ftp/Mehlhorn-Thiel.pdf</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SortingConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="nb">sorted</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a constraint binding the arrays of variables "vars" and
|
|
"sorted_vars": sorted_vars[0] must be equal to the minimum of all
|
|
variables in vars, and so on: the value of sorted_vars[i] must be
|
|
equal to the i-th value of variables invars.</p>
|
|
|
|
<p>This constraint propagates in both directions: from "vars" to
|
|
"sorted_vars" and vice-versa.</p>
|
|
|
|
<p>Behind the scenes, this constraint maintains that:</p>
|
|
|
|
<ul>
|
|
<li>sorted is always increasing.</li>
|
|
<li>whatever the values of vars, there exists a permutation that
|
|
injects its values into the sorted variables.</li>
|
|
</ul>
|
|
|
|
<p>For more info, please have a look at:
|
|
https://mpi-inf.mpg.de/~mehlhorn/ftp/Mehlhorn-Thiel.pdf</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.LexicalLess" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.LexicalLess">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">LexicalLess</span><span class="signature">(
|
|
self,
|
|
left: 'std::vector< operations_research::IntVar * > const &',
|
|
right: 'std::vector< operations_research::IntVar * > const &'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">LexicalLess</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint that enforces that left is lexicographically less</span>
|
|
<span class="sd"> than right.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LexicalLess</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a constraint that enforces that left is lexicographically less
|
|
than right.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.LexicalLessOrEqual" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.LexicalLessOrEqual">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">LexicalLessOrEqual</span><span class="signature">(
|
|
self,
|
|
left: 'std::vector< operations_research::IntVar * > const &',
|
|
right: 'std::vector< operations_research::IntVar * > const &'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">LexicalLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint that enforces that left is lexicographically less</span>
|
|
<span class="sd"> than or equal to right.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LexicalLessOrEqual</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a constraint that enforces that left is lexicographically less
|
|
than or equal to right.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.InversePermutationConstraint" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.InversePermutationConstraint">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">InversePermutationConstraint</span><span class="signature">(
|
|
self,
|
|
left: 'std::vector< operations_research::IntVar * > const &',
|
|
right: 'std::vector< operations_research::IntVar * > const &'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">InversePermutationConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">right</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint that enforces that 'left' and 'right' both</span>
|
|
<span class="sd"> represent permutations of [0..left.size()-1], and that 'right' is</span>
|
|
<span class="sd"> the inverse permutation of 'left', i.e. for all i in</span>
|
|
<span class="sd"> [0..left.size()-1], right[left[i]] = i.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_InversePermutationConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">left</span><span class="p">,</span> <span class="n">right</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a constraint that enforces that 'left' and 'right' both
|
|
represent permutations of [0..left.size()-1], and that 'right' is
|
|
the inverse permutation of 'left', i.e. for all i in
|
|
[0..left.size()-1], right[left[i]] = i.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.NullIntersect" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.NullIntersect">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NullIntersect</span><span class="signature">(
|
|
self,
|
|
first_vars: 'std::vector< operations_research::IntVar * > const &',
|
|
second_vars: 'std::vector< operations_research::IntVar * > const &'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NullIntersect</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">second_vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint that states that all variables in the first</span>
|
|
<span class="sd"> vector are different from all variables in the second</span>
|
|
<span class="sd"> group. Thus the set of values in the first vector does not</span>
|
|
<span class="sd"> intersect with the set of values in the second vector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NullIntersect</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_vars</span><span class="p">,</span> <span class="n">second_vars</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a constraint that states that all variables in the first
|
|
vector are different from all variables in the second
|
|
group. Thus the set of values in the first vector does not
|
|
intersect with the set of values in the second vector.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.NullIntersectExcept" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.NullIntersectExcept">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NullIntersectExcept</span><span class="signature">(
|
|
self,
|
|
first_vars: 'std::vector< operations_research::IntVar * > const &',
|
|
second_vars: 'std::vector< operations_research::IntVar * > const &',
|
|
escape_value: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NullIntersectExcept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">second_vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">escape_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a constraint that states that all variables in the first</span>
|
|
<span class="sd"> vector are different from all variables from the second group,</span>
|
|
<span class="sd"> unless they are assigned to the escape value. Thus the set of</span>
|
|
<span class="sd"> values in the first vector minus the escape value does not</span>
|
|
<span class="sd"> intersect with the set of values in the second vector.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NullIntersectExcept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_vars</span><span class="p">,</span> <span class="n">second_vars</span><span class="p">,</span> <span class="n">escape_value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a constraint that states that all variables in the first
|
|
vector are different from all variables from the second group,
|
|
unless they are assigned to the escape value. Thus the set of
|
|
values in the first vector minus the escape value does not
|
|
intersect with the set of values in the second vector.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Circuit" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Circuit">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Circuit</span><span class="signature">(
|
|
self,
|
|
nexts: 'std::vector< operations_research::IntVar * > const &'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Circuit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Force the "nexts" variable to create a complete Hamiltonian path."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Circuit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Force the "nexts" variable to create a complete Hamiltonian path.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SubCircuit" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SubCircuit">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SubCircuit</span><span class="signature">(
|
|
self,
|
|
nexts: 'std::vector< operations_research::IntVar * > const &'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SubCircuit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Force the "nexts" variable to create a complete Hamiltonian path</span>
|
|
<span class="sd"> for those that do not loop upon themselves.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SubCircuit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Force the "nexts" variable to create a complete Hamiltonian path
|
|
for those that do not loop upon themselves.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.DelayedPathCumul" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.DelayedPathCumul">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DelayedPathCumul</span><span class="signature">(
|
|
self,
|
|
nexts: 'std::vector< operations_research::IntVar * > const &',
|
|
active: 'std::vector< operations_research::IntVar * > const &',
|
|
cumuls: 'std::vector< operations_research::IntVar * > const &',
|
|
transits: 'std::vector< operations_research::IntVar * > const &'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DelayedPathCumul</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">active</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">cumuls</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">transits</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Delayed version of the same constraint: propagation on the nexts variables</span>
|
|
<span class="sd"> is delayed until all constraints have propagated.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DelayedPathCumul</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">,</span> <span class="n">active</span><span class="p">,</span> <span class="n">cumuls</span><span class="p">,</span> <span class="n">transits</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Delayed version of the same constraint: propagation on the nexts variables
|
|
is delayed until all constraints have propagated.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.PathCumul" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.PathCumul">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">PathCumul</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">PathCumul</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates a constraint which accumulates values along a path such that:</span>
|
|
<span class="sd"> cumuls[next[i]] = cumuls[i] + transits[i].</span>
|
|
<span class="sd"> Active variables indicate if the corresponding next variable is active;</span>
|
|
<span class="sd"> this could be useful to model unperformed nodes in a routing problem.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a constraint which accumulates values along a path such that:</span>
|
|
<span class="sd"> cumuls[next[i]] = cumuls[i] + transit_evaluator(i, next[i]).</span>
|
|
<span class="sd"> Active variables indicate if the corresponding next variable is active;</span>
|
|
<span class="sd"> this could be useful to model unperformed nodes in a routing problem.</span>
|
|
<span class="sd"> Ownership of transit_evaluator is taken and it must be a repeatable</span>
|
|
<span class="sd"> callback.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> Creates a constraint which accumulates values along a path such that:</span>
|
|
<span class="sd"> cumuls[next[i]] = cumuls[i] + transit_evaluator(i, next[i]) + slacks[i].</span>
|
|
<span class="sd"> Active variables indicate if the corresponding next variable is active;</span>
|
|
<span class="sd"> this could be useful to model unperformed nodes in a routing problem.</span>
|
|
<span class="sd"> Ownership of transit_evaluator is taken and it must be a repeatable</span>
|
|
<span class="sd"> callback.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_PathCumul</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Creates a constraint which accumulates values along a path such that:
|
|
cumuls[next[i]] = cumuls[i] + transits[i].
|
|
Active variables indicate if the corresponding next variable is active;
|
|
this could be useful to model unperformed nodes in a routing problem.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Creates a constraint which accumulates values along a path such that:
|
|
cumuls[next[i]] = cumuls[i] + transit_evaluator(i, next[i]).
|
|
Active variables indicate if the corresponding next variable is active;
|
|
this could be useful to model unperformed nodes in a routing problem.
|
|
Ownership of transit_evaluator is taken and it must be a repeatable
|
|
callback.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 3:</em>
|
|
Creates a constraint which accumulates values along a path such that:
|
|
cumuls[next[i]] = cumuls[i] + transit_evaluator(i, next[i]) + slacks[i].
|
|
Active variables indicate if the corresponding next variable is active;
|
|
this could be useful to model unperformed nodes in a routing problem.
|
|
Ownership of transit_evaluator is taken and it must be a repeatable
|
|
callback.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.AllowedAssignments" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.AllowedAssignments">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AllowedAssignments</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AllowedAssignments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This method creates a constraint where the graph of the relation</span>
|
|
<span class="sd"> between the variables is given in extension. There are 'arity'</span>
|
|
<span class="sd"> variables involved in the relation and the graph is given by a</span>
|
|
<span class="sd"> integer tuple set.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Compatibility layer for Python API.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AllowedAssignments</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
This method creates a constraint where the graph of the relation
|
|
between the variables is given in extension. There are 'arity'
|
|
variables involved in the relation and the graph is given by a
|
|
integer tuple set.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Compatibility layer for Python API.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.TransitionConstraint" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.TransitionConstraint">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">TransitionConstraint</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">TransitionConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TransitionConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.NonOverlappingBoxesConstraint" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.NonOverlappingBoxesConstraint">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NonOverlappingBoxesConstraint</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NonOverlappingBoxesConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NonOverlappingBoxesConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Pack" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Pack">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Pack</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
number_of_bins: int
|
|
) -> 'operations_research::Pack *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Pack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">number_of_bins</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Pack *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This constraint packs all variables onto 'number_of_bins'</span>
|
|
<span class="sd"> variables. For any given variable, a value of 'number_of_bins'</span>
|
|
<span class="sd"> indicates that the variable is not assigned to any bin.</span>
|
|
<span class="sd"> Dimensions, i.e., cumulative constraints on this packing, can be</span>
|
|
<span class="sd"> added directly from the pack class.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Pack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">number_of_bins</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This constraint packs all variables onto 'number_of_bins'
|
|
variables. For any given variable, a value of 'number_of_bins'
|
|
indicates that the variable is not assigned to any bin.
|
|
Dimensions, i.e., cumulative constraints on this packing, can be
|
|
added directly from the pack class.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.FixedDurationIntervalVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.FixedDurationIntervalVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">FixedDurationIntervalVar</span><span class="signature">(self, *args) -> 'operations_research::IntervalVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">FixedDurationIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration. The duration must</span>
|
|
<span class="sd"> be greater than 0. If optional is true, then the interval can be</span>
|
|
<span class="sd"> performed or unperformed. If optional is false, then the interval</span>
|
|
<span class="sd"> is always performed.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a performed interval var with a fixed duration. The duration must</span>
|
|
<span class="sd"> be greater than 0.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration, and performed_variable.</span>
|
|
<span class="sd"> The duration must be greater than 0.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedDurationIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Creates an interval var with a fixed duration. The duration must
|
|
be greater than 0. If optional is true, then the interval can be
|
|
performed or unperformed. If optional is false, then the interval
|
|
is always performed.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Creates a performed interval var with a fixed duration. The duration must
|
|
be greater than 0.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 3:</em>
|
|
Creates an interval var with a fixed duration, and performed_variable.
|
|
The duration must be greater than 0.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.FixedInterval" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.FixedInterval">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">FixedInterval</span><span class="signature">(
|
|
self,
|
|
start: 'int64_t',
|
|
duration: 'int64_t',
|
|
name: 'std::string const &'
|
|
) -> 'operations_research::IntervalVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">FixedInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a fixed and performed interval."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a fixed and performed interval.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IntervalVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IntervalVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IntervalVar</span><span class="signature">(
|
|
self,
|
|
start_min: 'int64_t',
|
|
start_max: 'int64_t',
|
|
duration_min: 'int64_t',
|
|
duration_max: 'int64_t',
|
|
end_min: 'int64_t',
|
|
end_max: 'int64_t',
|
|
optional: bool,
|
|
name: 'std::string const &'
|
|
) -> 'operations_research::IntervalVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start_min</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">start_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">duration_min</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">duration_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">end_min</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">end_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">optional</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var by specifying the bounds on start,</span>
|
|
<span class="sd"> duration, and end.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">start_min</span><span class="p">,</span> <span class="n">start_max</span><span class="p">,</span> <span class="n">duration_min</span><span class="p">,</span> <span class="n">duration_max</span><span class="p">,</span> <span class="n">end_min</span><span class="p">,</span> <span class="n">end_max</span><span class="p">,</span> <span class="n">optional</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates an interval var by specifying the bounds on start,
|
|
duration, and end.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.MirrorInterval" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.MirrorInterval">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MirrorInterval</span><span class="signature">(
|
|
self,
|
|
interval_var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>
|
|
) -> 'operations_research::IntervalVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MirrorInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var that is the mirror image of the given one, that</span>
|
|
<span class="sd"> is, the interval var obtained by reversing the axis.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MirrorInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates an interval var that is the mirror image of the given one, that
|
|
is, the interval var obtained by reversing the axis.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.FixedDurationStartSyncedOnStartIntervalVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.FixedDurationStartSyncedOnStartIntervalVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">FixedDurationStartSyncedOnStartIntervalVar</span><span class="signature">(
|
|
self,
|
|
interval_var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
duration: 'int64_t',
|
|
offset: 'int64_t'
|
|
) -> 'operations_research::IntervalVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">FixedDurationStartSyncedOnStartIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">offset</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration whose start is</span>
|
|
<span class="sd"> synchronized with the start of another interval, with a given</span>
|
|
<span class="sd"> offset. The performed status is also in sync with the performed</span>
|
|
<span class="sd"> status of the given interval variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedDurationStartSyncedOnStartIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates an interval var with a fixed duration whose start is
|
|
synchronized with the start of another interval, with a given
|
|
offset. The performed status is also in sync with the performed
|
|
status of the given interval variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.FixedDurationStartSyncedOnEndIntervalVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.FixedDurationStartSyncedOnEndIntervalVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">FixedDurationStartSyncedOnEndIntervalVar</span><span class="signature">(
|
|
self,
|
|
interval_var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
duration: 'int64_t',
|
|
offset: 'int64_t'
|
|
) -> 'operations_research::IntervalVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">FixedDurationStartSyncedOnEndIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">offset</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration whose start is</span>
|
|
<span class="sd"> synchronized with the end of another interval, with a given</span>
|
|
<span class="sd"> offset. The performed status is also in sync with the performed</span>
|
|
<span class="sd"> status of the given interval variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedDurationStartSyncedOnEndIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates an interval var with a fixed duration whose start is
|
|
synchronized with the end of another interval, with a given
|
|
offset. The performed status is also in sync with the performed
|
|
status of the given interval variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.FixedDurationEndSyncedOnStartIntervalVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.FixedDurationEndSyncedOnStartIntervalVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">FixedDurationEndSyncedOnStartIntervalVar</span><span class="signature">(
|
|
self,
|
|
interval_var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
duration: 'int64_t',
|
|
offset: 'int64_t'
|
|
) -> 'operations_research::IntervalVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">FixedDurationEndSyncedOnStartIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">offset</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration whose end is</span>
|
|
<span class="sd"> synchronized with the start of another interval, with a given</span>
|
|
<span class="sd"> offset. The performed status is also in sync with the performed</span>
|
|
<span class="sd"> status of the given interval variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedDurationEndSyncedOnStartIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates an interval var with a fixed duration whose end is
|
|
synchronized with the start of another interval, with a given
|
|
offset. The performed status is also in sync with the performed
|
|
status of the given interval variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.FixedDurationEndSyncedOnEndIntervalVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.FixedDurationEndSyncedOnEndIntervalVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">FixedDurationEndSyncedOnEndIntervalVar</span><span class="signature">(
|
|
self,
|
|
interval_var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
duration: 'int64_t',
|
|
offset: 'int64_t'
|
|
) -> 'operations_research::IntervalVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">FixedDurationEndSyncedOnEndIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">offset</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates an interval var with a fixed duration whose end is</span>
|
|
<span class="sd"> synchronized with the end of another interval, with a given</span>
|
|
<span class="sd"> offset. The performed status is also in sync with the performed</span>
|
|
<span class="sd"> status of the given interval variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FixedDurationEndSyncedOnEndIntervalVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates an interval var with a fixed duration whose end is
|
|
synchronized with the end of another interval, with a given
|
|
offset. The performed status is also in sync with the performed
|
|
status of the given interval variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IntervalRelaxedMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IntervalRelaxedMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IntervalRelaxedMin</span><span class="signature">(
|
|
self,
|
|
interval_var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>
|
|
) -> 'operations_research::IntervalVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IntervalRelaxedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates and returns an interval variable that wraps around the given one,</span>
|
|
<span class="sd"> relaxing the min start and end. Relaxing means making unbounded when</span>
|
|
<span class="sd"> optional. If the variable is non-optional, this method returns</span>
|
|
<span class="sd"> interval_var.</span>
|
|
|
|
<span class="sd"> More precisely, such an interval variable behaves as follows:</span>
|
|
<span class="sd"> When the underlying must be performed, the returned interval variable</span>
|
|
<span class="sd"> behaves exactly as the underlying;</span>
|
|
<span class="sd"> When the underlying may or may not be performed, the returned interval</span>
|
|
<span class="sd"> variable behaves like the underlying, except that it is unbounded on</span>
|
|
<span class="sd"> the min side;</span>
|
|
<span class="sd"> When the underlying cannot be performed, the returned interval variable</span>
|
|
<span class="sd"> is of duration 0 and must be performed in an interval unbounded on</span>
|
|
<span class="sd"> both sides.</span>
|
|
|
|
<span class="sd"> This is very useful to implement propagators that may only modify</span>
|
|
<span class="sd"> the start max or end max.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IntervalRelaxedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates and returns an interval variable that wraps around the given one,
|
|
relaxing the min start and end. Relaxing means making unbounded when
|
|
optional. If the variable is non-optional, this method returns
|
|
interval_var.</p>
|
|
|
|
<p>More precisely, such an interval variable behaves as follows:
|
|
When the underlying must be performed, the returned interval variable
|
|
behaves exactly as the underlying;
|
|
When the underlying may or may not be performed, the returned interval
|
|
variable behaves like the underlying, except that it is unbounded on
|
|
the min side;
|
|
When the underlying cannot be performed, the returned interval variable
|
|
is of duration 0 and must be performed in an interval unbounded on
|
|
both sides.</p>
|
|
|
|
<p>This is very useful to implement propagators that may only modify
|
|
the start max or end max.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.IntervalRelaxedMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.IntervalRelaxedMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IntervalRelaxedMax</span><span class="signature">(
|
|
self,
|
|
interval_var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>
|
|
) -> 'operations_research::IntervalVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IntervalRelaxedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates and returns an interval variable that wraps around the given one,</span>
|
|
<span class="sd"> relaxing the max start and end. Relaxing means making unbounded when</span>
|
|
<span class="sd"> optional. If the variable is non optional, this method returns</span>
|
|
<span class="sd"> interval_var.</span>
|
|
|
|
<span class="sd"> More precisely, such an interval variable behaves as follows:</span>
|
|
<span class="sd"> When the underlying must be performed, the returned interval variable</span>
|
|
<span class="sd"> behaves exactly as the underlying;</span>
|
|
<span class="sd"> When the underlying may or may not be performed, the returned interval</span>
|
|
<span class="sd"> variable behaves like the underlying, except that it is unbounded on</span>
|
|
<span class="sd"> the max side;</span>
|
|
<span class="sd"> When the underlying cannot be performed, the returned interval variable</span>
|
|
<span class="sd"> is of duration 0 and must be performed in an interval unbounded on</span>
|
|
<span class="sd"> both sides.</span>
|
|
|
|
<span class="sd"> This is very useful for implementing propagators that may only modify</span>
|
|
<span class="sd"> the start min or end min.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_IntervalRelaxedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval_var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates and returns an interval variable that wraps around the given one,
|
|
relaxing the max start and end. Relaxing means making unbounded when
|
|
optional. If the variable is non optional, this method returns
|
|
interval_var.</p>
|
|
|
|
<p>More precisely, such an interval variable behaves as follows:
|
|
When the underlying must be performed, the returned interval variable
|
|
behaves exactly as the underlying;
|
|
When the underlying may or may not be performed, the returned interval
|
|
variable behaves like the underlying, except that it is unbounded on
|
|
the max side;
|
|
When the underlying cannot be performed, the returned interval variable
|
|
is of duration 0 and must be performed in an interval unbounded on
|
|
both sides.</p>
|
|
|
|
<p>This is very useful for implementing propagators that may only modify
|
|
the start min or end min.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.TemporalDisjunction" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.TemporalDisjunction">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">TemporalDisjunction</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">TemporalDisjunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This constraint implements a temporal disjunction between two</span>
|
|
<span class="sd"> interval vars t1 and t2. 'alt' indicates which alternative was</span>
|
|
<span class="sd"> chosen (alt == 0 is equivalent to t1 before t2).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This constraint implements a temporal disjunction between two</span>
|
|
<span class="sd"> interval vars.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TemporalDisjunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
This constraint implements a temporal disjunction between two
|
|
interval vars t1 and t2. 'alt' indicates which alternative was
|
|
chosen (alt == 0 is equivalent to t1 before t2).</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
This constraint implements a temporal disjunction between two
|
|
interval vars.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.DisjunctiveConstraint" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.DisjunctiveConstraint">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DisjunctiveConstraint</span><span class="signature">(
|
|
self,
|
|
intervals: 'std::vector< operations_research::IntervalVar * > const &',
|
|
name: 'std::string const &'
|
|
) -> 'operations_research::DisjunctiveConstraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DisjunctiveConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">intervals</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntervalVar * > const &"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DisjunctiveConstraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This constraint forces all interval vars into an non-overlapping</span>
|
|
<span class="sd"> sequence. Intervals with zero duration can be scheduled anywhere.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DisjunctiveConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">intervals</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This constraint forces all interval vars into an non-overlapping
|
|
sequence. Intervals with zero duration can be scheduled anywhere.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Cumulative" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Cumulative">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Cumulative</span><span class="signature">(self, *args) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Cumulative</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This constraint forces that, for any integer t, the sum of the demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should only contain non-negative values. Zero values are</span>
|
|
<span class="sd"> supported, and the corresponding intervals are filtered out, as they</span>
|
|
<span class="sd"> neither impact nor are impacted by this constraint.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This constraint forces that, for any integer t, the sum of the demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should only contain non-negative values. Zero values are</span>
|
|
<span class="sd"> supported, and the corresponding intervals are filtered out, as they</span>
|
|
<span class="sd"> neither impact nor are impacted by this constraint.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> This constraint forces that, for any integer t, the sum of the demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should only contain non-negative values. Zero values are</span>
|
|
<span class="sd"> supported, and the corresponding intervals are filtered out, as they</span>
|
|
<span class="sd"> neither impact nor are impacted by this constraint.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 4:*</span>
|
|
<span class="sd"> This constraint enforces that, for any integer t, the sum of the demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should only contain non-negative values. Zero values are</span>
|
|
<span class="sd"> supported, and the corresponding intervals are filtered out, as they</span>
|
|
<span class="sd"> neither impact nor are impacted by this constraint.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 5:*</span>
|
|
<span class="sd"> This constraint enforces that, for any integer t, the sum of demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should be positive.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 6:*</span>
|
|
<span class="sd"> This constraint enforces that, for any integer t, the sum of demands</span>
|
|
<span class="sd"> corresponding to an interval containing t does not exceed the given</span>
|
|
<span class="sd"> capacity.</span>
|
|
|
|
<span class="sd"> Intervals and demands should be vectors of equal size.</span>
|
|
|
|
<span class="sd"> Demands should be positive.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Cumulative</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
This constraint forces that, for any integer t, the sum of the demands
|
|
corresponding to an interval containing t does not exceed the given
|
|
capacity.</p>
|
|
|
|
<p>Intervals and demands should be vectors of equal size.</p>
|
|
|
|
<p>Demands should only contain non-negative values. Zero values are
|
|
supported, and the corresponding intervals are filtered out, as they
|
|
neither impact nor are impacted by this constraint.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
This constraint forces that, for any integer t, the sum of the demands
|
|
corresponding to an interval containing t does not exceed the given
|
|
capacity.</p>
|
|
|
|
<p>Intervals and demands should be vectors of equal size.</p>
|
|
|
|
<p>Demands should only contain non-negative values. Zero values are
|
|
supported, and the corresponding intervals are filtered out, as they
|
|
neither impact nor are impacted by this constraint.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 3:</em>
|
|
This constraint forces that, for any integer t, the sum of the demands
|
|
corresponding to an interval containing t does not exceed the given
|
|
capacity.</p>
|
|
|
|
<p>Intervals and demands should be vectors of equal size.</p>
|
|
|
|
<p>Demands should only contain non-negative values. Zero values are
|
|
supported, and the corresponding intervals are filtered out, as they
|
|
neither impact nor are impacted by this constraint.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 4:</em>
|
|
This constraint enforces that, for any integer t, the sum of the demands
|
|
corresponding to an interval containing t does not exceed the given
|
|
capacity.</p>
|
|
|
|
<p>Intervals and demands should be vectors of equal size.</p>
|
|
|
|
<p>Demands should only contain non-negative values. Zero values are
|
|
supported, and the corresponding intervals are filtered out, as they
|
|
neither impact nor are impacted by this constraint.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 5:</em>
|
|
This constraint enforces that, for any integer t, the sum of demands
|
|
corresponding to an interval containing t does not exceed the given
|
|
capacity.</p>
|
|
|
|
<p>Intervals and demands should be vectors of equal size.</p>
|
|
|
|
<p>Demands should be positive.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 6:</em>
|
|
This constraint enforces that, for any integer t, the sum of demands
|
|
corresponding to an interval containing t does not exceed the given
|
|
capacity.</p>
|
|
|
|
<p>Intervals and demands should be vectors of equal size.</p>
|
|
|
|
<p>Demands should be positive.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Cover" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Cover">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Cover</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntervalVar * > const &',
|
|
target_var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Cover</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntervalVar * > const &"</span><span class="p">,</span> <span class="n">target_var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This constraint states that the target_var is the convex hull of</span>
|
|
<span class="sd"> the intervals. If none of the interval variables is performed,</span>
|
|
<span class="sd"> then the target var is unperformed too. Also, if the target</span>
|
|
<span class="sd"> variable is unperformed, then all the intervals variables are</span>
|
|
<span class="sd"> unperformed too.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Cover</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">target_var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This constraint states that the target_var is the convex hull of
|
|
the intervals. If none of the interval variables is performed,
|
|
then the target var is unperformed too. Also, if the target
|
|
variable is unperformed, then all the intervals variables are
|
|
unperformed too.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Assignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Assignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Assignment</span><span class="signature">(self, *args) -> 'operations_research::Assignment *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Assignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This method creates an empty assignment.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This method creates an assignment which is a copy of 'a'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Assignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
This method creates an empty assignment.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
This method creates an assignment which is a copy of 'a'.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.FirstSolutionCollector" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.FirstSolutionCollector">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">FirstSolutionCollector</span><span class="signature">(self, *args) -> 'operations_research::SolutionCollector *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">FirstSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SolutionCollector *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Collect the first solution of the search.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Collect the first solution of the search. The variables will need to</span>
|
|
<span class="sd"> be added later.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FirstSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Collect the first solution of the search.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Collect the first solution of the search. The variables will need to
|
|
be added later.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.LastSolutionCollector" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.LastSolutionCollector">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">LastSolutionCollector</span><span class="signature">(self, *args) -> 'operations_research::SolutionCollector *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">LastSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SolutionCollector *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Collect the last solution of the search.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Collect the last solution of the search. The variables will need to</span>
|
|
<span class="sd"> be added later.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LastSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Collect the last solution of the search.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Collect the last solution of the search. The variables will need to
|
|
be added later.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.BestValueSolutionCollector" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.BestValueSolutionCollector">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">BestValueSolutionCollector</span><span class="signature">(self, *args) -> 'operations_research::SolutionCollector *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">BestValueSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SolutionCollector *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Collect the solution corresponding to the optimal value of the objective</span>
|
|
<span class="sd"> of 'assignment'; if 'assignment' does not have an objective no solution is</span>
|
|
<span class="sd"> collected. This collector only collects one solution corresponding to the</span>
|
|
<span class="sd"> best objective value (the first one found).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Collect the solution corresponding to the optimal value of the</span>
|
|
<span class="sd"> objective of 'assignment'; if 'assignment' does not have an objective no</span>
|
|
<span class="sd"> solution is collected. This collector only collects one solution</span>
|
|
<span class="sd"> corresponding to the best objective value (the first one</span>
|
|
<span class="sd"> found). The variables will need to be added later.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_BestValueSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Collect the solution corresponding to the optimal value of the objective
|
|
of 'assignment'; if 'assignment' does not have an objective no solution is
|
|
collected. This collector only collects one solution corresponding to the
|
|
best objective value (the first one found).</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Collect the solution corresponding to the optimal value of the
|
|
objective of 'assignment'; if 'assignment' does not have an objective no
|
|
solution is collected. This collector only collects one solution
|
|
corresponding to the best objective value (the first one
|
|
found). The variables will need to be added later.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.AllSolutionCollector" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.AllSolutionCollector">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AllSolutionCollector</span><span class="signature">(self, *args) -> 'operations_research::SolutionCollector *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AllSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SolutionCollector *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Collect all solutions of the search.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Collect all solutions of the search. The variables will need to</span>
|
|
<span class="sd"> be added later.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AllSolutionCollector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Collect all solutions of the search.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Collect all solutions of the search. The variables will need to
|
|
be added later.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Minimize" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Minimize">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Minimize</span><span class="signature">(
|
|
self,
|
|
v: <a href="#IntVar">pywrapcp.IntVar</a>,
|
|
step: 'int64_t'
|
|
) -> 'operations_research::OptimizeVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Minimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a minimization objective."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Minimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a minimization objective.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Maximize" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Maximize">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Maximize</span><span class="signature">(
|
|
self,
|
|
v: <a href="#IntVar">pywrapcp.IntVar</a>,
|
|
step: 'int64_t'
|
|
) -> 'operations_research::OptimizeVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Maximize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a maximization objective."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Maximize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a maximization objective.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Optimize" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Optimize">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Optimize</span><span class="signature">(
|
|
self,
|
|
maximize: bool,
|
|
v: <a href="#IntVar">pywrapcp.IntVar</a>,
|
|
step: 'int64_t'
|
|
) -> 'operations_research::OptimizeVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a objective with a given sense (true = maximization)."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Optimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">step</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a objective with a given sense (true = maximization).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.WeightedMinimize" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.WeightedMinimize">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WeightedMinimize</span><span class="signature">(self, *args) -> 'operations_research::OptimizeVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WeightedMinimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates a minimization weighted objective. The actual objective is</span>
|
|
<span class="sd"> scalar_prod(sub_objectives, weights).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a minimization weighted objective. The actual objective is</span>
|
|
<span class="sd"> scalar_prod(sub_objectives, weights).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_WeightedMinimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Creates a minimization weighted objective. The actual objective is
|
|
scalar_prod(sub_objectives, weights).</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Creates a minimization weighted objective. The actual objective is
|
|
scalar_prod(sub_objectives, weights).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.WeightedMaximize" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.WeightedMaximize">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WeightedMaximize</span><span class="signature">(self, *args) -> 'operations_research::OptimizeVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WeightedMaximize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates a maximization weigthed objective.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a maximization weigthed objective.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_WeightedMaximize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Creates a maximization weigthed objective.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Creates a maximization weigthed objective.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.WeightedOptimize" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.WeightedOptimize">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WeightedOptimize</span><span class="signature">(self, *args) -> 'operations_research::OptimizeVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WeightedOptimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::OptimizeVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates a weighted objective with a given sense (true = maximization).</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a weighted objective with a given sense (true = maximization).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_WeightedOptimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Creates a weighted objective with a given sense (true = maximization).</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Creates a weighted objective with a given sense (true = maximization).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.TabuSearch" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.TabuSearch">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">TabuSearch</span><span class="signature">(
|
|
self,
|
|
maximize: bool,
|
|
v: <a href="#IntVar">pywrapcp.IntVar</a>,
|
|
step: 'int64_t',
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
keep_tenure: 'int64_t',
|
|
forbid_tenure: 'int64_t',
|
|
tabu_factor: 'double'
|
|
) -> 'operations_research::SearchMonitor *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">TabuSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">keep_tenure</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">forbid_tenure</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">tabu_factor</span><span class="p">:</span> <span class="s2">"double"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> MetaHeuristics which try to get the search out of local optima.</span>
|
|
<span class="sd"> Creates a Tabu Search monitor.</span>
|
|
<span class="sd"> In the context of local search the behavior is similar to MakeOptimize(),</span>
|
|
<span class="sd"> creating an objective in a given sense. The behavior differs once a local</span>
|
|
<span class="sd"> optimum is reached: thereafter solutions which degrade the value of the</span>
|
|
<span class="sd"> objective are allowed if they are not "tabu". A solution is "tabu" if it</span>
|
|
<span class="sd"> doesn't respect the following rules:</span>
|
|
<span class="sd"> - improving the best solution found so far</span>
|
|
<span class="sd"> - variables in the "keep" list must keep their value, variables in the</span>
|
|
<span class="sd"> "forbid" list must not take the value they have in the list.</span>
|
|
<span class="sd"> Variables with new values enter the tabu lists after each new solution</span>
|
|
<span class="sd"> found and leave the lists after a given number of iterations (called</span>
|
|
<span class="sd"> tenure). Only the variables passed to the method can enter the lists.</span>
|
|
<span class="sd"> The tabu criterion is softened by the tabu factor which gives the number</span>
|
|
<span class="sd"> of "tabu" violations which is tolerated; a factor of 1 means no violations</span>
|
|
<span class="sd"> allowed; a factor of 0 means all violations are allowed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TabuSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">step</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">keep_tenure</span><span class="p">,</span> <span class="n">forbid_tenure</span><span class="p">,</span> <span class="n">tabu_factor</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>MetaHeuristics which try to get the search out of local optima.
|
|
Creates a Tabu Search monitor.
|
|
In the context of local search the behavior is similar to MakeOptimize(),
|
|
creating an objective in a given sense. The behavior differs once a local
|
|
optimum is reached: thereafter solutions which degrade the value of the
|
|
objective are allowed if they are not "tabu". A solution is "tabu" if it
|
|
doesn't respect the following rules:</p>
|
|
|
|
<ul>
|
|
<li>improving the best solution found so far</li>
|
|
<li>variables in the "keep" list must keep their value, variables in the
|
|
"forbid" list must not take the value they have in the list.
|
|
Variables with new values enter the tabu lists after each new solution
|
|
found and leave the lists after a given number of iterations (called
|
|
tenure). Only the variables passed to the method can enter the lists.
|
|
The tabu criterion is softened by the tabu factor which gives the number
|
|
of "tabu" violations which is tolerated; a factor of 1 means no violations
|
|
allowed; a factor of 0 means all violations are allowed.</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SimulatedAnnealing" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SimulatedAnnealing">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SimulatedAnnealing</span><span class="signature">(
|
|
self,
|
|
maximize: bool,
|
|
v: <a href="#IntVar">pywrapcp.IntVar</a>,
|
|
step: 'int64_t',
|
|
initial_temperature: 'int64_t'
|
|
) -> 'operations_research::SearchMonitor *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SimulatedAnnealing</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">step</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">initial_temperature</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a Simulated Annealing monitor."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SimulatedAnnealing</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">maximize</span><span class="p">,</span> <span class="n">v</span><span class="p">,</span> <span class="n">step</span><span class="p">,</span> <span class="n">initial_temperature</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a Simulated Annealing monitor.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.LubyRestart" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.LubyRestart">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">LubyRestart</span><span class="signature">(self, scale_factor: int) -> 'operations_research::SearchMonitor *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">LubyRestart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">scale_factor</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This search monitor will restart the search periodically.</span>
|
|
<span class="sd"> At the iteration n, it will restart after scale_factor * Luby(n) failures</span>
|
|
<span class="sd"> where Luby is the Luby Strategy (i.e. 1 1 2 1 1 2 4 1 1 2 1 1 2 4 8...).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LubyRestart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">scale_factor</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This search monitor will restart the search periodically.
|
|
At the iteration n, it will restart after scale_factor * Luby(n) failures
|
|
where Luby is the Luby Strategy (i.e. 1 1 2 1 1 2 4 1 1 2 1 1 2 4 8...).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ConstantRestart" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ConstantRestart">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ConstantRestart</span><span class="signature">(self, frequency: int) -> 'operations_research::SearchMonitor *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ConstantRestart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">frequency</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This search monitor will restart the search periodically after 'frequency'</span>
|
|
<span class="sd"> failures.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConstantRestart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">frequency</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This search monitor will restart the search periodically after 'frequency'
|
|
failures.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.TimeLimit" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.TimeLimit">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">TimeLimit</span><span class="signature">(self, *args) -> 'operations_research::RegularLimit *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">TimeLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RegularLimit *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TimeLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.BranchesLimit" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.BranchesLimit">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">BranchesLimit</span><span class="signature">(self, branches: 'int64_t') -> 'operations_research::RegularLimit *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">BranchesLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">branches</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RegularLimit *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a search limit that constrains the number of branches</span>
|
|
<span class="sd"> explored in the search tree.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_BranchesLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">branches</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a search limit that constrains the number of branches
|
|
explored in the search tree.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.FailuresLimit" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.FailuresLimit">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">FailuresLimit</span><span class="signature">(self, failures: 'int64_t') -> 'operations_research::RegularLimit *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">FailuresLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">failures</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RegularLimit *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a search limit that constrains the number of failures</span>
|
|
<span class="sd"> that can happen when exploring the search tree.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FailuresLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">failures</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a search limit that constrains the number of failures
|
|
that can happen when exploring the search tree.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SolutionsLimit" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SolutionsLimit">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SolutionsLimit</span><span class="signature">(self, solutions: 'int64_t') -> 'operations_research::RegularLimit *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SolutionsLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solutions</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RegularLimit *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a search limit that constrains the number of solutions found</span>
|
|
<span class="sd"> during the search.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SolutionsLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solutions</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a search limit that constrains the number of solutions found
|
|
during the search.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Limit" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Limit">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Limit</span><span class="signature">(self, *args) -> 'operations_research::SearchLimit *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchLimit *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Limits the search with the 'time', 'branches', 'failures' and</span>
|
|
<span class="sd"> 'solutions' limits. 'smart_time_check' reduces the calls to the wall</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a search limit from its protobuf description</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> Creates a search limit that is reached when either of the underlying limit</span>
|
|
<span class="sd"> is reached. That is, the returned limit is more stringent than both</span>
|
|
<span class="sd"> argument limits.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Limit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Limits the search with the 'time', 'branches', 'failures' and
|
|
'solutions' limits. 'smart_time_check' reduces the calls to the wall</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Creates a search limit from its protobuf description</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 3:</em>
|
|
Creates a search limit that is reached when either of the underlying limit
|
|
is reached. That is, the returned limit is more stringent than both
|
|
argument limits.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.CustomLimit" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.CustomLimit">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">CustomLimit</span><span class="signature">(
|
|
self,
|
|
limiter: 'std::function< bool () >'
|
|
) -> 'operations_research::SearchLimit *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">CustomLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">limiter</span><span class="p">:</span> <span class="s2">"std::function< bool () >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchLimit *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Callback-based search limit. Search stops when limiter returns true; if</span>
|
|
<span class="sd"> this happens at a leaf the corresponding solution will be rejected.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_CustomLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">limiter</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Callback-based search limit. Search stops when limiter returns true; if
|
|
this happens at a leaf the corresponding solution will be rejected.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SearchLog" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SearchLog">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SearchLog</span><span class="signature">(self, *args) -> 'operations_research::SearchMonitor *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SearchLog</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SearchLog</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SearchTrace" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SearchTrace">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SearchTrace</span><span class="signature">(
|
|
self,
|
|
prefix: 'std::string const &'
|
|
) -> 'operations_research::SearchMonitor *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SearchTrace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a search monitor that will trace precisely the behavior of the</span>
|
|
<span class="sd"> search. Use this only for low level debugging.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SearchTrace</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prefix</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a search monitor that will trace precisely the behavior of the
|
|
search. Use this only for low level debugging.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.PrintModelVisitor" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.PrintModelVisitor">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">PrintModelVisitor</span><span class="signature">(self) -> 'operations_research::ModelVisitor *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">PrintModelVisitor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::ModelVisitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Prints the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_PrintModelVisitor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Prints the model.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.StatisticsModelVisitor" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.StatisticsModelVisitor">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StatisticsModelVisitor</span><span class="signature">(self) -> 'operations_research::ModelVisitor *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StatisticsModelVisitor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::ModelVisitor *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Displays some nice statistics on the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_StatisticsModelVisitor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Displays some nice statistics on the model.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.AssignVariableValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.AssignVariableValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AssignVariableValue</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntVar">pywrapcp.IntVar</a>,
|
|
val: 'int64_t'
|
|
) -> 'operations_research::Decision *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AssignVariableValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Decisions."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AssignVariableValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Decisions.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.VariableLessOrEqualValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.VariableLessOrEqualValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">VariableLessOrEqualValue</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntVar">pywrapcp.IntVar</a>,
|
|
value: 'int64_t'
|
|
) -> 'operations_research::Decision *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">VariableLessOrEqualValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VariableLessOrEqualValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.VariableGreaterOrEqualValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.VariableGreaterOrEqualValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">VariableGreaterOrEqualValue</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntVar">pywrapcp.IntVar</a>,
|
|
value: 'int64_t'
|
|
) -> 'operations_research::Decision *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">VariableGreaterOrEqualValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VariableGreaterOrEqualValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SplitVariableDomain" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SplitVariableDomain">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SplitVariableDomain</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntVar">pywrapcp.IntVar</a>,
|
|
val: 'int64_t',
|
|
start_with_lower_half: bool
|
|
) -> 'operations_research::Decision *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SplitVariableDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">start_with_lower_half</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SplitVariableDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">val</span><span class="p">,</span> <span class="n">start_with_lower_half</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.AssignVariableValueOrFail" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.AssignVariableValueOrFail">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AssignVariableValueOrFail</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntVar">pywrapcp.IntVar</a>,
|
|
value: 'int64_t'
|
|
) -> 'operations_research::Decision *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AssignVariableValueOrFail</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AssignVariableValueOrFail</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.AssignVariablesValues" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.AssignVariablesValues">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AssignVariablesValues</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
values: 'std::vector< int64_t > const &'
|
|
) -> 'operations_research::Decision *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AssignVariablesValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_AssignVariablesValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.FailDecision" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.FailDecision">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">FailDecision</span><span class="signature">(self) -> 'operations_research::Decision *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">FailDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FailDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Decision" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Decision">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Decision</span><span class="signature">(
|
|
self,
|
|
apply: 'operations_research::Solver::Action',
|
|
refute: 'operations_research::Solver::Action'
|
|
) -> 'operations_research::Decision *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Decision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">apply</span><span class="p">:</span> <span class="s2">"operations_research::Solver::Action"</span><span class="p">,</span> <span class="n">refute</span><span class="p">:</span> <span class="s2">"operations_research::Solver::Action"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Decision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">apply</span><span class="p">,</span> <span class="n">refute</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Compose" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Compose">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Compose</span><span class="signature">(
|
|
self,
|
|
dbs: 'std::vector< operations_research::DecisionBuilder * > const &'
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Compose</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dbs</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::DecisionBuilder * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Compose</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dbs</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Try" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Try">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Try</span><span class="signature">(
|
|
self,
|
|
dbs: 'std::vector< operations_research::DecisionBuilder * > const &'
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Try</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dbs</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::DecisionBuilder * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Try</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dbs</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.DefaultPhase" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.DefaultPhase">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DefaultPhase</span><span class="signature">(self, *args) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DefaultPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DefaultPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ScheduleOrPostpone" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ScheduleOrPostpone">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ScheduleOrPostpone</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
est: 'int64_t',
|
|
marker: 'int64_t *const'
|
|
) -> 'operations_research::Decision *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ScheduleOrPostpone</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">est</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">marker</span><span class="p">:</span> <span class="s2">"int64_t *const"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision that tries to schedule a task at a given time.</span>
|
|
<span class="sd"> On the Apply branch, it will set that interval var as performed and set</span>
|
|
<span class="sd"> its start to 'est'. On the Refute branch, it will just update the</span>
|
|
<span class="sd"> 'marker' to 'est' + 1. This decision is used in the</span>
|
|
<span class="sd"> INTERVAL_SET_TIMES_FORWARD strategy.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScheduleOrPostpone</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">est</span><span class="p">,</span> <span class="n">marker</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns a decision that tries to schedule a task at a given time.
|
|
On the Apply branch, it will set that interval var as performed and set
|
|
its start to 'est'. On the Refute branch, it will just update the
|
|
'marker' to 'est' + 1. This decision is used in the
|
|
INTERVAL_SET_TIMES_FORWARD strategy.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ScheduleOrExpedite" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ScheduleOrExpedite">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ScheduleOrExpedite</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
est: 'int64_t',
|
|
marker: 'int64_t *const'
|
|
) -> 'operations_research::Decision *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ScheduleOrExpedite</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">est</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">marker</span><span class="p">:</span> <span class="s2">"int64_t *const"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision that tries to schedule a task at a given time.</span>
|
|
<span class="sd"> On the Apply branch, it will set that interval var as performed and set</span>
|
|
<span class="sd"> its end to 'est'. On the Refute branch, it will just update the</span>
|
|
<span class="sd"> 'marker' to 'est' - 1. This decision is used in the</span>
|
|
<span class="sd"> INTERVAL_SET_TIMES_BACKWARD strategy.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ScheduleOrExpedite</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">est</span><span class="p">,</span> <span class="n">marker</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns a decision that tries to schedule a task at a given time.
|
|
On the Apply branch, it will set that interval var as performed and set
|
|
its end to 'est'. On the Refute branch, it will just update the
|
|
'marker' to 'est' - 1. This decision is used in the
|
|
INTERVAL_SET_TIMES_BACKWARD strategy.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.RankFirstInterval" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.RankFirstInterval">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RankFirstInterval</span><span class="signature">(
|
|
self,
|
|
sequence: <a href="#SequenceVar">pywrapcp.SequenceVar</a>,
|
|
index: int
|
|
) -> 'operations_research::Decision *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RankFirstInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision that tries to rank first the ith interval var</span>
|
|
<span class="sd"> in the sequence variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RankFirstInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns a decision that tries to rank first the ith interval var
|
|
in the sequence variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.RankLastInterval" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.RankLastInterval">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RankLastInterval</span><span class="signature">(
|
|
self,
|
|
sequence: <a href="#SequenceVar">pywrapcp.SequenceVar</a>,
|
|
index: int
|
|
) -> 'operations_research::Decision *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RankLastInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision that tries to rank last the ith interval var</span>
|
|
<span class="sd"> in the sequence variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RankLastInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">sequence</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns a decision that tries to rank last the ith interval var
|
|
in the sequence variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Phase" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Phase">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Phase</span><span class="signature">(self, *args) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Phase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Phase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.DecisionBuilderFromAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.DecisionBuilderFromAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DecisionBuilderFromAssignment</span><span class="signature">(
|
|
self,
|
|
assignment: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
db: <a href="#DecisionBuilder">pywrapcp.DecisionBuilder</a>,
|
|
vars: 'std::vector< operations_research::IntVar * > const &'
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DecisionBuilderFromAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">db</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision builder for which the left-most leaf corresponds</span>
|
|
<span class="sd"> to assignment, the rest of the tree being explored using 'db'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DecisionBuilderFromAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="nb">vars</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns a decision builder for which the left-most leaf corresponds
|
|
to assignment, the rest of the tree being explored using 'db'.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ConstraintAdder" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ConstraintAdder">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ConstraintAdder</span><span class="signature">(
|
|
self,
|
|
ct: <a href="#Constraint">pywrapcp.Constraint</a>
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ConstraintAdder</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">:</span> <span class="s2">"Constraint"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a decision builder that will add the given constraint to</span>
|
|
<span class="sd"> the model.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConstraintAdder</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns a decision builder that will add the given constraint to
|
|
the model.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SolveOnce" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SolveOnce">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SolveOnce</span><span class="signature">(
|
|
self,
|
|
db: <a href="#DecisionBuilder">pywrapcp.DecisionBuilder</a>,
|
|
monitors: 'std::vector< operations_research::SearchMonitor * > const &'
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SolveOnce</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">db</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">,</span> <span class="n">monitors</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::SearchMonitor * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SolveOnce</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">db</span><span class="p">,</span> <span class="n">monitors</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.NestedOptimize" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.NestedOptimize">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NestedOptimize</span><span class="signature">(self, *args) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NestedOptimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NestedOptimize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.RestoreAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.RestoreAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RestoreAssignment</span><span class="signature">(
|
|
self,
|
|
assignment: <a href="#Assignment">pywrapcp.Assignment</a>
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RestoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a DecisionBuilder which restores an Assignment</span>
|
|
<span class="sd"> (calls void Assignment::Restore())</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RestoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns a DecisionBuilder which restores an Assignment
|
|
(calls void Assignment::Restore())</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.StoreAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.StoreAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StoreAssignment</span><span class="signature">(
|
|
self,
|
|
assignment: <a href="#Assignment">pywrapcp.Assignment</a>
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a DecisionBuilder which stores an Assignment</span>
|
|
<span class="sd"> (calls void Assignment::Store())</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_StoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns a DecisionBuilder which stores an Assignment
|
|
(calls void Assignment::Store())</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Operator" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Operator">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Operator</span><span class="signature">(self, *args) -> 'operations_research::LocalSearchOperator *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Operator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Operator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.RandomLnsOperator" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.RandomLnsOperator">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RandomLnsOperator</span><span class="signature">(self, *args) -> 'operations_research::LocalSearchOperator *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RandomLnsOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RandomLnsOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.MoveTowardTargetOperator" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.MoveTowardTargetOperator">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MoveTowardTargetOperator</span><span class="signature">(self, *args) -> 'operations_research::LocalSearchOperator *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MoveTowardTargetOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Creates a local search operator that tries to move the assignment of some</span>
|
|
<span class="sd"> variables toward a target. The target is given as an Assignment. This</span>
|
|
<span class="sd"> operator generates neighbors in which the only difference compared to the</span>
|
|
<span class="sd"> current state is that one variable that belongs to the target assignment</span>
|
|
<span class="sd"> is set to its target value.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Creates a local search operator that tries to move the assignment of some</span>
|
|
<span class="sd"> variables toward a target. The target is given either as two vectors: a</span>
|
|
<span class="sd"> vector of variables and a vector of associated target values. The two</span>
|
|
<span class="sd"> vectors should be of the same length. This operator generates neighbors in</span>
|
|
<span class="sd"> which the only difference compared to the current state is that one</span>
|
|
<span class="sd"> variable that belongs to the given vector is set to its target value.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MoveTowardTargetOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Creates a local search operator that tries to move the assignment of some
|
|
variables toward a target. The target is given as an Assignment. This
|
|
operator generates neighbors in which the only difference compared to the
|
|
current state is that one variable that belongs to the target assignment
|
|
is set to its target value.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Creates a local search operator that tries to move the assignment of some
|
|
variables toward a target. The target is given either as two vectors: a
|
|
vector of variables and a vector of associated target values. The two
|
|
vectors should be of the same length. This operator generates neighbors in
|
|
which the only difference compared to the current state is that one
|
|
variable that belongs to the given vector is set to its target value.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ConcatenateOperators" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ConcatenateOperators">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ConcatenateOperators</span><span class="signature">(self, *args) -> 'operations_research::LocalSearchOperator *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ConcatenateOperators</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ConcatenateOperators</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.RandomConcatenateOperators" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.RandomConcatenateOperators">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RandomConcatenateOperators</span><span class="signature">(self, *args) -> 'operations_research::LocalSearchOperator *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RandomConcatenateOperators</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Randomized version of local search concatenator; calls a random operator</span>
|
|
<span class="sd"> at each call to MakeNextNeighbor().</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Randomized version of local search concatenator; calls a random operator</span>
|
|
<span class="sd"> at each call to MakeNextNeighbor(). The provided seed is used to</span>
|
|
<span class="sd"> initialize the random number generator.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RandomConcatenateOperators</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Randomized version of local search concatenator; calls a random operator
|
|
at each call to MakeNextNeighbor().</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Randomized version of local search concatenator; calls a random operator
|
|
at each call to MakeNextNeighbor(). The provided seed is used to
|
|
initialize the random number generator.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.NeighborhoodLimit" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.NeighborhoodLimit">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NeighborhoodLimit</span><span class="signature">(
|
|
self,
|
|
op: <a href="#LocalSearchOperator">pywrapcp.LocalSearchOperator</a>,
|
|
limit: 'int64_t'
|
|
) -> 'operations_research::LocalSearchOperator *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NeighborhoodLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">op</span><span class="p">:</span> <span class="s2">"LocalSearchOperator"</span><span class="p">,</span> <span class="n">limit</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchOperator *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a local search operator that wraps another local search</span>
|
|
<span class="sd"> operator and limits the number of neighbors explored (i.e., calls</span>
|
|
<span class="sd"> to MakeNextNeighbor from the current solution (between two calls</span>
|
|
<span class="sd"> to Start()). When this limit is reached, MakeNextNeighbor()</span>
|
|
<span class="sd"> returns false. The counter is cleared when Start() is called.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_NeighborhoodLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">op</span><span class="p">,</span> <span class="n">limit</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a local search operator that wraps another local search
|
|
operator and limits the number of neighbors explored (i.e., calls
|
|
to MakeNextNeighbor from the current solution (between two calls
|
|
to Start()). When this limit is reached, MakeNextNeighbor()
|
|
returns false. The counter is cleared when Start() is called.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.LocalSearchPhase" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.LocalSearchPhase">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">LocalSearchPhase</span><span class="signature">(self, *args) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">LocalSearchPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LocalSearchPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.LocalSearchPhaseParameters" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.LocalSearchPhaseParameters">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">LocalSearchPhaseParameters</span><span class="signature">(self, *args) -> 'operations_research::LocalSearchPhaseParameters *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">LocalSearchPhaseParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchPhaseParameters *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LocalSearchPhaseParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SearchDepth" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SearchDepth">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SearchDepth</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SearchDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Gets the search depth of the current active search. Returns -1 if</span>
|
|
<span class="sd"> there is no active search opened.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SearchDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Gets the search depth of the current active search. Returns -1 if
|
|
there is no active search opened.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SearchLeftDepth" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SearchLeftDepth">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SearchLeftDepth</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SearchLeftDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Gets the search left depth of the current active search. Returns -1 if</span>
|
|
<span class="sd"> there is no active search opened.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SearchLeftDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Gets the search left depth of the current active search. Returns -1 if
|
|
there is no active search opened.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SolveDepth" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SolveDepth">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SolveDepth</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SolveDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Gets the number of nested searches. It returns 0 outside search,</span>
|
|
<span class="sd"> 1 during the top level search, 2 or more in case of nested searches.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SolveDepth</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Gets the number of nested searches. It returns 0 outside search,
|
|
1 during the top level search, 2 or more in case of nested searches.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Rand64" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Rand64">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Rand64</span><span class="signature">(self, size: 'int64_t') -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Rand64</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns a random value between 0 and 'size' - 1;"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Rand64</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns a random value between 0 and 'size' - 1;</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Rand32" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Rand32">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Rand32</span><span class="signature">(self, size: 'int32_t') -> 'int32_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Rand32</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">:</span> <span class="s2">"int32_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int32_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns a random value between 0 and 'size' - 1;"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Rand32</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">size</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns a random value between 0 and 'size' - 1;</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ReSeed" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ReSeed">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ReSeed</span><span class="signature">(self, seed: 'int32_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ReSeed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">seed</span><span class="p">:</span> <span class="s2">"int32_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Reseed the solver random generator."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ReSeed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">seed</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Reseed the solver random generator.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.LocalSearchProfile" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.LocalSearchProfile">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">LocalSearchProfile</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">LocalSearchProfile</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns local search profiling information in a human readable format."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_LocalSearchProfile</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns local search profiling information in a human readable format.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Constraints" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Constraints">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Constraints</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Constraints</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Counts the number of constraints that have been added</span>
|
|
<span class="sd"> to the solver before the search.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Constraints</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Counts the number of constraints that have been added
|
|
to the solver before the search.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Accept" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Accept">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Accept</span><span class="signature">(self, visitor: 'operations_research::ModelVisitor *const') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">visitor</span><span class="p">:</span> <span class="s2">"operations_research::ModelVisitor *const"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Accepts the given model visitor."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">visitor</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Accepts the given model visitor.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.FinishCurrentSearch" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.FinishCurrentSearch">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">FinishCurrentSearch</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">FinishCurrentSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Tells the solver to kill or restart the current search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_FinishCurrentSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Tells the solver to kill or restart the current search.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.RestartCurrentSearch" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.RestartCurrentSearch">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RestartCurrentSearch</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RestartCurrentSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_RestartCurrentSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ShouldFail" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ShouldFail">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ShouldFail</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ShouldFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> These methods are only useful for the SWIG wrappers, which need a way</span>
|
|
<span class="sd"> to externally cause the Solver to fail.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ShouldFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>These methods are only useful for the SWIG wrappers, which need a way
|
|
to externally cause the Solver to fail.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Solver.Add" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.Add">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Add</span><span class="signature">(self, ct)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">ct</span><span class="p">,</span> <span class="n">PyConstraint</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__python_constraints</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">ct</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">AddConstraint</span><span class="p">(</span><span class="n">ct</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.TreeNoCycle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.TreeNoCycle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">TreeNoCycle</span><span class="signature">(
|
|
self,
|
|
nexts: 'std::vector< operations_research::IntVar * > const &',
|
|
active: 'std::vector< operations_research::IntVar * > const &',
|
|
callback: 'operations_research::Solver::IndexFilter1' = 0
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">TreeNoCycle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">active</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexFilter1"</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_TreeNoCycle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">nexts</span><span class="p">,</span> <span class="n">active</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SearchLogWithCallback" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SearchLogWithCallback">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SearchLogWithCallback</span><span class="signature">(
|
|
self,
|
|
period: int,
|
|
callback: 'std::function< std::string () >'
|
|
) -> 'operations_research::SearchMonitor *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SearchLogWithCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">period</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"std::function< std::string () >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SearchLogWithCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">period</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.ElementFunction" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.ElementFunction">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ElementFunction</span><span class="signature">(
|
|
self,
|
|
values: 'std::function< int64_t (int64_t) >',
|
|
index: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ElementFunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_ElementFunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.VarEvalValStrPhase" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.VarEvalValStrPhase">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">VarEvalValStrPhase</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
var_evaluator: 'std::function< int64_t (int64_t) >',
|
|
val_str: 'operations_research::Solver::IntValueStrategy'
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">VarEvalValStrPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">var_evaluator</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">,</span> <span class="n">val_str</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IntValueStrategy"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VarEvalValStrPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">var_evaluator</span><span class="p">,</span> <span class="n">val_str</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.VarStrValEvalPhase" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.VarStrValEvalPhase">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">VarStrValEvalPhase</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
var_str: 'operations_research::Solver::IntVarStrategy',
|
|
val_eval: 'operations_research::Solver::IndexEvaluator2'
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">VarStrValEvalPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">var_str</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IntVarStrategy"</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VarStrValEvalPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">var_str</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.VarEvalValEvalPhase" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.VarEvalValEvalPhase">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">VarEvalValEvalPhase</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
var_eval: 'std::function< int64_t (int64_t) >',
|
|
val_eval: 'operations_research::Solver::IndexEvaluator2'
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">VarEvalValEvalPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">var_eval</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VarEvalValEvalPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">var_eval</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.VarStrValEvalTieBreakPhase" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.VarStrValEvalTieBreakPhase">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">VarStrValEvalTieBreakPhase</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
var_str: 'operations_research::Solver::IntVarStrategy',
|
|
val_eval: 'operations_research::Solver::IndexEvaluator2',
|
|
tie_breaker: 'std::function< int64_t (int64_t) >'
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">VarStrValEvalTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">var_str</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IntVarStrategy"</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VarStrValEvalTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">var_str</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.VarEvalValEvalTieBreakPhase" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.VarEvalValEvalTieBreakPhase">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">VarEvalValEvalTieBreakPhase</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
var_eval: 'std::function< int64_t (int64_t) >',
|
|
val_eval: 'operations_research::Solver::IndexEvaluator2',
|
|
tie_breaker: 'std::function< int64_t (int64_t) >'
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">VarEvalValEvalTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">var_eval</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_VarEvalValEvalTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">var_eval</span><span class="p">,</span> <span class="n">val_eval</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.EvalEvalStrPhase" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.EvalEvalStrPhase">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EvalEvalStrPhase</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
evaluator: 'operations_research::Solver::IndexEvaluator2',
|
|
str: 'operations_research::Solver::EvaluatorStrategy'
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EvalEvalStrPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">,</span> <span class="nb">str</span><span class="p">:</span> <span class="s2">"operations_research::Solver::EvaluatorStrategy"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_EvalEvalStrPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.EvalEvalStrTieBreakPhase" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.EvalEvalStrTieBreakPhase">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EvalEvalStrTieBreakPhase</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
evaluator: 'operations_research::Solver::IndexEvaluator2',
|
|
tie_breaker: 'operations_research::Solver::IndexEvaluator1',
|
|
str: 'operations_research::Solver::EvaluatorStrategy'
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EvalEvalStrTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator1"</span><span class="p">,</span> <span class="nb">str</span><span class="p">:</span> <span class="s2">"operations_research::Solver::EvaluatorStrategy"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_EvalEvalStrTieBreakPhase</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">,</span> <span class="n">tie_breaker</span><span class="p">,</span> <span class="nb">str</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.GuidedLocalSearch" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.GuidedLocalSearch">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GuidedLocalSearch</span><span class="signature">(self, *args) -> 'operations_research::SearchMonitor *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GuidedLocalSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SearchMonitor *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_GuidedLocalSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Solver.SumObjectiveFilter" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Solver.SumObjectiveFilter">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SumObjectiveFilter</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &',
|
|
values: 'operations_research::Solver::IndexEvaluator2',
|
|
filter_enum: 'operations_research::Solver::LocalSearchFilterBound'
|
|
) -> 'operations_research::LocalSearchFilter *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SumObjectiveFilter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">,</span> <span class="n">filter_enum</span><span class="p">:</span> <span class="s2">"operations_research::Solver::LocalSearchFilterBound"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalSearchFilter *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_SumObjectiveFilter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">filter_enum</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="Solver_DefaultSolverParameters">
|
|
<div class="attr function"><a class="headerlink" href="#Solver_DefaultSolverParameters">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Solver_DefaultSolverParameters</span><span class="signature">() -> 'operations_research::ConstraintSolverParameters'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">Solver_DefaultSolverParameters</span><span class="p">()</span> <span class="o">-></span> <span class="s2">"operations_research::ConstraintSolverParameters"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Create a ConstraintSolverParameters proto with all the default values."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_DefaultSolverParameters</span><span class="p">()</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Create a ConstraintSolverParameters proto with all the default values.</p>
|
|
</div>
|
|
|
|
|
|
</section>
|
|
<section id="Solver_MemoryUsage">
|
|
<div class="attr function"><a class="headerlink" href="#Solver_MemoryUsage">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Solver_MemoryUsage</span><span class="signature">() -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">Solver_MemoryUsage</span><span class="p">()</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Current memory usage in bytes"""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Solver_MemoryUsage</span><span class="p">()</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Current memory usage in bytes</p>
|
|
</div>
|
|
|
|
|
|
</section>
|
|
<section id="BaseObject">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#BaseObject">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">BaseObject</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">BaseObject</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> A BaseObject is the root of all reversibly allocated objects.</span>
|
|
<span class="sd"> A DebugString method and the associated << operator are implemented</span>
|
|
<span class="sd"> as a convenience.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">BaseObject</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseObject_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_BaseObject</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_BaseObject</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseObject_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseObject___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseObject___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_BaseObject</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>A BaseObject is the root of all reversibly allocated objects.
|
|
A DebugString method and the associated << operator are implemented
|
|
as a convenience.</p>
|
|
</div>
|
|
|
|
|
|
<div id="BaseObject.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BaseObject.__init__">#  </a>
|
|
|
|
|
|
<span class="name">BaseObject</span><span class="signature">()</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">BaseObject</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseObject_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_BaseObject</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="BaseObject.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#BaseObject.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="BaseObject.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BaseObject.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseObject_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="PropagationBaseObject">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#PropagationBaseObject">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">PropagationBaseObject</span><wbr>(<span class="base"><a href="#BaseObject">BaseObject</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">PropagationBaseObject</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> NOLINT</span>
|
|
<span class="sd"> The PropagationBaseObject is a subclass of BaseObject that is also</span>
|
|
<span class="sd"> friend to the Solver class. It allows accessing methods useful when</span>
|
|
<span class="sd"> writing new constraints or new expressions.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">PropagationBaseObject</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PropagationBaseObject_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_PropagationBaseObject</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="n">s</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_PropagationBaseObject</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PropagationBaseObject_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Solver *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PropagationBaseObject_solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Object naming."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PropagationBaseObject_Name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_PropagationBaseObject</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>NOLINT
|
|
The PropagationBaseObject is a subclass of BaseObject that is also
|
|
friend to the Solver class. It allows accessing methods useful when
|
|
writing new constraints or new expressions.</p>
|
|
</div>
|
|
|
|
|
|
<div id="PropagationBaseObject.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PropagationBaseObject.__init__">#  </a>
|
|
|
|
|
|
<span class="name">PropagationBaseObject</span><span class="signature">(s: <a href="#Solver">pywrapcp.Solver</a>)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">PropagationBaseObject</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PropagationBaseObject_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_PropagationBaseObject</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="n">s</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="PropagationBaseObject.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#PropagationBaseObject.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="PropagationBaseObject.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PropagationBaseObject.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PropagationBaseObject_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="PropagationBaseObject.solver" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PropagationBaseObject.solver">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">solver</span><span class="signature">(self) -> 'operations_research::Solver *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Solver *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PropagationBaseObject_solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="PropagationBaseObject.Name" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PropagationBaseObject.Name">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Name</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Object naming."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PropagationBaseObject_Name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Object naming.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="Decision">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#Decision">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">Decision</span><wbr>(<span class="base"><a href="#BaseObject">BaseObject</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">Decision</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> A Decision represents a choice point in the search tree. The two main</span>
|
|
<span class="sd"> methods are Apply() to go left, or Refute() to go right.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">Decision</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_Decision</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_Decision</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ApplyWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Apply will be called first when the decision is executed."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision_ApplyWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RefuteWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Refute will be called after a backtrack."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision_RefuteWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_Decision</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>A Decision represents a choice point in the search tree. The two main
|
|
methods are Apply() to go left, or Refute() to go right.</p>
|
|
</div>
|
|
|
|
|
|
<div id="Decision.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Decision.__init__">#  </a>
|
|
|
|
|
|
<span class="name">Decision</span><span class="signature">()</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">Decision</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_Decision</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Decision.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Decision.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Decision.ApplyWrapper" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Decision.ApplyWrapper">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ApplyWrapper</span><span class="signature">(self, s: <a href="#Solver">pywrapcp.Solver</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ApplyWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Apply will be called first when the decision is executed."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision_ApplyWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Apply will be called first when the decision is executed.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Decision.RefuteWrapper" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Decision.RefuteWrapper">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RefuteWrapper</span><span class="signature">(self, s: <a href="#Solver">pywrapcp.Solver</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RefuteWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Refute will be called after a backtrack."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision_RefuteWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Refute will be called after a backtrack.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Decision.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Decision.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Decision_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="DecisionBuilder">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#DecisionBuilder">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">DecisionBuilder</span><wbr>(<span class="base"><a href="#BaseObject">BaseObject</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">DecisionBuilder</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> A DecisionBuilder is responsible for creating the search tree. The</span>
|
|
<span class="sd"> important method is Next(), which returns the next decision to execute.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">DecisionBuilder</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DecisionBuilder_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_DecisionBuilder</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_DecisionBuilder</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NextWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This is the main method of the decision builder class. It must</span>
|
|
<span class="sd"> return a decision (an instance of the class Decision). If it</span>
|
|
<span class="sd"> returns nullptr, this means that the decision builder has finished</span>
|
|
<span class="sd"> its work.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DecisionBuilder_NextWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DecisionBuilder_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DecisionBuilder___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DecisionBuilder___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_DecisionBuilder</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>A DecisionBuilder is responsible for creating the search tree. The
|
|
important method is Next(), which returns the next decision to execute.</p>
|
|
</div>
|
|
|
|
|
|
<div id="DecisionBuilder.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#DecisionBuilder.__init__">#  </a>
|
|
|
|
|
|
<span class="name">DecisionBuilder</span><span class="signature">()</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">DecisionBuilder</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DecisionBuilder_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_DecisionBuilder</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="DecisionBuilder.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DecisionBuilder.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="DecisionBuilder.NextWrapper" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#DecisionBuilder.NextWrapper">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NextWrapper</span><span class="signature">(self, s: <a href="#Solver">pywrapcp.Solver</a>) -> 'operations_research::Decision *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NextWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Decision *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This is the main method of the decision builder class. It must</span>
|
|
<span class="sd"> return a decision (an instance of the class Decision). If it</span>
|
|
<span class="sd"> returns nullptr, this means that the decision builder has finished</span>
|
|
<span class="sd"> its work.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DecisionBuilder_NextWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This is the main method of the decision builder class. It must
|
|
return a decision (an instance of the class Decision). If it
|
|
returns nullptr, this means that the decision builder has finished
|
|
its work.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="DecisionBuilder.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#DecisionBuilder.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DecisionBuilder_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="Demon">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#Demon">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">Demon</span><wbr>(<span class="base"><a href="#BaseObject">BaseObject</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">Demon</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> A Demon is the base element of a propagation queue. It is the main</span>
|
|
<span class="sd"> object responsible for implementing the actual propagation</span>
|
|
<span class="sd"> of the constraint and pruning the inconsistent values in the domains</span>
|
|
<span class="sd"> of the variables. The main concept is that demons are listeners that are</span>
|
|
<span class="sd"> attached to the variables and listen to their modifications.</span>
|
|
<span class="sd"> There are two methods:</span>
|
|
<span class="sd"> - Run() is the actual method called when the demon is processed.</span>
|
|
<span class="sd"> - priority() returns its priority. Standard priorities are slow, normal</span>
|
|
<span class="sd"> or fast. "immediate" is reserved for variables and is treated separately.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This indicates the priority of a demon. Immediate demons are treated</span>
|
|
<span class="sd"> separately and corresponds to variables.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">Demon</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_Demon</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_Demon</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RunWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is the main callback of the demon."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_RunWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Priority</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Solver::DemonPriority"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method returns the priority of the demon. Usually a demon is</span>
|
|
<span class="sd"> fast, slow or normal. Immediate demons are reserved for internal</span>
|
|
<span class="sd"> use to maintain variables.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_Priority</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Inhibit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method inhibits the demon in the search tree below the</span>
|
|
<span class="sd"> current position.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_Inhibit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Desinhibit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method un-inhibits the demon that was previously inhibited."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_Desinhibit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_Demon</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>A Demon is the base element of a propagation queue. It is the main
|
|
object responsible for implementing the actual propagation
|
|
of the constraint and pruning the inconsistent values in the domains
|
|
of the variables. The main concept is that demons are listeners that are
|
|
attached to the variables and listen to their modifications.</p>
|
|
|
|
<h6 id="there-are-two-methods">There are two methods</h6>
|
|
|
|
<blockquote>
|
|
<ul>
|
|
<li>Run() is the actual method called when the demon is processed.</li>
|
|
<li>priority() returns its priority. Standard priorities are slow, normal
|
|
or fast. "immediate" is reserved for variables and is treated separately.</li>
|
|
</ul>
|
|
</blockquote>
|
|
</div>
|
|
|
|
|
|
<div id="Demon.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Demon.__init__">#  </a>
|
|
|
|
|
|
<span class="name">Demon</span><span class="signature">()</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This indicates the priority of a demon. Immediate demons are treated</span>
|
|
<span class="sd"> separately and corresponds to variables.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">Demon</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_Demon</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This indicates the priority of a demon. Immediate demons are treated
|
|
separately and corresponds to variables.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Demon.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Demon.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Demon.RunWrapper" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Demon.RunWrapper">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RunWrapper</span><span class="signature">(self, s: <a href="#Solver">pywrapcp.Solver</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RunWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is the main callback of the demon."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_RunWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This is the main callback of the demon.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Demon.Priority" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Demon.Priority">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Priority</span><span class="signature">(self) -> 'operations_research::Solver::DemonPriority'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Priority</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Solver::DemonPriority"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method returns the priority of the demon. Usually a demon is</span>
|
|
<span class="sd"> fast, slow or normal. Immediate demons are reserved for internal</span>
|
|
<span class="sd"> use to maintain variables.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_Priority</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method returns the priority of the demon. Usually a demon is
|
|
fast, slow or normal. Immediate demons are reserved for internal
|
|
use to maintain variables.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Demon.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Demon.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Demon.Inhibit" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Demon.Inhibit">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Inhibit</span><span class="signature">(self, s: <a href="#Solver">pywrapcp.Solver</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Inhibit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method inhibits the demon in the search tree below the</span>
|
|
<span class="sd"> current position.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_Inhibit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method inhibits the demon in the search tree below the
|
|
current position.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Demon.Desinhibit" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Demon.Desinhibit">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Desinhibit</span><span class="signature">(self, s: <a href="#Solver">pywrapcp.Solver</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Desinhibit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method un-inhibits the demon that was previously inhibited."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Demon_Desinhibit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method un-inhibits the demon that was previously inhibited.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="Constraint">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#Constraint">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">Constraint</span><wbr>(<span class="base"><a href="#PropagationBaseObject">PropagationBaseObject</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">Constraint</span><span class="p">(</span><span class="n">PropagationBaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> A constraint is the main modeling object. It provides two methods:</span>
|
|
<span class="sd"> - Post() is responsible for creating the demons and attaching them to</span>
|
|
<span class="sd"> immediate demons().</span>
|
|
<span class="sd"> - InitialPropagate() is called once just after Post and performs</span>
|
|
<span class="sd"> the initial propagation. The subsequent propagations will be performed</span>
|
|
<span class="sd"> by the demons Posted during the post() method.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">Constraint</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_Constraint</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="n">solver</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_Constraint</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is called when the constraint is processed by the</span>
|
|
<span class="sd"> solver. Its main usage is to attach demons to variables.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method performs the initial propagation of the</span>
|
|
<span class="sd"> constraint. It is called just after the post.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a Boolean variable representing the status of the constraint</span>
|
|
<span class="sd"> (false = constraint is violated, true = constraint is satisfied). It</span>
|
|
<span class="sd"> returns nullptr if the constraint does not support this API.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__abs__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___abs__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Square</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_Square</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint___lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MapTo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_MapTo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IndexOf</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_IndexOf</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_Constraint</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>A constraint is the main modeling object. It provides two methods:</p>
|
|
|
|
<ul>
|
|
<li>Post() is responsible for creating the demons and attaching them to
|
|
immediate demons().</li>
|
|
<li>InitialPropagate() is called once just after Post and performs
|
|
the initial propagation. The subsequent propagations will be performed
|
|
by the demons Posted during the post() method.</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<div id="Constraint.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Constraint.__init__">#  </a>
|
|
|
|
|
|
<span class="name">Constraint</span><span class="signature">(solver: <a href="#Solver">pywrapcp.Solver</a>)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">Constraint</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_Constraint</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="n">solver</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Constraint.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Constraint.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Constraint.Post" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Constraint.Post">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Post</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is called when the constraint is processed by the</span>
|
|
<span class="sd"> solver. Its main usage is to attach demons to variables.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method is called when the constraint is processed by the
|
|
solver. Its main usage is to attach demons to variables.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Constraint.InitialPropagateWrapper" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Constraint.InitialPropagateWrapper">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">InitialPropagateWrapper</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method performs the initial propagation of the</span>
|
|
<span class="sd"> constraint. It is called just after the post.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method performs the initial propagation of the
|
|
constraint. It is called just after the post.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Constraint.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Constraint.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Constraint.Var" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Constraint.Var">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Var</span><span class="signature">(self) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a Boolean variable representing the status of the constraint</span>
|
|
<span class="sd"> (false = constraint is violated, true = constraint is satisfied). It</span>
|
|
<span class="sd"> returns nullptr if the constraint does not support this API.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a Boolean variable representing the status of the constraint
|
|
(false = constraint is violated, true = constraint is satisfied). It
|
|
returns nullptr if the constraint does not support this API.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Constraint.Square" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Constraint.Square">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Square</span><span class="signature">(self) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Square</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_Square</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Constraint.MapTo" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Constraint.MapTo">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MapTo</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MapTo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_MapTo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Constraint.IndexOf" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Constraint.IndexOf">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IndexOf</span><span class="signature">(self, *args) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IndexOf</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Constraint_IndexOf</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#PropagationBaseObject">PropagationBaseObject</a></dt>
|
|
<dd id="Constraint.solver" class="function"><a href="#PropagationBaseObject.solver">solver</a></dd>
|
|
<dd id="Constraint.Name" class="function"><a href="#PropagationBaseObject.Name">Name</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="SearchMonitor">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#SearchMonitor">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">SearchMonitor</span><wbr>(<span class="base"><a href="#BaseObject">BaseObject</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">SearchMonitor</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" A search monitor is a simple set of callbacks to monitor all search events"""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">SearchMonitor</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_SearchMonitor</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="n">s</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_SearchMonitor</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Beginning of the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RestartSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Restart the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_RestartSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ExitSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" End of the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_ExitSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Before calling DecisionBuilder::Next."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" After calling DecisionBuilder::Next, along with the returned decision."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_EndNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ApplyDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Before applying the decision."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_ApplyDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Before refuting the decision."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AfterDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">,</span> <span class="n">apply</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Just after refuting or applying the decision, apply is true after Apply.</span>
|
|
<span class="sd"> This is called only if the Apply() or Refute() methods have not failed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_AfterDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">,</span> <span class="n">apply</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BeginFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Just when the failure occurs."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_BeginFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" After completing the backtrack."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_EndFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BeginInitialPropagation</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Before the initial propagation."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_BeginInitialPropagation</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndInitialPropagation</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" After the initial propagation."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_EndInitialPropagation</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AcceptSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is called when a solution is found. It asserts whether the</span>
|
|
<span class="sd"> solution is valid. A value of false indicates that the solution</span>
|
|
<span class="sd"> should be discarded.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_AcceptSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AtSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is called when a valid solution is found. If the</span>
|
|
<span class="sd"> return value is true, then search will resume after. If the result</span>
|
|
<span class="sd"> is false, then search will stop there.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_AtSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NoMoreSolutions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" When the search tree is finished."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_NoMoreSolutions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">LocalOptimum</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> When a local optimum is reached. If 'true' is returned, the last solution</span>
|
|
<span class="sd"> is discarded and the search proceeds with the next one.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_LocalOptimum</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AcceptDelta</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_AcceptDelta</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AcceptNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" After accepting a neighbor during local search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_AcceptNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Solver *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_SearchMonitor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>A search monitor is a simple set of callbacks to monitor all search events</p>
|
|
</div>
|
|
|
|
|
|
<div id="SearchMonitor.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.__init__">#  </a>
|
|
|
|
|
|
<span class="name">SearchMonitor</span><span class="signature">(s: <a href="#Solver">pywrapcp.Solver</a>)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">SearchMonitor</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_SearchMonitor</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="n">s</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#SearchMonitor.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.EnterSearch" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.EnterSearch">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EnterSearch</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Beginning of the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Beginning of the search.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.RestartSearch" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.RestartSearch">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RestartSearch</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RestartSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Restart the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_RestartSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Restart the search.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.ExitSearch" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.ExitSearch">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ExitSearch</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ExitSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" End of the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_ExitSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>End of the search.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.BeginNextDecision" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.BeginNextDecision">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">BeginNextDecision</span><span class="signature">(self, b: <a href="#DecisionBuilder">pywrapcp.DecisionBuilder</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Before calling DecisionBuilder::Next."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Before calling DecisionBuilder::Next.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.EndNextDecision" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.EndNextDecision">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndNextDecision</span><span class="signature">(self, b: <a href="#DecisionBuilder">pywrapcp.DecisionBuilder</a>, d: <a href="#Decision">pywrapcp.Decision</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" After calling DecisionBuilder::Next, along with the returned decision."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_EndNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>After calling DecisionBuilder::Next, along with the returned decision.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.ApplyDecision" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.ApplyDecision">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ApplyDecision</span><span class="signature">(self, d: <a href="#Decision">pywrapcp.Decision</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ApplyDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Before applying the decision."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_ApplyDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Before applying the decision.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.RefuteDecision" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.RefuteDecision">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RefuteDecision</span><span class="signature">(self, d: <a href="#Decision">pywrapcp.Decision</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Before refuting the decision."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Before refuting the decision.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.AfterDecision" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.AfterDecision">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AfterDecision</span><span class="signature">(self, d: <a href="#Decision">pywrapcp.Decision</a>, apply: bool) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AfterDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">,</span> <span class="n">apply</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Just after refuting or applying the decision, apply is true after Apply.</span>
|
|
<span class="sd"> This is called only if the Apply() or Refute() methods have not failed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_AfterDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">,</span> <span class="n">apply</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Just after refuting or applying the decision, apply is true after Apply.
|
|
This is called only if the Apply() or Refute() methods have not failed.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.BeginFail" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.BeginFail">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">BeginFail</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">BeginFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Just when the failure occurs."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_BeginFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Just when the failure occurs.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.EndFail" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.EndFail">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndFail</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" After completing the backtrack."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_EndFail</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>After completing the backtrack.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.BeginInitialPropagation" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.BeginInitialPropagation">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">BeginInitialPropagation</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">BeginInitialPropagation</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Before the initial propagation."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_BeginInitialPropagation</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Before the initial propagation.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.EndInitialPropagation" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.EndInitialPropagation">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndInitialPropagation</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndInitialPropagation</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" After the initial propagation."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_EndInitialPropagation</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>After the initial propagation.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.AcceptSolution" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.AcceptSolution">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AcceptSolution</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AcceptSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is called when a solution is found. It asserts whether the</span>
|
|
<span class="sd"> solution is valid. A value of false indicates that the solution</span>
|
|
<span class="sd"> should be discarded.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_AcceptSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method is called when a solution is found. It asserts whether the
|
|
solution is valid. A value of false indicates that the solution
|
|
should be discarded.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.AtSolution" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.AtSolution">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AtSolution</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AtSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is called when a valid solution is found. If the</span>
|
|
<span class="sd"> return value is true, then search will resume after. If the result</span>
|
|
<span class="sd"> is false, then search will stop there.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_AtSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method is called when a valid solution is found. If the
|
|
return value is true, then search will resume after. If the result
|
|
is false, then search will stop there.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.NoMoreSolutions" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.NoMoreSolutions">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NoMoreSolutions</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NoMoreSolutions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" When the search tree is finished."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_NoMoreSolutions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>When the search tree is finished.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.LocalOptimum" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.LocalOptimum">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">LocalOptimum</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">LocalOptimum</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> When a local optimum is reached. If 'true' is returned, the last solution</span>
|
|
<span class="sd"> is discarded and the search proceeds with the next one.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_LocalOptimum</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>When a local optimum is reached. If 'true' is returned, the last solution
|
|
is discarded and the search proceeds with the next one.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.AcceptDelta" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.AcceptDelta">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AcceptDelta</span><span class="signature">(
|
|
self,
|
|
delta: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
deltadelta: <a href="#Assignment">pywrapcp.Assignment</a>
|
|
) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AcceptDelta</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_AcceptDelta</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.AcceptNeighbor" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.AcceptNeighbor">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AcceptNeighbor</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AcceptNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" After accepting a neighbor during local search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_AcceptNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>After accepting a neighbor during local search.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchMonitor.solver" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchMonitor.solver">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">solver</span><span class="signature">(self) -> 'operations_research::Solver *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Solver *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchMonitor_solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#BaseObject">BaseObject</a></dt>
|
|
<dd id="SearchMonitor.DebugString" class="function"><a href="#BaseObject.DebugString">DebugString</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="IntExpr">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#IntExpr">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">IntExpr</span><wbr>(<span class="base"><a href="#PropagationBaseObject">PropagationBaseObject</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">IntExpr</span><span class="p">(</span><span class="n">PropagationBaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The class IntExpr is the base of all integer expressions in</span>
|
|
<span class="sd"> constraint programming.</span>
|
|
<span class="sd"> It contains the basic protocol for an expression:</span>
|
|
<span class="sd"> - setting and modifying its bound</span>
|
|
<span class="sd"> - querying if it is bound</span>
|
|
<span class="sd"> - listening to events modifying its bounds</span>
|
|
<span class="sd"> - casting it into a variable (instance of IntVar)</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method sets both the min and the max of the expression."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method sets the value of the expression."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if the min and the max of the expression are equal."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if the expression is indeed a variable."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_IsVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a variable from the expression."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VarWithName</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a variable from the expression and set the name of the</span>
|
|
<span class="sd"> resulting var. If the expression is already a variable, then it</span>
|
|
<span class="sd"> will set the name of the expression, possibly overwriting it.</span>
|
|
<span class="sd"> This is just a shortcut to Var() followed by set_name().</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_VarWithName</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Attach a demon that will watch the min or the max of the expression.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Attach a demon that will watch the min or the max of the expression.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_WhenRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___add__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___radd__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___sub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___rsub__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___mul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___rmul__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___floordiv__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__mod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___mod__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___neg__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__abs__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___abs__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Square</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Square</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___ge__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___gt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___le__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr___lt__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MapTo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_MapTo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IndexOf</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_IndexOf</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsMember</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_IsMember</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Member</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Member</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NotMember</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">starts</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">,</span> <span class="n">ends</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_NotMember</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">starts</span><span class="p">,</span> <span class="n">ends</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>The class IntExpr is the base of all integer expressions in
|
|
constraint programming.</p>
|
|
|
|
<h6 id="it-contains-the-basic-protocol-for-an-expression">It contains the basic protocol for an expression</h6>
|
|
|
|
<blockquote>
|
|
<ul>
|
|
<li>setting and modifying its bound</li>
|
|
<li>querying if it is bound</li>
|
|
<li>listening to events modifying its bounds</li>
|
|
<li>casting it into a variable (instance of IntVar)</li>
|
|
</ul>
|
|
</blockquote>
|
|
</div>
|
|
|
|
|
|
<div id="IntExpr.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.__init__">#  </a>
|
|
|
|
|
|
<span class="name">IntExpr</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#IntExpr.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.Min" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.Min">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Min</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.SetMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.SetMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetMin</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.Max" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.Max">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Max</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.SetMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.SetMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetMax</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.SetRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.SetRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetRange</span><span class="signature">(self, l: 'int64_t', u: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method sets both the min and the max of the expression."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method sets both the min and the max of the expression.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.SetValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.SetValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetValue</span><span class="signature">(self, v: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method sets the value of the expression."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method sets the value of the expression.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.Bound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.Bound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Bound</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if the min and the max of the expression are equal."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true if the min and the max of the expression are equal.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.IsVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.IsVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsVar</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if the expression is indeed a variable."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_IsVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true if the expression is indeed a variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.Var" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.Var">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Var</span><span class="signature">(self) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a variable from the expression."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a variable from the expression.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.VarWithName" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.VarWithName">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">VarWithName</span><span class="signature">(self, name: 'std::string const &') -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">VarWithName</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a variable from the expression and set the name of the</span>
|
|
<span class="sd"> resulting var. If the expression is already a variable, then it</span>
|
|
<span class="sd"> will set the name of the expression, possibly overwriting it.</span>
|
|
<span class="sd"> This is just a shortcut to Var() followed by set_name().</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_VarWithName</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a variable from the expression and set the name of the
|
|
resulting var. If the expression is already a variable, then it
|
|
will set the name of the expression, possibly overwriting it.
|
|
This is just a shortcut to Var() followed by set_name().</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.WhenRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.WhenRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WhenRange</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WhenRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Attach a demon that will watch the min or the max of the expression.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Attach a demon that will watch the min or the max of the expression.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_WhenRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Attach a demon that will watch the min or the max of the expression.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Attach a demon that will watch the min or the max of the expression.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.Square" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.Square">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Square</span><span class="signature">(self) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Square</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Square</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.MapTo" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.MapTo">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MapTo</span><span class="signature">(
|
|
self,
|
|
vars: 'std::vector< operations_research::IntVar * > const &'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MapTo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_MapTo</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.IndexOf" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.IndexOf">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IndexOf</span><span class="signature">(self, *args) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IndexOf</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_IndexOf</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.IsMember" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.IsMember">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsMember</span><span class="signature">(
|
|
self,
|
|
values: 'std::vector< int64_t > const &'
|
|
) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsMember</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_IsMember</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.Member" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.Member">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Member</span><span class="signature">(
|
|
self,
|
|
values: 'std::vector< int64_t > const &'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Member</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_Member</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntExpr.NotMember" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntExpr.NotMember">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NotMember</span><span class="signature">(
|
|
self,
|
|
starts: 'std::vector< int64_t > const &',
|
|
ends: 'std::vector< int64_t > const &'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NotMember</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">starts</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">,</span> <span class="n">ends</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntExpr_NotMember</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">starts</span><span class="p">,</span> <span class="n">ends</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#PropagationBaseObject">PropagationBaseObject</a></dt>
|
|
<dd id="IntExpr.DebugString" class="function"><a href="#PropagationBaseObject.DebugString">DebugString</a></dd>
|
|
<dd id="IntExpr.solver" class="function"><a href="#PropagationBaseObject.solver">solver</a></dd>
|
|
<dd id="IntExpr.Name" class="function"><a href="#PropagationBaseObject.Name">Name</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="IntVarIterator">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#IntVarIterator">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">IntVarIterator</span><wbr>(<span class="base"><a href="#BaseObject">BaseObject</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">IntVarIterator</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The class Iterator has two direct subclasses. HoleIterators</span>
|
|
<span class="sd"> iterates over all holes, that is value removed between the</span>
|
|
<span class="sd"> current min and max of the variable since the last time the</span>
|
|
<span class="sd"> variable was processed in the queue. DomainIterators iterates</span>
|
|
<span class="sd"> over all elements of the variable domain. Both iterators are not</span>
|
|
<span class="sd"> robust to domain changes. Hole iterators can also report values outside</span>
|
|
<span class="sd"> the current min and max of the variable.</span>
|
|
<span class="sd"> HoleIterators should only be called from a demon attached to the</span>
|
|
<span class="sd"> variable that has created this iterator.</span>
|
|
<span class="sd"> IntVar* current_var;</span>
|
|
<span class="sd"> std::unique_ptr<IntVarIterator> it(current_var->MakeHoleIterator(false));</span>
|
|
<span class="sd"> for (const int64_t hole : InitAndGetValues(it)) {</span>
|
|
<span class="sd"> use the hole</span>
|
|
<span class="sd"> }</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Init</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method must be called before each loop."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_Init</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Ok</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method indicates if we can call Value() or not."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_Ok</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method returns the current value of the iterator."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Next</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method moves the iterator to the next value."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_Next</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Pretty Print."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__iter__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">Init</span><span class="p">()</span>
|
|
<span class="k">return</span> <span class="bp">self</span>
|
|
|
|
<span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">Ok</span><span class="p">():</span>
|
|
<span class="n">result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Value</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">Next</span><span class="p">()</span>
|
|
<span class="k">return</span> <span class="n">result</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">StopIteration</span><span class="p">()</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__next__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">next</span><span class="p">()</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>The class Iterator has two direct subclasses. HoleIterators
|
|
iterates over all holes, that is value removed between the
|
|
current min and max of the variable since the last time the
|
|
variable was processed in the queue. DomainIterators iterates
|
|
over all elements of the variable domain. Both iterators are not
|
|
robust to domain changes. Hole iterators can also report values outside
|
|
the current min and max of the variable.
|
|
HoleIterators should only be called from a demon attached to the
|
|
variable that has created this iterator.
|
|
IntVar* current_var;
|
|
std::unique_ptr<IntVarIterator> it(current_var->MakeHoleIterator(false));
|
|
for (const int64_t hole : InitAndGetValues(it)) {
|
|
use the hole
|
|
}</p>
|
|
</div>
|
|
|
|
|
|
<div id="IntVarIterator.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarIterator.__init__">#  </a>
|
|
|
|
|
|
<span class="name">IntVarIterator</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarIterator.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#IntVarIterator.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVarIterator.Init" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarIterator.Init">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Init</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Init</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method must be called before each loop."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_Init</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method must be called before each loop.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVarIterator.Ok" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarIterator.Ok">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Ok</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Ok</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method indicates if we can call Value() or not."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_Ok</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method indicates if we can call Value() or not.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVarIterator.Value" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarIterator.Value">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Value</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method returns the current value of the iterator."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method returns the current value of the iterator.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVarIterator.Next" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarIterator.Next">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Next</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Next</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method moves the iterator to the next value."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_Next</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method moves the iterator to the next value.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVarIterator.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarIterator.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Pretty Print."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarIterator_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Pretty Print.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVarIterator.next" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarIterator.next">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">next</span><span class="signature">(self)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">next</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">Ok</span><span class="p">():</span>
|
|
<span class="n">result</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">Value</span><span class="p">()</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">Next</span><span class="p">()</span>
|
|
<span class="k">return</span> <span class="n">result</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span> <span class="ne">StopIteration</span><span class="p">()</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="IntVar">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#IntVar">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">IntVar</span><wbr>(<span class="base"><a href="#IntExpr">IntExpr</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">IntVar</span><span class="p">(</span><span class="n">IntExpr</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The class IntVar is a subset of IntExpr. In addition to the</span>
|
|
<span class="sd"> IntExpr protocol, it offers persistence, removing values from the domains,</span>
|
|
<span class="sd"> and a finer model for events.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_IsVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method returns the value of the variable. This method checks</span>
|
|
<span class="sd"> before that the variable is bound.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RemoveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method removes the value 'v' from the domain of the variable."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_RemoveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RemoveInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method removes the interval 'l' .. 'u' from the domain of</span>
|
|
<span class="sd"> the variable. It assumes that 'l' <= 'u'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_RemoveInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RemoveValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method remove the values from the domain of the variable."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_RemoveValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method intersects the current domain with the values in the array."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_SetValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This method attaches a demon that will be awakened when the</span>
|
|
<span class="sd"> variable is bound.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This method attaches a closure that will be awakened when the</span>
|
|
<span class="sd"> variable is bound.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_WhenBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This method attaches a demon that will watch any domain</span>
|
|
<span class="sd"> modification of the domain of the variable.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This method attaches a closure that will watch any domain</span>
|
|
<span class="sd"> modification of the domain of the variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_WhenDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"uint64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method returns the number of values in the domain of the variable."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method returns whether the value 'v' is in the domain of the</span>
|
|
<span class="sd"> variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HoleIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVarIterator *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a hole iterator. When 'reversible' is false, the returned</span>
|
|
<span class="sd"> object is created on the normal C++ heap and the solver does NOT</span>
|
|
<span class="sd"> take ownership of the object.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_HoleIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DomainIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVarIterator *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a domain iterator. When 'reversible' is false, the</span>
|
|
<span class="sd"> returned object is created on the normal C++ heap and the solver</span>
|
|
<span class="sd"> does NOT take ownership of the object.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_DomainIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the previous min."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_OldMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the previous max."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_OldMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DomainIterator</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="nb">iter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">DomainIteratorAux</span><span class="p">(</span><span class="kc">False</span><span class="p">))</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HoleIterator</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="nb">iter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">HoleIteratorAux</span><span class="p">(</span><span class="kc">False</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>The class IntVar is a subset of IntExpr. In addition to the
|
|
IntExpr protocol, it offers persistence, removing values from the domains,
|
|
and a finer model for events.</p>
|
|
</div>
|
|
|
|
|
|
<div id="IntVar.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.__init__">#  </a>
|
|
|
|
|
|
<span class="name">IntVar</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#IntVar.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.IsVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.IsVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsVar</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_IsVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true if the expression is indeed a variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.Var" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.Var">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Var</span><span class="signature">(self) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a variable from the expression.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.Value" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.Value">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Value</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method returns the value of the variable. This method checks</span>
|
|
<span class="sd"> before that the variable is bound.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method returns the value of the variable. This method checks
|
|
before that the variable is bound.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.RemoveValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.RemoveValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RemoveValue</span><span class="signature">(self, v: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RemoveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method removes the value 'v' from the domain of the variable."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_RemoveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method removes the value 'v' from the domain of the variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.RemoveInterval" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.RemoveInterval">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RemoveInterval</span><span class="signature">(self, l: 'int64_t', u: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RemoveInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method removes the interval 'l' .. 'u' from the domain of</span>
|
|
<span class="sd"> the variable. It assumes that 'l' <= 'u'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_RemoveInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method removes the interval 'l' .. 'u' from the domain of
|
|
the variable. It assumes that 'l' <= 'u'.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.RemoveValues" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.RemoveValues">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RemoveValues</span><span class="signature">(self, values: 'std::vector< int64_t > const &') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RemoveValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method remove the values from the domain of the variable."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_RemoveValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method remove the values from the domain of the variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.SetValues" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.SetValues">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetValues</span><span class="signature">(self, values: 'std::vector< int64_t > const &') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method intersects the current domain with the values in the array."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_SetValues</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method intersects the current domain with the values in the array.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.WhenBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.WhenBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WhenBound</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WhenBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This method attaches a demon that will be awakened when the</span>
|
|
<span class="sd"> variable is bound.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This method attaches a closure that will be awakened when the</span>
|
|
<span class="sd"> variable is bound.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_WhenBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
This method attaches a demon that will be awakened when the
|
|
variable is bound.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
This method attaches a closure that will be awakened when the
|
|
variable is bound.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.WhenDomain" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.WhenDomain">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WhenDomain</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WhenDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This method attaches a demon that will watch any domain</span>
|
|
<span class="sd"> modification of the domain of the variable.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This method attaches a closure that will watch any domain</span>
|
|
<span class="sd"> modification of the domain of the variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_WhenDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
This method attaches a demon that will watch any domain
|
|
modification of the domain of the variable.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
This method attaches a closure that will watch any domain
|
|
modification of the domain of the variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.Size" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.Size">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Size</span><span class="signature">(self) -> 'uint64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"uint64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method returns the number of values in the domain of the variable."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method returns the number of values in the domain of the variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.Contains" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.Contains">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Contains</span><span class="signature">(self, v: 'int64_t') -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method returns whether the value 'v' is in the domain of the</span>
|
|
<span class="sd"> variable.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method returns whether the value 'v' is in the domain of the
|
|
variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.HoleIteratorAux" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.HoleIteratorAux">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">HoleIteratorAux</span><span class="signature">(self, reversible: bool) -> 'operations_research::IntVarIterator *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">HoleIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVarIterator *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a hole iterator. When 'reversible' is false, the returned</span>
|
|
<span class="sd"> object is created on the normal C++ heap and the solver does NOT</span>
|
|
<span class="sd"> take ownership of the object.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_HoleIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a hole iterator. When 'reversible' is false, the returned
|
|
object is created on the normal C++ heap and the solver does NOT
|
|
take ownership of the object.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.DomainIteratorAux" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.DomainIteratorAux">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DomainIteratorAux</span><span class="signature">(self, reversible: bool) -> 'operations_research::IntVarIterator *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DomainIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVarIterator *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a domain iterator. When 'reversible' is false, the</span>
|
|
<span class="sd"> returned object is created on the normal C++ heap and the solver</span>
|
|
<span class="sd"> does NOT take ownership of the object.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_DomainIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a domain iterator. When 'reversible' is false, the
|
|
returned object is created on the normal C++ heap and the solver
|
|
does NOT take ownership of the object.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.OldMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.OldMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">OldMin</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">OldMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the previous min."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_OldMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the previous min.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.OldMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.OldMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">OldMax</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">OldMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the previous max."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVar_OldMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the previous max.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.DomainIterator" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.DomainIterator">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DomainIterator</span><span class="signature">(self)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DomainIterator</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="nb">iter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">DomainIteratorAux</span><span class="p">(</span><span class="kc">False</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVar.HoleIterator" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVar.HoleIterator">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">HoleIterator</span><span class="signature">(self)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">HoleIterator</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="nb">iter</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">HoleIteratorAux</span><span class="p">(</span><span class="kc">False</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#IntExpr">IntExpr</a></dt>
|
|
<dd id="IntVar.Min" class="function"><a href="#IntExpr.Min">Min</a></dd>
|
|
<dd id="IntVar.SetMin" class="function"><a href="#IntExpr.SetMin">SetMin</a></dd>
|
|
<dd id="IntVar.Max" class="function"><a href="#IntExpr.Max">Max</a></dd>
|
|
<dd id="IntVar.SetMax" class="function"><a href="#IntExpr.SetMax">SetMax</a></dd>
|
|
<dd id="IntVar.SetRange" class="function"><a href="#IntExpr.SetRange">SetRange</a></dd>
|
|
<dd id="IntVar.SetValue" class="function"><a href="#IntExpr.SetValue">SetValue</a></dd>
|
|
<dd id="IntVar.Bound" class="function"><a href="#IntExpr.Bound">Bound</a></dd>
|
|
<dd id="IntVar.VarWithName" class="function"><a href="#IntExpr.VarWithName">VarWithName</a></dd>
|
|
<dd id="IntVar.WhenRange" class="function"><a href="#IntExpr.WhenRange">WhenRange</a></dd>
|
|
<dd id="IntVar.Square" class="function"><a href="#IntExpr.Square">Square</a></dd>
|
|
<dd id="IntVar.MapTo" class="function"><a href="#IntExpr.MapTo">MapTo</a></dd>
|
|
<dd id="IntVar.IndexOf" class="function"><a href="#IntExpr.IndexOf">IndexOf</a></dd>
|
|
<dd id="IntVar.IsMember" class="function"><a href="#IntExpr.IsMember">IsMember</a></dd>
|
|
<dd id="IntVar.Member" class="function"><a href="#IntExpr.Member">Member</a></dd>
|
|
<dd id="IntVar.NotMember" class="function"><a href="#IntExpr.NotMember">NotMember</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#PropagationBaseObject">PropagationBaseObject</a></dt>
|
|
<dd id="IntVar.DebugString" class="function"><a href="#PropagationBaseObject.DebugString">DebugString</a></dd>
|
|
<dd id="IntVar.solver" class="function"><a href="#PropagationBaseObject.solver">solver</a></dd>
|
|
<dd id="IntVar.Name" class="function"><a href="#PropagationBaseObject.Name">Name</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="SolutionCollector">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#SolutionCollector">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">SolutionCollector</span><wbr>(<span class="base"><a href="#SearchMonitor">SearchMonitor</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">SolutionCollector</span><span class="p">(</span><span class="n">SearchMonitor</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This class is the root class of all solution collectors.</span>
|
|
<span class="sd"> It implements a basic query API to be used independently</span>
|
|
<span class="sd"> of the collector used.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">objective</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_AddObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">objective</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Beginning of the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolutionCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns how many solutions were stored during the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_SolutionCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Solution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Solution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WallTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the wall time in ms for the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_WallTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Branches</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of branches when the nth solution was found."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Branches</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Failures</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the number of failures encountered at the time of the nth</span>
|
|
<span class="sd"> solution.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Failures</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the objective value of the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_ObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is a shortcut to get the Value of 'var' in the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is a shortcut to get the StartValue of 'var' in the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is a shortcut to get the EndValue of 'var' in the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is a shortcut to get the DurationValue of 'var' in the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is a shortcut to get the PerformedValue of 'var' in the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This is a shortcut to get the ForwardSequence of 'var' in the</span>
|
|
<span class="sd"> nth solution. The forward sequence is the list of ranked interval</span>
|
|
<span class="sd"> variables starting from the start of the sequence.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This is a shortcut to get the BackwardSequence of 'var' in the</span>
|
|
<span class="sd"> nth solution. The backward sequence is the list of ranked interval</span>
|
|
<span class="sd"> variables starting from the end of the sequence.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This is a shortcut to get the list of unperformed of 'var' in the</span>
|
|
<span class="sd"> nth solution.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This class is the root class of all solution collectors.
|
|
It implements a basic query API to be used independently
|
|
of the collector used.</p>
|
|
</div>
|
|
|
|
|
|
<div id="SolutionCollector.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.__init__">#  </a>
|
|
|
|
|
|
<span class="name">SolutionCollector</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#SolutionCollector.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.Add" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.Add">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Add</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.AddObjective" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.AddObjective">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddObjective</span><span class="signature">(self, objective: <a href="#IntVar">pywrapcp.IntVar</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">objective</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_AddObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">objective</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.EnterSearch" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.EnterSearch">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EnterSearch</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Beginning of the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Beginning of the search.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.SolutionCount" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.SolutionCount">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SolutionCount</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SolutionCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns how many solutions were stored during the search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_SolutionCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns how many solutions were stored during the search.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.Solution" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.Solution">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Solution</span><span class="signature">(self, n: int) -> 'operations_research::Assignment *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Solution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Solution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the nth solution.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.WallTime" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.WallTime">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WallTime</span><span class="signature">(self, n: int) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WallTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the wall time in ms for the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_WallTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the wall time in ms for the nth solution.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.Branches" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.Branches">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Branches</span><span class="signature">(self, n: int) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Branches</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of branches when the nth solution was found."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Branches</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the number of branches when the nth solution was found.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.Failures" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.Failures">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Failures</span><span class="signature">(self, n: int) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Failures</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the number of failures encountered at the time of the nth</span>
|
|
<span class="sd"> solution.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Failures</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the number of failures encountered at the time of the nth
|
|
solution.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.ObjectiveValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.ObjectiveValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ObjectiveValue</span><span class="signature">(self, n: int) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the objective value of the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_ObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the objective value of the nth solution.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.Value" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.Value">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Value</span><span class="signature">(self, n: int, var: <a href="#IntVar">pywrapcp.IntVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is a shortcut to get the Value of 'var' in the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This is a shortcut to get the Value of 'var' in the nth solution.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.StartValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.StartValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartValue</span><span class="signature">(self, n: int, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is a shortcut to get the StartValue of 'var' in the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This is a shortcut to get the StartValue of 'var' in the nth solution.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.EndValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.EndValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndValue</span><span class="signature">(self, n: int, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is a shortcut to get the EndValue of 'var' in the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This is a shortcut to get the EndValue of 'var' in the nth solution.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.DurationValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.DurationValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DurationValue</span><span class="signature">(self, n: int, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is a shortcut to get the DurationValue of 'var' in the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This is a shortcut to get the DurationValue of 'var' in the nth solution.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.PerformedValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.PerformedValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">PerformedValue</span><span class="signature">(self, n: int, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This is a shortcut to get the PerformedValue of 'var' in the nth solution."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This is a shortcut to get the PerformedValue of 'var' in the nth solution.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.ForwardSequence" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.ForwardSequence">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ForwardSequence</span><span class="signature">(
|
|
self,
|
|
n: int,
|
|
var: <a href="#SequenceVar">pywrapcp.SequenceVar</a>
|
|
) -> 'std::vector< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This is a shortcut to get the ForwardSequence of 'var' in the</span>
|
|
<span class="sd"> nth solution. The forward sequence is the list of ranked interval</span>
|
|
<span class="sd"> variables starting from the start of the sequence.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This is a shortcut to get the ForwardSequence of 'var' in the
|
|
nth solution. The forward sequence is the list of ranked interval
|
|
variables starting from the start of the sequence.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.BackwardSequence" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.BackwardSequence">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">BackwardSequence</span><span class="signature">(
|
|
self,
|
|
n: int,
|
|
var: <a href="#SequenceVar">pywrapcp.SequenceVar</a>
|
|
) -> 'std::vector< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This is a shortcut to get the BackwardSequence of 'var' in the</span>
|
|
<span class="sd"> nth solution. The backward sequence is the list of ranked interval</span>
|
|
<span class="sd"> variables starting from the end of the sequence.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This is a shortcut to get the BackwardSequence of 'var' in the
|
|
nth solution. The backward sequence is the list of ranked interval
|
|
variables starting from the end of the sequence.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SolutionCollector.Unperformed" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SolutionCollector.Unperformed">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Unperformed</span><span class="signature">(
|
|
self,
|
|
n: int,
|
|
var: <a href="#SequenceVar">pywrapcp.SequenceVar</a>
|
|
) -> 'std::vector< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This is a shortcut to get the list of unperformed of 'var' in the</span>
|
|
<span class="sd"> nth solution.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolutionCollector_Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">n</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This is a shortcut to get the list of unperformed of 'var' in the
|
|
nth solution.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#SearchMonitor">SearchMonitor</a></dt>
|
|
<dd id="SolutionCollector.RestartSearch" class="function"><a href="#SearchMonitor.RestartSearch">RestartSearch</a></dd>
|
|
<dd id="SolutionCollector.ExitSearch" class="function"><a href="#SearchMonitor.ExitSearch">ExitSearch</a></dd>
|
|
<dd id="SolutionCollector.BeginNextDecision" class="function"><a href="#SearchMonitor.BeginNextDecision">BeginNextDecision</a></dd>
|
|
<dd id="SolutionCollector.EndNextDecision" class="function"><a href="#SearchMonitor.EndNextDecision">EndNextDecision</a></dd>
|
|
<dd id="SolutionCollector.ApplyDecision" class="function"><a href="#SearchMonitor.ApplyDecision">ApplyDecision</a></dd>
|
|
<dd id="SolutionCollector.RefuteDecision" class="function"><a href="#SearchMonitor.RefuteDecision">RefuteDecision</a></dd>
|
|
<dd id="SolutionCollector.AfterDecision" class="function"><a href="#SearchMonitor.AfterDecision">AfterDecision</a></dd>
|
|
<dd id="SolutionCollector.BeginFail" class="function"><a href="#SearchMonitor.BeginFail">BeginFail</a></dd>
|
|
<dd id="SolutionCollector.EndFail" class="function"><a href="#SearchMonitor.EndFail">EndFail</a></dd>
|
|
<dd id="SolutionCollector.BeginInitialPropagation" class="function"><a href="#SearchMonitor.BeginInitialPropagation">BeginInitialPropagation</a></dd>
|
|
<dd id="SolutionCollector.EndInitialPropagation" class="function"><a href="#SearchMonitor.EndInitialPropagation">EndInitialPropagation</a></dd>
|
|
<dd id="SolutionCollector.AcceptSolution" class="function"><a href="#SearchMonitor.AcceptSolution">AcceptSolution</a></dd>
|
|
<dd id="SolutionCollector.AtSolution" class="function"><a href="#SearchMonitor.AtSolution">AtSolution</a></dd>
|
|
<dd id="SolutionCollector.NoMoreSolutions" class="function"><a href="#SearchMonitor.NoMoreSolutions">NoMoreSolutions</a></dd>
|
|
<dd id="SolutionCollector.LocalOptimum" class="function"><a href="#SearchMonitor.LocalOptimum">LocalOptimum</a></dd>
|
|
<dd id="SolutionCollector.AcceptDelta" class="function"><a href="#SearchMonitor.AcceptDelta">AcceptDelta</a></dd>
|
|
<dd id="SolutionCollector.AcceptNeighbor" class="function"><a href="#SearchMonitor.AcceptNeighbor">AcceptNeighbor</a></dd>
|
|
<dd id="SolutionCollector.solver" class="function"><a href="#SearchMonitor.solver">solver</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="OptimizeVar">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#OptimizeVar">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">OptimizeVar</span><wbr>(<span class="base"><a href="#SearchMonitor">SearchMonitor</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">OptimizeVar</span><span class="p">(</span><span class="n">SearchMonitor</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This class encapsulates an objective. It requires the direction</span>
|
|
<span class="sd"> (minimize or maximize), the variable to optimize, and the</span>
|
|
<span class="sd"> improvement step.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Best</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the best value found during search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_Best</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the variable that is optimized."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AcceptDelta</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Internal methods."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_AcceptDelta</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">db</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">db</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AtSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_AtSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AcceptSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_AcceptSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This class encapsulates an objective. It requires the direction
|
|
(minimize or maximize), the variable to optimize, and the
|
|
improvement step.</p>
|
|
</div>
|
|
|
|
|
|
<div id="OptimizeVar.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#OptimizeVar.__init__">#  </a>
|
|
|
|
|
|
<span class="name">OptimizeVar</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="OptimizeVar.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#OptimizeVar.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="OptimizeVar.Best" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#OptimizeVar.Best">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Best</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Best</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the best value found during search."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_Best</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the best value found during search.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="OptimizeVar.Var" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#OptimizeVar.Var">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Var</span><span class="signature">(self) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the variable that is optimized."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the variable that is optimized.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="OptimizeVar.AcceptDelta" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#OptimizeVar.AcceptDelta">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AcceptDelta</span><span class="signature">(
|
|
self,
|
|
delta: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
deltadelta: <a href="#Assignment">pywrapcp.Assignment</a>
|
|
) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AcceptDelta</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Internal methods."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_AcceptDelta</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Internal methods.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="OptimizeVar.EnterSearch" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#OptimizeVar.EnterSearch">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EnterSearch</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Beginning of the search.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="OptimizeVar.BeginNextDecision" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#OptimizeVar.BeginNextDecision">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">BeginNextDecision</span><span class="signature">(self, db: <a href="#DecisionBuilder">pywrapcp.DecisionBuilder</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">db</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">db</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Before calling DecisionBuilder::Next.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="OptimizeVar.RefuteDecision" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#OptimizeVar.RefuteDecision">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RefuteDecision</span><span class="signature">(self, d: <a href="#Decision">pywrapcp.Decision</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Before refuting the decision.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="OptimizeVar.AtSolution" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#OptimizeVar.AtSolution">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AtSolution</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AtSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_AtSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method is called when a valid solution is found. If the
|
|
return value is true, then search will resume after. If the result
|
|
is false, then search will stop there.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="OptimizeVar.AcceptSolution" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#OptimizeVar.AcceptSolution">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AcceptSolution</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AcceptSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_AcceptSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method is called when a solution is found. It asserts whether the
|
|
solution is valid. A value of false indicates that the solution
|
|
should be discarded.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="OptimizeVar.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#OptimizeVar.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">OptimizeVar_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#SearchMonitor">SearchMonitor</a></dt>
|
|
<dd id="OptimizeVar.RestartSearch" class="function"><a href="#SearchMonitor.RestartSearch">RestartSearch</a></dd>
|
|
<dd id="OptimizeVar.ExitSearch" class="function"><a href="#SearchMonitor.ExitSearch">ExitSearch</a></dd>
|
|
<dd id="OptimizeVar.EndNextDecision" class="function"><a href="#SearchMonitor.EndNextDecision">EndNextDecision</a></dd>
|
|
<dd id="OptimizeVar.ApplyDecision" class="function"><a href="#SearchMonitor.ApplyDecision">ApplyDecision</a></dd>
|
|
<dd id="OptimizeVar.AfterDecision" class="function"><a href="#SearchMonitor.AfterDecision">AfterDecision</a></dd>
|
|
<dd id="OptimizeVar.BeginFail" class="function"><a href="#SearchMonitor.BeginFail">BeginFail</a></dd>
|
|
<dd id="OptimizeVar.EndFail" class="function"><a href="#SearchMonitor.EndFail">EndFail</a></dd>
|
|
<dd id="OptimizeVar.BeginInitialPropagation" class="function"><a href="#SearchMonitor.BeginInitialPropagation">BeginInitialPropagation</a></dd>
|
|
<dd id="OptimizeVar.EndInitialPropagation" class="function"><a href="#SearchMonitor.EndInitialPropagation">EndInitialPropagation</a></dd>
|
|
<dd id="OptimizeVar.NoMoreSolutions" class="function"><a href="#SearchMonitor.NoMoreSolutions">NoMoreSolutions</a></dd>
|
|
<dd id="OptimizeVar.LocalOptimum" class="function"><a href="#SearchMonitor.LocalOptimum">LocalOptimum</a></dd>
|
|
<dd id="OptimizeVar.AcceptNeighbor" class="function"><a href="#SearchMonitor.AcceptNeighbor">AcceptNeighbor</a></dd>
|
|
<dd id="OptimizeVar.solver" class="function"><a href="#SearchMonitor.solver">solver</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="SearchLimit">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#SearchLimit">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">SearchLimit</span><wbr>(<span class="base"><a href="#SearchMonitor">SearchMonitor</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">SearchLimit</span><span class="p">(</span><span class="n">SearchMonitor</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" Base class of all search limits."""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_SearchLimit</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Crossed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if the limit has been crossed."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_Crossed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Check</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is called to check the status of the limit. A return</span>
|
|
<span class="sd"> value of true indicates that we have indeed crossed the limit. In</span>
|
|
<span class="sd"> that case, this method will not be called again and the remaining</span>
|
|
<span class="sd"> search will be discarded.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_Check</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Init</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method is called when the search limit is initialized."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_Init</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Internal methods."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Base class of all search limits.</p>
|
|
</div>
|
|
|
|
|
|
<div id="SearchLimit.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchLimit.__init__">#  </a>
|
|
|
|
|
|
<span class="name">SearchLimit</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SearchLimit.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#SearchLimit.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchLimit.Crossed" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchLimit.Crossed">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Crossed</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Crossed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if the limit has been crossed."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_Crossed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true if the limit has been crossed.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchLimit.Check" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchLimit.Check">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Check</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Check</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method is called to check the status of the limit. A return</span>
|
|
<span class="sd"> value of true indicates that we have indeed crossed the limit. In</span>
|
|
<span class="sd"> that case, this method will not be called again and the remaining</span>
|
|
<span class="sd"> search will be discarded.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_Check</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method is called to check the status of the limit. A return
|
|
value of true indicates that we have indeed crossed the limit. In
|
|
that case, this method will not be called again and the remaining
|
|
search will be discarded.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchLimit.Init" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchLimit.Init">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Init</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Init</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method is called when the search limit is initialized."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_Init</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method is called when the search limit is initialized.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchLimit.EnterSearch" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchLimit.EnterSearch">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EnterSearch</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Internal methods."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_EnterSearch</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Internal methods.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchLimit.BeginNextDecision" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchLimit.BeginNextDecision">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">BeginNextDecision</span><span class="signature">(self, b: <a href="#DecisionBuilder">pywrapcp.DecisionBuilder</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">:</span> <span class="s2">"DecisionBuilder"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_BeginNextDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Before calling DecisionBuilder::Next.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchLimit.RefuteDecision" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchLimit.RefuteDecision">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RefuteDecision</span><span class="signature">(self, d: <a href="#Decision">pywrapcp.Decision</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Decision"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_RefuteDecision</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Before refuting the decision.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SearchLimit.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SearchLimit.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SearchLimit_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#SearchMonitor">SearchMonitor</a></dt>
|
|
<dd id="SearchLimit.RestartSearch" class="function"><a href="#SearchMonitor.RestartSearch">RestartSearch</a></dd>
|
|
<dd id="SearchLimit.ExitSearch" class="function"><a href="#SearchMonitor.ExitSearch">ExitSearch</a></dd>
|
|
<dd id="SearchLimit.EndNextDecision" class="function"><a href="#SearchMonitor.EndNextDecision">EndNextDecision</a></dd>
|
|
<dd id="SearchLimit.ApplyDecision" class="function"><a href="#SearchMonitor.ApplyDecision">ApplyDecision</a></dd>
|
|
<dd id="SearchLimit.AfterDecision" class="function"><a href="#SearchMonitor.AfterDecision">AfterDecision</a></dd>
|
|
<dd id="SearchLimit.BeginFail" class="function"><a href="#SearchMonitor.BeginFail">BeginFail</a></dd>
|
|
<dd id="SearchLimit.EndFail" class="function"><a href="#SearchMonitor.EndFail">EndFail</a></dd>
|
|
<dd id="SearchLimit.BeginInitialPropagation" class="function"><a href="#SearchMonitor.BeginInitialPropagation">BeginInitialPropagation</a></dd>
|
|
<dd id="SearchLimit.EndInitialPropagation" class="function"><a href="#SearchMonitor.EndInitialPropagation">EndInitialPropagation</a></dd>
|
|
<dd id="SearchLimit.AcceptSolution" class="function"><a href="#SearchMonitor.AcceptSolution">AcceptSolution</a></dd>
|
|
<dd id="SearchLimit.AtSolution" class="function"><a href="#SearchMonitor.AtSolution">AtSolution</a></dd>
|
|
<dd id="SearchLimit.NoMoreSolutions" class="function"><a href="#SearchMonitor.NoMoreSolutions">NoMoreSolutions</a></dd>
|
|
<dd id="SearchLimit.LocalOptimum" class="function"><a href="#SearchMonitor.LocalOptimum">LocalOptimum</a></dd>
|
|
<dd id="SearchLimit.AcceptDelta" class="function"><a href="#SearchMonitor.AcceptDelta">AcceptDelta</a></dd>
|
|
<dd id="SearchLimit.AcceptNeighbor" class="function"><a href="#SearchMonitor.AcceptNeighbor">AcceptNeighbor</a></dd>
|
|
<dd id="SearchLimit.solver" class="function"><a href="#SearchMonitor.solver">solver</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="IntervalVar">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#IntervalVar">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">IntervalVar</span><wbr>(<span class="base"><a href="#PropagationBaseObject">PropagationBaseObject</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">IntervalVar</span><span class="p">(</span><span class="n">PropagationBaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Interval variables are often used in scheduling. The main characteristics</span>
|
|
<span class="sd"> of an IntervalVar are the start position, duration, and end</span>
|
|
<span class="sd"> date. All these characteristics can be queried and set, and demons can</span>
|
|
<span class="sd"> be posted on their modifications.</span>
|
|
|
|
<span class="sd"> An important aspect is optionality: an IntervalVar can be performed or not.</span>
|
|
<span class="sd"> If unperformed, then it simply does not exist, and its characteristics</span>
|
|
<span class="sd"> cannot be accessed any more. An interval var is automatically marked</span>
|
|
<span class="sd"> as unperformed when it is not consistent anymore (start greater</span>
|
|
<span class="sd"> than end, duration < 0...)</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> These methods query, set, and watch the start position of the</span>
|
|
<span class="sd"> interval var.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenStartBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenStartBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" These methods query, set, and watch the duration of the interval var."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenDurationBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenDurationBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" These methods query, set, and watch the end position of the interval var."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenEndBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenEndBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MustBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> These methods query, set, and watch the performed status of the</span>
|
|
<span class="sd"> interval var.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_MustBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MayBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_MayBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CannotBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_CannotBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_IsPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetPerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WasPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WasPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenAnything</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Attaches a demon awakened when anything about this interval changes.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Attaches a closure awakened when anything about this interval changes.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenAnything</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> These methods create expressions encapsulating the start, end</span>
|
|
<span class="sd"> and duration of the interval var. Please note that these must not</span>
|
|
<span class="sd"> be used if the interval var is unperformed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_DurationExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_PerformedExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SafeStartExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> These methods create expressions encapsulating the start, end</span>
|
|
<span class="sd"> and duration of the interval var. If the interval var is</span>
|
|
<span class="sd"> unperformed, they will return the unperformed_value.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SafeStartExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SafeDurationExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SafeDurationExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SafeEndExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SafeEndExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAfterEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAfterEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAfterEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAfterEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAfterStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAfterStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAfterStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAfterStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAtEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAtEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAtEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAtEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAtStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAtStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAtStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAtStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAfterEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAfterEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAfterEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAfterEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAfterStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAfterStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAfterStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAfterStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAtEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAtEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAtEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAtEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAtStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAtStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAtStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAtStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StaysInSync</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StaysInSync</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StaysInSyncWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StaysInSyncWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAfter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAfter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsAt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndsBefore</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsBefore</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAfter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAfter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsAt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartsBefore</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsBefore</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CrossesDate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_CrossesDate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AvoidsDate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_AvoidsDate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Interval variables are often used in scheduling. The main characteristics
|
|
of an IntervalVar are the start position, duration, and end
|
|
date. All these characteristics can be queried and set, and demons can
|
|
be posted on their modifications.</p>
|
|
|
|
<p>An important aspect is optionality: an IntervalVar can be performed or not.
|
|
If unperformed, then it simply does not exist, and its characteristics
|
|
cannot be accessed any more. An interval var is automatically marked
|
|
as unperformed when it is not consistent anymore (start greater
|
|
than end, duration < 0...)</p>
|
|
</div>
|
|
|
|
|
|
<div id="IntervalVar.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.__init__">#  </a>
|
|
|
|
|
|
<span class="name">IntervalVar</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#IntervalVar.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StartMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StartMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartMin</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> These methods query, set, and watch the start position of the</span>
|
|
<span class="sd"> interval var.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>These methods query, set, and watch the start position of the
|
|
interval var.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StartMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StartMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartMax</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.SetStartMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.SetStartMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetStartMin</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.SetStartMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.SetStartMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetStartMax</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.SetStartRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.SetStartRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetStartRange</span><span class="signature">(self, mi: 'int64_t', ma: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.OldStartMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.OldStartMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">OldStartMin</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">OldStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.OldStartMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.OldStartMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">OldStartMax</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">OldStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.WhenStartRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.WhenStartRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WhenStartRange</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WhenStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.WhenStartBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.WhenStartBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WhenStartBound</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WhenStartBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenStartBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.DurationMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.DurationMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DurationMin</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" These methods query, set, and watch the duration of the interval var."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>These methods query, set, and watch the duration of the interval var.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.DurationMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.DurationMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DurationMax</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.SetDurationMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.SetDurationMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetDurationMin</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.SetDurationMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.SetDurationMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetDurationMax</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.SetDurationRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.SetDurationRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetDurationRange</span><span class="signature">(self, mi: 'int64_t', ma: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.OldDurationMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.OldDurationMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">OldDurationMin</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">OldDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.OldDurationMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.OldDurationMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">OldDurationMax</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">OldDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.WhenDurationRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.WhenDurationRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WhenDurationRange</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WhenDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.WhenDurationBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.WhenDurationBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WhenDurationBound</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WhenDurationBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenDurationBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.EndMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.EndMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndMin</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" These methods query, set, and watch the end position of the interval var."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>These methods query, set, and watch the end position of the interval var.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.EndMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.EndMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndMax</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.SetEndMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.SetEndMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetEndMin</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.SetEndMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.SetEndMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetEndMax</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.SetEndRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.SetEndRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetEndRange</span><span class="signature">(self, mi: 'int64_t', ma: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.OldEndMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.OldEndMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">OldEndMin</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">OldEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.OldEndMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.OldEndMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">OldEndMax</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">OldEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_OldEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.WhenEndRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.WhenEndRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WhenEndRange</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WhenEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.WhenEndBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.WhenEndBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WhenEndBound</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WhenEndBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenEndBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.MustBePerformed" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.MustBePerformed">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MustBePerformed</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MustBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> These methods query, set, and watch the performed status of the</span>
|
|
<span class="sd"> interval var.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_MustBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>These methods query, set, and watch the performed status of the
|
|
interval var.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.MayBePerformed" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.MayBePerformed">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MayBePerformed</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MayBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_MayBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.CannotBePerformed" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.CannotBePerformed">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">CannotBePerformed</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">CannotBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_CannotBePerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.IsPerformedBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.IsPerformedBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsPerformedBound</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_IsPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.SetPerformed" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.SetPerformed">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetPerformed</span><span class="signature">(self, val: bool) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetPerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SetPerformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.WasPerformedBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.WasPerformedBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WasPerformedBound</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WasPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WasPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.WhenPerformedBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.WhenPerformedBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WhenPerformedBound</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WhenPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenPerformedBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.WhenAnything" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.WhenAnything">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WhenAnything</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WhenAnything</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Attaches a demon awakened when anything about this interval changes.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> Attaches a closure awakened when anything about this interval changes.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_WhenAnything</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Attaches a demon awakened when anything about this interval changes.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Attaches a closure awakened when anything about this interval changes.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StartExpr" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StartExpr">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartExpr</span><span class="signature">(self) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> These methods create expressions encapsulating the start, end</span>
|
|
<span class="sd"> and duration of the interval var. Please note that these must not</span>
|
|
<span class="sd"> be used if the interval var is unperformed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>These methods create expressions encapsulating the start, end
|
|
and duration of the interval var. Please note that these must not
|
|
be used if the interval var is unperformed.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.DurationExpr" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.DurationExpr">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DurationExpr</span><span class="signature">(self) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DurationExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_DurationExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.EndExpr" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.EndExpr">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndExpr</span><span class="signature">(self) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.PerformedExpr" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.PerformedExpr">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">PerformedExpr</span><span class="signature">(self) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">PerformedExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_PerformedExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.SafeStartExpr" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.SafeStartExpr">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SafeStartExpr</span><span class="signature">(
|
|
self,
|
|
unperformed_value: 'int64_t'
|
|
) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SafeStartExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> These methods create expressions encapsulating the start, end</span>
|
|
<span class="sd"> and duration of the interval var. If the interval var is</span>
|
|
<span class="sd"> unperformed, they will return the unperformed_value.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SafeStartExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>These methods create expressions encapsulating the start, end
|
|
and duration of the interval var. If the interval var is
|
|
unperformed, they will return the unperformed_value.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.SafeDurationExpr" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.SafeDurationExpr">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SafeDurationExpr</span><span class="signature">(
|
|
self,
|
|
unperformed_value: 'int64_t'
|
|
) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SafeDurationExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SafeDurationExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.SafeEndExpr" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.SafeEndExpr">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SafeEndExpr</span><span class="signature">(
|
|
self,
|
|
unperformed_value: 'int64_t'
|
|
) -> 'operations_research::IntExpr *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SafeEndExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntExpr *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_SafeEndExpr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed_value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.EndsAfterEnd" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.EndsAfterEnd">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndsAfterEnd</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndsAfterEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAfterEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.EndsAfterEndWithDelay" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.EndsAfterEndWithDelay">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndsAfterEndWithDelay</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
delay: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndsAfterEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAfterEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.EndsAfterStart" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.EndsAfterStart">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndsAfterStart</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndsAfterStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAfterStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.EndsAfterStartWithDelay" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.EndsAfterStartWithDelay">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndsAfterStartWithDelay</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
delay: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndsAfterStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAfterStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.EndsAtEnd" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.EndsAtEnd">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndsAtEnd</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndsAtEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAtEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.EndsAtEndWithDelay" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.EndsAtEndWithDelay">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndsAtEndWithDelay</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
delay: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndsAtEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAtEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.EndsAtStart" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.EndsAtStart">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndsAtStart</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndsAtStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAtStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.EndsAtStartWithDelay" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.EndsAtStartWithDelay">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndsAtStartWithDelay</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
delay: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndsAtStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAtStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StartsAfterEnd" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StartsAfterEnd">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartsAfterEnd</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartsAfterEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAfterEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StartsAfterEndWithDelay" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StartsAfterEndWithDelay">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartsAfterEndWithDelay</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
delay: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartsAfterEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAfterEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StartsAfterStart" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StartsAfterStart">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartsAfterStart</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartsAfterStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAfterStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StartsAfterStartWithDelay" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StartsAfterStartWithDelay">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartsAfterStartWithDelay</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
delay: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartsAfterStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAfterStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StartsAtEnd" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StartsAtEnd">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartsAtEnd</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartsAtEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAtEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StartsAtEndWithDelay" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StartsAtEndWithDelay">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartsAtEndWithDelay</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
delay: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartsAtEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAtEndWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StartsAtStart" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StartsAtStart">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartsAtStart</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartsAtStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAtStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StartsAtStartWithDelay" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StartsAtStartWithDelay">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartsAtStartWithDelay</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
delay: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartsAtStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAtStartWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StaysInSync" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StaysInSync">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StaysInSync</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StaysInSync</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StaysInSync</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StaysInSyncWithDelay" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StaysInSyncWithDelay">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StaysInSyncWithDelay</span><span class="signature">(
|
|
self,
|
|
other: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
delay: 'int64_t'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StaysInSyncWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">delay</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StaysInSyncWithDelay</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">other</span><span class="p">,</span> <span class="n">delay</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.EndsAfter" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.EndsAfter">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndsAfter</span><span class="signature">(self, date: 'int64_t') -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndsAfter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAfter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.EndsAt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.EndsAt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndsAt</span><span class="signature">(self, date: 'int64_t') -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndsAt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsAt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.EndsBefore" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.EndsBefore">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndsBefore</span><span class="signature">(self, date: 'int64_t') -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndsBefore</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_EndsBefore</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StartsAfter" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StartsAfter">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartsAfter</span><span class="signature">(self, date: 'int64_t') -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartsAfter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAfter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StartsAt" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StartsAt">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartsAt</span><span class="signature">(self, date: 'int64_t') -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartsAt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsAt</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.StartsBefore" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.StartsBefore">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartsBefore</span><span class="signature">(self, date: 'int64_t') -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartsBefore</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_StartsBefore</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.CrossesDate" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.CrossesDate">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">CrossesDate</span><span class="signature">(self, date: 'int64_t') -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">CrossesDate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_CrossesDate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVar.AvoidsDate" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVar.AvoidsDate">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AvoidsDate</span><span class="signature">(self, date: 'int64_t') -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AvoidsDate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVar_AvoidsDate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">date</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#PropagationBaseObject">PropagationBaseObject</a></dt>
|
|
<dd id="IntervalVar.DebugString" class="function"><a href="#PropagationBaseObject.DebugString">DebugString</a></dd>
|
|
<dd id="IntervalVar.solver" class="function"><a href="#PropagationBaseObject.solver">solver</a></dd>
|
|
<dd id="IntervalVar.Name" class="function"><a href="#PropagationBaseObject.Name">Name</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="SequenceVar">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#SequenceVar">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">SequenceVar</span><wbr>(<span class="base"><a href="#PropagationBaseObject">PropagationBaseObject</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">SequenceVar</span><span class="p">(</span><span class="n">PropagationBaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> A sequence variable is a variable whose domain is a set of possible</span>
|
|
<span class="sd"> orderings of the interval variables. It allows ordering of tasks. It</span>
|
|
<span class="sd"> has two sets of methods: ComputePossibleFirstsAndLasts(), which</span>
|
|
<span class="sd"> returns the list of interval variables that can be ranked first or</span>
|
|
<span class="sd"> last; and RankFirst/RankNotFirst/RankLast/RankNotLast, which can be</span>
|
|
<span class="sd"> used to create the search decision.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RankFirst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Ranks the index_th interval var first of all unranked interval</span>
|
|
<span class="sd"> vars. After that, it will no longer be considered ranked.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_RankFirst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RankNotFirst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Indicates that the index_th interval var will not be ranked first</span>
|
|
<span class="sd"> of all currently unranked interval vars.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_RankNotFirst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RankLast</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Ranks the index_th interval var first of all unranked interval</span>
|
|
<span class="sd"> vars. After that, it will no longer be considered ranked.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_RankLast</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RankNotLast</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Indicates that the index_th interval var will not be ranked first</span>
|
|
<span class="sd"> of all currently unranked interval vars.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_RankNotLast</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Interval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the index_th interval of the sequence."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_Interval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Next</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the next of the index_th interval of the sequence."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_Next</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of interval vars in the sequence."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar___repr__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar___str__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>A sequence variable is a variable whose domain is a set of possible
|
|
orderings of the interval variables. It allows ordering of tasks. It
|
|
has two sets of methods: ComputePossibleFirstsAndLasts(), which
|
|
returns the list of interval variables that can be ranked first or
|
|
last; and RankFirst/RankNotFirst/RankLast/RankNotLast, which can be
|
|
used to create the search decision.</p>
|
|
</div>
|
|
|
|
|
|
<div id="SequenceVar.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVar.__init__">#  </a>
|
|
|
|
|
|
<span class="name">SequenceVar</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVar.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#SequenceVar.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVar.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVar.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVar.RankFirst" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVar.RankFirst">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RankFirst</span><span class="signature">(self, index: int) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RankFirst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Ranks the index_th interval var first of all unranked interval</span>
|
|
<span class="sd"> vars. After that, it will no longer be considered ranked.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_RankFirst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Ranks the index_th interval var first of all unranked interval
|
|
vars. After that, it will no longer be considered ranked.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVar.RankNotFirst" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVar.RankNotFirst">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RankNotFirst</span><span class="signature">(self, index: int) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RankNotFirst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Indicates that the index_th interval var will not be ranked first</span>
|
|
<span class="sd"> of all currently unranked interval vars.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_RankNotFirst</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Indicates that the index_th interval var will not be ranked first
|
|
of all currently unranked interval vars.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVar.RankLast" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVar.RankLast">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RankLast</span><span class="signature">(self, index: int) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RankLast</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Ranks the index_th interval var first of all unranked interval</span>
|
|
<span class="sd"> vars. After that, it will no longer be considered ranked.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_RankLast</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Ranks the index_th interval var first of all unranked interval
|
|
vars. After that, it will no longer be considered ranked.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVar.RankNotLast" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVar.RankNotLast">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RankNotLast</span><span class="signature">(self, index: int) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RankNotLast</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Indicates that the index_th interval var will not be ranked first</span>
|
|
<span class="sd"> of all currently unranked interval vars.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_RankNotLast</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Indicates that the index_th interval var will not be ranked first
|
|
of all currently unranked interval vars.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVar.Interval" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVar.Interval">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Interval</span><span class="signature">(self, index: int) -> 'operations_research::IntervalVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Interval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the index_th interval of the sequence."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_Interval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the index_th interval of the sequence.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVar.Next" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVar.Next">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Next</span><span class="signature">(self, index: int) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Next</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the next of the index_th interval of the sequence."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_Next</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the next of the index_th interval of the sequence.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVar.Size" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVar.Size">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Size</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of interval vars in the sequence."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVar_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the number of interval vars in the sequence.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#PropagationBaseObject">PropagationBaseObject</a></dt>
|
|
<dd id="SequenceVar.solver" class="function"><a href="#PropagationBaseObject.solver">solver</a></dd>
|
|
<dd id="SequenceVar.Name" class="function"><a href="#PropagationBaseObject.Name">Name</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="AssignmentElement">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#AssignmentElement">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">AssignmentElement</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">AssignmentElement</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Activate</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">AssignmentElement_Activate</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Deactivate</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">AssignmentElement_Deactivate</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Activated</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">AssignmentElement_Activated</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_AssignmentElement</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
<div id="AssignmentElement.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#AssignmentElement.__init__">#  </a>
|
|
|
|
|
|
<span class="name">AssignmentElement</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="AssignmentElement.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#AssignmentElement.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="AssignmentElement.Activate" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#AssignmentElement.Activate">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Activate</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Activate</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">AssignmentElement_Activate</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="AssignmentElement.Deactivate" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#AssignmentElement.Deactivate">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Deactivate</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Deactivate</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">AssignmentElement_Deactivate</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="AssignmentElement.Activated" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#AssignmentElement.Activated">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Activated</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Activated</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">AssignmentElement_Activated</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="IntVarElement">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#IntVarElement">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">IntVarElement</span><wbr>(<span class="base"><a href="#AssignmentElement">AssignmentElement</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">IntVarElement</span><span class="p">(</span><span class="n">AssignmentElement</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">:</span> <span class="s2">"IntVarElement"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">:</span> <span class="s2">"IntVarElement"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_IntVarElement</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
<div id="IntVarElement.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarElement.__init__">#  </a>
|
|
|
|
|
|
<span class="name">IntVarElement</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarElement.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#IntVarElement.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVarElement.Var" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarElement.Var">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Var</span><span class="signature">(self) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarElement.Min" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarElement.Min">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Min</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarElement.SetMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarElement.SetMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetMin</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarElement.Max" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarElement.Max">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Max</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarElement.SetMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarElement.SetMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetMax</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarElement.Value" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarElement.Value">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Value</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarElement.Bound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarElement.Bound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Bound</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarElement.SetRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarElement.SetRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetRange</span><span class="signature">(self, l: 'int64_t', u: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarElement.SetValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarElement.SetValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetValue</span><span class="signature">(self, v: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarElement_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#AssignmentElement">AssignmentElement</a></dt>
|
|
<dd id="IntVarElement.Activate" class="function"><a href="#AssignmentElement.Activate">Activate</a></dd>
|
|
<dd id="IntVarElement.Deactivate" class="function"><a href="#AssignmentElement.Deactivate">Deactivate</a></dd>
|
|
<dd id="IntVarElement.Activated" class="function"><a href="#AssignmentElement.Activated">Activated</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="IntervalVarElement">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#IntervalVarElement">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">IntervalVarElement</span><wbr>(<span class="base"><a href="#AssignmentElement">AssignmentElement</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">IntervalVarElement</span><span class="p">(</span><span class="n">AssignmentElement</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_PerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_PerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetStartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetDurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetEndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetPerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetPerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetPerformedRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetPerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">:</span> <span class="s2">"IntervalVarElement"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">:</span> <span class="s2">"IntervalVarElement"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_IntervalVarElement</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
<div id="IntervalVarElement.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.__init__">#  </a>
|
|
|
|
|
|
<span class="name">IntervalVarElement</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#IntervalVarElement.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.Var" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.Var">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Var</span><span class="signature">(self) -> 'operations_research::IntervalVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.StartMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.StartMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartMin</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.StartMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.StartMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartMax</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.StartValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.StartValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartValue</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.DurationMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.DurationMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DurationMin</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.DurationMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.DurationMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DurationMax</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.DurationValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.DurationValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DurationValue</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.EndMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.EndMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndMin</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.EndMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.EndMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndMax</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.EndValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.EndValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndValue</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.PerformedMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.PerformedMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">PerformedMin</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">PerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_PerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.PerformedMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.PerformedMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">PerformedMax</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">PerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_PerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.PerformedValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.PerformedValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">PerformedValue</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetStartMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetStartMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetStartMin</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetStartMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetStartMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetStartMax</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetStartRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetStartRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetStartRange</span><span class="signature">(self, mi: 'int64_t', ma: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetStartValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetStartValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetStartValue</span><span class="signature">(self, v: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetStartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetStartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetDurationMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetDurationMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetDurationMin</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetDurationMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetDurationMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetDurationMax</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetDurationRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetDurationRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetDurationRange</span><span class="signature">(self, mi: 'int64_t', ma: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetDurationValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetDurationValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetDurationValue</span><span class="signature">(self, v: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetDurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetDurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetEndMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetEndMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetEndMin</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetEndMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetEndMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetEndMax</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetEndRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetEndRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetEndRange</span><span class="signature">(self, mi: 'int64_t', ma: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetEndValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetEndValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetEndValue</span><span class="signature">(self, v: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetEndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetEndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetPerformedMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetPerformedMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetPerformedMin</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetPerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetPerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetPerformedMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetPerformedMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetPerformedMax</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetPerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetPerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetPerformedRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetPerformedRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetPerformedRange</span><span class="signature">(self, mi: 'int64_t', ma: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetPerformedRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetPerformedRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarElement.SetPerformedValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarElement.SetPerformedValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetPerformedValue</span><span class="signature">(self, v: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetPerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarElement_SetPerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#AssignmentElement">AssignmentElement</a></dt>
|
|
<dd id="IntervalVarElement.Activate" class="function"><a href="#AssignmentElement.Activate">Activate</a></dd>
|
|
<dd id="IntervalVarElement.Deactivate" class="function"><a href="#AssignmentElement.Deactivate">Deactivate</a></dd>
|
|
<dd id="IntervalVarElement.Activated" class="function"><a href="#AssignmentElement.Activated">Activated</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="SequenceVarElement">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#SequenceVarElement">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">SequenceVarElement</span><wbr>(<span class="base"><a href="#AssignmentElement">AssignmentElement</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">SequenceVarElement</span><span class="p">(</span><span class="n">AssignmentElement</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The SequenceVarElement stores a partial representation of ranked</span>
|
|
<span class="sd"> interval variables in the underlying sequence variable.</span>
|
|
<span class="sd"> This representation consists of three vectors:</span>
|
|
<span class="sd"> - the forward sequence. That is the list of interval variables</span>
|
|
<span class="sd"> ranked first in the sequence. The first element of the backward</span>
|
|
<span class="sd"> sequence is the first interval in the sequence variable.</span>
|
|
<span class="sd"> - the backward sequence. That is the list of interval variables</span>
|
|
<span class="sd"> ranked last in the sequence. The first element of the backward</span>
|
|
<span class="sd"> sequence is the last interval in the sequence variable.</span>
|
|
<span class="sd"> - The list of unperformed interval variables.</span>
|
|
<span class="sd"> Furthermore, if all performed variables are ranked, then by</span>
|
|
<span class="sd"> convention, the forward_sequence will contain all such variables</span>
|
|
<span class="sd"> and the backward_sequence will be empty.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SequenceVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_SetSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_SetForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetBackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_SetBackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetUnperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_SetUnperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">:</span> <span class="s2">"SequenceVarElement"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">:</span> <span class="s2">"SequenceVarElement"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">element</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_SequenceVarElement</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>The SequenceVarElement stores a partial representation of ranked
|
|
interval variables in the underlying sequence variable.</p>
|
|
|
|
<h6 id="this-representation-consists-of-three-vectors">This representation consists of three vectors</h6>
|
|
|
|
<blockquote>
|
|
<ul>
|
|
<li>the forward sequence. That is the list of interval variables
|
|
ranked first in the sequence. The first element of the backward
|
|
sequence is the first interval in the sequence variable.</li>
|
|
<li>the backward sequence. That is the list of interval variables
|
|
ranked last in the sequence. The first element of the backward
|
|
sequence is the last interval in the sequence variable.</li>
|
|
<li>The list of unperformed interval variables.
|
|
Furthermore, if all performed variables are ranked, then by
|
|
convention, the forward_sequence will contain all such variables
|
|
and the backward_sequence will be empty.</li>
|
|
</ul>
|
|
</blockquote>
|
|
</div>
|
|
|
|
|
|
<div id="SequenceVarElement.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarElement.__init__">#  </a>
|
|
|
|
|
|
<span class="name">SequenceVarElement</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarElement.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#SequenceVarElement.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarElement.Var" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarElement.Var">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Var</span><span class="signature">(self) -> 'operations_research::SequenceVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SequenceVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_Var</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarElement.ForwardSequence" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarElement.ForwardSequence">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ForwardSequence</span><span class="signature">(self) -> 'std::vector< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarElement.BackwardSequence" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarElement.BackwardSequence">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">BackwardSequence</span><span class="signature">(self) -> 'std::vector< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarElement.Unperformed" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarElement.Unperformed">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Unperformed</span><span class="signature">(self) -> 'std::vector< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarElement.SetSequence" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarElement.SetSequence">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetSequence</span><span class="signature">(
|
|
self,
|
|
forward_sequence: 'std::vector< int > const &',
|
|
backward_sequence: 'std::vector< int > const &',
|
|
unperformed: 'std::vector< int > const &'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_SetSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarElement.SetForwardSequence" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarElement.SetForwardSequence">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetForwardSequence</span><span class="signature">(self, forward_sequence: 'std::vector< int > const &') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_SetForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarElement.SetBackwardSequence" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarElement.SetBackwardSequence">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetBackwardSequence</span><span class="signature">(self, backward_sequence: 'std::vector< int > const &') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetBackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_SetBackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarElement.SetUnperformed" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarElement.SetUnperformed">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetUnperformed</span><span class="signature">(self, unperformed: 'std::vector< int > const &') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetUnperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarElement_SetUnperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#AssignmentElement">AssignmentElement</a></dt>
|
|
<dd id="SequenceVarElement.Activate" class="function"><a href="#AssignmentElement.Activate">Activate</a></dd>
|
|
<dd id="SequenceVarElement.Deactivate" class="function"><a href="#AssignmentElement.Deactivate">Deactivate</a></dd>
|
|
<dd id="SequenceVarElement.Activated" class="function"><a href="#AssignmentElement.Activated">Activated</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="Assignment">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#Assignment">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">Assignment</span><wbr>(<span class="base"><a href="#PropagationBaseObject">PropagationBaseObject</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">Assignment</span><span class="p">(</span><span class="n">PropagationBaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> An Assignment is a variable -> domains mapping, used</span>
|
|
<span class="sd"> to report solutions to the user.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Clear</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Clear</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Empty</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Empty</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NumIntVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_NumIntVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NumIntervalVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_NumIntervalVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NumSequenceVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_NumSequenceVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Load</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Load</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Save</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Save</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_AddObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Objective</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Objective</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_HasObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ObjectiveMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_ObjectiveMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ObjectiveMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_ObjectiveMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_ObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ObjectiveBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_ObjectiveBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetObjectiveMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetObjectiveMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetObjectiveMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetObjectiveMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetObjectiveRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetObjectiveRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Min</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Min</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Max</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Max</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_PerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_PerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetStartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetStartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetDurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetDurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetEndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetEndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetPerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetPerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetPerformedRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetPerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetBackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetBackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetUnperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetUnperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Activate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Activate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Deactivate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Deactivate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Activated</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Activated</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IntVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::IntContainer const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_IntVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MutableIntVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::IntContainer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_MutableIntVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IntervalVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::IntervalContainer const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_IntervalVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MutableIntervalVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::IntervalContainer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_MutableIntervalVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SequenceVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::SequenceContainer const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SequenceVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MutableSequenceVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::SequenceContainer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_MutableSequenceVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>An Assignment is a variable -> domains mapping, used
|
|
to report solutions to the user.</p>
|
|
</div>
|
|
|
|
|
|
<div id="Assignment.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.__init__">#  </a>
|
|
|
|
|
|
<span class="name">Assignment</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Assignment.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Clear" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Clear">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Clear</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Clear</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Clear</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Empty" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Empty">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Empty</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Empty</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Empty</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Size" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Size">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Size</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.NumIntVars" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.NumIntVars">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NumIntVars</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NumIntVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_NumIntVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.NumIntervalVars" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.NumIntervalVars">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NumIntervalVars</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NumIntervalVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_NumIntervalVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.NumSequenceVars" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.NumSequenceVars">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NumSequenceVars</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NumSequenceVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_NumSequenceVars</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Store" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Store">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Store</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Restore" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Restore">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Restore</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Load" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Load">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Load</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Load</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Load</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Save" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Save">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Save</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Save</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Save</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.AddObjective" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.AddObjective">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddObjective</span><span class="signature">(self, v: <a href="#IntVar">pywrapcp.IntVar</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_AddObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Objective" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Objective">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Objective</span><span class="signature">(self) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Objective</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Objective</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.HasObjective" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.HasObjective">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">HasObjective</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">HasObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_HasObjective</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.ObjectiveMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.ObjectiveMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ObjectiveMin</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ObjectiveMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_ObjectiveMin</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.ObjectiveMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.ObjectiveMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ObjectiveMax</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ObjectiveMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_ObjectiveMax</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.ObjectiveValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.ObjectiveValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ObjectiveValue</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_ObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.ObjectiveBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.ObjectiveBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ObjectiveBound</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ObjectiveBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_ObjectiveBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetObjectiveMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetObjectiveMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetObjectiveMin</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetObjectiveMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetObjectiveMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetObjectiveMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetObjectiveMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetObjectiveMax</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetObjectiveMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetObjectiveMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetObjectiveValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetObjectiveValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetObjectiveValue</span><span class="signature">(self, value: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetObjectiveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetObjectiveRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetObjectiveRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetObjectiveRange</span><span class="signature">(self, l: 'int64_t', u: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetObjectiveRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetObjectiveRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Min" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Min">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Min</span><span class="signature">(self, var: <a href="#IntVar">pywrapcp.IntVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Min</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Min</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Max" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Max">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Max</span><span class="signature">(self, var: <a href="#IntVar">pywrapcp.IntVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Max</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Max</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Value" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Value">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Value</span><span class="signature">(self, var: <a href="#IntVar">pywrapcp.IntVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Bound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Bound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Bound</span><span class="signature">(self, var: <a href="#IntVar">pywrapcp.IntVar</a>) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetMin</span><span class="signature">(self, var: <a href="#IntVar">pywrapcp.IntVar</a>, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetMax</span><span class="signature">(self, var: <a href="#IntVar">pywrapcp.IntVar</a>, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetRange</span><span class="signature">(self, var: <a href="#IntVar">pywrapcp.IntVar</a>, l: 'int64_t', u: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetValue</span><span class="signature">(self, var: <a href="#IntVar">pywrapcp.IntVar</a>, value: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.StartMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.StartMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartMin</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_StartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.StartMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.StartMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartMax</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_StartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.StartValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.StartValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">StartValue</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_StartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.DurationMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.DurationMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DurationMin</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_DurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.DurationMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.DurationMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DurationMax</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_DurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.DurationValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.DurationValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DurationValue</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_DurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.EndMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.EndMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndMin</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_EndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.EndMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.EndMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndMax</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_EndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.EndValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.EndValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">EndValue</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_EndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.PerformedMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.PerformedMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">PerformedMin</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">PerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_PerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.PerformedMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.PerformedMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">PerformedMax</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">PerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_PerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.PerformedValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.PerformedValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">PerformedValue</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_PerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetStartMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetStartMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetStartMin</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetStartMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetStartMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetStartMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetStartMax</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetStartMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetStartRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetStartRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetStartRange</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
mi: 'int64_t',
|
|
ma: 'int64_t'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetStartRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetStartValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetStartValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetStartValue</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>, value: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetStartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetStartValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetDurationMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetDurationMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetDurationMin</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetDurationMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetDurationMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetDurationMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetDurationMax</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetDurationMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetDurationRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetDurationRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetDurationRange</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
mi: 'int64_t',
|
|
ma: 'int64_t'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetDurationRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetDurationValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetDurationValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetDurationValue</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>, value: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetDurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetDurationValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetEndMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetEndMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetEndMin</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetEndMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetEndMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetEndMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetEndMax</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetEndMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetEndRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetEndRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetEndRange</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
mi: 'int64_t',
|
|
ma: 'int64_t'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetEndRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetEndValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetEndValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetEndValue</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>, value: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetEndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetEndValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetPerformedMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetPerformedMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetPerformedMin</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetPerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetPerformedMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetPerformedMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetPerformedMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetPerformedMax</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetPerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetPerformedMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetPerformedRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetPerformedRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetPerformedRange</span><span class="signature">(
|
|
self,
|
|
var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>,
|
|
mi: 'int64_t',
|
|
ma: 'int64_t'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetPerformedRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetPerformedRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetPerformedValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetPerformedValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetPerformedValue</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>, value: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetPerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetPerformedValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Add" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Add">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Add</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.ForwardSequence" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.ForwardSequence">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ForwardSequence</span><span class="signature">(self, var: <a href="#SequenceVar">pywrapcp.SequenceVar</a>) -> 'std::vector< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_ForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.BackwardSequence" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.BackwardSequence">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">BackwardSequence</span><span class="signature">(self, var: <a href="#SequenceVar">pywrapcp.SequenceVar</a>) -> 'std::vector< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_BackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Unperformed" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Unperformed">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Unperformed</span><span class="signature">(self, var: <a href="#SequenceVar">pywrapcp.SequenceVar</a>) -> 'std::vector< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Unperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetSequence" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetSequence">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetSequence</span><span class="signature">(
|
|
self,
|
|
var: <a href="#SequenceVar">pywrapcp.SequenceVar</a>,
|
|
forward_sequence: 'std::vector< int > const &',
|
|
backward_sequence: 'std::vector< int > const &',
|
|
unperformed: 'std::vector< int > const &'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetForwardSequence" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetForwardSequence">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetForwardSequence</span><span class="signature">(
|
|
self,
|
|
var: <a href="#SequenceVar">pywrapcp.SequenceVar</a>,
|
|
forward_sequence: 'std::vector< int > const &'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetForwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">forward_sequence</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetBackwardSequence" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetBackwardSequence">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetBackwardSequence</span><span class="signature">(
|
|
self,
|
|
var: <a href="#SequenceVar">pywrapcp.SequenceVar</a>,
|
|
backward_sequence: 'std::vector< int > const &'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetBackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetBackwardSequence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">backward_sequence</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SetUnperformed" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SetUnperformed">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetUnperformed</span><span class="signature">(
|
|
self,
|
|
var: <a href="#SequenceVar">pywrapcp.SequenceVar</a>,
|
|
unperformed: 'std::vector< int > const &'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetUnperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SetUnperformed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">unperformed</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Activate" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Activate">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Activate</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Activate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Activate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Deactivate" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Deactivate">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Deactivate</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Deactivate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Deactivate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.Activated" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.Activated">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Activated</span><span class="signature">(self, *args) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Activated</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_Activated</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.IntVarContainer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.IntVarContainer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IntVarContainer</span><span class="signature">(self) -> 'operations_research::Assignment::IntContainer const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IntVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::IntContainer const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_IntVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.MutableIntVarContainer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.MutableIntVarContainer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MutableIntVarContainer</span><span class="signature">(self) -> 'operations_research::Assignment::IntContainer *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MutableIntVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::IntContainer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_MutableIntVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.IntervalVarContainer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.IntervalVarContainer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IntervalVarContainer</span><span class="signature">(self) -> 'operations_research::Assignment::IntervalContainer const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IntervalVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::IntervalContainer const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_IntervalVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.MutableIntervalVarContainer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.MutableIntervalVarContainer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MutableIntervalVarContainer</span><span class="signature">(self) -> 'operations_research::Assignment::IntervalContainer *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MutableIntervalVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::IntervalContainer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_MutableIntervalVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.SequenceVarContainer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.SequenceVarContainer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SequenceVarContainer</span><span class="signature">(self) -> 'operations_research::Assignment::SequenceContainer const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SequenceVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::SequenceContainer const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_SequenceVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Assignment.MutableSequenceVarContainer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Assignment.MutableSequenceVarContainer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MutableSequenceVarContainer</span><span class="signature">(self) -> 'operations_research::Assignment::SequenceContainer *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MutableSequenceVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment::SequenceContainer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Assignment_MutableSequenceVarContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#PropagationBaseObject">PropagationBaseObject</a></dt>
|
|
<dd id="Assignment.solver" class="function"><a href="#PropagationBaseObject.solver">solver</a></dd>
|
|
<dd id="Assignment.Name" class="function"><a href="#PropagationBaseObject.Name">Name</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="Pack">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#Pack">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">Pack</span><wbr>(<span class="base"><a href="#Constraint">Constraint</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">Pack</span><span class="p">(</span><span class="n">Constraint</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddWeightedSumLessOrEqualConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Dimensions are additional constraints than can restrict what is</span>
|
|
<span class="sd"> possible with the pack constraint. It can be used to set capacity</span>
|
|
<span class="sd"> limits, to count objects per bin, to compute unassigned</span>
|
|
<span class="sd"> penalties...</span>
|
|
<span class="sd"> This dimension imposes that for all bins b, the weighted sum</span>
|
|
<span class="sd"> (weights[i]) of all objects i assigned to 'b' is less or equal</span>
|
|
<span class="sd"> 'bounds[b]'.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This dimension imposes that for all bins b, the weighted sum</span>
|
|
<span class="sd"> (weights->Run(i)) of all objects i assigned to 'b' is less or</span>
|
|
<span class="sd"> equal to 'bounds[b]'. Ownership of the callback is transferred to</span>
|
|
<span class="sd"> the pack constraint.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> This dimension imposes that for all bins b, the weighted sum</span>
|
|
<span class="sd"> (weights->Run(i, b) of all objects i assigned to 'b' is less or</span>
|
|
<span class="sd"> equal to 'bounds[b]'. Ownership of the callback is transferred to</span>
|
|
<span class="sd"> the pack constraint.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddWeightedSumLessOrEqualConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddWeightedSumEqualVarDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This dimension imposes that for all bins b, the weighted sum</span>
|
|
<span class="sd"> (weights[i]) of all objects i assigned to 'b' is equal to loads[b].</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This dimension imposes that for all bins b, the weighted sum</span>
|
|
<span class="sd"> (weights->Run(i, b)) of all objects i assigned to 'b' is equal to</span>
|
|
<span class="sd"> loads[b].</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddWeightedSumEqualVarDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddSumVariableWeightsLessOrEqualConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">usage</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This dimension imposes:</span>
|
|
<span class="sd"> forall b in bins,</span>
|
|
<span class="sd"> sum (i in items: usage[i] * is_assigned(i, b)) <= capacity[b]</span>
|
|
<span class="sd"> where is_assigned(i, b) is true if and only if item i is assigned</span>
|
|
<span class="sd"> to the bin b.</span>
|
|
|
|
<span class="sd"> This can be used to model shapes of items by linking variables of</span>
|
|
<span class="sd"> the same item on parallel dimensions with an allowed assignment</span>
|
|
<span class="sd"> constraint.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddSumVariableWeightsLessOrEqualConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">usage</span><span class="p">,</span> <span class="n">capacity</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddWeightedSumOfAssignedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">weights</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">,</span> <span class="n">cost_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This dimension enforces that cost_var == sum of weights[i] for</span>
|
|
<span class="sd"> all objects 'i' assigned to a bin.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddWeightedSumOfAssignedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">weights</span><span class="p">,</span> <span class="n">cost_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddCountUsedBinDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">count_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This dimension links 'count_var' to the actual number of bins used in the</span>
|
|
<span class="sd"> pack.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddCountUsedBinDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">count_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddCountAssignedItemsDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">count_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This dimension links 'count_var' to the actual number of items</span>
|
|
<span class="sd"> assigned to a bin in the pack.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddCountAssignedItemsDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">count_var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>A constraint is the main modeling object. It provides two methods:</p>
|
|
|
|
<ul>
|
|
<li>Post() is responsible for creating the demons and attaching them to
|
|
immediate demons().</li>
|
|
<li>InitialPropagate() is called once just after Post and performs
|
|
the initial propagation. The subsequent propagations will be performed
|
|
by the demons Posted during the post() method.</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<div id="Pack.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Pack.__init__">#  </a>
|
|
|
|
|
|
<span class="name">Pack</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="Pack.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#Pack.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Pack.AddWeightedSumLessOrEqualConstantDimension" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Pack.AddWeightedSumLessOrEqualConstantDimension">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddWeightedSumLessOrEqualConstantDimension</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddWeightedSumLessOrEqualConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> Dimensions are additional constraints than can restrict what is</span>
|
|
<span class="sd"> possible with the pack constraint. It can be used to set capacity</span>
|
|
<span class="sd"> limits, to count objects per bin, to compute unassigned</span>
|
|
<span class="sd"> penalties...</span>
|
|
<span class="sd"> This dimension imposes that for all bins b, the weighted sum</span>
|
|
<span class="sd"> (weights[i]) of all objects i assigned to 'b' is less or equal</span>
|
|
<span class="sd"> 'bounds[b]'.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This dimension imposes that for all bins b, the weighted sum</span>
|
|
<span class="sd"> (weights->Run(i)) of all objects i assigned to 'b' is less or</span>
|
|
<span class="sd"> equal to 'bounds[b]'. Ownership of the callback is transferred to</span>
|
|
<span class="sd"> the pack constraint.</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 3:*</span>
|
|
<span class="sd"> This dimension imposes that for all bins b, the weighted sum</span>
|
|
<span class="sd"> (weights->Run(i, b) of all objects i assigned to 'b' is less or</span>
|
|
<span class="sd"> equal to 'bounds[b]'. Ownership of the callback is transferred to</span>
|
|
<span class="sd"> the pack constraint.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddWeightedSumLessOrEqualConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Dimensions are additional constraints than can restrict what is
|
|
possible with the pack constraint. It can be used to set capacity
|
|
limits, to count objects per bin, to compute unassigned
|
|
penalties...
|
|
This dimension imposes that for all bins b, the weighted sum
|
|
(weights[i]) of all objects i assigned to 'b' is less or equal
|
|
'bounds[b]'.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
This dimension imposes that for all bins b, the weighted sum
|
|
(weights->Run(i)) of all objects i assigned to 'b' is less or
|
|
equal to 'bounds[b]'. Ownership of the callback is transferred to
|
|
the pack constraint.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 3:</em>
|
|
This dimension imposes that for all bins b, the weighted sum
|
|
(weights->Run(i, b) of all objects i assigned to 'b' is less or
|
|
equal to 'bounds[b]'. Ownership of the callback is transferred to
|
|
the pack constraint.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Pack.AddWeightedSumEqualVarDimension" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Pack.AddWeightedSumEqualVarDimension">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddWeightedSumEqualVarDimension</span><span class="signature">(self, *args) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddWeightedSumEqualVarDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> *Overload 1:*</span>
|
|
<span class="sd"> This dimension imposes that for all bins b, the weighted sum</span>
|
|
<span class="sd"> (weights[i]) of all objects i assigned to 'b' is equal to loads[b].</span>
|
|
|
|
<span class="sd"> |</span>
|
|
|
|
<span class="sd"> *Overload 2:*</span>
|
|
<span class="sd"> This dimension imposes that for all bins b, the weighted sum</span>
|
|
<span class="sd"> (weights->Run(i, b)) of all objects i assigned to 'b' is equal to</span>
|
|
<span class="sd"> loads[b].</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddWeightedSumEqualVarDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
This dimension imposes that for all bins b, the weighted sum
|
|
(weights[i]) of all objects i assigned to 'b' is equal to loads[b].</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
This dimension imposes that for all bins b, the weighted sum
|
|
(weights->Run(i, b)) of all objects i assigned to 'b' is equal to
|
|
loads[b].</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Pack.AddSumVariableWeightsLessOrEqualConstantDimension" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Pack.AddSumVariableWeightsLessOrEqualConstantDimension">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddSumVariableWeightsLessOrEqualConstantDimension</span><span class="signature">(
|
|
self,
|
|
usage: 'std::vector< operations_research::IntVar * > const &',
|
|
capacity: 'std::vector< int64_t > const &'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddSumVariableWeightsLessOrEqualConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">usage</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This dimension imposes:</span>
|
|
<span class="sd"> forall b in bins,</span>
|
|
<span class="sd"> sum (i in items: usage[i] * is_assigned(i, b)) <= capacity[b]</span>
|
|
<span class="sd"> where is_assigned(i, b) is true if and only if item i is assigned</span>
|
|
<span class="sd"> to the bin b.</span>
|
|
|
|
<span class="sd"> This can be used to model shapes of items by linking variables of</span>
|
|
<span class="sd"> the same item on parallel dimensions with an allowed assignment</span>
|
|
<span class="sd"> constraint.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddSumVariableWeightsLessOrEqualConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">usage</span><span class="p">,</span> <span class="n">capacity</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This dimension imposes:
|
|
forall b in bins,
|
|
sum (i in items: usage[i] * is_assigned(i, b)) <= capacity[b]
|
|
where is_assigned(i, b) is true if and only if item i is assigned
|
|
to the bin b.</p>
|
|
|
|
<p>This can be used to model shapes of items by linking variables of
|
|
the same item on parallel dimensions with an allowed assignment
|
|
constraint.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Pack.AddWeightedSumOfAssignedDimension" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Pack.AddWeightedSumOfAssignedDimension">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddWeightedSumOfAssignedDimension</span><span class="signature">(
|
|
self,
|
|
weights: 'std::vector< int64_t > const &',
|
|
cost_var: <a href="#IntVar">pywrapcp.IntVar</a>
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddWeightedSumOfAssignedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">weights</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">,</span> <span class="n">cost_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This dimension enforces that cost_var == sum of weights[i] for</span>
|
|
<span class="sd"> all objects 'i' assigned to a bin.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddWeightedSumOfAssignedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">weights</span><span class="p">,</span> <span class="n">cost_var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This dimension enforces that cost_var == sum of weights[i] for
|
|
all objects 'i' assigned to a bin.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Pack.AddCountUsedBinDimension" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Pack.AddCountUsedBinDimension">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddCountUsedBinDimension</span><span class="signature">(self, count_var: <a href="#IntVar">pywrapcp.IntVar</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddCountUsedBinDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">count_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This dimension links 'count_var' to the actual number of bins used in the</span>
|
|
<span class="sd"> pack.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddCountUsedBinDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">count_var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This dimension links 'count_var' to the actual number of bins used in the
|
|
pack.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Pack.AddCountAssignedItemsDimension" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Pack.AddCountAssignedItemsDimension">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddCountAssignedItemsDimension</span><span class="signature">(self, count_var: <a href="#IntVar">pywrapcp.IntVar</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddCountAssignedItemsDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">count_var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This dimension links 'count_var' to the actual number of items</span>
|
|
<span class="sd"> assigned to a bin in the pack.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_AddCountAssignedItemsDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">count_var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This dimension links 'count_var' to the actual number of items
|
|
assigned to a bin in the pack.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Pack.Post" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Pack.Post">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Post</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method is called when the constraint is processed by the
|
|
solver. Its main usage is to attach demons to variables.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Pack.InitialPropagateWrapper" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Pack.InitialPropagateWrapper">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">InitialPropagateWrapper</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method performs the initial propagation of the
|
|
constraint. It is called just after the post.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="Pack.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#Pack.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">Pack_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#Constraint">Constraint</a></dt>
|
|
<dd id="Pack.Var" class="function"><a href="#Constraint.Var">Var</a></dd>
|
|
<dd id="Pack.Square" class="function"><a href="#Constraint.Square">Square</a></dd>
|
|
<dd id="Pack.MapTo" class="function"><a href="#Constraint.MapTo">MapTo</a></dd>
|
|
<dd id="Pack.IndexOf" class="function"><a href="#Constraint.IndexOf">IndexOf</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#PropagationBaseObject">PropagationBaseObject</a></dt>
|
|
<dd id="Pack.solver" class="function"><a href="#PropagationBaseObject.solver">solver</a></dd>
|
|
<dd id="Pack.Name" class="function"><a href="#PropagationBaseObject.Name">Name</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="DisjunctiveConstraint">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#DisjunctiveConstraint">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">DisjunctiveConstraint</span><wbr>(<span class="base"><a href="#Constraint">Constraint</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">DisjunctiveConstraint</span><span class="p">(</span><span class="n">Constraint</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SequenceVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SequenceVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a sequence variable from the constraint."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DisjunctiveConstraint_SequenceVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetTransitionTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">transition_time</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Add a transition time between intervals. It forces the distance between</span>
|
|
<span class="sd"> the end of interval a and start of interval b that follows it to be at</span>
|
|
<span class="sd"> least transition_time(a, b). This function must always return</span>
|
|
<span class="sd"> a positive or null value.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DisjunctiveConstraint_SetTransitionTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">transition_time</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TransitionTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">before_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">after_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DisjunctiveConstraint_TransitionTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">before_index</span><span class="p">,</span> <span class="n">after_index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>A constraint is the main modeling object. It provides two methods:</p>
|
|
|
|
<ul>
|
|
<li>Post() is responsible for creating the demons and attaching them to
|
|
immediate demons().</li>
|
|
<li>InitialPropagate() is called once just after Post and performs
|
|
the initial propagation. The subsequent propagations will be performed
|
|
by the demons Posted during the post() method.</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<div id="DisjunctiveConstraint.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#DisjunctiveConstraint.__init__">#  </a>
|
|
|
|
|
|
<span class="name">DisjunctiveConstraint</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="DisjunctiveConstraint.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#DisjunctiveConstraint.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="DisjunctiveConstraint.SequenceVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#DisjunctiveConstraint.SequenceVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SequenceVar</span><span class="signature">(self) -> 'operations_research::SequenceVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SequenceVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SequenceVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Creates a sequence variable from the constraint."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DisjunctiveConstraint_SequenceVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a sequence variable from the constraint.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="DisjunctiveConstraint.SetTransitionTime" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#DisjunctiveConstraint.SetTransitionTime">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetTransitionTime</span><span class="signature">(
|
|
self,
|
|
transition_time: 'operations_research::Solver::IndexEvaluator2'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetTransitionTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">transition_time</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Add a transition time between intervals. It forces the distance between</span>
|
|
<span class="sd"> the end of interval a and start of interval b that follows it to be at</span>
|
|
<span class="sd"> least transition_time(a, b). This function must always return</span>
|
|
<span class="sd"> a positive or null value.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DisjunctiveConstraint_SetTransitionTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">transition_time</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Add a transition time between intervals. It forces the distance between
|
|
the end of interval a and start of interval b that follows it to be at
|
|
least transition_time(a, b). This function must always return
|
|
a positive or null value.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="DisjunctiveConstraint.TransitionTime" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#DisjunctiveConstraint.TransitionTime">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">TransitionTime</span><span class="signature">(self, before_index: int, after_index: int) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">TransitionTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">before_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">after_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DisjunctiveConstraint_TransitionTime</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">before_index</span><span class="p">,</span> <span class="n">after_index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#Constraint">Constraint</a></dt>
|
|
<dd id="DisjunctiveConstraint.Post" class="function"><a href="#Constraint.Post">Post</a></dd>
|
|
<dd id="DisjunctiveConstraint.InitialPropagateWrapper" class="function"><a href="#Constraint.InitialPropagateWrapper">InitialPropagateWrapper</a></dd>
|
|
<dd id="DisjunctiveConstraint.DebugString" class="function"><a href="#Constraint.DebugString">DebugString</a></dd>
|
|
<dd id="DisjunctiveConstraint.Var" class="function"><a href="#Constraint.Var">Var</a></dd>
|
|
<dd id="DisjunctiveConstraint.Square" class="function"><a href="#Constraint.Square">Square</a></dd>
|
|
<dd id="DisjunctiveConstraint.MapTo" class="function"><a href="#Constraint.MapTo">MapTo</a></dd>
|
|
<dd id="DisjunctiveConstraint.IndexOf" class="function"><a href="#Constraint.IndexOf">IndexOf</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#PropagationBaseObject">PropagationBaseObject</a></dt>
|
|
<dd id="DisjunctiveConstraint.solver" class="function"><a href="#PropagationBaseObject.solver">solver</a></dd>
|
|
<dd id="DisjunctiveConstraint.Name" class="function"><a href="#PropagationBaseObject.Name">Name</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="RevInteger">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#RevInteger">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">RevInteger</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">RevInteger</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This class adds reversibility to a POD type.</span>
|
|
<span class="sd"> It contains the stamp optimization. i.e. the SaveValue call is done</span>
|
|
<span class="sd"> only once per node of the search tree. Please note that actual</span>
|
|
<span class="sd"> stamps always starts at 1, thus an initial value of 0 will always</span>
|
|
<span class="sd"> trigger the first SaveValue.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"long long const &"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevInteger_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_RevInteger</span><span class="p">(</span><span class="n">val</span><span class="p">))</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"long long const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevInteger_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"long long const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevInteger_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_RevInteger</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This class adds reversibility to a POD type.
|
|
It contains the stamp optimization. i.e. the SaveValue call is done
|
|
only once per node of the search tree. Please note that actual
|
|
stamps always starts at 1, thus an initial value of 0 will always
|
|
trigger the first SaveValue.</p>
|
|
</div>
|
|
|
|
|
|
<div id="RevInteger.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RevInteger.__init__">#  </a>
|
|
|
|
|
|
<span class="name">RevInteger</span><span class="signature">(val: 'long long const &')</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"long long const &"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevInteger_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_RevInteger</span><span class="p">(</span><span class="n">val</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RevInteger.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RevInteger.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RevInteger.Value" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RevInteger.Value">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Value</span><span class="signature">(self) -> 'long long const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"long long const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevInteger_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RevInteger.SetValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RevInteger.SetValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetValue</span><span class="signature">(self, s: <a href="#Solver">pywrapcp.Solver</a>, val: 'long long const &') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"long long const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevInteger_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="NumericalRevInteger">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#NumericalRevInteger">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">NumericalRevInteger</span><wbr>(<span class="base"><a href="#RevInteger">RevInteger</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">NumericalRevInteger</span><span class="p">(</span><span class="n">RevInteger</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" Subclass of Rev<T> which adds numerical operations."""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"long long const &"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">NumericalRevInteger_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_NumericalRevInteger</span><span class="p">(</span><span class="n">val</span><span class="p">))</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">,</span> <span class="n">to_add</span><span class="p">:</span> <span class="s2">"long long const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">NumericalRevInteger_Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">to_add</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Incr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">NumericalRevInteger_Incr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Decr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">NumericalRevInteger_Decr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_NumericalRevInteger</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Subclass of Rev<T> which adds numerical operations.</p>
|
|
</div>
|
|
|
|
|
|
<div id="NumericalRevInteger.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#NumericalRevInteger.__init__">#  </a>
|
|
|
|
|
|
<span class="name">NumericalRevInteger</span><span class="signature">(val: 'long long const &')</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"long long const &"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">NumericalRevInteger_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_NumericalRevInteger</span><span class="p">(</span><span class="n">val</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="NumericalRevInteger.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#NumericalRevInteger.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="NumericalRevInteger.Add" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#NumericalRevInteger.Add">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Add</span><span class="signature">(self, s: <a href="#Solver">pywrapcp.Solver</a>, to_add: 'long long const &') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">,</span> <span class="n">to_add</span><span class="p">:</span> <span class="s2">"long long const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">NumericalRevInteger_Add</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">to_add</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="NumericalRevInteger.Incr" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#NumericalRevInteger.Incr">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Incr</span><span class="signature">(self, s: <a href="#Solver">pywrapcp.Solver</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Incr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">NumericalRevInteger_Incr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="NumericalRevInteger.Decr" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#NumericalRevInteger.Decr">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Decr</span><span class="signature">(self, s: <a href="#Solver">pywrapcp.Solver</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Decr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">NumericalRevInteger_Decr</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#RevInteger">RevInteger</a></dt>
|
|
<dd id="NumericalRevInteger.Value" class="function"><a href="#RevInteger.Value">Value</a></dd>
|
|
<dd id="NumericalRevInteger.SetValue" class="function"><a href="#RevInteger.SetValue">SetValue</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="RevBool">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#RevBool">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">RevBool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">RevBool</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This class adds reversibility to a POD type.</span>
|
|
<span class="sd"> It contains the stamp optimization. i.e. the SaveValue call is done</span>
|
|
<span class="sd"> only once per node of the search tree. Please note that actual</span>
|
|
<span class="sd"> stamps always starts at 1, thus an initial value of 0 will always</span>
|
|
<span class="sd"> trigger the first SaveValue.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"bool const &"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevBool_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_RevBool</span><span class="p">(</span><span class="n">val</span><span class="p">))</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevBool_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"bool const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevBool_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_RevBool</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This class adds reversibility to a POD type.
|
|
It contains the stamp optimization. i.e. the SaveValue call is done
|
|
only once per node of the search tree. Please note that actual
|
|
stamps always starts at 1, thus an initial value of 0 will always
|
|
trigger the first SaveValue.</p>
|
|
</div>
|
|
|
|
|
|
<div id="RevBool.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RevBool.__init__">#  </a>
|
|
|
|
|
|
<span class="name">RevBool</span><span class="signature">(val: 'bool const &')</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"bool const &"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevBool_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_RevBool</span><span class="p">(</span><span class="n">val</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RevBool.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RevBool.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RevBool.Value" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RevBool.Value">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Value</span><span class="signature">(self) -> 'bool const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevBool_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RevBool.SetValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RevBool.SetValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetValue</span><span class="signature">(self, s: <a href="#Solver">pywrapcp.Solver</a>, val: 'bool const &') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">,</span> <span class="n">val</span><span class="p">:</span> <span class="s2">"bool const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RevBool_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">s</span><span class="p">,</span> <span class="n">val</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="IntVarContainer">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#IntVarContainer">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">IntVarContainer</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">IntVarContainer</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVarElement *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">:</span> <span class="s2">"IntVarContainer"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true if this and 'container' both represent the same V* -> E map.</span>
|
|
<span class="sd"> Runs in linear time; requires that the == operator on the type E is well</span>
|
|
<span class="sd"> defined.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">:</span> <span class="s2">"IntVarContainer"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_IntVarContainer</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
<div id="IntVarContainer.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarContainer.__init__">#  </a>
|
|
|
|
|
|
<span class="name">IntVarContainer</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarContainer.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#IntVarContainer.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVarContainer.Contains" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarContainer.Contains">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Contains</span><span class="signature">(self, var: <a href="#IntVar">pywrapcp.IntVar</a>) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarContainer.Element" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarContainer.Element">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Element</span><span class="signature">(self, index: int) -> 'operations_research::IntVarElement *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVarElement *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarContainer.Size" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarContainer.Size">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Size</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarContainer.Store" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarContainer.Store">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Store</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarContainer.Restore" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarContainer.Restore">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Restore</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarContainer_Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="IntervalVarContainer">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#IntervalVarContainer">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">IntervalVarContainer</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">IntervalVarContainer</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVarElement *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">:</span> <span class="s2">"IntervalVarContainer"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true if this and 'container' both represent the same V* -> E map.</span>
|
|
<span class="sd"> Runs in linear time; requires that the == operator on the type E is well</span>
|
|
<span class="sd"> defined.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">:</span> <span class="s2">"IntervalVarContainer"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_IntervalVarContainer</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
<div id="IntervalVarContainer.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarContainer.__init__">#  </a>
|
|
|
|
|
|
<span class="name">IntervalVarContainer</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarContainer.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#IntervalVarContainer.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarContainer.Contains" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarContainer.Contains">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Contains</span><span class="signature">(self, var: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarContainer.Element" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarContainer.Element">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Element</span><span class="signature">(self, index: int) -> 'operations_research::IntervalVarElement *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntervalVarElement *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarContainer.Size" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarContainer.Size">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Size</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarContainer.Store" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarContainer.Store">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Store</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntervalVarContainer.Restore" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntervalVarContainer.Restore">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Restore</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntervalVarContainer_Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="SequenceVarContainer">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#SequenceVarContainer">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">SequenceVarContainer</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">SequenceVarContainer</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SequenceVarElement *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">:</span> <span class="s2">"SequenceVarContainer"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true if this and 'container' both represent the same V* -> E map.</span>
|
|
<span class="sd"> Runs in linear time; requires that the == operator on the type E is well</span>
|
|
<span class="sd"> defined.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer___eq__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">:</span> <span class="s2">"SequenceVarContainer"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer___ne__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">container</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_SequenceVarContainer</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
<div id="SequenceVarContainer.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarContainer.__init__">#  </a>
|
|
|
|
|
|
<span class="name">SequenceVarContainer</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarContainer.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#SequenceVarContainer.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarContainer.Contains" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarContainer.Contains">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Contains</span><span class="signature">(self, var: <a href="#SequenceVar">pywrapcp.SequenceVar</a>) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"SequenceVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarContainer.Element" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarContainer.Element">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Element</span><span class="signature">(self, index: int) -> 'operations_research::SequenceVarElement *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::SequenceVarElement *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_Element</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarContainer.Size" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarContainer.Size">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Size</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarContainer.Store" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarContainer.Store">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Store</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_Store</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarContainer.Restore" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarContainer.Restore">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Restore</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarContainer_Restore</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="LocalSearchOperator">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#LocalSearchOperator">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">LocalSearchOperator</span><wbr>(<span class="base"><a href="#BaseObject">BaseObject</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">LocalSearchOperator</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This class represent a reversible FIFO structure.</span>
|
|
<span class="sd"> The main difference w.r.t a standard FIFO structure is that a Solver is</span>
|
|
<span class="sd"> given as parameter to the modifiers such that the solver can store the</span>
|
|
<span class="sd"> backtrack information</span>
|
|
<span class="sd"> Iterator's traversing order should not be changed, as some algorithm</span>
|
|
<span class="sd"> depend on it to be consistent.</span>
|
|
<span class="sd"> It's main use is to store a list of demons in the various classes of</span>
|
|
<span class="sd"> variables.</span>
|
|
<span class="sd"> The base class for all local search operators.</span>
|
|
|
|
<span class="sd"> A local search operator is an object that defines the neighborhood of a</span>
|
|
<span class="sd"> solution. In other words, a neighborhood is the set of solutions which can</span>
|
|
<span class="sd"> be reached from a given solution using an operator.</span>
|
|
|
|
<span class="sd"> The behavior of the LocalSearchOperator class is similar to iterators.</span>
|
|
<span class="sd"> The operator is synchronized with an assignment (gives the</span>
|
|
<span class="sd"> current values of the variables); this is done in the Start() method.</span>
|
|
|
|
<span class="sd"> Then one can iterate over the neighbors using the MakeNextNeighbor method.</span>
|
|
<span class="sd"> This method returns an assignment which represents the incremental changes</span>
|
|
<span class="sd"> to the current solution. It also returns a second assignment representing</span>
|
|
<span class="sd"> the changes to the last solution defined by the neighborhood operator; this</span>
|
|
<span class="sd"> assignment is empty if the neighborhood operator cannot track this</span>
|
|
<span class="sd"> information.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NextNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchOperator_NextNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchOperator_Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_LocalSearchOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This class represent a reversible FIFO structure.
|
|
The main difference w.r.t a standard FIFO structure is that a Solver is
|
|
given as parameter to the modifiers such that the solver can store the
|
|
backtrack information
|
|
Iterator's traversing order should not be changed, as some algorithm
|
|
depend on it to be consistent.
|
|
It's main use is to store a list of demons in the various classes of
|
|
variables.
|
|
The base class for all local search operators.</p>
|
|
|
|
<p>A local search operator is an object that defines the neighborhood of a
|
|
solution. In other words, a neighborhood is the set of solutions which can
|
|
be reached from a given solution using an operator.</p>
|
|
|
|
<p>The behavior of the LocalSearchOperator class is similar to iterators.
|
|
The operator is synchronized with an assignment (gives the
|
|
current values of the variables); this is done in the Start() method.</p>
|
|
|
|
<p>Then one can iterate over the neighbors using the MakeNextNeighbor method.
|
|
This method returns an assignment which represents the incremental changes
|
|
to the current solution. It also returns a second assignment representing
|
|
the changes to the last solution defined by the neighborhood operator; this
|
|
assignment is empty if the neighborhood operator cannot track this
|
|
information.</p>
|
|
</div>
|
|
|
|
|
|
<div id="LocalSearchOperator.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#LocalSearchOperator.__init__">#  </a>
|
|
|
|
|
|
<span class="name">LocalSearchOperator</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="LocalSearchOperator.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#LocalSearchOperator.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="LocalSearchOperator.NextNeighbor" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#LocalSearchOperator.NextNeighbor">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NextNeighbor</span><span class="signature">(
|
|
self,
|
|
delta: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
deltadelta: <a href="#Assignment">pywrapcp.Assignment</a>
|
|
) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NextNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchOperator_NextNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="LocalSearchOperator.Start" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#LocalSearchOperator.Start">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Start</span><span class="signature">(self, assignment: <a href="#Assignment">pywrapcp.Assignment</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchOperator_Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#BaseObject">BaseObject</a></dt>
|
|
<dd id="LocalSearchOperator.DebugString" class="function"><a href="#BaseObject.DebugString">DebugString</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="IntVarLocalSearchOperatorTemplate">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#IntVarLocalSearchOperatorTemplate">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">IntVarLocalSearchOperatorTemplate</span><wbr>(<span class="base"><a href="#LocalSearchOperator">LocalSearchOperator</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">IntVarLocalSearchOperatorTemplate</span><span class="p">(</span><span class="n">LocalSearchOperator</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" Base operator class for operators manipulating variables."""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method should not be overridden. Override OnStart() instead which is</span>
|
|
<span class="sd"> called before exiting this method.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"long long const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the value in the current assignment of the variable of given</span>
|
|
<span class="sd"> index.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"long long const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_OldValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"long long const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OnStart</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Called by Start() after synchronizing the operator with the current</span>
|
|
<span class="sd"> assignment. Should be overridden instead of Start() to avoid calling</span>
|
|
<span class="sd"> VarLocalSearchOperator::Start explicitly.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_OnStart</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Base operator class for operators manipulating variables.</p>
|
|
</div>
|
|
|
|
|
|
<div id="IntVarLocalSearchOperatorTemplate.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchOperatorTemplate.__init__">#  </a>
|
|
|
|
|
|
<span class="name">IntVarLocalSearchOperatorTemplate</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchOperatorTemplate.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#IntVarLocalSearchOperatorTemplate.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchOperatorTemplate.Start" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchOperatorTemplate.Start">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Start</span><span class="signature">(self, assignment: <a href="#Assignment">pywrapcp.Assignment</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method should not be overridden. Override OnStart() instead which is</span>
|
|
<span class="sd"> called before exiting this method.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method should not be overridden. Override OnStart() instead which is
|
|
called before exiting this method.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchOperatorTemplate.IsIncremental" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchOperatorTemplate.IsIncremental">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsIncremental</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchOperatorTemplate.Size" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchOperatorTemplate.Size">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Size</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchOperatorTemplate.Value" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchOperatorTemplate.Value">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Value</span><span class="signature">(self, index: 'int64_t') -> 'long long const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"long long const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the value in the current assignment of the variable of given</span>
|
|
<span class="sd"> index.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the value in the current assignment of the variable of given
|
|
index.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchOperatorTemplate.OldValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchOperatorTemplate.OldValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">OldValue</span><span class="signature">(self, index: 'int64_t') -> 'long long const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">OldValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"long long const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_OldValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchOperatorTemplate.SetValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchOperatorTemplate.SetValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetValue</span><span class="signature">(self, index: 'int64_t', value: 'long long const &') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"long long const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchOperatorTemplate.OnStart" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchOperatorTemplate.OnStart">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">OnStart</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">OnStart</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Called by Start() after synchronizing the operator with the current</span>
|
|
<span class="sd"> assignment. Should be overridden instead of Start() to avoid calling</span>
|
|
<span class="sd"> VarLocalSearchOperator::Start explicitly.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperatorTemplate_OnStart</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Called by Start() after synchronizing the operator with the current
|
|
assignment. Should be overridden instead of Start() to avoid calling
|
|
VarLocalSearchOperator::Start explicitly.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#LocalSearchOperator">LocalSearchOperator</a></dt>
|
|
<dd id="IntVarLocalSearchOperatorTemplate.NextNeighbor" class="function"><a href="#LocalSearchOperator.NextNeighbor">NextNeighbor</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#BaseObject">BaseObject</a></dt>
|
|
<dd id="IntVarLocalSearchOperatorTemplate.DebugString" class="function"><a href="#BaseObject.DebugString">DebugString</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="IntVarLocalSearchOperator">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#IntVarLocalSearchOperator">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">IntVarLocalSearchOperator</span><wbr>(<span class="base"><a href="#IntVarLocalSearchOperatorTemplate">IntVarLocalSearchOperatorTemplate</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">IntVarLocalSearchOperator</span><span class="p">(</span><span class="n">IntVarLocalSearchOperatorTemplate</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">IntVarLocalSearchOperator</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperator_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_IntVarLocalSearchOperator</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_IntVarLocalSearchOperator</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NextNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Redefines MakeNextNeighbor to export a simpler interface. The calls to</span>
|
|
<span class="sd"> ApplyChanges() and RevertChanges() are factored in this method, hiding</span>
|
|
<span class="sd"> both delta and deltadelta from subclasses which only need to override</span>
|
|
<span class="sd"> MakeOneNeighbor().</span>
|
|
<span class="sd"> Therefore this method should not be overridden. Override MakeOneNeighbor()</span>
|
|
<span class="sd"> instead.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperator_NextNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OneNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a new neighbor. It returns false when the neighborhood is</span>
|
|
<span class="sd"> completely explored.</span>
|
|
<span class="sd"> MakeNextNeighbor() in a subclass of IntVarLocalSearchOperator.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperator_OneNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_IntVarLocalSearchOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Base operator class for operators manipulating variables.</p>
|
|
</div>
|
|
|
|
|
|
<div id="IntVarLocalSearchOperator.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchOperator.__init__">#  </a>
|
|
|
|
|
|
<span class="name">IntVarLocalSearchOperator</span><span class="signature">(*args)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">IntVarLocalSearchOperator</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperator_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_IntVarLocalSearchOperator</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchOperator.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#IntVarLocalSearchOperator.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchOperator.NextNeighbor" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchOperator.NextNeighbor">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NextNeighbor</span><span class="signature">(
|
|
self,
|
|
delta: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
deltadelta: <a href="#Assignment">pywrapcp.Assignment</a>
|
|
) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NextNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Redefines MakeNextNeighbor to export a simpler interface. The calls to</span>
|
|
<span class="sd"> ApplyChanges() and RevertChanges() are factored in this method, hiding</span>
|
|
<span class="sd"> both delta and deltadelta from subclasses which only need to override</span>
|
|
<span class="sd"> MakeOneNeighbor().</span>
|
|
<span class="sd"> Therefore this method should not be overridden. Override MakeOneNeighbor()</span>
|
|
<span class="sd"> instead.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperator_NextNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Redefines MakeNextNeighbor to export a simpler interface. The calls to
|
|
ApplyChanges() and RevertChanges() are factored in this method, hiding
|
|
both delta and deltadelta from subclasses which only need to override
|
|
MakeOneNeighbor().
|
|
Therefore this method should not be overridden. Override MakeOneNeighbor()
|
|
instead.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchOperator.OneNeighbor" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchOperator.OneNeighbor">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">OneNeighbor</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">OneNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a new neighbor. It returns false when the neighborhood is</span>
|
|
<span class="sd"> completely explored.</span>
|
|
<span class="sd"> MakeNextNeighbor() in a subclass of IntVarLocalSearchOperator.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchOperator_OneNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a new neighbor. It returns false when the neighborhood is
|
|
completely explored.
|
|
MakeNextNeighbor() in a subclass of IntVarLocalSearchOperator.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#IntVarLocalSearchOperatorTemplate">IntVarLocalSearchOperatorTemplate</a></dt>
|
|
<dd id="IntVarLocalSearchOperator.Start" class="function"><a href="#IntVarLocalSearchOperatorTemplate.Start">Start</a></dd>
|
|
<dd id="IntVarLocalSearchOperator.IsIncremental" class="function"><a href="#IntVarLocalSearchOperatorTemplate.IsIncremental">IsIncremental</a></dd>
|
|
<dd id="IntVarLocalSearchOperator.Size" class="function"><a href="#IntVarLocalSearchOperatorTemplate.Size">Size</a></dd>
|
|
<dd id="IntVarLocalSearchOperator.Value" class="function"><a href="#IntVarLocalSearchOperatorTemplate.Value">Value</a></dd>
|
|
<dd id="IntVarLocalSearchOperator.OldValue" class="function"><a href="#IntVarLocalSearchOperatorTemplate.OldValue">OldValue</a></dd>
|
|
<dd id="IntVarLocalSearchOperator.SetValue" class="function"><a href="#IntVarLocalSearchOperatorTemplate.SetValue">SetValue</a></dd>
|
|
<dd id="IntVarLocalSearchOperator.OnStart" class="function"><a href="#IntVarLocalSearchOperatorTemplate.OnStart">OnStart</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#BaseObject">BaseObject</a></dt>
|
|
<dd id="IntVarLocalSearchOperator.DebugString" class="function"><a href="#BaseObject.DebugString">DebugString</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="SequenceVarLocalSearchOperatorTemplate">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#SequenceVarLocalSearchOperatorTemplate">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">SequenceVarLocalSearchOperatorTemplate</span><wbr>(<span class="base"><a href="#LocalSearchOperator">LocalSearchOperator</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">SequenceVarLocalSearchOperatorTemplate</span><span class="p">(</span><span class="n">LocalSearchOperator</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" Base operator class for operators manipulating variables."""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method should not be overridden. Override OnStart() instead which is</span>
|
|
<span class="sd"> called before exiting this method.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the value in the current assignment of the variable of given</span>
|
|
<span class="sd"> index.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OldValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_OldValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OnStart</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Called by Start() after synchronizing the operator with the current</span>
|
|
<span class="sd"> assignment. Should be overridden instead of Start() to avoid calling</span>
|
|
<span class="sd"> VarLocalSearchOperator::Start explicitly.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_OnStart</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Base operator class for operators manipulating variables.</p>
|
|
</div>
|
|
|
|
|
|
<div id="SequenceVarLocalSearchOperatorTemplate.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarLocalSearchOperatorTemplate.__init__">#  </a>
|
|
|
|
|
|
<span class="name">SequenceVarLocalSearchOperatorTemplate</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarLocalSearchOperatorTemplate.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#SequenceVarLocalSearchOperatorTemplate.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarLocalSearchOperatorTemplate.Start" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarLocalSearchOperatorTemplate.Start">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Start</span><span class="signature">(self, assignment: <a href="#Assignment">pywrapcp.Assignment</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method should not be overridden. Override OnStart() instead which is</span>
|
|
<span class="sd"> called before exiting this method.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method should not be overridden. Override OnStart() instead which is
|
|
called before exiting this method.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarLocalSearchOperatorTemplate.IsIncremental" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarLocalSearchOperatorTemplate.IsIncremental">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsIncremental</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarLocalSearchOperatorTemplate.Size" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarLocalSearchOperatorTemplate.Size">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Size</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarLocalSearchOperatorTemplate.Value" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarLocalSearchOperatorTemplate.Value">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Value</span><span class="signature">(self, index: 'int64_t') -> 'std::vector< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the value in the current assignment of the variable of given</span>
|
|
<span class="sd"> index.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the value in the current assignment of the variable of given
|
|
index.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarLocalSearchOperatorTemplate.OldValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarLocalSearchOperatorTemplate.OldValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">OldValue</span><span class="signature">(self, index: 'int64_t') -> 'std::vector< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">OldValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_OldValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarLocalSearchOperatorTemplate.SetValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarLocalSearchOperatorTemplate.SetValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetValue</span><span class="signature">(
|
|
self,
|
|
index: 'int64_t',
|
|
value: 'std::vector< int > const &'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_SetValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarLocalSearchOperatorTemplate.OnStart" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarLocalSearchOperatorTemplate.OnStart">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">OnStart</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">OnStart</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Called by Start() after synchronizing the operator with the current</span>
|
|
<span class="sd"> assignment. Should be overridden instead of Start() to avoid calling</span>
|
|
<span class="sd"> VarLocalSearchOperator::Start explicitly.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SequenceVarLocalSearchOperatorTemplate_OnStart</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Called by Start() after synchronizing the operator with the current
|
|
assignment. Should be overridden instead of Start() to avoid calling
|
|
VarLocalSearchOperator::Start explicitly.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#LocalSearchOperator">LocalSearchOperator</a></dt>
|
|
<dd id="SequenceVarLocalSearchOperatorTemplate.NextNeighbor" class="function"><a href="#LocalSearchOperator.NextNeighbor">NextNeighbor</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#BaseObject">BaseObject</a></dt>
|
|
<dd id="SequenceVarLocalSearchOperatorTemplate.DebugString" class="function"><a href="#BaseObject.DebugString">DebugString</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="SequenceVarLocalSearchOperator">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#SequenceVarLocalSearchOperator">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">SequenceVarLocalSearchOperator</span><wbr>(<span class="base"><a href="#SequenceVarLocalSearchOperatorTemplate">SequenceVarLocalSearchOperatorTemplate</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">SequenceVarLocalSearchOperator</span><span class="p">(</span><span class="n">SequenceVarLocalSearchOperatorTemplate</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Base operator class for operators manipulating variables.</p>
|
|
</div>
|
|
|
|
|
|
<div id="SequenceVarLocalSearchOperator.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#SequenceVarLocalSearchOperator.__init__">#  </a>
|
|
|
|
|
|
<span class="name">SequenceVarLocalSearchOperator</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="SequenceVarLocalSearchOperator.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#SequenceVarLocalSearchOperator.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#SequenceVarLocalSearchOperatorTemplate">SequenceVarLocalSearchOperatorTemplate</a></dt>
|
|
<dd id="SequenceVarLocalSearchOperator.Start" class="function"><a href="#SequenceVarLocalSearchOperatorTemplate.Start">Start</a></dd>
|
|
<dd id="SequenceVarLocalSearchOperator.IsIncremental" class="function"><a href="#SequenceVarLocalSearchOperatorTemplate.IsIncremental">IsIncremental</a></dd>
|
|
<dd id="SequenceVarLocalSearchOperator.Size" class="function"><a href="#SequenceVarLocalSearchOperatorTemplate.Size">Size</a></dd>
|
|
<dd id="SequenceVarLocalSearchOperator.Value" class="function"><a href="#SequenceVarLocalSearchOperatorTemplate.Value">Value</a></dd>
|
|
<dd id="SequenceVarLocalSearchOperator.OldValue" class="function"><a href="#SequenceVarLocalSearchOperatorTemplate.OldValue">OldValue</a></dd>
|
|
<dd id="SequenceVarLocalSearchOperator.SetValue" class="function"><a href="#SequenceVarLocalSearchOperatorTemplate.SetValue">SetValue</a></dd>
|
|
<dd id="SequenceVarLocalSearchOperator.OnStart" class="function"><a href="#SequenceVarLocalSearchOperatorTemplate.OnStart">OnStart</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#LocalSearchOperator">LocalSearchOperator</a></dt>
|
|
<dd id="SequenceVarLocalSearchOperator.NextNeighbor" class="function"><a href="#LocalSearchOperator.NextNeighbor">NextNeighbor</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#BaseObject">BaseObject</a></dt>
|
|
<dd id="SequenceVarLocalSearchOperator.DebugString" class="function"><a href="#BaseObject.DebugString">DebugString</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="BaseLns">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#BaseLns">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">BaseLns</span><wbr>(<span class="base"><a href="#IntVarLocalSearchOperator">IntVarLocalSearchOperator</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">BaseLns</span><span class="p">(</span><span class="n">IntVarLocalSearchOperator</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This is the base class for building an Lns operator. An Lns fragment is a</span>
|
|
<span class="sd"> collection of variables which will be relaxed. Fragments are built with</span>
|
|
<span class="sd"> NextFragment(), which returns false if there are no more fragments to build.</span>
|
|
<span class="sd"> Optionally one can override InitFragments, which is called from</span>
|
|
<span class="sd"> LocalSearchOperator::Start to initialize fragment data.</span>
|
|
|
|
<span class="sd"> Here's a sample relaxing one variable at a time:</span>
|
|
|
|
<span class="sd"> class OneVarLns : public BaseLns {</span>
|
|
<span class="sd"> public:</span>
|
|
<span class="sd"> OneVarLns(const std::vector<IntVar*>& vars) : BaseLns(vars), index_(0) {}</span>
|
|
<span class="sd"> virtual ~OneVarLns() {}</span>
|
|
<span class="sd"> virtual void InitFragments() { index_ = 0; }</span>
|
|
<span class="sd"> virtual bool NextFragment() {</span>
|
|
<span class="sd"> const int size = Size();</span>
|
|
<span class="sd"> if (index_ < size) {</span>
|
|
<span class="sd"> AppendToFragment(index_);</span>
|
|
<span class="sd"> ++index_;</span>
|
|
<span class="sd"> return true;</span>
|
|
<span class="sd"> } else {</span>
|
|
<span class="sd"> return false;</span>
|
|
<span class="sd"> }</span>
|
|
<span class="sd"> }</span>
|
|
|
|
<span class="sd"> private:</span>
|
|
<span class="sd"> int index_;</span>
|
|
<span class="sd"> };</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">BaseLns</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_BaseLns</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_BaseLns</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitFragments</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_InitFragments</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NextFragment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_NextFragment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AppendToFragment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_AppendToFragment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FragmentSize</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_FragmentSize</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns___getitem__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__len__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns___len__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_BaseLns</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This is the base class for building an Lns operator. An Lns fragment is a
|
|
collection of variables which will be relaxed. Fragments are built with
|
|
NextFragment(), which returns false if there are no more fragments to build.
|
|
Optionally one can override InitFragments, which is called from
|
|
LocalSearchOperator::Start to initialize fragment data.</p>
|
|
|
|
<p>Here's a sample relaxing one variable at a time:</p>
|
|
|
|
<p>class OneVarLns : public BaseLns {
|
|
public:
|
|
OneVarLns(const std::vector<IntVar*>& vars) : BaseLns(vars), index_(0) {}
|
|
virtual ~OneVarLns() {}
|
|
virtual void InitFragments() { index_ = 0; }
|
|
virtual bool NextFragment() {
|
|
const int size = Size();
|
|
if (index_ < size) {
|
|
AppendToFragment(index_);
|
|
++index_;
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}</p>
|
|
|
|
<p>private:
|
|
int index_;
|
|
};</p>
|
|
</div>
|
|
|
|
|
|
<div id="BaseLns.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BaseLns.__init__">#  </a>
|
|
|
|
|
|
<span class="name">BaseLns</span><span class="signature">(vars: 'std::vector< operations_research::IntVar * > const &')</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">BaseLns</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_BaseLns</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="BaseLns.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#BaseLns.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="BaseLns.InitFragments" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BaseLns.InitFragments">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">InitFragments</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">InitFragments</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_InitFragments</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="BaseLns.NextFragment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BaseLns.NextFragment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NextFragment</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NextFragment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_NextFragment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="BaseLns.AppendToFragment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BaseLns.AppendToFragment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AppendToFragment</span><span class="signature">(self, index: int) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AppendToFragment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_AppendToFragment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="BaseLns.FragmentSize" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BaseLns.FragmentSize">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">FragmentSize</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">FragmentSize</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BaseLns_FragmentSize</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#IntVarLocalSearchOperator">IntVarLocalSearchOperator</a></dt>
|
|
<dd id="BaseLns.NextNeighbor" class="function"><a href="#IntVarLocalSearchOperator.NextNeighbor">NextNeighbor</a></dd>
|
|
<dd id="BaseLns.OneNeighbor" class="function"><a href="#IntVarLocalSearchOperator.OneNeighbor">OneNeighbor</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#IntVarLocalSearchOperatorTemplate">IntVarLocalSearchOperatorTemplate</a></dt>
|
|
<dd id="BaseLns.Start" class="function"><a href="#IntVarLocalSearchOperatorTemplate.Start">Start</a></dd>
|
|
<dd id="BaseLns.IsIncremental" class="function"><a href="#IntVarLocalSearchOperatorTemplate.IsIncremental">IsIncremental</a></dd>
|
|
<dd id="BaseLns.Size" class="function"><a href="#IntVarLocalSearchOperatorTemplate.Size">Size</a></dd>
|
|
<dd id="BaseLns.Value" class="function"><a href="#IntVarLocalSearchOperatorTemplate.Value">Value</a></dd>
|
|
<dd id="BaseLns.OldValue" class="function"><a href="#IntVarLocalSearchOperatorTemplate.OldValue">OldValue</a></dd>
|
|
<dd id="BaseLns.SetValue" class="function"><a href="#IntVarLocalSearchOperatorTemplate.SetValue">SetValue</a></dd>
|
|
<dd id="BaseLns.OnStart" class="function"><a href="#IntVarLocalSearchOperatorTemplate.OnStart">OnStart</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#BaseObject">BaseObject</a></dt>
|
|
<dd id="BaseLns.DebugString" class="function"><a href="#BaseObject.DebugString">DebugString</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="ChangeValue">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#ChangeValue">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">ChangeValue</span><wbr>(<span class="base"><a href="#IntVarLocalSearchOperator">IntVarLocalSearchOperator</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">ChangeValue</span><span class="p">(</span><span class="n">IntVarLocalSearchOperator</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Defines operators which change the value of variables;</span>
|
|
<span class="sd"> each neighbor corresponds to *one* modified variable.</span>
|
|
<span class="sd"> Sub-classes have to define ModifyValue which determines what the new</span>
|
|
<span class="sd"> variable value is going to be (given the current value and the variable).</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">ChangeValue</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">ChangeValue_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_ChangeValue</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_ChangeValue</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ModifyValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">ChangeValue_ModifyValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">OneNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method should not be overridden. Override ModifyValue() instead."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">ChangeValue_OneNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_ChangeValue</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Defines operators which change the value of variables;
|
|
each neighbor corresponds to <em>one</em> modified variable.
|
|
Sub-classes have to define ModifyValue which determines what the new
|
|
variable value is going to be (given the current value and the variable).</p>
|
|
</div>
|
|
|
|
|
|
<div id="ChangeValue.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#ChangeValue.__init__">#  </a>
|
|
|
|
|
|
<span class="name">ChangeValue</span><span class="signature">(vars: 'std::vector< operations_research::IntVar * > const &')</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">ChangeValue</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">ChangeValue_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_ChangeValue</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="ChangeValue.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#ChangeValue.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="ChangeValue.ModifyValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#ChangeValue.ModifyValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ModifyValue</span><span class="signature">(self, index: 'int64_t', value: 'int64_t') -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ModifyValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">ChangeValue_ModifyValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">value</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="ChangeValue.OneNeighbor" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#ChangeValue.OneNeighbor">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">OneNeighbor</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">OneNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" This method should not be overridden. Override ModifyValue() instead."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">ChangeValue_OneNeighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method should not be overridden. Override ModifyValue() instead.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#IntVarLocalSearchOperator">IntVarLocalSearchOperator</a></dt>
|
|
<dd id="ChangeValue.NextNeighbor" class="function"><a href="#IntVarLocalSearchOperator.NextNeighbor">NextNeighbor</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#IntVarLocalSearchOperatorTemplate">IntVarLocalSearchOperatorTemplate</a></dt>
|
|
<dd id="ChangeValue.Start" class="function"><a href="#IntVarLocalSearchOperatorTemplate.Start">Start</a></dd>
|
|
<dd id="ChangeValue.IsIncremental" class="function"><a href="#IntVarLocalSearchOperatorTemplate.IsIncremental">IsIncremental</a></dd>
|
|
<dd id="ChangeValue.Size" class="function"><a href="#IntVarLocalSearchOperatorTemplate.Size">Size</a></dd>
|
|
<dd id="ChangeValue.Value" class="function"><a href="#IntVarLocalSearchOperatorTemplate.Value">Value</a></dd>
|
|
<dd id="ChangeValue.OldValue" class="function"><a href="#IntVarLocalSearchOperatorTemplate.OldValue">OldValue</a></dd>
|
|
<dd id="ChangeValue.SetValue" class="function"><a href="#IntVarLocalSearchOperatorTemplate.SetValue">SetValue</a></dd>
|
|
<dd id="ChangeValue.OnStart" class="function"><a href="#IntVarLocalSearchOperatorTemplate.OnStart">OnStart</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#BaseObject">BaseObject</a></dt>
|
|
<dd id="ChangeValue.DebugString" class="function"><a href="#BaseObject.DebugString">DebugString</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="PathOperator">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#PathOperator">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">PathOperator</span><wbr>(<span class="base"><a href="#IntVarLocalSearchOperator">IntVarLocalSearchOperator</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">PathOperator</span><span class="p">(</span><span class="n">IntVarLocalSearchOperator</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Base class of the local search operators dedicated to path modifications</span>
|
|
<span class="sd"> (a path is a set of nodes linked together by arcs).</span>
|
|
<span class="sd"> This family of neighborhoods supposes they are handling next variables</span>
|
|
<span class="sd"> representing the arcs (var[i] represents the node immediately after i on</span>
|
|
<span class="sd"> a path).</span>
|
|
<span class="sd"> Several services are provided:</span>
|
|
<span class="sd"> - arc manipulators (SetNext(), ReverseChain(), MoveChain())</span>
|
|
<span class="sd"> - path inspectors (Next(), Prev(), IsPathEnd())</span>
|
|
<span class="sd"> - path iterators: operators need a given number of nodes to define a</span>
|
|
<span class="sd"> neighbor; this class provides the iteration on a given number of (base)</span>
|
|
<span class="sd"> nodes which can be used to define a neighbor (through the BaseNode method)</span>
|
|
<span class="sd"> Subclasses only need to override MakeNeighbor to create neighbors using</span>
|
|
<span class="sd"> the services above (no direct manipulation of assignments).</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Neighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PathOperator_Neighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Base class of the local search operators dedicated to path modifications
|
|
(a path is a set of nodes linked together by arcs).
|
|
This family of neighborhoods supposes they are handling next variables
|
|
representing the arcs (var[i] represents the node immediately after i on
|
|
a path).
|
|
Several services are provided:</p>
|
|
|
|
<ul>
|
|
<li>arc manipulators (SetNext(), ReverseChain(), MoveChain())</li>
|
|
<li>path inspectors (Next(), Prev(), IsPathEnd())</li>
|
|
<li>path iterators: operators need a given number of nodes to define a
|
|
neighbor; this class provides the iteration on a given number of (base)
|
|
nodes which can be used to define a neighbor (through the BaseNode method)
|
|
Subclasses only need to override MakeNeighbor to create neighbors using
|
|
the services above (no direct manipulation of assignments).</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<div id="PathOperator.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PathOperator.__init__">#  </a>
|
|
|
|
|
|
<span class="name">PathOperator</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="PathOperator.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#PathOperator.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="PathOperator.Neighbor" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PathOperator.Neighbor">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Neighbor</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Neighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">PathOperator_Neighbor</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#IntVarLocalSearchOperator">IntVarLocalSearchOperator</a></dt>
|
|
<dd id="PathOperator.NextNeighbor" class="function"><a href="#IntVarLocalSearchOperator.NextNeighbor">NextNeighbor</a></dd>
|
|
<dd id="PathOperator.OneNeighbor" class="function"><a href="#IntVarLocalSearchOperator.OneNeighbor">OneNeighbor</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#IntVarLocalSearchOperatorTemplate">IntVarLocalSearchOperatorTemplate</a></dt>
|
|
<dd id="PathOperator.Start" class="function"><a href="#IntVarLocalSearchOperatorTemplate.Start">Start</a></dd>
|
|
<dd id="PathOperator.IsIncremental" class="function"><a href="#IntVarLocalSearchOperatorTemplate.IsIncremental">IsIncremental</a></dd>
|
|
<dd id="PathOperator.Size" class="function"><a href="#IntVarLocalSearchOperatorTemplate.Size">Size</a></dd>
|
|
<dd id="PathOperator.Value" class="function"><a href="#IntVarLocalSearchOperatorTemplate.Value">Value</a></dd>
|
|
<dd id="PathOperator.OldValue" class="function"><a href="#IntVarLocalSearchOperatorTemplate.OldValue">OldValue</a></dd>
|
|
<dd id="PathOperator.SetValue" class="function"><a href="#IntVarLocalSearchOperatorTemplate.SetValue">SetValue</a></dd>
|
|
<dd id="PathOperator.OnStart" class="function"><a href="#IntVarLocalSearchOperatorTemplate.OnStart">OnStart</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#BaseObject">BaseObject</a></dt>
|
|
<dd id="PathOperator.DebugString" class="function"><a href="#BaseObject.DebugString">DebugString</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="LocalSearchFilter">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#LocalSearchFilter">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">LocalSearchFilter</span><wbr>(<span class="base"><a href="#BaseObject">BaseObject</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">LocalSearchFilter</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Classes to which this template function can be applied to as of 04/2014.</span>
|
|
<span class="sd"> Usage: LocalSearchOperator* op = MakeLocalSearchOperator<Relocate>(...);</span>
|
|
<span class="sd"> class TwoOpt;</span>
|
|
<span class="sd"> class Relocate;</span>
|
|
<span class="sd"> class Exchange;</span>
|
|
<span class="sd"> class Cross;</span>
|
|
<span class="sd"> class MakeActiveOperator;</span>
|
|
<span class="sd"> class MakeInactiveOperator;</span>
|
|
<span class="sd"> class MakeChainInactiveOperator;</span>
|
|
<span class="sd"> class SwapActiveOperator;</span>
|
|
<span class="sd"> class ExtendedSwapActiveOperator;</span>
|
|
<span class="sd"> class MakeActiveAndRelocate;</span>
|
|
<span class="sd"> class RelocateAndMakeActiveOperator;</span>
|
|
<span class="sd"> class RelocateAndMakeInactiveOperator;</span>
|
|
<span class="sd"> Local Search Filters are used for fast neighbor pruning.</span>
|
|
<span class="sd"> Filtering a move is done in several phases:</span>
|
|
<span class="sd"> - in the Relax phase, filters determine which parts of their internals</span>
|
|
<span class="sd"> will be changed by the candidate, and modify intermediary State</span>
|
|
<span class="sd"> - in the Accept phase, filters check that the candidate is feasible,</span>
|
|
<span class="sd"> - if the Accept phase succeeds, the solver may decide to trigger a</span>
|
|
<span class="sd"> Synchronize phase that makes filters change their internal representation</span>
|
|
<span class="sd"> to the last candidate,</span>
|
|
<span class="sd"> - otherwise (Accept fails or the solver does not want to synchronize),</span>
|
|
<span class="sd"> a Revert phase makes filters erase any intermediary State generated by the</span>
|
|
<span class="sd"> Relax and Accept phases.</span>
|
|
<span class="sd"> A given filter has phases called with the following pattern:</span>
|
|
<span class="sd"> (Relax.Accept.Synchronize | Relax.Accept.Revert | Relax.Revert)*.</span>
|
|
<span class="sd"> Filters's Revert() is always called in the reverse order their Accept() was</span>
|
|
<span class="sd"> called, to allow late filters to use state done/undone by early filters'</span>
|
|
<span class="sd"> Accept()/Revert().</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">objective_min</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">objective_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Accepts a "delta" given the assignment with which the filter has been</span>
|
|
<span class="sd"> synchronized; the delta holds the variables which have been modified and</span>
|
|
<span class="sd"> their new value.</span>
|
|
<span class="sd"> If the filter represents a part of the global objective, its contribution</span>
|
|
<span class="sd"> must be between objective_min and objective_max.</span>
|
|
<span class="sd"> Sample: supposing one wants to maintain a[0,1] + b[0,1] <= 1,</span>
|
|
<span class="sd"> for the assignment (a,1), (b,0), the delta (b,1) will be rejected</span>
|
|
<span class="sd"> but the delta (a,0) will be accepted.</span>
|
|
<span class="sd"> TODO(user): Remove arguments when there are no more need for those.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilter_Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">,</span> <span class="n">objective_min</span><span class="p">,</span> <span class="n">objective_max</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilter_IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Synchronizes the filter with the current solution, delta being the</span>
|
|
<span class="sd"> difference with the solution passed to the previous call to Synchronize()</span>
|
|
<span class="sd"> or IncrementalSynchronize(). 'delta' can be used to incrementally</span>
|
|
<span class="sd"> synchronizing the filter with the new solution by only considering the</span>
|
|
<span class="sd"> changes in delta.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilter_Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">delta</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_LocalSearchFilter</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Classes to which this template function can be applied to as of 04/2014.
|
|
Usage: LocalSearchOperator* op = MakeLocalSearchOperator<Relocate>(...);
|
|
class TwoOpt;
|
|
class Relocate;
|
|
class Exchange;
|
|
class Cross;
|
|
class MakeActiveOperator;
|
|
class MakeInactiveOperator;
|
|
class MakeChainInactiveOperator;
|
|
class SwapActiveOperator;
|
|
class ExtendedSwapActiveOperator;
|
|
class MakeActiveAndRelocate;
|
|
class RelocateAndMakeActiveOperator;
|
|
class RelocateAndMakeInactiveOperator;
|
|
Local Search Filters are used for fast neighbor pruning.
|
|
Filtering a move is done in several phases:</p>
|
|
|
|
<ul>
|
|
<li>in the Relax phase, filters determine which parts of their internals
|
|
will be changed by the candidate, and modify intermediary State</li>
|
|
<li>in the Accept phase, filters check that the candidate is feasible,</li>
|
|
<li>if the Accept phase succeeds, the solver may decide to trigger a
|
|
Synchronize phase that makes filters change their internal representation
|
|
to the last candidate,</li>
|
|
<li>otherwise (Accept fails or the solver does not want to synchronize),
|
|
a Revert phase makes filters erase any intermediary State generated by the
|
|
Relax and Accept phases.
|
|
A given filter has phases called with the following pattern:
|
|
(Relax.Accept.Synchronize | Relax.Accept.Revert | Relax.Revert)*.
|
|
Filters's Revert() is always called in the reverse order their Accept() was
|
|
called, to allow late filters to use state done/undone by early filters'
|
|
Accept()/Revert().</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<div id="LocalSearchFilter.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#LocalSearchFilter.__init__">#  </a>
|
|
|
|
|
|
<span class="name">LocalSearchFilter</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="LocalSearchFilter.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#LocalSearchFilter.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="LocalSearchFilter.Accept" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#LocalSearchFilter.Accept">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Accept</span><span class="signature">(
|
|
self,
|
|
delta: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
deltadelta: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
objective_min: 'int64_t',
|
|
objective_max: 'int64_t'
|
|
) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">objective_min</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">objective_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Accepts a "delta" given the assignment with which the filter has been</span>
|
|
<span class="sd"> synchronized; the delta holds the variables which have been modified and</span>
|
|
<span class="sd"> their new value.</span>
|
|
<span class="sd"> If the filter represents a part of the global objective, its contribution</span>
|
|
<span class="sd"> must be between objective_min and objective_max.</span>
|
|
<span class="sd"> Sample: supposing one wants to maintain a[0,1] + b[0,1] <= 1,</span>
|
|
<span class="sd"> for the assignment (a,1), (b,0), the delta (b,1) will be rejected</span>
|
|
<span class="sd"> but the delta (a,0) will be accepted.</span>
|
|
<span class="sd"> TODO(user): Remove arguments when there are no more need for those.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilter_Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">,</span> <span class="n">objective_min</span><span class="p">,</span> <span class="n">objective_max</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Accepts a "delta" given the assignment with which the filter has been
|
|
synchronized; the delta holds the variables which have been modified and
|
|
their new value.
|
|
If the filter represents a part of the global objective, its contribution
|
|
must be between objective_min and objective_max.
|
|
Sample: supposing one wants to maintain a[0,1] + b[0,1] <= 1,
|
|
for the assignment (a,1), (b,0), the delta (b,1) will be rejected
|
|
but the delta (a,0) will be accepted.
|
|
TODO(user): Remove arguments when there are no more need for those.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="LocalSearchFilter.IsIncremental" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#LocalSearchFilter.IsIncremental">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsIncremental</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilter_IsIncremental</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="LocalSearchFilter.Synchronize" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#LocalSearchFilter.Synchronize">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Synchronize</span><span class="signature">(
|
|
self,
|
|
assignment: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
delta: <a href="#Assignment">pywrapcp.Assignment</a>
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Synchronizes the filter with the current solution, delta being the</span>
|
|
<span class="sd"> difference with the solution passed to the previous call to Synchronize()</span>
|
|
<span class="sd"> or IncrementalSynchronize(). 'delta' can be used to incrementally</span>
|
|
<span class="sd"> synchronizing the filter with the new solution by only considering the</span>
|
|
<span class="sd"> changes in delta.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilter_Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">delta</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Synchronizes the filter with the current solution, delta being the
|
|
difference with the solution passed to the previous call to Synchronize()
|
|
or IncrementalSynchronize(). 'delta' can be used to incrementally
|
|
synchronizing the filter with the new solution by only considering the
|
|
changes in delta.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#BaseObject">BaseObject</a></dt>
|
|
<dd id="LocalSearchFilter.DebugString" class="function"><a href="#BaseObject.DebugString">DebugString</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="LocalSearchFilterManager">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#LocalSearchFilterManager">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">LocalSearchFilterManager</span><wbr>(<span class="base"><a href="#BaseObject">BaseObject</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">LocalSearchFilterManager</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Filter manager: when a move is made, filters are executed to decide whether</span>
|
|
<span class="sd"> the solution is feasible and compute parts of the new cost. This class</span>
|
|
<span class="sd"> schedules filter execution and composes costs as a sum.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilterManager_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilterManager_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_LocalSearchFilterManager</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">))</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">monitor</span><span class="p">:</span> <span class="s2">"operations_research::LocalSearchMonitor *const"</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">objective_min</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">objective_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true iff all filters return true, and the sum of their accepted</span>
|
|
<span class="sd"> objectives is between objective_min and objective_max.</span>
|
|
<span class="sd"> The monitor has its Begin/EndFiltering events triggered.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilterManager_Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">monitor</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">,</span> <span class="n">objective_min</span><span class="p">,</span> <span class="n">objective_max</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Synchronizes all filters to assignment."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilterManager_Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">delta</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_LocalSearchFilterManager</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Filter manager: when a move is made, filters are executed to decide whether
|
|
the solution is feasible and compute parts of the new cost. This class
|
|
schedules filter execution and composes costs as a sum.</p>
|
|
</div>
|
|
|
|
|
|
<div id="LocalSearchFilterManager.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#LocalSearchFilterManager.__init__">#  </a>
|
|
|
|
|
|
<span class="name">LocalSearchFilterManager</span><span class="signature">(*args)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilterManager_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_LocalSearchFilterManager</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="LocalSearchFilterManager.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#LocalSearchFilterManager.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="LocalSearchFilterManager.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#LocalSearchFilterManager.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilterManager_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="LocalSearchFilterManager.Accept" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#LocalSearchFilterManager.Accept">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Accept</span><span class="signature">(
|
|
self,
|
|
monitor: 'operations_research::LocalSearchMonitor *const',
|
|
delta: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
deltadelta: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
objective_min: 'int64_t',
|
|
objective_max: 'int64_t'
|
|
) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">monitor</span><span class="p">:</span> <span class="s2">"operations_research::LocalSearchMonitor *const"</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">objective_min</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">objective_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true iff all filters return true, and the sum of their accepted</span>
|
|
<span class="sd"> objectives is between objective_min and objective_max.</span>
|
|
<span class="sd"> The monitor has its Begin/EndFiltering events triggered.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilterManager_Accept</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">monitor</span><span class="p">,</span> <span class="n">delta</span><span class="p">,</span> <span class="n">deltadelta</span><span class="p">,</span> <span class="n">objective_min</span><span class="p">,</span> <span class="n">objective_max</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true iff all filters return true, and the sum of their accepted
|
|
objectives is between objective_min and objective_max.
|
|
The monitor has its Begin/EndFiltering events triggered.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="LocalSearchFilterManager.Synchronize" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#LocalSearchFilterManager.Synchronize">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Synchronize</span><span class="signature">(
|
|
self,
|
|
assignment: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
delta: <a href="#Assignment">pywrapcp.Assignment</a>
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Synchronizes all filters to assignment."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">LocalSearchFilterManager_Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">delta</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Synchronizes all filters to assignment.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="IntVarLocalSearchFilter">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#IntVarLocalSearchFilter">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">IntVarLocalSearchFilter</span><wbr>(<span class="base"><a href="#LocalSearchFilter">LocalSearchFilter</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">IntVarLocalSearchFilter</span><span class="p">(</span><span class="n">LocalSearchFilter</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">IntVarLocalSearchFilter</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_IntVarLocalSearchFilter</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_IntVarLocalSearchFilter</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method should not be overridden. Override OnSynchronize() instead</span>
|
|
<span class="sd"> which is called before exiting this method.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">delta</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IndexFromVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_IndexFromVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
<span class="k">def</span> <span class="nf">__disown__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">disown</span><span class="p">()</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">disown_IntVarLocalSearchFilter</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">weakref</span><span class="o">.</span><span class="n">proxy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Classes to which this template function can be applied to as of 04/2014.
|
|
Usage: LocalSearchOperator* op = MakeLocalSearchOperator<Relocate>(...);
|
|
class TwoOpt;
|
|
class Relocate;
|
|
class Exchange;
|
|
class Cross;
|
|
class MakeActiveOperator;
|
|
class MakeInactiveOperator;
|
|
class MakeChainInactiveOperator;
|
|
class SwapActiveOperator;
|
|
class ExtendedSwapActiveOperator;
|
|
class MakeActiveAndRelocate;
|
|
class RelocateAndMakeActiveOperator;
|
|
class RelocateAndMakeInactiveOperator;
|
|
Local Search Filters are used for fast neighbor pruning.
|
|
Filtering a move is done in several phases:</p>
|
|
|
|
<ul>
|
|
<li>in the Relax phase, filters determine which parts of their internals
|
|
will be changed by the candidate, and modify intermediary State</li>
|
|
<li>in the Accept phase, filters check that the candidate is feasible,</li>
|
|
<li>if the Accept phase succeeds, the solver may decide to trigger a
|
|
Synchronize phase that makes filters change their internal representation
|
|
to the last candidate,</li>
|
|
<li>otherwise (Accept fails or the solver does not want to synchronize),
|
|
a Revert phase makes filters erase any intermediary State generated by the
|
|
Relax and Accept phases.
|
|
A given filter has phases called with the following pattern:
|
|
(Relax.Accept.Synchronize | Relax.Accept.Revert | Relax.Revert)*.
|
|
Filters's Revert() is always called in the reverse order their Accept() was
|
|
called, to allow late filters to use state done/undone by early filters'
|
|
Accept()/Revert().</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<div id="IntVarLocalSearchFilter.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchFilter.__init__">#  </a>
|
|
|
|
|
|
<span class="name">IntVarLocalSearchFilter</span><span class="signature">(vars: 'std::vector< operations_research::IntVar * > const &')</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * > const &"</span><span class="p">):</span>
|
|
<span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="vm">__class__</span> <span class="o">==</span> <span class="n">IntVarLocalSearchFilter</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="kc">None</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="n">_self</span> <span class="o">=</span> <span class="bp">self</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_IntVarLocalSearchFilter</span><span class="p">(</span><span class="n">_self</span><span class="p">,</span> <span class="nb">vars</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchFilter.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#IntVarLocalSearchFilter.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchFilter.Synchronize" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchFilter.Synchronize">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Synchronize</span><span class="signature">(
|
|
self,
|
|
assignment: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
delta: <a href="#Assignment">pywrapcp.Assignment</a>
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">delta</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This method should not be overridden. Override OnSynchronize() instead</span>
|
|
<span class="sd"> which is called before exiting this method.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_Synchronize</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">delta</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method should not be overridden. Override OnSynchronize() instead
|
|
which is called before exiting this method.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchFilter.Size" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchFilter.Size">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Size</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchFilter.Value" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchFilter.Value">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Value</span><span class="signature">(self, index: int) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="IntVarLocalSearchFilter.IndexFromVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#IntVarLocalSearchFilter.IndexFromVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IndexFromVar</span><span class="signature">(self, var: <a href="#IntVar">pywrapcp.IntVar</a>) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IndexFromVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">IntVarLocalSearchFilter_IndexFromVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#LocalSearchFilter">LocalSearchFilter</a></dt>
|
|
<dd id="IntVarLocalSearchFilter.Accept" class="function"><a href="#LocalSearchFilter.Accept">Accept</a></dd>
|
|
<dd id="IntVarLocalSearchFilter.IsIncremental" class="function"><a href="#LocalSearchFilter.IsIncremental">IsIncremental</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#BaseObject">BaseObject</a></dt>
|
|
<dd id="IntVarLocalSearchFilter.DebugString" class="function"><a href="#BaseObject.DebugString">DebugString</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="BooleanVar">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#BooleanVar">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">BooleanVar</span><wbr>(<span class="base"><a href="#IntVar">IntVar</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">BooleanVar</span><span class="p">(</span><span class="n">IntVar</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RemoveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_RemoveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RemoveInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_RemoveInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Demon"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_WhenBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Demon"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_WhenRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WhenDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Demon"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_WhenDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"uint64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HoleIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVarIterator *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_HoleIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DomainIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVarIterator *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_DomainIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>The class IntVar is a subset of IntExpr. In addition to the
|
|
IntExpr protocol, it offers persistence, removing values from the domains,
|
|
and a finer model for events.</p>
|
|
</div>
|
|
|
|
|
|
<div id="BooleanVar.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.__init__">#  </a>
|
|
|
|
|
|
<span class="name">BooleanVar</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#BooleanVar.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.Min" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.Min">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Min</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Min</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.SetMin" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.SetMin">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetMin</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_SetMin</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.Max" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.Max">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Max</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Max</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.SetMax" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.SetMax">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetMax</span><span class="signature">(self, m: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_SetMax</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.SetRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.SetRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetRange</span><span class="signature">(self, mi: 'int64_t', ma: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">ma</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_SetRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">mi</span><span class="p">,</span> <span class="n">ma</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method sets both the min and the max of the expression.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.Bound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.Bound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Bound</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Bound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true if the min and the max of the expression are equal.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.Value" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.Value">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Value</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Value</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method returns the value of the variable. This method checks
|
|
before that the variable is bound.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.RemoveValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.RemoveValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RemoveValue</span><span class="signature">(self, v: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RemoveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_RemoveValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method removes the value 'v' from the domain of the variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.RemoveInterval" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.RemoveInterval">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RemoveInterval</span><span class="signature">(self, l: 'int64_t', u: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RemoveInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">u</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_RemoveInterval</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">l</span><span class="p">,</span> <span class="n">u</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method removes the interval 'l' .. 'u' from the domain of
|
|
the variable. It assumes that 'l' <= 'u'.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.WhenBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.WhenBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WhenBound</span><span class="signature">(self, d: <a href="#Demon">pywrapcp.Demon</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WhenBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Demon"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_WhenBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
This method attaches a demon that will be awakened when the
|
|
variable is bound.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
This method attaches a closure that will be awakened when the
|
|
variable is bound.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.WhenRange" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.WhenRange">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WhenRange</span><span class="signature">(self, d: <a href="#Demon">pywrapcp.Demon</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WhenRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Demon"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_WhenRange</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
Attach a demon that will watch the min or the max of the expression.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
Attach a demon that will watch the min or the max of the expression.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.WhenDomain" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.WhenDomain">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WhenDomain</span><span class="signature">(self, d: <a href="#Demon">pywrapcp.Demon</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WhenDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">:</span> <span class="s2">"Demon"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_WhenDomain</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">d</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p><em>Overload 1:</em>
|
|
This method attaches a demon that will watch any domain
|
|
modification of the domain of the variable.</p>
|
|
|
|
<p>|</p>
|
|
|
|
<p><em>Overload 2:</em>
|
|
This method attaches a closure that will watch any domain
|
|
modification of the domain of the variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.Size" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.Size">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Size</span><span class="signature">(self) -> 'uint64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"uint64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method returns the number of values in the domain of the variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.Contains" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.Contains">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Contains</span><span class="signature">(self, v: 'int64_t') -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_Contains</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">v</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method returns whether the value 'v' is in the domain of the
|
|
variable.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.HoleIteratorAux" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.HoleIteratorAux">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">HoleIteratorAux</span><span class="signature">(self, reversible: bool) -> 'operations_research::IntVarIterator *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">HoleIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVarIterator *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_HoleIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a hole iterator. When 'reversible' is false, the returned
|
|
object is created on the normal C++ heap and the solver does NOT
|
|
take ownership of the object.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.DomainIteratorAux" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.DomainIteratorAux">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DomainIteratorAux</span><span class="signature">(self, reversible: bool) -> 'operations_research::IntVarIterator *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DomainIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVarIterator *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_DomainIteratorAux</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">reversible</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a domain iterator. When 'reversible' is false, the
|
|
returned object is created on the normal C++ heap and the solver
|
|
does NOT take ownership of the object.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="BooleanVar.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#BooleanVar.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">BooleanVar_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#IntVar">IntVar</a></dt>
|
|
<dd id="BooleanVar.IsVar" class="function"><a href="#IntVar.IsVar">IsVar</a></dd>
|
|
<dd id="BooleanVar.Var" class="function"><a href="#IntVar.Var">Var</a></dd>
|
|
<dd id="BooleanVar.RemoveValues" class="function"><a href="#IntVar.RemoveValues">RemoveValues</a></dd>
|
|
<dd id="BooleanVar.SetValues" class="function"><a href="#IntVar.SetValues">SetValues</a></dd>
|
|
<dd id="BooleanVar.OldMin" class="function"><a href="#IntVar.OldMin">OldMin</a></dd>
|
|
<dd id="BooleanVar.OldMax" class="function"><a href="#IntVar.OldMax">OldMax</a></dd>
|
|
<dd id="BooleanVar.DomainIterator" class="function"><a href="#IntVar.DomainIterator">DomainIterator</a></dd>
|
|
<dd id="BooleanVar.HoleIterator" class="function"><a href="#IntVar.HoleIterator">HoleIterator</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#IntExpr">IntExpr</a></dt>
|
|
<dd id="BooleanVar.SetValue" class="function"><a href="#IntExpr.SetValue">SetValue</a></dd>
|
|
<dd id="BooleanVar.VarWithName" class="function"><a href="#IntExpr.VarWithName">VarWithName</a></dd>
|
|
<dd id="BooleanVar.Square" class="function"><a href="#IntExpr.Square">Square</a></dd>
|
|
<dd id="BooleanVar.MapTo" class="function"><a href="#IntExpr.MapTo">MapTo</a></dd>
|
|
<dd id="BooleanVar.IndexOf" class="function"><a href="#IntExpr.IndexOf">IndexOf</a></dd>
|
|
<dd id="BooleanVar.IsMember" class="function"><a href="#IntExpr.IsMember">IsMember</a></dd>
|
|
<dd id="BooleanVar.Member" class="function"><a href="#IntExpr.Member">Member</a></dd>
|
|
<dd id="BooleanVar.NotMember" class="function"><a href="#IntExpr.NotMember">NotMember</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#PropagationBaseObject">PropagationBaseObject</a></dt>
|
|
<dd id="BooleanVar.solver" class="function"><a href="#PropagationBaseObject.solver">solver</a></dd>
|
|
<dd id="BooleanVar.Name" class="function"><a href="#PropagationBaseObject.Name">Name</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="PyDecision">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#PyDecision">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">PyDecision</span><wbr>(<span class="base"><a href="#Decision">Decision</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">PyDecision</span><span class="p">(</span><span class="n">Decision</span><span class="p">):</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">Decision</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ApplyWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">Apply</span><span class="p">(</span><span class="n">solver</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s1">'CP Solver fail'</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
|
|
<span class="n">solver</span><span class="o">.</span><span class="n">ShouldFail</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RefuteWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">Refute</span><span class="p">(</span><span class="n">solver</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s1">'CP Solver fail'</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
|
|
<span class="n">solver</span><span class="o">.</span><span class="n">ShouldFail</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="s2">"PyDecision"</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>A Decision represents a choice point in the search tree. The two main
|
|
methods are Apply() to go left, or Refute() to go right.</p>
|
|
</div>
|
|
|
|
|
|
<div id="PyDecision.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyDecision.__init__">#  </a>
|
|
|
|
|
|
<span class="name">PyDecision</span><span class="signature">()</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">Decision</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="PyDecision.ApplyWrapper" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyDecision.ApplyWrapper">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ApplyWrapper</span><span class="signature">(self, solver)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ApplyWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">Apply</span><span class="p">(</span><span class="n">solver</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s1">'CP Solver fail'</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
|
|
<span class="n">solver</span><span class="o">.</span><span class="n">ShouldFail</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Apply will be called first when the decision is executed.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="PyDecision.RefuteWrapper" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyDecision.RefuteWrapper">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RefuteWrapper</span><span class="signature">(self, solver)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RefuteWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">Refute</span><span class="p">(</span><span class="n">solver</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s1">'CP Solver fail'</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
|
|
<span class="n">solver</span><span class="o">.</span><span class="n">ShouldFail</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Refute will be called after a backtrack.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="PyDecision.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyDecision.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="s2">"PyDecision"</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#Decision">Decision</a></dt>
|
|
<dd id="PyDecision.thisown" class="variable"><a href="#Decision.thisown">thisown</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="PyDecisionBuilder">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#PyDecisionBuilder">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">PyDecisionBuilder</span><wbr>(<span class="base"><a href="#DecisionBuilder">DecisionBuilder</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">PyDecisionBuilder</span><span class="p">(</span><span class="n">DecisionBuilder</span><span class="p">):</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">DecisionBuilder</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NextWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">Next</span><span class="p">(</span><span class="n">solver</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s1">'CP Solver fail'</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="n">solver</span><span class="o">.</span><span class="n">FailDecision</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="s2">"PyDecisionBuilder"</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>A DecisionBuilder is responsible for creating the search tree. The
|
|
important method is Next(), which returns the next decision to execute.</p>
|
|
</div>
|
|
|
|
|
|
<div id="PyDecisionBuilder.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyDecisionBuilder.__init__">#  </a>
|
|
|
|
|
|
<span class="name">PyDecisionBuilder</span><span class="signature">()</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">DecisionBuilder</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="PyDecisionBuilder.NextWrapper" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyDecisionBuilder.NextWrapper">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NextWrapper</span><span class="signature">(self, solver)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NextWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">Next</span><span class="p">(</span><span class="n">solver</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s1">'CP Solver fail'</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="n">solver</span><span class="o">.</span><span class="n">FailDecision</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This is the main method of the decision builder class. It must
|
|
return a decision (an instance of the class Decision). If it
|
|
returns nullptr, this means that the decision builder has finished
|
|
its work.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="PyDecisionBuilder.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyDecisionBuilder.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="s2">"PyDecisionBuilder"</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#DecisionBuilder">DecisionBuilder</a></dt>
|
|
<dd id="PyDecisionBuilder.thisown" class="variable"><a href="#DecisionBuilder.thisown">thisown</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="PyDemon">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#PyDemon">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">PyDemon</span><wbr>(<span class="base"><a href="#Demon">Demon</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">PyDemon</span><span class="p">(</span><span class="n">Demon</span><span class="p">):</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RunWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">Run</span><span class="p">(</span><span class="n">solver</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s1">'CP Solver fail'</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
|
|
<span class="n">solver</span><span class="o">.</span><span class="n">ShouldFail</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="s2">"PyDemon"</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>A Demon is the base element of a propagation queue. It is the main
|
|
object responsible for implementing the actual propagation
|
|
of the constraint and pruning the inconsistent values in the domains
|
|
of the variables. The main concept is that demons are listeners that are
|
|
attached to the variables and listen to their modifications.</p>
|
|
|
|
<h6 id="there-are-two-methods">There are two methods</h6>
|
|
|
|
<blockquote>
|
|
<ul>
|
|
<li>Run() is the actual method called when the demon is processed.</li>
|
|
<li>priority() returns its priority. Standard priorities are slow, normal
|
|
or fast. "immediate" is reserved for variables and is treated separately.</li>
|
|
</ul>
|
|
</blockquote>
|
|
</div>
|
|
|
|
|
|
<div id="PyDemon.RunWrapper" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyDemon.RunWrapper">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RunWrapper</span><span class="signature">(self, solver)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RunWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">Run</span><span class="p">(</span><span class="n">solver</span><span class="p">)</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s1">'CP Solver fail'</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
|
|
<span class="n">solver</span><span class="o">.</span><span class="n">ShouldFail</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This is the main callback of the demon.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="PyDemon.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyDemon.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="s2">"PyDemon"</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#Demon">Demon</a></dt>
|
|
<dd id="PyDemon.__init__" class="function"><a href="#Demon.__init__">Demon</a></dd>
|
|
<dd id="PyDemon.thisown" class="variable"><a href="#Demon.thisown">thisown</a></dd>
|
|
<dd id="PyDemon.Priority" class="function"><a href="#Demon.Priority">Priority</a></dd>
|
|
<dd id="PyDemon.Inhibit" class="function"><a href="#Demon.Inhibit">Inhibit</a></dd>
|
|
<dd id="PyDemon.Desinhibit" class="function"><a href="#Demon.Desinhibit">Desinhibit</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="PyConstraintDemon">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#PyConstraintDemon">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">PyConstraintDemon</span><wbr>(<span class="base"><a href="#PyDemon">PyDemon</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">PyConstraintDemon</span><span class="p">(</span><span class="n">PyDemon</span><span class="p">):</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="n">delayed</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">PyDemon</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__constraint</span> <span class="o">=</span> <span class="n">ct</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__method</span> <span class="o">=</span> <span class="n">method</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__delayed</span> <span class="o">=</span> <span class="n">delayed</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__args</span> <span class="o">=</span> <span class="n">args</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__method</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__constraint</span><span class="p">,</span> <span class="o">*</span><span class="bp">self</span><span class="o">.</span><span class="n">__args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Priority</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="n">Solver</span><span class="o">.</span><span class="n">DELAYED_PRIORITY</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__delayed</span> <span class="k">else</span> <span class="n">Solver</span><span class="o">.</span><span class="n">NORMAL_PRIORITY</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="s1">'PyConstraintDemon'</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>A Demon is the base element of a propagation queue. It is the main
|
|
object responsible for implementing the actual propagation
|
|
of the constraint and pruning the inconsistent values in the domains
|
|
of the variables. The main concept is that demons are listeners that are
|
|
attached to the variables and listen to their modifications.</p>
|
|
|
|
<h6 id="there-are-two-methods">There are two methods</h6>
|
|
|
|
<blockquote>
|
|
<ul>
|
|
<li>Run() is the actual method called when the demon is processed.</li>
|
|
<li>priority() returns its priority. Standard priorities are slow, normal
|
|
or fast. "immediate" is reserved for variables and is treated separately.</li>
|
|
</ul>
|
|
</blockquote>
|
|
</div>
|
|
|
|
|
|
<div id="PyConstraintDemon.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyConstraintDemon.__init__">#  </a>
|
|
|
|
|
|
<span class="name">PyConstraintDemon</span><span class="signature">(ct, method, delayed, *args)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ct</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="n">delayed</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">PyDemon</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__constraint</span> <span class="o">=</span> <span class="n">ct</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__method</span> <span class="o">=</span> <span class="n">method</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__delayed</span> <span class="o">=</span> <span class="n">delayed</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__args</span> <span class="o">=</span> <span class="n">args</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This indicates the priority of a demon. Immediate demons are treated
|
|
separately and corresponds to variables.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="PyConstraintDemon.Run" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyConstraintDemon.Run">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Run</span><span class="signature">(self, solver)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Run</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__method</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">__constraint</span><span class="p">,</span> <span class="o">*</span><span class="bp">self</span><span class="o">.</span><span class="n">__args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="PyConstraintDemon.Priority" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyConstraintDemon.Priority">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Priority</span><span class="signature">(self)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Priority</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="n">Solver</span><span class="o">.</span><span class="n">DELAYED_PRIORITY</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">__delayed</span> <span class="k">else</span> <span class="n">Solver</span><span class="o">.</span><span class="n">NORMAL_PRIORITY</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method returns the priority of the demon. Usually a demon is
|
|
fast, slow or normal. Immediate demons are reserved for internal
|
|
use to maintain variables.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="PyConstraintDemon.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyConstraintDemon.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="s1">'PyConstraintDemon'</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#PyDemon">PyDemon</a></dt>
|
|
<dd id="PyConstraintDemon.RunWrapper" class="function"><a href="#PyDemon.RunWrapper">RunWrapper</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#Demon">Demon</a></dt>
|
|
<dd id="PyConstraintDemon.thisown" class="variable"><a href="#Demon.thisown">thisown</a></dd>
|
|
<dd id="PyConstraintDemon.Inhibit" class="function"><a href="#Demon.Inhibit">Inhibit</a></dd>
|
|
<dd id="PyConstraintDemon.Desinhibit" class="function"><a href="#Demon.Desinhibit">Desinhibit</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="PyConstraint">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#PyConstraint">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">PyConstraint</span><wbr>(<span class="base"><a href="#Constraint">Constraint</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">PyConstraint</span><span class="p">(</span><span class="n">Constraint</span><span class="p">):</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="n">Constraint</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__demons</span> <span class="o">=</span> <span class="p">[]</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Demon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">demon</span> <span class="o">=</span> <span class="n">PyConstraintDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__demons</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">demon</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">demon</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DelayedDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">demon</span> <span class="o">=</span> <span class="n">PyConstraintDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__demons</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">demon</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">demon</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitialPropagateDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">solver</span><span class="p">()</span><span class="o">.</span><span class="n">ConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DelayedInitialPropagateDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">solver</span><span class="p">()</span><span class="o">.</span><span class="n">DelayedConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">InitialPropagate</span><span class="p">()</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s1">'CP Solver fail'</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">solver</span><span class="p">()</span><span class="o">.</span><span class="n">ShouldFail</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="s2">"PyConstraint"</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>A constraint is the main modeling object. It provides two methods:</p>
|
|
|
|
<ul>
|
|
<li>Post() is responsible for creating the demons and attaching them to
|
|
immediate demons().</li>
|
|
<li>InitialPropagate() is called once just after Post and performs
|
|
the initial propagation. The subsequent propagations will be performed
|
|
by the demons Posted during the post() method.</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<div id="PyConstraint.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyConstraint.__init__">#  </a>
|
|
|
|
|
|
<span class="name">PyConstraint</span><span class="signature">(solver)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">):</span>
|
|
<span class="n">Constraint</span><span class="o">.</span><span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solver</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__demons</span> <span class="o">=</span> <span class="p">[]</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="PyConstraint.Demon" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyConstraint.Demon">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Demon</span><span class="signature">(self, method, *args)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Demon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">demon</span> <span class="o">=</span> <span class="n">PyConstraintDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="kc">False</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__demons</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">demon</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">demon</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="PyConstraint.DelayedDemon" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyConstraint.DelayedDemon">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DelayedDemon</span><span class="signature">(self, method, *args)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DelayedDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">demon</span> <span class="o">=</span> <span class="n">PyConstraintDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">method</span><span class="p">,</span> <span class="kc">True</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">__demons</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">demon</span><span class="p">)</span>
|
|
<span class="k">return</span> <span class="n">demon</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="PyConstraint.InitialPropagateDemon" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyConstraint.InitialPropagateDemon">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">InitialPropagateDemon</span><span class="signature">(self)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">InitialPropagateDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">solver</span><span class="p">()</span><span class="o">.</span><span class="n">ConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="PyConstraint.DelayedInitialPropagateDemon" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyConstraint.DelayedInitialPropagateDemon">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DelayedInitialPropagateDemon</span><span class="signature">(self)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DelayedInitialPropagateDemon</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">solver</span><span class="p">()</span><span class="o">.</span><span class="n">DelayedConstraintInitialPropagateCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="PyConstraint.InitialPropagateWrapper" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyConstraint.InitialPropagateWrapper">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">InitialPropagateWrapper</span><span class="signature">(self)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">try</span><span class="p">:</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">InitialPropagate</span><span class="p">()</span>
|
|
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">e</span><span class="p">:</span>
|
|
<span class="k">if</span> <span class="s1">'CP Solver fail'</span> <span class="ow">in</span> <span class="nb">str</span><span class="p">(</span><span class="n">e</span><span class="p">):</span>
|
|
<span class="bp">self</span><span class="o">.</span><span class="n">solver</span><span class="p">()</span><span class="o">.</span><span class="n">ShouldFail</span><span class="p">()</span>
|
|
<span class="k">else</span><span class="p">:</span>
|
|
<span class="k">raise</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method performs the initial propagation of the
|
|
constraint. It is called just after the post.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="PyConstraint.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#PyConstraint.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self)</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="k">return</span> <span class="s2">"PyConstraint"</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#Constraint">Constraint</a></dt>
|
|
<dd id="PyConstraint.thisown" class="variable"><a href="#Constraint.thisown">thisown</a></dd>
|
|
<dd id="PyConstraint.Post" class="function"><a href="#Constraint.Post">Post</a></dd>
|
|
<dd id="PyConstraint.Var" class="function"><a href="#Constraint.Var">Var</a></dd>
|
|
<dd id="PyConstraint.Square" class="function"><a href="#Constraint.Square">Square</a></dd>
|
|
<dd id="PyConstraint.MapTo" class="function"><a href="#Constraint.MapTo">MapTo</a></dd>
|
|
<dd id="PyConstraint.IndexOf" class="function"><a href="#Constraint.IndexOf">IndexOf</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#PropagationBaseObject">PropagationBaseObject</a></dt>
|
|
<dd id="PyConstraint.solver" class="function"><a href="#PropagationBaseObject.solver">solver</a></dd>
|
|
<dd id="PyConstraint.Name" class="function"><a href="#PropagationBaseObject.Name">Name</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="RoutingIndexManager">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#RoutingIndexManager">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">RoutingIndexManager</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">RoutingIndexManager</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Manager for any NodeIndex <-> variable index conversion. The routing solver</span>
|
|
<span class="sd"> uses variable indices internally and through its API. These variable indices</span>
|
|
<span class="sd"> are tricky to manage directly because one Node can correspond to a multitude</span>
|
|
<span class="sd"> of variables, depending on the number of times they appear in the model, and</span>
|
|
<span class="sd"> if they're used as start and/or end points. This class aims to simplify</span>
|
|
<span class="sd"> variable index usage, allowing users to use NodeIndex instead.</span>
|
|
|
|
<span class="sd"> Usage:</span>
|
|
|
|
<span class="sd"> .. code-block:: c++</span>
|
|
|
|
<span class="sd"> auto starts_ends = ...; /// These are NodeIndex.</span>
|
|
<span class="sd"> RoutingIndexManager manager(10, 4, starts_ends); // 10 nodes, 4 vehicles.</span>
|
|
<span class="sd"> RoutingModel model(manager);</span>
|
|
|
|
<span class="sd"> Then, use 'manager.NodeToIndex(node)' whenever model requires a variable</span>
|
|
<span class="sd"> index.</span>
|
|
|
|
<span class="sd"> Note: the mapping between node indices and variables indices is subject to</span>
|
|
<span class="sd"> change so no assumption should be made on it. The only guarantee is that</span>
|
|
<span class="sd"> indices range between 0 and n-1, where n = number of vehicles * 2 (for start</span>
|
|
<span class="sd"> and end nodes) + number of non-start or end nodes.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_RoutingIndexManager</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_RoutingIndexManager</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumberOfNodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_GetNumberOfNodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumberOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_GetNumberOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumberOfIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_GetNumberOfIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetStartIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_GetStartIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetEndIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_GetEndIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NodeToIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">:</span> <span class="s2">"operations_research::RoutingIndexManager::NodeIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_NodeToIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IndexToNode</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingIndexManager::NodeIndex"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_IndexToNode</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Manager for any NodeIndex <-> variable index conversion. The routing solver
|
|
uses variable indices internally and through its API. These variable indices
|
|
are tricky to manage directly because one Node can correspond to a multitude
|
|
of variables, depending on the number of times they appear in the model, and
|
|
if they're used as start and/or end points. This class aims to simplify
|
|
variable index usage, allowing users to use NodeIndex instead.</p>
|
|
|
|
<h6 id="usage">Usage</h6>
|
|
|
|
<blockquote>
|
|
<p>.. code-block:: c++</p>
|
|
|
|
<pre><code>auto starts_ends = ...; /// These are NodeIndex.
|
|
RoutingIndexManager manager(10, 4, starts_ends); // 10 nodes, 4 vehicles.
|
|
RoutingModel model(manager);
|
|
</code></pre>
|
|
</blockquote>
|
|
|
|
<p>Then, use 'manager.NodeToIndex(node)' whenever model requires a variable
|
|
index.</p>
|
|
|
|
<p>Note: the mapping between node indices and variables indices is subject to
|
|
change so no assumption should be made on it. The only guarantee is that
|
|
indices range between 0 and n-1, where n = number of vehicles * 2 (for start
|
|
and end nodes) + number of non-start or end nodes.</p>
|
|
</div>
|
|
|
|
|
|
<div id="RoutingIndexManager.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingIndexManager.__init__">#  </a>
|
|
|
|
|
|
<span class="name">RoutingIndexManager</span><span class="signature">(*args)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_RoutingIndexManager</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingIndexManager.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingIndexManager.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingIndexManager.GetNumberOfNodes" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingIndexManager.GetNumberOfNodes">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetNumberOfNodes</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetNumberOfNodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_GetNumberOfNodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingIndexManager.GetNumberOfVehicles" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingIndexManager.GetNumberOfVehicles">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetNumberOfVehicles</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetNumberOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_GetNumberOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingIndexManager.GetNumberOfIndices" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingIndexManager.GetNumberOfIndices">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetNumberOfIndices</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetNumberOfIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_GetNumberOfIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingIndexManager.GetStartIndex" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingIndexManager.GetStartIndex">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetStartIndex</span><span class="signature">(self, vehicle: int) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetStartIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_GetStartIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingIndexManager.GetEndIndex" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingIndexManager.GetEndIndex">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetEndIndex</span><span class="signature">(self, vehicle: int) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetEndIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_GetEndIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingIndexManager.NodeToIndex" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingIndexManager.NodeToIndex">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NodeToIndex</span><span class="signature">(
|
|
self,
|
|
node: 'operations_research::RoutingIndexManager::NodeIndex'
|
|
) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NodeToIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">:</span> <span class="s2">"operations_research::RoutingIndexManager::NodeIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_NodeToIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingIndexManager.IndexToNode" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingIndexManager.IndexToNode">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IndexToNode</span><span class="signature">(
|
|
self,
|
|
index: 'int64_t'
|
|
) -> 'operations_research::RoutingIndexManager::NodeIndex'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IndexToNode</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingIndexManager::NodeIndex"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingIndexManager_IndexToNode</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="DefaultRoutingModelParameters">
|
|
<div class="attr function"><a class="headerlink" href="#DefaultRoutingModelParameters">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DefaultRoutingModelParameters</span><span class="signature">() -> 'operations_research::RoutingModelParameters'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">DefaultRoutingModelParameters</span><span class="p">()</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModelParameters"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultRoutingModelParameters</span><span class="p">()</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</section>
|
|
<section id="DefaultRoutingSearchParameters">
|
|
<div class="attr function"><a class="headerlink" href="#DefaultRoutingSearchParameters">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DefaultRoutingSearchParameters</span><span class="signature">() -> 'operations_research::RoutingSearchParameters'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">DefaultRoutingSearchParameters</span><span class="p">()</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingSearchParameters"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">DefaultRoutingSearchParameters</span><span class="p">()</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</section>
|
|
<section id="FindErrorInRoutingSearchParameters">
|
|
<div class="attr function"><a class="headerlink" href="#FindErrorInRoutingSearchParameters">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">FindErrorInRoutingSearchParameters</span><span class="signature">(
|
|
search_parameters: 'operations_research::RoutingSearchParameters const &'
|
|
) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">FindErrorInRoutingSearchParameters</span><span class="p">(</span><span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns an empty std::string if the routing search parameters are valid, and</span>
|
|
<span class="sd"> a non-empty, human readable error description if they're not.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">FindErrorInRoutingSearchParameters</span><span class="p">(</span><span class="n">search_parameters</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns an empty std::string if the routing search parameters are valid, and
|
|
a non-empty, human readable error description if they're not.</p>
|
|
</div>
|
|
|
|
|
|
</section>
|
|
<section id="RoutingModel">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#RoutingModel">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">RoutingModel</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">RoutingModel</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
<span class="n">ROUTING_NOT_SOLVED</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ROUTING_NOT_SOLVED</span>
|
|
<span class="sa">r</span><span class="sd">""" Problem not solved yet (before calling RoutingModel::Solve())."""</span>
|
|
<span class="n">ROUTING_SUCCESS</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ROUTING_SUCCESS</span>
|
|
<span class="sa">r</span><span class="sd">""" Problem solved successfully after calling RoutingModel::Solve()."""</span>
|
|
<span class="n">ROUTING_FAIL</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ROUTING_FAIL</span>
|
|
<span class="sa">r</span><span class="sd">""" No solution found to the problem after calling RoutingModel::Solve()."""</span>
|
|
<span class="n">ROUTING_FAIL_TIMEOUT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ROUTING_FAIL_TIMEOUT</span>
|
|
<span class="sa">r</span><span class="sd">""" Time limit reached before finding a solution with RoutingModel::Solve()."""</span>
|
|
<span class="n">ROUTING_INVALID</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ROUTING_INVALID</span>
|
|
<span class="sa">r</span><span class="sd">""" Model, model parameters or flags are not valid."""</span>
|
|
<span class="n">PICKUP_AND_DELIVERY_NO_ORDER</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_PICKUP_AND_DELIVERY_NO_ORDER</span>
|
|
<span class="sa">r</span><span class="sd">""" Any precedence is accepted."""</span>
|
|
<span class="n">PICKUP_AND_DELIVERY_LIFO</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_PICKUP_AND_DELIVERY_LIFO</span>
|
|
<span class="sa">r</span><span class="sd">""" Deliveries must be performed in reverse order of pickups."""</span>
|
|
<span class="n">PICKUP_AND_DELIVERY_FIFO</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_PICKUP_AND_DELIVERY_FIFO</span>
|
|
<span class="sa">r</span><span class="sd">""" Deliveries must be performed in the same order as pickups."""</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_RoutingModel</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_RoutingModel</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RegisterUnaryTransitVector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Registers 'callback' and returns its index."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterUnaryTransitVector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RegisterUnaryTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::TransitCallback1"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterUnaryTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RegisterPositiveUnaryTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::TransitCallback1"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterPositiveUnaryTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RegisterTransitMatrix</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterTransitMatrix</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RegisterTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::TransitCallback2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RegisterPositiveTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::TransitCallback2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterPositiveTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::TransitCallback2 const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_TransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">UnaryTransitCallbackOrNull</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::TransitCallback1 const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_UnaryTransitCallbackOrNull</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Model creation</span>
|
|
<span class="sd"> Methods to add dimensions to routes; dimensions represent quantities</span>
|
|
<span class="sd"> accumulated at nodes along the routes. They represent quantities such as</span>
|
|
<span class="sd"> weights or volumes carried along the route, or distance or times.</span>
|
|
<span class="sd"> Quantities at a node are represented by "cumul" variables and the increase</span>
|
|
<span class="sd"> or decrease of quantities between nodes are represented by "transit"</span>
|
|
<span class="sd"> variables. These variables are linked as follows:</span>
|
|
<span class="sd"> if j == next(i), cumul(j) = cumul(i) + transit(i) + slack(i)</span>
|
|
<span class="sd"> where slack is a positive slack variable (can represent waiting times for</span>
|
|
<span class="sd"> a time dimension).</span>
|
|
<span class="sd"> Setting the value of fix_start_cumul_to_zero to true will force the</span>
|
|
<span class="sd"> "cumul" variable of the start node of all vehicles to be equal to 0.</span>
|
|
<span class="sd"> Creates a dimension where the transit variable is constrained to be</span>
|
|
<span class="sd"> equal to evaluator(i, next(i)); 'slack_max' is the upper bound of the</span>
|
|
<span class="sd"> slack variable and 'capacity' is the upper bound of the cumul variables.</span>
|
|
<span class="sd"> 'name' is the name used to reference the dimension; this name is used to</span>
|
|
<span class="sd"> get cumul and transit variables from the routing model.</span>
|
|
<span class="sd"> Returns false if a dimension with the same name has already been created</span>
|
|
<span class="sd"> (and doesn't create the new dimension).</span>
|
|
<span class="sd"> Takes ownership of the callback 'evaluator'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddDimensionWithVehicleTransits</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_indices</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddDimensionWithVehicleTransits</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_indices</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddDimensionWithVehicleCapacity</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle_capacities</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddDimensionWithVehicleCapacity</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">,</span> <span class="n">vehicle_capacities</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddDimensionWithVehicleTransitAndCapacity</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_indices</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle_capacities</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddDimensionWithVehicleTransitAndCapacity</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_indices</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">,</span> <span class="n">vehicle_capacities</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddConstantDimensionWithSlack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::pair< int,bool >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a dimension where the transit variable is constrained to be</span>
|
|
<span class="sd"> equal to 'value'; 'capacity' is the upper bound of the cumul variables.</span>
|
|
<span class="sd"> 'name' is the name used to reference the dimension; this name is used to</span>
|
|
<span class="sd"> get cumul and transit variables from the routing model.</span>
|
|
<span class="sd"> Returns a pair consisting of an index to the registered unary transit</span>
|
|
<span class="sd"> callback and a bool denoting whether the dimension has been created.</span>
|
|
<span class="sd"> It is false if a dimension with the same name has already been created</span>
|
|
<span class="sd"> (and doesn't create the new dimension but still register a new callback).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddConstantDimensionWithSlack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::pair< int,bool >"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddVectorDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::pair< int,bool >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a dimension where the transit variable is constrained to be</span>
|
|
<span class="sd"> equal to 'values[i]' for node i; 'capacity' is the upper bound of</span>
|
|
<span class="sd"> the cumul variables. 'name' is the name used to reference the dimension;</span>
|
|
<span class="sd"> this name is used to get cumul and transit variables from the routing</span>
|
|
<span class="sd"> model.</span>
|
|
<span class="sd"> Returns a pair consisting of an index to the registered unary transit</span>
|
|
<span class="sd"> callback and a bool denoting whether the dimension has been created.</span>
|
|
<span class="sd"> It is false if a dimension with the same name has already been created</span>
|
|
<span class="sd"> (and doesn't create the new dimension but still register a new callback).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddVectorDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddMatrixDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > >"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::pair< int,bool >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a dimension where the transit variable is constrained to be</span>
|
|
<span class="sd"> equal to 'values[i][next(i)]' for node i; 'capacity' is the upper bound of</span>
|
|
<span class="sd"> the cumul variables. 'name' is the name used to reference the dimension;</span>
|
|
<span class="sd"> this name is used to get cumul and transit variables from the routing</span>
|
|
<span class="sd"> model.</span>
|
|
<span class="sd"> Returns a pair consisting of an index to the registered transit callback</span>
|
|
<span class="sd"> and a bool denoting whether the dimension has been created.</span>
|
|
<span class="sd"> It is false if a dimension with the same name has already been created</span>
|
|
<span class="sd"> (and doesn't create the new dimension but still register a new callback).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddMatrixDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MakePathSpansAndTotalSlacks</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">,</span> <span class="n">spans</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * >"</span><span class="p">,</span> <span class="n">total_slacks</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> For every vehicle of the routing model:</span>
|
|
<span class="sd"> - if total_slacks[vehicle] is not nullptr, constrains it to be the sum of</span>
|
|
<span class="sd"> slacks on that vehicle, that is,</span>
|
|
<span class="sd"> dimension->CumulVar(end) - dimension->CumulVar(start) -</span>
|
|
<span class="sd"> sum_{node in path of vehicle} dimension->FixedTransitVar(node).</span>
|
|
<span class="sd"> - if spans[vehicle] is not nullptr, constrains it to be</span>
|
|
<span class="sd"> dimension->CumulVar(end) - dimension->CumulVar(start)</span>
|
|
<span class="sd"> This does stronger propagation than a decomposition, and takes breaks into</span>
|
|
<span class="sd"> account.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_MakePathSpansAndTotalSlacks</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">,</span> <span class="n">spans</span><span class="p">,</span> <span class="n">total_slacks</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetAllDimensionNames</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::string >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Outputs the names of all dimensions added to the routing engine."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetAllDimensionNames</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDimensions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< operations_research::RoutingDimension * > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns all dimensions of the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDimensions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDimensionsWithSoftOrSpanCosts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< operations_research::RoutingDimension * >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns dimensions with soft or vehicle span costs."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDimensionsWithSoftOrSpanCosts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetGlobalDimensionCumulOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::unique_ptr< operations_research::GlobalDimensionCumulOptimizer > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns [global|local]_dimension_optimizers_, which are empty if the model</span>
|
|
<span class="sd"> has not been closed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetGlobalDimensionCumulOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetGlobalDimensionCumulMPOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::unique_ptr< operations_research::GlobalDimensionCumulOptimizer > > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetGlobalDimensionCumulMPOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetLocalDimensionCumulOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::unique_ptr< operations_research::LocalDimensionCumulOptimizer > > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetLocalDimensionCumulOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetLocalDimensionCumulMPOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::unique_ptr< operations_research::LocalDimensionCumulOptimizer > > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetLocalDimensionCumulMPOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetMutableGlobalCumulOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::GlobalDimensionCumulOptimizer *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the global/local dimension cumul optimizer for a given dimension,</span>
|
|
<span class="sd"> or nullptr if there is none.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMutableGlobalCumulOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetMutableGlobalCumulMPOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::GlobalDimensionCumulOptimizer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMutableGlobalCumulMPOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetMutableLocalCumulOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalDimensionCumulOptimizer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMutableLocalCumulOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetMutableLocalCumulMPOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalDimensionCumulOptimizer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMutableLocalCumulMPOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if a dimension exists for a given dimension name."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDimensionOrDie</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingDimension const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns a dimension from its name. Dies if the dimension does not exist."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDimensionOrDie</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetMutableDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingDimension *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a dimension from its name. Returns nullptr if the dimension does</span>
|
|
<span class="sd"> not exist.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMutableDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPrimaryConstrainedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Set the given dimension as "primary constrained". As of August 2013, this</span>
|
|
<span class="sd"> is only used by ArcIsMoreConstrainedThanArc().</span>
|
|
<span class="sd"> "dimension" must be the name of an existing dimension, or be empty, in</span>
|
|
<span class="sd"> which case there will not be a primary dimension after this call.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetPrimaryConstrainedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetPrimaryConstrainedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Get the primary constrained dimension, or an empty string if it is unset."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetPrimaryConstrainedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDimensionResourceGroupIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the indices of resource groups for this dimension. This method can</span>
|
|
<span class="sd"> only be called after the model has been closed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDimensionResourceGroupIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddDisjunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::DisjunctionIndex"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a disjunction constraint on the indices: exactly 'max_cardinality' of</span>
|
|
<span class="sd"> the indices are active. Start and end indices of any vehicle cannot be</span>
|
|
<span class="sd"> part of a disjunction.</span>
|
|
|
|
<span class="sd"> If a penalty is given, at most 'max_cardinality' of the indices can be</span>
|
|
<span class="sd"> active, and if less are active, 'penalty' is payed per inactive index.</span>
|
|
<span class="sd"> This is equivalent to adding the constraint:</span>
|
|
<span class="sd"> p + Sum(i)active[i] == max_cardinality</span>
|
|
<span class="sd"> where p is an integer variable, and the following cost to the cost</span>
|
|
<span class="sd"> function:</span>
|
|
<span class="sd"> p * penalty.</span>
|
|
<span class="sd"> 'penalty' must be positive to make the disjunction optional; a negative</span>
|
|
<span class="sd"> penalty will force 'max_cardinality' indices of the disjunction to be</span>
|
|
<span class="sd"> performed, and therefore p == 0.</span>
|
|
<span class="sd"> Note: passing a vector with a single index will model an optional index</span>
|
|
<span class="sd"> with a penalty cost if it is not visited.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddDisjunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDisjunctionIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< operations_research::RoutingModel::DisjunctionIndex > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the indices of the disjunctions to which an index belongs."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDisjunctionIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDisjunctionPenalty</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::DisjunctionIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the penalty of the node disjunction of index 'index'."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDisjunctionPenalty</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDisjunctionMaxCardinality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::DisjunctionIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the maximum number of possible active nodes of the node</span>
|
|
<span class="sd"> disjunction of index 'index'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDisjunctionMaxCardinality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumberOfDisjunctions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of node disjunctions in the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNumberOfDisjunctions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetPerfectBinaryDisjunctions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::pair< int64_t,int64_t > >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the list of all perfect binary disjunctions, as pairs of variable</span>
|
|
<span class="sd"> indices: a disjunction is "perfect" when its variables do not appear in</span>
|
|
<span class="sd"> any other disjunction. Each pair is sorted (lowest variable index first),</span>
|
|
<span class="sd"> and the output vector is also sorted (lowest pairs first).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetPerfectBinaryDisjunctions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IgnoreDisjunctionsAlreadyForcedToZero</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> SPECIAL: Makes the solver ignore all the disjunctions whose active</span>
|
|
<span class="sd"> variables are all trivially zero (i.e. Max() == 0), by setting their</span>
|
|
<span class="sd"> max_cardinality to 0.</span>
|
|
<span class="sd"> This can be useful when using the BaseBinaryDisjunctionNeighborhood</span>
|
|
<span class="sd"> operators, in the context of arc-based routing.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IgnoreDisjunctionsAlreadyForcedToZero</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddSoftSameVehicleConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">indices</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">,</span> <span class="n">cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a soft constraint to force a set of variable indices to be on the</span>
|
|
<span class="sd"> same vehicle. If all nodes are not on the same vehicle, each extra vehicle</span>
|
|
<span class="sd"> used adds 'cost' to the cost function.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddSoftSameVehicleConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">indices</span><span class="p">,</span> <span class="n">cost</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetAllowedVehiclesForIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicles</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets the vehicles which can visit a given node. If the node is in a</span>
|
|
<span class="sd"> disjunction, this will not prevent it from being unperformed.</span>
|
|
<span class="sd"> Specifying an empty vector of vehicles has no effect (all vehicles</span>
|
|
<span class="sd"> will be allowed to visit the node).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetAllowedVehiclesForIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicles</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsVehicleAllowedForIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if a vehicle is allowed to visit a given node."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IsVehicleAllowedForIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddPickupAndDelivery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pickup</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">delivery</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Notifies that index1 and index2 form a pair of nodes which should belong</span>
|
|
<span class="sd"> to the same route. This methods helps the search find better solutions,</span>
|
|
<span class="sd"> especially in the local search phase.</span>
|
|
<span class="sd"> It should be called each time you have an equality constraint linking</span>
|
|
<span class="sd"> the vehicle variables of two node (including for instance pickup and</span>
|
|
<span class="sd"> delivery problems):</span>
|
|
<span class="sd"> Solver* const solver = routing.solver();</span>
|
|
<span class="sd"> int64_t index1 = manager.NodeToIndex(node1);</span>
|
|
<span class="sd"> int64_t index2 = manager.NodeToIndex(node2);</span>
|
|
<span class="sd"> solver->AddConstraint(solver->MakeEquality(</span>
|
|
<span class="sd"> routing.VehicleVar(index1),</span>
|
|
<span class="sd"> routing.VehicleVar(index2)));</span>
|
|
<span class="sd"> routing.AddPickupAndDelivery(index1, index2);</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddPickupAndDelivery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pickup</span><span class="p">,</span> <span class="n">delivery</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddPickupAndDeliverySets</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pickup_disjunction</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::DisjunctionIndex"</span><span class="p">,</span> <span class="n">delivery_disjunction</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::DisjunctionIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as AddPickupAndDelivery but notifying that the performed node from</span>
|
|
<span class="sd"> the disjunction of index 'pickup_disjunction' is on the same route as the</span>
|
|
<span class="sd"> performed node from the disjunction of index 'delivery_disjunction'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddPickupAndDeliverySets</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pickup_disjunction</span><span class="p">,</span> <span class="n">delivery_disjunction</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetPickupIndexPairs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::pair< int,int > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns pairs for which the node is a pickup; the first element of each</span>
|
|
<span class="sd"> pair is the index in the pickup and delivery pairs list in which the</span>
|
|
<span class="sd"> pickup appears, the second element is its index in the pickups list.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetPickupIndexPairs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDeliveryIndexPairs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::pair< int,int > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Same as above for deliveries."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDeliveryIndexPairs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPickupAndDeliveryPolicyOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">policy</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::PickupAndDeliveryPolicy"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets the Pickup and delivery policy of all vehicles. It is equivalent to</span>
|
|
<span class="sd"> calling SetPickupAndDeliveryPolicyOfVehicle on all vehicles.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetPickupAndDeliveryPolicyOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">policy</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPickupAndDeliveryPolicyOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">policy</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::PickupAndDeliveryPolicy"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetPickupAndDeliveryPolicyOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">policy</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetPickupAndDeliveryPolicyOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::PickupAndDeliveryPolicy"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetPickupAndDeliveryPolicyOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumOfSingletonNodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the number of non-start/end nodes which do not appear in a</span>
|
|
<span class="sd"> pickup/delivery pair.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNumOfSingletonNodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="n">TYPE_ADDED_TO_VEHICLE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_TYPE_ADDED_TO_VEHICLE</span>
|
|
<span class="sa">r</span><span class="sd">""" When visited, the number of types 'T' on the vehicle increases by one."""</span>
|
|
<span class="n">ADDED_TYPE_REMOVED_FROM_VEHICLE</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ADDED_TYPE_REMOVED_FROM_VEHICLE</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> When visited, one instance of type 'T' previously added to the route</span>
|
|
<span class="sd"> (TYPE_ADDED_TO_VEHICLE), if any, is removed from the vehicle.</span>
|
|
<span class="sd"> If the type was not previously added to the route or all added instances</span>
|
|
<span class="sd"> have already been removed, this visit has no effect on the types.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">TYPE_ON_VEHICLE_UP_TO_VISIT</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_TYPE_ON_VEHICLE_UP_TO_VISIT</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> With the following policy, the visit enforces that type 'T' is</span>
|
|
<span class="sd"> considered on the route from its start until this node is visited.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="n">TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The visit doesn't have an impact on the number of types 'T' on the</span>
|
|
<span class="sd"> route, as it's (virtually) added and removed directly.</span>
|
|
<span class="sd"> This policy can be used for visits which are part of an incompatibility</span>
|
|
<span class="sd"> or requirement set without affecting the type count on the route.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetVisitType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">type_policy</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::VisitTypePolicy"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetVisitType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="nb">type</span><span class="p">,</span> <span class="n">type_policy</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetVisitType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVisitType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetSingleNodesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetSingleNodesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetPairIndicesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetPairIndicesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetVisitTypePolicy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::VisitTypePolicy"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVisitTypePolicy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CloseVisitTypes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This function should be called once all node visit types have been set and</span>
|
|
<span class="sd"> prior to adding any incompatibilities/requirements.</span>
|
|
<span class="sd"> "close" types.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CloseVisitTypes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumberOfVisitTypes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNumberOfVisitTypes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddHardTypeIncompatibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type1</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">type2</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Incompatibilities:</span>
|
|
<span class="sd"> Two nodes with "hard" incompatible types cannot share the same route at</span>
|
|
<span class="sd"> all, while with a "temporal" incompatibility they can't be on the same</span>
|
|
<span class="sd"> route at the same time.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddHardTypeIncompatibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type1</span><span class="p">,</span> <span class="n">type2</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddTemporalTypeIncompatibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type1</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">type2</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddTemporalTypeIncompatibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type1</span><span class="p">,</span> <span class="n">type2</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetHardTypeIncompatibilitiesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"absl::flat_hash_set< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns visit types incompatible with a given type."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetHardTypeIncompatibilitiesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetTemporalTypeIncompatibilitiesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"absl::flat_hash_set< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetTemporalTypeIncompatibilitiesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasHardTypeIncompatibilities</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true iff any hard (resp. temporal) type incompatibilities have</span>
|
|
<span class="sd"> been added to the model.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasHardTypeIncompatibilities</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasTemporalTypeIncompatibilities</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasTemporalTypeIncompatibilities</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddSameVehicleRequiredTypeAlternatives</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">:</span> <span class="s2">"absl::flat_hash_set< int >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Requirements:</span>
|
|
<span class="sd"> NOTE: As of 2019-04, cycles in the requirement graph are not supported,</span>
|
|
<span class="sd"> and lead to the dependent nodes being skipped if possible (otherwise</span>
|
|
<span class="sd"> the model is considered infeasible).</span>
|
|
<span class="sd"> The following functions specify that "dependent_type" requires at least</span>
|
|
<span class="sd"> one of the types in "required_type_alternatives".</span>
|
|
|
|
<span class="sd"> For same-vehicle requirements, a node of dependent type type_D requires at</span>
|
|
<span class="sd"> least one node of type type_R among the required alternatives on the same</span>
|
|
<span class="sd"> route.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddSameVehicleRequiredTypeAlternatives</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddRequiredTypeAlternativesWhenAddingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">:</span> <span class="s2">"absl::flat_hash_set< int >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> If type_D depends on type_R when adding type_D, any node_D of type_D and</span>
|
|
<span class="sd"> VisitTypePolicy TYPE_ADDED_TO_VEHICLE or</span>
|
|
<span class="sd"> TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED requires at least one type_R on its</span>
|
|
<span class="sd"> vehicle at the time node_D is visited.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddRequiredTypeAlternativesWhenAddingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddRequiredTypeAlternativesWhenRemovingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">:</span> <span class="s2">"absl::flat_hash_set< int >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The following requirements apply when visiting dependent nodes that remove</span>
|
|
<span class="sd"> their type from the route, i.e. type_R must be on the vehicle when type_D</span>
|
|
<span class="sd"> of VisitTypePolicy ADDED_TYPE_REMOVED_FROM_VEHICLE,</span>
|
|
<span class="sd"> TYPE_ON_VEHICLE_UP_TO_VISIT or TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED is</span>
|
|
<span class="sd"> visited.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddRequiredTypeAlternativesWhenRemovingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetSameVehicleRequiredTypeAlternativesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< absl::flat_hash_set< int > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the set of same-vehicle requirement alternatives for the given</span>
|
|
<span class="sd"> type.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetSameVehicleRequiredTypeAlternativesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetRequiredTypeAlternativesWhenAddingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< absl::flat_hash_set< int > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the set of requirement alternatives when adding the given type."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetRequiredTypeAlternativesWhenAddingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetRequiredTypeAlternativesWhenRemovingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< absl::flat_hash_set< int > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the set of requirement alternatives when removing the given type."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetRequiredTypeAlternativesWhenRemovingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasSameVehicleTypeRequirements</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true iff any same-route (resp. temporal) type requirements have</span>
|
|
<span class="sd"> been added to the model.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasSameVehicleTypeRequirements</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasTemporalTypeRequirements</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasTemporalTypeRequirements</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasTypeRegulations</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true iff the model has any incompatibilities or requirements set</span>
|
|
<span class="sd"> on node types.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasTypeRegulations</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">UnperformedPenalty</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Get the "unperformed" penalty of a node. This is only well defined if the</span>
|
|
<span class="sd"> node is only part of a single Disjunction, and that disjunction has a</span>
|
|
<span class="sd"> penalty. For forced active nodes returns max int64_t. In all other cases,</span>
|
|
<span class="sd"> this returns 0.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_UnperformedPenalty</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">UnperformedPenaltyOrValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">var_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as above except that it returns default_value instead of 0 when</span>
|
|
<span class="sd"> penalty is not well defined (default value is passed as first argument to</span>
|
|
<span class="sd"> simplify the usage of the method in a callback).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_UnperformedPenaltyOrValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default_value</span><span class="p">,</span> <span class="n">var_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetDepot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the variable index of the first starting or ending node of all</span>
|
|
<span class="sd"> routes. If all routes start and end at the same node (single depot), this</span>
|
|
<span class="sd"> is the node returned.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDepot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetMaximumNumberOfActiveVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">max_active_vehicles</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Constrains the maximum number of active vehicles, aka the number of</span>
|
|
<span class="sd"> vehicles which do not have an empty route. For instance, this can be used</span>
|
|
<span class="sd"> to limit the number of routes in the case where there are fewer drivers</span>
|
|
<span class="sd"> than vehicles and that the fleet of vehicle is heterogeneous.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetMaximumNumberOfActiveVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">max_active_vehicles</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetMaximumNumberOfActiveVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the maximum number of active vehicles."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMaximumNumberOfActiveVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetArcCostEvaluatorOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets the cost function of the model such that the cost of a segment of a</span>
|
|
<span class="sd"> route between node 'from' and 'to' is evaluator(from, to), whatever the</span>
|
|
<span class="sd"> route or vehicle performing the route.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetArcCostEvaluatorOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetArcCostEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Sets the cost function for a given vehicle route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetArcCostEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetFixedCostOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets the fixed cost of all vehicle routes. It is equivalent to calling</span>
|
|
<span class="sd"> SetFixedCostOfVehicle on all vehicle routes.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetFixedCostOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetFixedCostOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Sets the fixed cost of one vehicle route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetFixedCostOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetFixedCostOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the route fixed cost taken into account if the route of the</span>
|
|
<span class="sd"> vehicle is not empty, aka there's at least one node on the route other</span>
|
|
<span class="sd"> than the first and last nodes.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetFixedCostOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetAmortizedCostFactorsOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">linear_cost_factor</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">quadratic_cost_factor</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The following methods set the linear and quadratic cost factors of</span>
|
|
<span class="sd"> vehicles (must be positive values). The default value of these parameters</span>
|
|
<span class="sd"> is zero for all vehicles.</span>
|
|
|
|
<span class="sd"> When set, the cost_ of the model will contain terms aiming at reducing the</span>
|
|
<span class="sd"> number of vehicles used in the model, by adding the following to the</span>
|
|
<span class="sd"> objective for every vehicle v:</span>
|
|
<span class="sd"> INDICATOR(v used in the model) *</span>
|
|
<span class="sd"> [linear_cost_factor_of_vehicle_[v]</span>
|
|
<span class="sd"> - quadratic_cost_factor_of_vehicle_[v]*(square of length of route v)]</span>
|
|
<span class="sd"> i.e. for every used vehicle, we add the linear factor as fixed cost, and</span>
|
|
<span class="sd"> subtract the square of the route length multiplied by the quadratic</span>
|
|
<span class="sd"> factor. This second term aims at making the routes as dense as possible.</span>
|
|
|
|
<span class="sd"> Sets the linear and quadratic cost factor of all vehicles.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetAmortizedCostFactorsOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">linear_cost_factor</span><span class="p">,</span> <span class="n">quadratic_cost_factor</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetAmortizedCostFactorsOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">linear_cost_factor</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">quadratic_cost_factor</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Sets the linear and quadratic cost factor of the given vehicle."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetAmortizedCostFactorsOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">linear_cost_factor</span><span class="p">,</span> <span class="n">quadratic_cost_factor</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetAmortizedLinearCostFactorOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetAmortizedLinearCostFactorOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetAmortizedQuadraticCostFactorOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetAmortizedQuadraticCostFactorOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ConsiderEmptyRouteCostsForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">consider_costs</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ConsiderEmptyRouteCostsForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">consider_costs</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AreEmptyRouteCostsConsideredForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AreEmptyRouteCostsConsideredForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetFirstSolutionEvaluator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Gets/sets the evaluator used during the search. Only relevant when</span>
|
|
<span class="sd"> RoutingSearchParameters.first_solution_strategy = EVALUATOR_STRATEGY.</span>
|
|
<span class="sd"> Takes ownership of evaluator.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetFirstSolutionEvaluator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddLocalSearchOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ls_operator</span><span class="p">:</span> <span class="s2">"LocalSearchOperator"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a local search operator to the set of operators used to solve the</span>
|
|
<span class="sd"> vehicle routing problem.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddLocalSearchOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ls_operator</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddSearchMonitor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">monitor</span><span class="p">:</span> <span class="s2">"SearchMonitor"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Adds a search monitor to the search used to solve the routing model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddSearchMonitor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">monitor</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddAtSolutionCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"std::function< void () >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a callback called each time a solution is found during the search.</span>
|
|
<span class="sd"> This is a shortcut to creating a monitor to call the callback on</span>
|
|
<span class="sd"> AtSolution() and adding it with AddSearchMonitor.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddAtSolutionCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddVariableMinimizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a variable to minimize in the solution finalizer. The solution</span>
|
|
<span class="sd"> finalizer is called each time a solution is found during the search and</span>
|
|
<span class="sd"> allows to instantiate secondary variables (such as dimension cumul</span>
|
|
<span class="sd"> variables).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddVariableMinimizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddVariableMaximizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a variable to maximize in the solution finalizer (see above for</span>
|
|
<span class="sd"> information on the solution finalizer).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddVariableMaximizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddWeightedVariableMinimizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a variable to minimize in the solution finalizer, with a weighted</span>
|
|
<span class="sd"> priority: the higher the more priority it has.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddWeightedVariableMinimizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">cost</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddVariableTargetToFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">target</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Add a variable to set the closest possible to the target value in the</span>
|
|
<span class="sd"> solution finalizer.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddVariableTargetToFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">target</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CloseModel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Closes the current routing model; after this method is called, no</span>
|
|
<span class="sd"> modification to the model can be done, but RoutesToAssignment becomes</span>
|
|
<span class="sd"> available. Note that CloseModel() is automatically called by Solve() and</span>
|
|
<span class="sd"> other methods that produce solution.</span>
|
|
<span class="sd"> This is equivalent to calling</span>
|
|
<span class="sd"> CloseModelWithParameters(DefaultRoutingSearchParameters()).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CloseModel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CloseModelWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as above taking search parameters (as of 10/2015 some the parameters</span>
|
|
<span class="sd"> have to be set when closing the model).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CloseModelWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Solve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Solves the current routing model; closes the current model.</span>
|
|
<span class="sd"> This is equivalent to calling</span>
|
|
<span class="sd"> SolveWithParameters(DefaultRoutingSearchParameters())</span>
|
|
<span class="sd"> or</span>
|
|
<span class="sd"> SolveFromAssignmentWithParameters(assignment,</span>
|
|
<span class="sd"> DefaultRoutingSearchParameters()).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_Solve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolveWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">,</span> <span class="n">solutions</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::Assignment const * > *"</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Solves the current routing model with the given parameters. If 'solutions'</span>
|
|
<span class="sd"> is specified, it will contain the k best solutions found during the search</span>
|
|
<span class="sd"> (from worst to best, including the one returned by this method), where k</span>
|
|
<span class="sd"> corresponds to the 'number_of_solutions_to_collect' in</span>
|
|
<span class="sd"> 'search_parameters'. Note that the Assignment returned by the method and</span>
|
|
<span class="sd"> the ones in solutions are owned by the underlying solver and should not be</span>
|
|
<span class="sd"> deleted.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SolveWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">,</span> <span class="n">solutions</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolveFromAssignmentWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">,</span> <span class="n">solutions</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::Assignment const * > *"</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as above, except that if assignment is not null, it will be used as</span>
|
|
<span class="sd"> the initial solution.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SolveFromAssignmentWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">,</span> <span class="n">solutions</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SolveFromAssignmentsWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignments</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::Assignment const * > const &"</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">,</span> <span class="n">solutions</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::Assignment const * > *"</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as above but will try all assignments in order as first solutions</span>
|
|
<span class="sd"> until one succeeds.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SolveFromAssignmentsWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignments</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">,</span> <span class="n">solutions</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetAssignmentFromOtherModelAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">target_assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">source_model</span><span class="p">:</span> <span class="s2">"RoutingModel"</span><span class="p">,</span> <span class="n">source_assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Given a "source_model" and its "source_assignment", resets</span>
|
|
<span class="sd"> "target_assignment" with the IntVar variables (nexts_, and vehicle_vars_</span>
|
|
<span class="sd"> if costs aren't homogeneous across vehicles) of "this" model, with the</span>
|
|
<span class="sd"> values set according to those in "other_assignment".</span>
|
|
<span class="sd"> The objective_element of target_assignment is set to this->cost_.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetAssignmentFromOtherModelAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">target_assignment</span><span class="p">,</span> <span class="n">source_model</span><span class="p">,</span> <span class="n">source_assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ComputeLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Computes a lower bound to the routing problem solving a linear assignment</span>
|
|
<span class="sd"> problem. The routing model must be closed before calling this method.</span>
|
|
<span class="sd"> Note that problems with node disjunction constraints (including optional</span>
|
|
<span class="sd"> nodes) and non-homogenous costs are not supported (the method returns 0 in</span>
|
|
<span class="sd"> these cases).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ComputeLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">status</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::Status"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the current status of the routing model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_status</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ApplyLocks</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locks</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Applies a lock chain to the next search. 'locks' represents an ordered</span>
|
|
<span class="sd"> vector of nodes representing a partial route which will be fixed during</span>
|
|
<span class="sd"> the next search; it will constrain next variables such that:</span>
|
|
<span class="sd"> next[locks[i]] == locks[i+1].</span>
|
|
|
|
<span class="sd"> Returns the next variable at the end of the locked chain; this variable is</span>
|
|
<span class="sd"> not locked. An assignment containing the locks can be obtained by calling</span>
|
|
<span class="sd"> PreAssignment().</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ApplyLocks</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locks</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ApplyLocksToAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locks</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > > const &"</span><span class="p">,</span> <span class="n">close_routes</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Applies lock chains to all vehicles to the next search, such that locks[p]</span>
|
|
<span class="sd"> is the lock chain for route p. Returns false if the locks do not contain</span>
|
|
<span class="sd"> valid routes; expects that the routes do not contain the depots,</span>
|
|
<span class="sd"> i.e. there are empty vectors in place of empty routes.</span>
|
|
<span class="sd"> If close_routes is set to true, adds the end nodes to the route of each</span>
|
|
<span class="sd"> vehicle and deactivates other nodes.</span>
|
|
<span class="sd"> An assignment containing the locks can be obtained by calling</span>
|
|
<span class="sd"> PreAssignment().</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ApplyLocksToAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locks</span><span class="p">,</span> <span class="n">close_routes</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *const"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns an assignment used to fix some of the variables of the problem.</span>
|
|
<span class="sd"> In practice, this assignment locks partial routes of the problem. This</span>
|
|
<span class="sd"> can be used in the context of locking the parts of the routes which have</span>
|
|
<span class="sd"> already been driven in online routing problems.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_PreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MutablePreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_MutablePreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">WriteAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Writes the current solution to a file containing an AssignmentProto.</span>
|
|
<span class="sd"> Returns false if the file cannot be opened or if there is no current</span>
|
|
<span class="sd"> solution.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_WriteAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ReadAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Reads an assignment from a file and returns the current solution.</span>
|
|
<span class="sd"> Returns nullptr if the file cannot be opened or if the assignment is not</span>
|
|
<span class="sd"> valid.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ReadAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RestoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Restores an assignment as a solution in the routing model and returns the</span>
|
|
<span class="sd"> new solution. Returns nullptr if the assignment is not valid.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RestoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ReadAssignmentFromRoutes</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">routes</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > > const &"</span><span class="p">,</span> <span class="n">ignore_inactive_indices</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Restores the routes as the current solution. Returns nullptr if the</span>
|
|
<span class="sd"> solution cannot be restored (routes do not contain a valid solution). Note</span>
|
|
<span class="sd"> that calling this method will run the solver to assign values to the</span>
|
|
<span class="sd"> dimension variables; this may take considerable amount of time, especially</span>
|
|
<span class="sd"> when using dimensions with slack.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ReadAssignmentFromRoutes</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">routes</span><span class="p">,</span> <span class="n">ignore_inactive_indices</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RoutesToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">routes</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > > const &"</span><span class="p">,</span> <span class="n">ignore_inactive_indices</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">close_routes</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Fills an assignment from a specification of the routes of the</span>
|
|
<span class="sd"> vehicles. The routes are specified as lists of variable indices that</span>
|
|
<span class="sd"> appear on the routes of the vehicles. The indices of the outer vector in</span>
|
|
<span class="sd"> 'routes' correspond to vehicles IDs, the inner vector contains the</span>
|
|
<span class="sd"> variable indices on the routes for the given vehicle. The inner vectors</span>
|
|
<span class="sd"> must not contain the start and end indices, as these are determined by the</span>
|
|
<span class="sd"> routing model. Sets the value of NextVars in the assignment, adding the</span>
|
|
<span class="sd"> variables to the assignment if necessary. The method does not touch other</span>
|
|
<span class="sd"> variables in the assignment. The method can only be called after the model</span>
|
|
<span class="sd"> is closed. With ignore_inactive_indices set to false, this method will</span>
|
|
<span class="sd"> fail (return nullptr) in case some of the route contain indices that are</span>
|
|
<span class="sd"> deactivated in the model; when set to true, these indices will be</span>
|
|
<span class="sd"> skipped. Returns true if routes were successfully</span>
|
|
<span class="sd"> loaded. However, such assignment still might not be a valid</span>
|
|
<span class="sd"> solution to the routing problem due to more complex constraints;</span>
|
|
<span class="sd"> it is advisible to call solver()->CheckSolution() afterwards.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RoutesToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">routes</span><span class="p">,</span> <span class="n">ignore_inactive_indices</span><span class="p">,</span> <span class="n">close_routes</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AssignmentToRoutes</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">routes</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > > *const"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Converts the solution in the given assignment to routes for all vehicles.</span>
|
|
<span class="sd"> Expects that assignment contains a valid solution (i.e. routes for all</span>
|
|
<span class="sd"> vehicles end with an end index for that vehicle).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AssignmentToRoutes</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">routes</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CompactAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Converts the solution in the given assignment to routes for all vehicles.</span>
|
|
<span class="sd"> If the returned vector is route_indices, route_indices[i][j] is the index</span>
|
|
<span class="sd"> for jth location visited on route i. Note that contrary to</span>
|
|
<span class="sd"> AssignmentToRoutes, the vectors do include start and end locations.</span>
|
|
<span class="sd"> Returns a compacted version of the given assignment, in which all vehicles</span>
|
|
<span class="sd"> with id lower or equal to some N have non-empty routes, and all vehicles</span>
|
|
<span class="sd"> with id greater than N have empty routes. Does not take ownership of the</span>
|
|
<span class="sd"> returned object.</span>
|
|
<span class="sd"> If found, the cost of the compact assignment is the same as in the</span>
|
|
<span class="sd"> original assignment and it preserves the values of 'active' variables.</span>
|
|
<span class="sd"> Returns nullptr if a compact assignment was not found.</span>
|
|
<span class="sd"> This method only works in homogenous mode, and it only swaps equivalent</span>
|
|
<span class="sd"> vehicles (vehicles with the same start and end nodes). When creating the</span>
|
|
<span class="sd"> compact assignment, the empty plan is replaced by the route assigned to</span>
|
|
<span class="sd"> the compatible vehicle with the highest id. Note that with more complex</span>
|
|
<span class="sd"> constraints on vehicle variables, this method might fail even if a compact</span>
|
|
<span class="sd"> solution exists.</span>
|
|
<span class="sd"> This method changes the vehicle and dimension variables as necessary.</span>
|
|
<span class="sd"> While compacting the solution, only basic checks on vehicle variables are</span>
|
|
<span class="sd"> performed; if one of these checks fails no attempts to repair it are made</span>
|
|
<span class="sd"> (instead, the method returns nullptr).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CompactAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CompactAndCheckAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as CompactAssignment() but also checks the validity of the final</span>
|
|
<span class="sd"> compact solution; if it is not valid, no attempts to repair it are made</span>
|
|
<span class="sd"> (instead, the method returns nullptr).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CompactAndCheckAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Adds an extra variable to the vehicle routing assignment."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddIntervalToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddIntervalToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">PackCumulsOfOptimizerDimensionsFromAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">original_assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">duration_limit</span><span class="p">:</span> <span class="s2">"absl::Duration"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> For every dimension in the model with an optimizer in</span>
|
|
<span class="sd"> local/global_dimension_optimizers_, this method tries to pack the cumul</span>
|
|
<span class="sd"> values of the dimension, such that:</span>
|
|
<span class="sd"> - The cumul costs (span costs, soft lower and upper bound costs, etc) are</span>
|
|
<span class="sd"> minimized.</span>
|
|
<span class="sd"> - The cumuls of the ends of the routes are minimized for this given</span>
|
|
<span class="sd"> minimal cumul cost.</span>
|
|
<span class="sd"> - Given these minimal end cumuls, the route start cumuls are maximized.</span>
|
|
<span class="sd"> Returns the assignment resulting from allocating these packed cumuls with</span>
|
|
<span class="sd"> the solver, and nullptr if these cumuls could not be set by the solver.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_PackCumulsOfOptimizerDimensionsFromAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">original_assignment</span><span class="p">,</span> <span class="n">duration_limit</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddLocalSearchFilter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">filter</span><span class="p">:</span> <span class="s2">"LocalSearchFilter"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a custom local search filter to the list of filters used to speed up</span>
|
|
<span class="sd"> local search by pruning unfeasible variable assignments.</span>
|
|
<span class="sd"> Calling this method after the routing model has been closed (CloseModel()</span>
|
|
<span class="sd"> or Solve() has been called) has no effect.</span>
|
|
<span class="sd"> The routing model does not take ownership of the filter.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddLocalSearchFilter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">filter</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Model inspection.</span>
|
|
<span class="sd"> Returns the variable index of the starting node of a vehicle route.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">End</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the variable index of the ending node of a vehicle route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_End</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if 'index' represents the first node of a route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IsStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if 'index' represents the last node of a route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IsEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VehicleIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the vehicle of the given start/end index, and -1 if the given</span>
|
|
<span class="sd"> index is not a vehicle start/end.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_VehicleIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Next</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Assignment inspection</span>
|
|
<span class="sd"> Returns the variable index of the node directly after the node</span>
|
|
<span class="sd"> corresponding to 'index' in 'assignment'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_Next</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsVehicleUsed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if the route of 'vehicle' is non empty in 'assignment'."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IsVehicleUsed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">NextVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the next variable of the node corresponding to index. Note that</span>
|
|
<span class="sd"> NextVar(index) == index is equivalent to ActiveVar(index) == 0.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_NextVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ActiveVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the active variable of the node corresponding to index."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ActiveVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ActiveVehicleVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the active variable of the vehicle. It will be equal to 1 iff the</span>
|
|
<span class="sd"> route of the vehicle is not empty, 0 otherwise.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ActiveVehicleVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VehicleCostsConsideredVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the variable specifying whether or not costs are considered for</span>
|
|
<span class="sd"> vehicle.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_VehicleCostsConsideredVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">VehicleVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the vehicle variable of the node corresponding to index. Note that</span>
|
|
<span class="sd"> VehicleVar(index) == -1 is equivalent to ActiveVar(index) == 0.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_VehicleVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CostVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the global cost variable which is being minimized."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CostVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetArcCostForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost of the transit arc between two nodes for a given vehicle.</span>
|
|
<span class="sd"> Input are variable indices of node. This returns 0 if vehicle < 0.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetArcCostForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CostsAreHomogeneousAcrossVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Whether costs are homogeneous across all vehicles."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CostsAreHomogeneousAcrossVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetHomogeneousCost</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost of the segment between two nodes supposing all vehicle</span>
|
|
<span class="sd"> costs are the same (returns the cost for the first vehicle otherwise).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetHomogeneousCost</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetArcCostForFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost of the arc in the context of the first solution strategy.</span>
|
|
<span class="sd"> This is typically a simplification of the actual cost; see the .cc.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetArcCostForFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetArcCostForClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">cost_class_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost of the segment between two nodes for a given cost</span>
|
|
<span class="sd"> class. Input are variable indices of nodes and the cost class.</span>
|
|
<span class="sd"> Unlike GetArcCostForVehicle(), if cost_class is kNoCost, then the</span>
|
|
<span class="sd"> returned cost won't necessarily be zero: only some of the components</span>
|
|
<span class="sd"> of the cost that depend on the cost class will be omited. See the code</span>
|
|
<span class="sd"> for details.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetArcCostForClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">,</span> <span class="n">cost_class_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetCostClassIndexOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::CostClassIndex"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Get the cost class index of the given vehicle."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetCostClassIndexOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasVehicleWithCostClassIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost_class_index</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::CostClassIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true iff the model contains a vehicle with the given</span>
|
|
<span class="sd"> cost_class_index.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasVehicleWithCostClassIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost_class_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetCostClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of different cost classes in the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetCostClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNonZeroCostClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Ditto, minus the 'always zero', built-in cost class."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNonZeroCostClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetVehicleClassIndexOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::VehicleClassIndex"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVehicleClassIndexOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetVehicleOfClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle_class</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::VehicleClassIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a vehicle of the given vehicle class, and -1 if there are no</span>
|
|
<span class="sd"> vehicles for this class.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVehicleOfClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle_class</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetVehicleClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of different vehicle classes in the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVehicleClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetSameVehicleIndicesOfIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns variable indices of nodes constrained to be on the same route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetSameVehicleIndicesOfIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetVehicleTypeContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::VehicleTypeContainer const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVehicleTypeContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ArcIsMoreConstrainedThanArc</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_from</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to1</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to2</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns whether the arc from->to1 is more constrained than from->to2,</span>
|
|
<span class="sd"> taking into account, in order:</span>
|
|
<span class="sd"> - whether the destination node isn't an end node</span>
|
|
<span class="sd"> - whether the destination node is mandatory</span>
|
|
<span class="sd"> - whether the destination node is bound to the same vehicle as the source</span>
|
|
<span class="sd"> - the "primary constrained" dimension (see SetPrimaryConstrainedDimension)</span>
|
|
<span class="sd"> It then breaks ties using, in order:</span>
|
|
<span class="sd"> - the arc cost (taking unperformed penalties into account)</span>
|
|
<span class="sd"> - the size of the vehicle vars of "to1" and "to2" (lowest size wins)</span>
|
|
<span class="sd"> - the value: the lowest value of the indices to1 and to2 wins.</span>
|
|
<span class="sd"> See the .cc for details.</span>
|
|
<span class="sd"> The more constrained arc is typically preferable when building a</span>
|
|
<span class="sd"> first solution. This method is intended to be used as a callback for the</span>
|
|
<span class="sd"> BestValueByComparisonSelector value selector.</span>
|
|
<span class="sd"> Args:</span>
|
|
<span class="sd"> from: the variable index of the source node</span>
|
|
<span class="sd"> to1: the variable index of the first candidate destination node.</span>
|
|
<span class="sd"> to2: the variable index of the second candidate destination node.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ArcIsMoreConstrainedThanArc</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_from</span><span class="p">,</span> <span class="n">to1</span><span class="p">,</span> <span class="n">to2</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugOutputAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution_assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">dimension_to_print</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Print some debugging information about an assignment, including the</span>
|
|
<span class="sd"> feasible intervals of the CumulVar for dimension "dimension_to_print"</span>
|
|
<span class="sd"> at each step of the routes.</span>
|
|
<span class="sd"> If "dimension_to_print" is omitted, all dimensions will be printed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_DebugOutputAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution_assignment</span><span class="p">,</span> <span class="n">dimension_to_print</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Solver *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a vector cumul_bounds, for which cumul_bounds[i][j] is a pair</span>
|
|
<span class="sd"> containing the minimum and maximum of the CumulVar of the jth node on</span>
|
|
<span class="sd"> route i.</span>
|
|
<span class="sd"> - cumul_bounds[i][j].first is the minimum.</span>
|
|
<span class="sd"> - cumul_bounds[i][j].second is the maximum.</span>
|
|
<span class="sd"> Returns the underlying constraint solver. Can be used to add extra</span>
|
|
<span class="sd"> constraints and/or modify search algorithms.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CheckLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if the search limit has been crossed."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CheckLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">RemainingTime</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"absl::Duration"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the time left in the search limit."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RemainingTime</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">nodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sizes and indices</span>
|
|
<span class="sd"> Returns the number of nodes in the model.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_nodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">vehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of vehicle routes in the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_vehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of next variables in the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumberOfDecisionsInFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns statistics on first solution search, number of decisions sent to</span>
|
|
<span class="sd"> filters, number of decisions rejected by filters.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNumberOfDecisionsInFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetNumberOfRejectsInFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNumberOfRejectsInFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetAutomaticFirstSolutionStrategy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::FirstSolutionStrategy::Value"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the automatic first solution strategy selected."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetAutomaticFirstSolutionStrategy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">IsMatchingModel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if a vehicle/node matching problem is detected."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IsMatchingModel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MakeGuidedSlackFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">,</span> <span class="n">initializer</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The next few members are in the public section only for testing purposes.</span>
|
|
|
|
<span class="sd"> MakeGuidedSlackFinalizer creates a DecisionBuilder for the slacks of a</span>
|
|
<span class="sd"> dimension using a callback to choose which values to start with.</span>
|
|
<span class="sd"> The finalizer works only when all next variables in the model have</span>
|
|
<span class="sd"> been fixed. It has the following two characteristics:</span>
|
|
<span class="sd"> 1. It follows the routes defined by the nexts variables when choosing a</span>
|
|
<span class="sd"> variable to make a decision on.</span>
|
|
<span class="sd"> 2. When it comes to choose a value for the slack of node i, the decision</span>
|
|
<span class="sd"> builder first calls the callback with argument i, and supposingly the</span>
|
|
<span class="sd"> returned value is x it creates decisions slack[i] = x, slack[i] = x +</span>
|
|
<span class="sd"> 1, slack[i] = x - 1, slack[i] = x + 2, etc.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_MakeGuidedSlackFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">,</span> <span class="n">initializer</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">MakeSelfDependentDimensionFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> MakeSelfDependentDimensionFinalizer is a finalizer for the slacks of a</span>
|
|
<span class="sd"> self-dependent dimension. It makes an extensive use of the caches of the</span>
|
|
<span class="sd"> state dependent transits.</span>
|
|
<span class="sd"> In detail, MakeSelfDependentDimensionFinalizer returns a composition of a</span>
|
|
<span class="sd"> local search decision builder with a greedy descent operator for the cumul</span>
|
|
<span class="sd"> of the start of each route and a guided slack finalizer. Provided there</span>
|
|
<span class="sd"> are no time windows and the maximum slacks are large enough, once the</span>
|
|
<span class="sd"> cumul of the start of route is fixed, the guided finalizer can find</span>
|
|
<span class="sd"> optimal values of the slacks for the rest of the route in time</span>
|
|
<span class="sd"> proportional to the length of the route. Therefore the composed finalizer</span>
|
|
<span class="sd"> generally works in time O(log(t)*n*m), where t is the latest possible</span>
|
|
<span class="sd"> departute time, n is the number of nodes in the network and m is the</span>
|
|
<span class="sd"> number of vehicles.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_MakeSelfDependentDimensionFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
<div id="RoutingModel.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.__init__">#  </a>
|
|
|
|
|
|
<span class="name">RoutingModel</span><span class="signature">(*args)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_RoutingModel</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.ROUTING_NOT_SOLVED" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.ROUTING_NOT_SOLVED">#  </a>
|
|
|
|
<span class="name">ROUTING_NOT_SOLVED</span><span class="default_value"> = 0</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Problem not solved yet (before calling RoutingModel::Solve()).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.ROUTING_SUCCESS" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.ROUTING_SUCCESS">#  </a>
|
|
|
|
<span class="name">ROUTING_SUCCESS</span><span class="default_value"> = 1</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Problem solved successfully after calling RoutingModel::Solve().</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.ROUTING_FAIL" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.ROUTING_FAIL">#  </a>
|
|
|
|
<span class="name">ROUTING_FAIL</span><span class="default_value"> = 2</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>No solution found to the problem after calling RoutingModel::Solve().</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.ROUTING_FAIL_TIMEOUT" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.ROUTING_FAIL_TIMEOUT">#  </a>
|
|
|
|
<span class="name">ROUTING_FAIL_TIMEOUT</span><span class="default_value"> = 3</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Time limit reached before finding a solution with RoutingModel::Solve().</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.ROUTING_INVALID" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.ROUTING_INVALID">#  </a>
|
|
|
|
<span class="name">ROUTING_INVALID</span><span class="default_value"> = 4</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Model, model parameters or flags are not valid.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.PICKUP_AND_DELIVERY_NO_ORDER" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.PICKUP_AND_DELIVERY_NO_ORDER">#  </a>
|
|
|
|
<span class="name">PICKUP_AND_DELIVERY_NO_ORDER</span><span class="default_value"> = 0</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Any precedence is accepted.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.PICKUP_AND_DELIVERY_LIFO" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.PICKUP_AND_DELIVERY_LIFO">#  </a>
|
|
|
|
<span class="name">PICKUP_AND_DELIVERY_LIFO</span><span class="default_value"> = 1</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Deliveries must be performed in reverse order of pickups.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.PICKUP_AND_DELIVERY_FIFO" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.PICKUP_AND_DELIVERY_FIFO">#  </a>
|
|
|
|
<span class="name">PICKUP_AND_DELIVERY_FIFO</span><span class="default_value"> = 2</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>Deliveries must be performed in the same order as pickups.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.RegisterUnaryTransitVector" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.RegisterUnaryTransitVector">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RegisterUnaryTransitVector</span><span class="signature">(self, values: 'std::vector< int64_t >') -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RegisterUnaryTransitVector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Registers 'callback' and returns its index."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterUnaryTransitVector</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Registers 'callback' and returns its index.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.RegisterUnaryTransitCallback" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.RegisterUnaryTransitCallback">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RegisterUnaryTransitCallback</span><span class="signature">(
|
|
self,
|
|
callback: 'operations_research::RoutingModel::TransitCallback1'
|
|
) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RegisterUnaryTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::TransitCallback1"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterUnaryTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.RegisterPositiveUnaryTransitCallback" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.RegisterPositiveUnaryTransitCallback">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RegisterPositiveUnaryTransitCallback</span><span class="signature">(
|
|
self,
|
|
callback: 'operations_research::RoutingModel::TransitCallback1'
|
|
) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RegisterPositiveUnaryTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::TransitCallback1"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterPositiveUnaryTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.RegisterTransitMatrix" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.RegisterTransitMatrix">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RegisterTransitMatrix</span><span class="signature">(self, values: 'std::vector< std::vector< int64_t > >') -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RegisterTransitMatrix</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterTransitMatrix</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.RegisterTransitCallback" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.RegisterTransitCallback">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RegisterTransitCallback</span><span class="signature">(
|
|
self,
|
|
callback: 'operations_research::RoutingModel::TransitCallback2'
|
|
) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RegisterTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::TransitCallback2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.RegisterPositiveTransitCallback" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.RegisterPositiveTransitCallback">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RegisterPositiveTransitCallback</span><span class="signature">(
|
|
self,
|
|
callback: 'operations_research::RoutingModel::TransitCallback2'
|
|
) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RegisterPositiveTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::TransitCallback2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RegisterPositiveTransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.TransitCallback" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.TransitCallback">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">TransitCallback</span><span class="signature">(
|
|
self,
|
|
callback_index: int
|
|
) -> 'operations_research::RoutingModel::TransitCallback2 const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">TransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::TransitCallback2 const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_TransitCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback_index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.UnaryTransitCallbackOrNull" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.UnaryTransitCallbackOrNull">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">UnaryTransitCallbackOrNull</span><span class="signature">(
|
|
self,
|
|
callback_index: int
|
|
) -> 'operations_research::RoutingModel::TransitCallback1 const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">UnaryTransitCallbackOrNull</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::TransitCallback1 const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_UnaryTransitCallbackOrNull</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback_index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddDimension" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddDimension">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddDimension</span><span class="signature">(
|
|
self,
|
|
evaluator_index: int,
|
|
slack_max: 'int64_t',
|
|
capacity: 'int64_t',
|
|
fix_start_cumul_to_zero: bool,
|
|
name: 'std::string const &'
|
|
) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Model creation</span>
|
|
<span class="sd"> Methods to add dimensions to routes; dimensions represent quantities</span>
|
|
<span class="sd"> accumulated at nodes along the routes. They represent quantities such as</span>
|
|
<span class="sd"> weights or volumes carried along the route, or distance or times.</span>
|
|
<span class="sd"> Quantities at a node are represented by "cumul" variables and the increase</span>
|
|
<span class="sd"> or decrease of quantities between nodes are represented by "transit"</span>
|
|
<span class="sd"> variables. These variables are linked as follows:</span>
|
|
<span class="sd"> if j == next(i), cumul(j) = cumul(i) + transit(i) + slack(i)</span>
|
|
<span class="sd"> where slack is a positive slack variable (can represent waiting times for</span>
|
|
<span class="sd"> a time dimension).</span>
|
|
<span class="sd"> Setting the value of fix_start_cumul_to_zero to true will force the</span>
|
|
<span class="sd"> "cumul" variable of the start node of all vehicles to be equal to 0.</span>
|
|
<span class="sd"> Creates a dimension where the transit variable is constrained to be</span>
|
|
<span class="sd"> equal to evaluator(i, next(i)); 'slack_max' is the upper bound of the</span>
|
|
<span class="sd"> slack variable and 'capacity' is the upper bound of the cumul variables.</span>
|
|
<span class="sd"> 'name' is the name used to reference the dimension; this name is used to</span>
|
|
<span class="sd"> get cumul and transit variables from the routing model.</span>
|
|
<span class="sd"> Returns false if a dimension with the same name has already been created</span>
|
|
<span class="sd"> (and doesn't create the new dimension).</span>
|
|
<span class="sd"> Takes ownership of the callback 'evaluator'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Model creation
|
|
Methods to add dimensions to routes; dimensions represent quantities
|
|
accumulated at nodes along the routes. They represent quantities such as
|
|
weights or volumes carried along the route, or distance or times.
|
|
Quantities at a node are represented by "cumul" variables and the increase
|
|
or decrease of quantities between nodes are represented by "transit"
|
|
variables. These variables are linked as follows:
|
|
if j == next(i), cumul(j) = cumul(i) + transit(i) + slack(i)
|
|
where slack is a positive slack variable (can represent waiting times for
|
|
a time dimension).
|
|
Setting the value of fix_start_cumul_to_zero to true will force the
|
|
"cumul" variable of the start node of all vehicles to be equal to 0.
|
|
Creates a dimension where the transit variable is constrained to be
|
|
equal to evaluator(i, next(i)); 'slack_max' is the upper bound of the
|
|
slack variable and 'capacity' is the upper bound of the cumul variables.
|
|
'name' is the name used to reference the dimension; this name is used to
|
|
get cumul and transit variables from the routing model.
|
|
Returns false if a dimension with the same name has already been created
|
|
(and doesn't create the new dimension).
|
|
Takes ownership of the callback 'evaluator'.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddDimensionWithVehicleTransits" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddDimensionWithVehicleTransits">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddDimensionWithVehicleTransits</span><span class="signature">(
|
|
self,
|
|
evaluator_indices: 'std::vector< int > const &',
|
|
slack_max: 'int64_t',
|
|
capacity: 'int64_t',
|
|
fix_start_cumul_to_zero: bool,
|
|
name: 'std::string const &'
|
|
) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddDimensionWithVehicleTransits</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_indices</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddDimensionWithVehicleTransits</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_indices</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddDimensionWithVehicleCapacity" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddDimensionWithVehicleCapacity">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddDimensionWithVehicleCapacity</span><span class="signature">(
|
|
self,
|
|
evaluator_index: int,
|
|
slack_max: 'int64_t',
|
|
vehicle_capacities: 'std::vector< int64_t >',
|
|
fix_start_cumul_to_zero: bool,
|
|
name: 'std::string const &'
|
|
) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddDimensionWithVehicleCapacity</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle_capacities</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddDimensionWithVehicleCapacity</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">,</span> <span class="n">vehicle_capacities</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddDimensionWithVehicleTransitAndCapacity" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddDimensionWithVehicleTransitAndCapacity">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddDimensionWithVehicleTransitAndCapacity</span><span class="signature">(
|
|
self,
|
|
evaluator_indices: 'std::vector< int > const &',
|
|
slack_max: 'int64_t',
|
|
vehicle_capacities: 'std::vector< int64_t >',
|
|
fix_start_cumul_to_zero: bool,
|
|
name: 'std::string const &'
|
|
) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddDimensionWithVehicleTransitAndCapacity</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_indices</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle_capacities</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddDimensionWithVehicleTransitAndCapacity</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_indices</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">,</span> <span class="n">vehicle_capacities</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddConstantDimensionWithSlack" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddConstantDimensionWithSlack">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddConstantDimensionWithSlack</span><span class="signature">(
|
|
self,
|
|
value: 'int64_t',
|
|
capacity: 'int64_t',
|
|
slack_max: 'int64_t',
|
|
fix_start_cumul_to_zero: bool,
|
|
name: 'std::string const &'
|
|
) -> 'std::pair< int,bool >'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddConstantDimensionWithSlack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::pair< int,bool >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a dimension where the transit variable is constrained to be</span>
|
|
<span class="sd"> equal to 'value'; 'capacity' is the upper bound of the cumul variables.</span>
|
|
<span class="sd"> 'name' is the name used to reference the dimension; this name is used to</span>
|
|
<span class="sd"> get cumul and transit variables from the routing model.</span>
|
|
<span class="sd"> Returns a pair consisting of an index to the registered unary transit</span>
|
|
<span class="sd"> callback and a bool denoting whether the dimension has been created.</span>
|
|
<span class="sd"> It is false if a dimension with the same name has already been created</span>
|
|
<span class="sd"> (and doesn't create the new dimension but still register a new callback).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddConstantDimensionWithSlack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">slack_max</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a dimension where the transit variable is constrained to be
|
|
equal to 'value'; 'capacity' is the upper bound of the cumul variables.
|
|
'name' is the name used to reference the dimension; this name is used to
|
|
get cumul and transit variables from the routing model.
|
|
Returns a pair consisting of an index to the registered unary transit
|
|
callback and a bool denoting whether the dimension has been created.
|
|
It is false if a dimension with the same name has already been created
|
|
(and doesn't create the new dimension but still register a new callback).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddConstantDimension" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddConstantDimension">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddConstantDimension</span><span class="signature">(
|
|
self,
|
|
value: 'int64_t',
|
|
capacity: 'int64_t',
|
|
fix_start_cumul_to_zero: bool,
|
|
name: 'std::string const &'
|
|
) -> 'std::pair< int,bool >'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::pair< int,bool >"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddConstantDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">value</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddVectorDimension" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddVectorDimension">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddVectorDimension</span><span class="signature">(
|
|
self,
|
|
values: 'std::vector< int64_t >',
|
|
capacity: 'int64_t',
|
|
fix_start_cumul_to_zero: bool,
|
|
name: 'std::string const &'
|
|
) -> 'std::pair< int,bool >'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddVectorDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::pair< int,bool >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a dimension where the transit variable is constrained to be</span>
|
|
<span class="sd"> equal to 'values[i]' for node i; 'capacity' is the upper bound of</span>
|
|
<span class="sd"> the cumul variables. 'name' is the name used to reference the dimension;</span>
|
|
<span class="sd"> this name is used to get cumul and transit variables from the routing</span>
|
|
<span class="sd"> model.</span>
|
|
<span class="sd"> Returns a pair consisting of an index to the registered unary transit</span>
|
|
<span class="sd"> callback and a bool denoting whether the dimension has been created.</span>
|
|
<span class="sd"> It is false if a dimension with the same name has already been created</span>
|
|
<span class="sd"> (and doesn't create the new dimension but still register a new callback).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddVectorDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a dimension where the transit variable is constrained to be
|
|
equal to 'values[i]' for node i; 'capacity' is the upper bound of
|
|
the cumul variables. 'name' is the name used to reference the dimension;
|
|
this name is used to get cumul and transit variables from the routing
|
|
model.
|
|
Returns a pair consisting of an index to the registered unary transit
|
|
callback and a bool denoting whether the dimension has been created.
|
|
It is false if a dimension with the same name has already been created
|
|
(and doesn't create the new dimension but still register a new callback).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddMatrixDimension" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddMatrixDimension">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddMatrixDimension</span><span class="signature">(
|
|
self,
|
|
values: 'std::vector< std::vector< int64_t > >',
|
|
capacity: 'int64_t',
|
|
fix_start_cumul_to_zero: bool,
|
|
name: 'std::string const &'
|
|
) -> 'std::pair< int,bool >'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddMatrixDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > >"</span><span class="p">,</span> <span class="n">capacity</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::pair< int,bool >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Creates a dimension where the transit variable is constrained to be</span>
|
|
<span class="sd"> equal to 'values[i][next(i)]' for node i; 'capacity' is the upper bound of</span>
|
|
<span class="sd"> the cumul variables. 'name' is the name used to reference the dimension;</span>
|
|
<span class="sd"> this name is used to get cumul and transit variables from the routing</span>
|
|
<span class="sd"> model.</span>
|
|
<span class="sd"> Returns a pair consisting of an index to the registered transit callback</span>
|
|
<span class="sd"> and a bool denoting whether the dimension has been created.</span>
|
|
<span class="sd"> It is false if a dimension with the same name has already been created</span>
|
|
<span class="sd"> (and doesn't create the new dimension but still register a new callback).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddMatrixDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">values</span><span class="p">,</span> <span class="n">capacity</span><span class="p">,</span> <span class="n">fix_start_cumul_to_zero</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Creates a dimension where the transit variable is constrained to be
|
|
equal to 'values[i][next(i)]' for node i; 'capacity' is the upper bound of
|
|
the cumul variables. 'name' is the name used to reference the dimension;
|
|
this name is used to get cumul and transit variables from the routing
|
|
model.
|
|
Returns a pair consisting of an index to the registered transit callback
|
|
and a bool denoting whether the dimension has been created.
|
|
It is false if a dimension with the same name has already been created
|
|
(and doesn't create the new dimension but still register a new callback).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.MakePathSpansAndTotalSlacks" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.MakePathSpansAndTotalSlacks">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MakePathSpansAndTotalSlacks</span><span class="signature">(
|
|
self,
|
|
dimension: <a href="#RoutingDimension">pywrapcp.RoutingDimension</a>,
|
|
spans: 'std::vector< operations_research::IntVar * >',
|
|
total_slacks: 'std::vector< operations_research::IntVar * >'
|
|
) -> 'operations_research::Constraint *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MakePathSpansAndTotalSlacks</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">,</span> <span class="n">spans</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * >"</span><span class="p">,</span> <span class="n">total_slacks</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Constraint *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> For every vehicle of the routing model:</span>
|
|
<span class="sd"> - if total_slacks[vehicle] is not nullptr, constrains it to be the sum of</span>
|
|
<span class="sd"> slacks on that vehicle, that is,</span>
|
|
<span class="sd"> dimension->CumulVar(end) - dimension->CumulVar(start) -</span>
|
|
<span class="sd"> sum_{node in path of vehicle} dimension->FixedTransitVar(node).</span>
|
|
<span class="sd"> - if spans[vehicle] is not nullptr, constrains it to be</span>
|
|
<span class="sd"> dimension->CumulVar(end) - dimension->CumulVar(start)</span>
|
|
<span class="sd"> This does stronger propagation than a decomposition, and takes breaks into</span>
|
|
<span class="sd"> account.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_MakePathSpansAndTotalSlacks</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">,</span> <span class="n">spans</span><span class="p">,</span> <span class="n">total_slacks</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>For every vehicle of the routing model:</p>
|
|
|
|
<ul>
|
|
<li>if total_slacks[vehicle] is not nullptr, constrains it to be the sum of
|
|
slacks on that vehicle, that is,
|
|
dimension->CumulVar(end) - dimension->CumulVar(start) -
|
|
sum_{node in path of vehicle} dimension->FixedTransitVar(node).</li>
|
|
<li>if spans[vehicle] is not nullptr, constrains it to be
|
|
dimension->CumulVar(end) - dimension->CumulVar(start)
|
|
This does stronger propagation than a decomposition, and takes breaks into
|
|
account.</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetAllDimensionNames" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetAllDimensionNames">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetAllDimensionNames</span><span class="signature">(self) -> 'std::vector< std::string >'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetAllDimensionNames</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::string >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Outputs the names of all dimensions added to the routing engine."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetAllDimensionNames</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Outputs the names of all dimensions added to the routing engine.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetDimensions" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetDimensions">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetDimensions</span><span class="signature">(
|
|
self
|
|
) -> 'std::vector< operations_research::RoutingDimension * > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetDimensions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< operations_research::RoutingDimension * > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns all dimensions of the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDimensions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns all dimensions of the model.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetDimensionsWithSoftOrSpanCosts" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetDimensionsWithSoftOrSpanCosts">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetDimensionsWithSoftOrSpanCosts</span><span class="signature">(self) -> 'std::vector< operations_research::RoutingDimension * >'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetDimensionsWithSoftOrSpanCosts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< operations_research::RoutingDimension * >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns dimensions with soft or vehicle span costs."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDimensionsWithSoftOrSpanCosts</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns dimensions with soft or vehicle span costs.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetGlobalDimensionCumulOptimizers" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetGlobalDimensionCumulOptimizers">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetGlobalDimensionCumulOptimizers</span><span class="signature">(
|
|
self
|
|
) -> 'std::vector< std::unique_ptr< operations_research::GlobalDimensionCumulOptimizer > > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetGlobalDimensionCumulOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::unique_ptr< operations_research::GlobalDimensionCumulOptimizer > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns [global|local]_dimension_optimizers_, which are empty if the model</span>
|
|
<span class="sd"> has not been closed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetGlobalDimensionCumulOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns [global|local]_dimension_optimizers_, which are empty if the model
|
|
has not been closed.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetGlobalDimensionCumulMPOptimizers" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetGlobalDimensionCumulMPOptimizers">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetGlobalDimensionCumulMPOptimizers</span><span class="signature">(
|
|
self
|
|
) -> 'std::vector< std::unique_ptr< operations_research::GlobalDimensionCumulOptimizer > > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetGlobalDimensionCumulMPOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::unique_ptr< operations_research::GlobalDimensionCumulOptimizer > > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetGlobalDimensionCumulMPOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetLocalDimensionCumulOptimizers" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetLocalDimensionCumulOptimizers">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetLocalDimensionCumulOptimizers</span><span class="signature">(
|
|
self
|
|
) -> 'std::vector< std::unique_ptr< operations_research::LocalDimensionCumulOptimizer > > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetLocalDimensionCumulOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::unique_ptr< operations_research::LocalDimensionCumulOptimizer > > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetLocalDimensionCumulOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetLocalDimensionCumulMPOptimizers" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetLocalDimensionCumulMPOptimizers">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetLocalDimensionCumulMPOptimizers</span><span class="signature">(
|
|
self
|
|
) -> 'std::vector< std::unique_ptr< operations_research::LocalDimensionCumulOptimizer > > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetLocalDimensionCumulMPOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::unique_ptr< operations_research::LocalDimensionCumulOptimizer > > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetLocalDimensionCumulMPOptimizers</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetMutableGlobalCumulOptimizer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetMutableGlobalCumulOptimizer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetMutableGlobalCumulOptimizer</span><span class="signature">(
|
|
self,
|
|
dimension: <a href="#RoutingDimension">pywrapcp.RoutingDimension</a>
|
|
) -> 'operations_research::GlobalDimensionCumulOptimizer *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetMutableGlobalCumulOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::GlobalDimensionCumulOptimizer *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the global/local dimension cumul optimizer for a given dimension,</span>
|
|
<span class="sd"> or nullptr if there is none.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMutableGlobalCumulOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the global/local dimension cumul optimizer for a given dimension,
|
|
or nullptr if there is none.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetMutableGlobalCumulMPOptimizer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetMutableGlobalCumulMPOptimizer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetMutableGlobalCumulMPOptimizer</span><span class="signature">(
|
|
self,
|
|
dimension: <a href="#RoutingDimension">pywrapcp.RoutingDimension</a>
|
|
) -> 'operations_research::GlobalDimensionCumulOptimizer *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetMutableGlobalCumulMPOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::GlobalDimensionCumulOptimizer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMutableGlobalCumulMPOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetMutableLocalCumulOptimizer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetMutableLocalCumulOptimizer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetMutableLocalCumulOptimizer</span><span class="signature">(
|
|
self,
|
|
dimension: <a href="#RoutingDimension">pywrapcp.RoutingDimension</a>
|
|
) -> 'operations_research::LocalDimensionCumulOptimizer *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetMutableLocalCumulOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalDimensionCumulOptimizer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMutableLocalCumulOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetMutableLocalCumulMPOptimizer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetMutableLocalCumulMPOptimizer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetMutableLocalCumulMPOptimizer</span><span class="signature">(
|
|
self,
|
|
dimension: <a href="#RoutingDimension">pywrapcp.RoutingDimension</a>
|
|
) -> 'operations_research::LocalDimensionCumulOptimizer *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetMutableLocalCumulMPOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::LocalDimensionCumulOptimizer *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMutableLocalCumulMPOptimizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.HasDimension" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.HasDimension">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">HasDimension</span><span class="signature">(self, dimension_name: 'std::string const &') -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">HasDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if a dimension exists for a given dimension name."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true if a dimension exists for a given dimension name.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetDimensionOrDie" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetDimensionOrDie">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetDimensionOrDie</span><span class="signature">(
|
|
self,
|
|
dimension_name: 'std::string const &'
|
|
) -> 'operations_research::RoutingDimension const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetDimensionOrDie</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingDimension const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns a dimension from its name. Dies if the dimension does not exist."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDimensionOrDie</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns a dimension from its name. Dies if the dimension does not exist.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetMutableDimension" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetMutableDimension">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetMutableDimension</span><span class="signature">(
|
|
self,
|
|
dimension_name: 'std::string const &'
|
|
) -> 'operations_research::RoutingDimension *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetMutableDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingDimension *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a dimension from its name. Returns nullptr if the dimension does</span>
|
|
<span class="sd"> not exist.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMutableDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns a dimension from its name. Returns nullptr if the dimension does
|
|
not exist.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SetPrimaryConstrainedDimension" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SetPrimaryConstrainedDimension">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetPrimaryConstrainedDimension</span><span class="signature">(self, dimension_name: 'std::string const &') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetPrimaryConstrainedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Set the given dimension as "primary constrained". As of August 2013, this</span>
|
|
<span class="sd"> is only used by ArcIsMoreConstrainedThanArc().</span>
|
|
<span class="sd"> "dimension" must be the name of an existing dimension, or be empty, in</span>
|
|
<span class="sd"> which case there will not be a primary dimension after this call.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetPrimaryConstrainedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension_name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Set the given dimension as "primary constrained". As of August 2013, this
|
|
is only used by ArcIsMoreConstrainedThanArc().
|
|
"dimension" must be the name of an existing dimension, or be empty, in
|
|
which case there will not be a primary dimension after this call.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetPrimaryConstrainedDimension" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetPrimaryConstrainedDimension">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetPrimaryConstrainedDimension</span><span class="signature">(self) -> 'std::string const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetPrimaryConstrainedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Get the primary constrained dimension, or an empty string if it is unset."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetPrimaryConstrainedDimension</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Get the primary constrained dimension, or an empty string if it is unset.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetDimensionResourceGroupIndices" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetDimensionResourceGroupIndices">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetDimensionResourceGroupIndices</span><span class="signature">(
|
|
self,
|
|
dimension: <a href="#RoutingDimension">pywrapcp.RoutingDimension</a>
|
|
) -> 'std::vector< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetDimensionResourceGroupIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the indices of resource groups for this dimension. This method can</span>
|
|
<span class="sd"> only be called after the model has been closed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDimensionResourceGroupIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the indices of resource groups for this dimension. This method can
|
|
only be called after the model has been closed.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddDisjunction" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddDisjunction">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddDisjunction</span><span class="signature">(self, *args) -> 'operations_research::RoutingModel::DisjunctionIndex'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddDisjunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::DisjunctionIndex"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a disjunction constraint on the indices: exactly 'max_cardinality' of</span>
|
|
<span class="sd"> the indices are active. Start and end indices of any vehicle cannot be</span>
|
|
<span class="sd"> part of a disjunction.</span>
|
|
|
|
<span class="sd"> If a penalty is given, at most 'max_cardinality' of the indices can be</span>
|
|
<span class="sd"> active, and if less are active, 'penalty' is payed per inactive index.</span>
|
|
<span class="sd"> This is equivalent to adding the constraint:</span>
|
|
<span class="sd"> p + Sum(i)active[i] == max_cardinality</span>
|
|
<span class="sd"> where p is an integer variable, and the following cost to the cost</span>
|
|
<span class="sd"> function:</span>
|
|
<span class="sd"> p * penalty.</span>
|
|
<span class="sd"> 'penalty' must be positive to make the disjunction optional; a negative</span>
|
|
<span class="sd"> penalty will force 'max_cardinality' indices of the disjunction to be</span>
|
|
<span class="sd"> performed, and therefore p == 0.</span>
|
|
<span class="sd"> Note: passing a vector with a single index will model an optional index</span>
|
|
<span class="sd"> with a penalty cost if it is not visited.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddDisjunction</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Adds a disjunction constraint on the indices: exactly 'max_cardinality' of
|
|
the indices are active. Start and end indices of any vehicle cannot be
|
|
part of a disjunction.</p>
|
|
|
|
<p>If a penalty is given, at most 'max_cardinality' of the indices can be
|
|
active, and if less are active, 'penalty' is payed per inactive index.</p>
|
|
|
|
<h6 id="this-is-equivalent-to-adding-the-constraint">This is equivalent to adding the constraint</h6>
|
|
|
|
<blockquote>
|
|
<p>p + Sum(i)active[i] == max_cardinality</p>
|
|
</blockquote>
|
|
|
|
<p>where p is an integer variable, and the following cost to the cost
|
|
function:
|
|
p * penalty.
|
|
'penalty' must be positive to make the disjunction optional; a negative
|
|
penalty will force 'max_cardinality' indices of the disjunction to be
|
|
performed, and therefore p == 0.
|
|
Note: passing a vector with a single index will model an optional index
|
|
with a penalty cost if it is not visited.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetDisjunctionIndices" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetDisjunctionIndices">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetDisjunctionIndices</span><span class="signature">(
|
|
self,
|
|
index: 'int64_t'
|
|
) -> 'std::vector< operations_research::RoutingModel::DisjunctionIndex > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetDisjunctionIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< operations_research::RoutingModel::DisjunctionIndex > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the indices of the disjunctions to which an index belongs."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDisjunctionIndices</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the indices of the disjunctions to which an index belongs.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetDisjunctionPenalty" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetDisjunctionPenalty">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetDisjunctionPenalty</span><span class="signature">(
|
|
self,
|
|
index: 'operations_research::RoutingModel::DisjunctionIndex'
|
|
) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetDisjunctionPenalty</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::DisjunctionIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the penalty of the node disjunction of index 'index'."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDisjunctionPenalty</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the penalty of the node disjunction of index 'index'.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetDisjunctionMaxCardinality" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetDisjunctionMaxCardinality">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetDisjunctionMaxCardinality</span><span class="signature">(
|
|
self,
|
|
index: 'operations_research::RoutingModel::DisjunctionIndex'
|
|
) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetDisjunctionMaxCardinality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::DisjunctionIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the maximum number of possible active nodes of the node</span>
|
|
<span class="sd"> disjunction of index 'index'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDisjunctionMaxCardinality</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the maximum number of possible active nodes of the node
|
|
disjunction of index 'index'.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetNumberOfDisjunctions" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetNumberOfDisjunctions">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetNumberOfDisjunctions</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetNumberOfDisjunctions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of node disjunctions in the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNumberOfDisjunctions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the number of node disjunctions in the model.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetPerfectBinaryDisjunctions" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetPerfectBinaryDisjunctions">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetPerfectBinaryDisjunctions</span><span class="signature">(self) -> 'std::vector< std::pair< int64_t,int64_t > >'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetPerfectBinaryDisjunctions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::pair< int64_t,int64_t > >"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the list of all perfect binary disjunctions, as pairs of variable</span>
|
|
<span class="sd"> indices: a disjunction is "perfect" when its variables do not appear in</span>
|
|
<span class="sd"> any other disjunction. Each pair is sorted (lowest variable index first),</span>
|
|
<span class="sd"> and the output vector is also sorted (lowest pairs first).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetPerfectBinaryDisjunctions</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the list of all perfect binary disjunctions, as pairs of variable
|
|
indices: a disjunction is "perfect" when its variables do not appear in
|
|
any other disjunction. Each pair is sorted (lowest variable index first),
|
|
and the output vector is also sorted (lowest pairs first).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.IgnoreDisjunctionsAlreadyForcedToZero" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.IgnoreDisjunctionsAlreadyForcedToZero">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IgnoreDisjunctionsAlreadyForcedToZero</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IgnoreDisjunctionsAlreadyForcedToZero</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> SPECIAL: Makes the solver ignore all the disjunctions whose active</span>
|
|
<span class="sd"> variables are all trivially zero (i.e. Max() == 0), by setting their</span>
|
|
<span class="sd"> max_cardinality to 0.</span>
|
|
<span class="sd"> This can be useful when using the BaseBinaryDisjunctionNeighborhood</span>
|
|
<span class="sd"> operators, in the context of arc-based routing.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IgnoreDisjunctionsAlreadyForcedToZero</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>SPECIAL: Makes the solver ignore all the disjunctions whose active
|
|
variables are all trivially zero (i.e. Max() == 0), by setting their
|
|
max_cardinality to 0.
|
|
This can be useful when using the BaseBinaryDisjunctionNeighborhood
|
|
operators, in the context of arc-based routing.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddSoftSameVehicleConstraint" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddSoftSameVehicleConstraint">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddSoftSameVehicleConstraint</span><span class="signature">(
|
|
self,
|
|
indices: 'std::vector< int64_t > const &',
|
|
cost: 'int64_t'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddSoftSameVehicleConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">indices</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">,</span> <span class="n">cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a soft constraint to force a set of variable indices to be on the</span>
|
|
<span class="sd"> same vehicle. If all nodes are not on the same vehicle, each extra vehicle</span>
|
|
<span class="sd"> used adds 'cost' to the cost function.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddSoftSameVehicleConstraint</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">indices</span><span class="p">,</span> <span class="n">cost</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Adds a soft constraint to force a set of variable indices to be on the
|
|
same vehicle. If all nodes are not on the same vehicle, each extra vehicle
|
|
used adds 'cost' to the cost function.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SetAllowedVehiclesForIndex" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SetAllowedVehiclesForIndex">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetAllowedVehiclesForIndex</span><span class="signature">(
|
|
self,
|
|
vehicles: 'std::vector< int > const &',
|
|
index: 'int64_t'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetAllowedVehiclesForIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicles</span><span class="p">:</span> <span class="s2">"std::vector< int > const &"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets the vehicles which can visit a given node. If the node is in a</span>
|
|
<span class="sd"> disjunction, this will not prevent it from being unperformed.</span>
|
|
<span class="sd"> Specifying an empty vector of vehicles has no effect (all vehicles</span>
|
|
<span class="sd"> will be allowed to visit the node).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetAllowedVehiclesForIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicles</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Sets the vehicles which can visit a given node. If the node is in a
|
|
disjunction, this will not prevent it from being unperformed.
|
|
Specifying an empty vector of vehicles has no effect (all vehicles
|
|
will be allowed to visit the node).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.IsVehicleAllowedForIndex" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.IsVehicleAllowedForIndex">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsVehicleAllowedForIndex</span><span class="signature">(self, vehicle: int, index: 'int64_t') -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsVehicleAllowedForIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if a vehicle is allowed to visit a given node."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IsVehicleAllowedForIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true if a vehicle is allowed to visit a given node.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddPickupAndDelivery" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddPickupAndDelivery">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddPickupAndDelivery</span><span class="signature">(self, pickup: 'int64_t', delivery: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddPickupAndDelivery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pickup</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">delivery</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Notifies that index1 and index2 form a pair of nodes which should belong</span>
|
|
<span class="sd"> to the same route. This methods helps the search find better solutions,</span>
|
|
<span class="sd"> especially in the local search phase.</span>
|
|
<span class="sd"> It should be called each time you have an equality constraint linking</span>
|
|
<span class="sd"> the vehicle variables of two node (including for instance pickup and</span>
|
|
<span class="sd"> delivery problems):</span>
|
|
<span class="sd"> Solver* const solver = routing.solver();</span>
|
|
<span class="sd"> int64_t index1 = manager.NodeToIndex(node1);</span>
|
|
<span class="sd"> int64_t index2 = manager.NodeToIndex(node2);</span>
|
|
<span class="sd"> solver->AddConstraint(solver->MakeEquality(</span>
|
|
<span class="sd"> routing.VehicleVar(index1),</span>
|
|
<span class="sd"> routing.VehicleVar(index2)));</span>
|
|
<span class="sd"> routing.AddPickupAndDelivery(index1, index2);</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddPickupAndDelivery</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pickup</span><span class="p">,</span> <span class="n">delivery</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Notifies that index1 and index2 form a pair of nodes which should belong
|
|
to the same route. This methods helps the search find better solutions,
|
|
especially in the local search phase.
|
|
It should be called each time you have an equality constraint linking
|
|
the vehicle variables of two node (including for instance pickup and
|
|
delivery problems):
|
|
Solver* const solver = routing.solver();
|
|
int64_t index1 = manager.NodeToIndex(node1);
|
|
int64_t index2 = manager.NodeToIndex(node2);
|
|
solver->AddConstraint(solver->MakeEquality(
|
|
routing.VehicleVar(index1),
|
|
routing.VehicleVar(index2)));
|
|
routing.AddPickupAndDelivery(index1, index2);</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddPickupAndDeliverySets" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddPickupAndDeliverySets">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddPickupAndDeliverySets</span><span class="signature">(
|
|
self,
|
|
pickup_disjunction: 'operations_research::RoutingModel::DisjunctionIndex',
|
|
delivery_disjunction: 'operations_research::RoutingModel::DisjunctionIndex'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddPickupAndDeliverySets</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pickup_disjunction</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::DisjunctionIndex"</span><span class="p">,</span> <span class="n">delivery_disjunction</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::DisjunctionIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as AddPickupAndDelivery but notifying that the performed node from</span>
|
|
<span class="sd"> the disjunction of index 'pickup_disjunction' is on the same route as the</span>
|
|
<span class="sd"> performed node from the disjunction of index 'delivery_disjunction'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddPickupAndDeliverySets</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">pickup_disjunction</span><span class="p">,</span> <span class="n">delivery_disjunction</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Same as AddPickupAndDelivery but notifying that the performed node from
|
|
the disjunction of index 'pickup_disjunction' is on the same route as the
|
|
performed node from the disjunction of index 'delivery_disjunction'.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetPickupIndexPairs" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetPickupIndexPairs">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetPickupIndexPairs</span><span class="signature">(
|
|
self,
|
|
node_index: 'int64_t'
|
|
) -> 'std::vector< std::pair< int,int > > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetPickupIndexPairs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::pair< int,int > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns pairs for which the node is a pickup; the first element of each</span>
|
|
<span class="sd"> pair is the index in the pickup and delivery pairs list in which the</span>
|
|
<span class="sd"> pickup appears, the second element is its index in the pickups list.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetPickupIndexPairs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns pairs for which the node is a pickup; the first element of each
|
|
pair is the index in the pickup and delivery pairs list in which the
|
|
pickup appears, the second element is its index in the pickups list.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetDeliveryIndexPairs" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetDeliveryIndexPairs">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetDeliveryIndexPairs</span><span class="signature">(
|
|
self,
|
|
node_index: 'int64_t'
|
|
) -> 'std::vector< std::pair< int,int > > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetDeliveryIndexPairs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< std::pair< int,int > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Same as above for deliveries."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDeliveryIndexPairs</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node_index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Same as above for deliveries.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SetPickupAndDeliveryPolicyOfAllVehicles" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SetPickupAndDeliveryPolicyOfAllVehicles">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetPickupAndDeliveryPolicyOfAllVehicles</span><span class="signature">(
|
|
self,
|
|
policy: 'operations_research::RoutingModel::PickupAndDeliveryPolicy'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetPickupAndDeliveryPolicyOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">policy</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::PickupAndDeliveryPolicy"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets the Pickup and delivery policy of all vehicles. It is equivalent to</span>
|
|
<span class="sd"> calling SetPickupAndDeliveryPolicyOfVehicle on all vehicles.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetPickupAndDeliveryPolicyOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">policy</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Sets the Pickup and delivery policy of all vehicles. It is equivalent to
|
|
calling SetPickupAndDeliveryPolicyOfVehicle on all vehicles.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SetPickupAndDeliveryPolicyOfVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SetPickupAndDeliveryPolicyOfVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetPickupAndDeliveryPolicyOfVehicle</span><span class="signature">(
|
|
self,
|
|
policy: 'operations_research::RoutingModel::PickupAndDeliveryPolicy',
|
|
vehicle: int
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetPickupAndDeliveryPolicyOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">policy</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::PickupAndDeliveryPolicy"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetPickupAndDeliveryPolicyOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">policy</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetPickupAndDeliveryPolicyOfVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetPickupAndDeliveryPolicyOfVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetPickupAndDeliveryPolicyOfVehicle</span><span class="signature">(
|
|
self,
|
|
vehicle: int
|
|
) -> 'operations_research::RoutingModel::PickupAndDeliveryPolicy'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetPickupAndDeliveryPolicyOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::PickupAndDeliveryPolicy"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetPickupAndDeliveryPolicyOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetNumOfSingletonNodes" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetNumOfSingletonNodes">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetNumOfSingletonNodes</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetNumOfSingletonNodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the number of non-start/end nodes which do not appear in a</span>
|
|
<span class="sd"> pickup/delivery pair.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNumOfSingletonNodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the number of non-start/end nodes which do not appear in a
|
|
pickup/delivery pair.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.TYPE_ADDED_TO_VEHICLE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.TYPE_ADDED_TO_VEHICLE">#  </a>
|
|
|
|
<span class="name">TYPE_ADDED_TO_VEHICLE</span><span class="default_value"> = 0</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>When visited, the number of types 'T' on the vehicle increases by one.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.ADDED_TYPE_REMOVED_FROM_VEHICLE" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.ADDED_TYPE_REMOVED_FROM_VEHICLE">#  </a>
|
|
|
|
<span class="name">ADDED_TYPE_REMOVED_FROM_VEHICLE</span><span class="default_value"> = 1</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>When visited, one instance of type 'T' previously added to the route
|
|
(TYPE_ADDED_TO_VEHICLE), if any, is removed from the vehicle.
|
|
If the type was not previously added to the route or all added instances
|
|
have already been removed, this visit has no effect on the types.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.TYPE_ON_VEHICLE_UP_TO_VISIT" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.TYPE_ON_VEHICLE_UP_TO_VISIT">#  </a>
|
|
|
|
<span class="name">TYPE_ON_VEHICLE_UP_TO_VISIT</span><span class="default_value"> = 2</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>With the following policy, the visit enforces that type 'T' is
|
|
considered on the route from its start until this node is visited.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED">#  </a>
|
|
|
|
<span class="name">TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED</span><span class="default_value"> = 3</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The visit doesn't have an impact on the number of types 'T' on the
|
|
route, as it's (virtually) added and removed directly.
|
|
This policy can be used for visits which are part of an incompatibility
|
|
or requirement set without affecting the type count on the route.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SetVisitType" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SetVisitType">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetVisitType</span><span class="signature">(
|
|
self,
|
|
index: 'int64_t',
|
|
type: int,
|
|
type_policy: 'operations_research::RoutingModel::VisitTypePolicy'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetVisitType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">type_policy</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::VisitTypePolicy"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetVisitType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="nb">type</span><span class="p">,</span> <span class="n">type_policy</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetVisitType" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetVisitType">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetVisitType</span><span class="signature">(self, index: 'int64_t') -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetVisitType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVisitType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetSingleNodesOfType" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetSingleNodesOfType">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetSingleNodesOfType</span><span class="signature">(self, type: int) -> 'std::vector< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetSingleNodesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetSingleNodesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetPairIndicesOfType" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetPairIndicesOfType">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetPairIndicesOfType</span><span class="signature">(self, type: int) -> 'std::vector< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetPairIndicesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetPairIndicesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetVisitTypePolicy" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetVisitTypePolicy">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetVisitTypePolicy</span><span class="signature">(
|
|
self,
|
|
index: 'int64_t'
|
|
) -> 'operations_research::RoutingModel::VisitTypePolicy'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetVisitTypePolicy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::VisitTypePolicy"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVisitTypePolicy</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.CloseVisitTypes" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.CloseVisitTypes">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">CloseVisitTypes</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">CloseVisitTypes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> This function should be called once all node visit types have been set and</span>
|
|
<span class="sd"> prior to adding any incompatibilities/requirements.</span>
|
|
<span class="sd"> "close" types.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CloseVisitTypes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This function should be called once all node visit types have been set and
|
|
prior to adding any incompatibilities/requirements.
|
|
"close" types.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetNumberOfVisitTypes" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetNumberOfVisitTypes">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetNumberOfVisitTypes</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetNumberOfVisitTypes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNumberOfVisitTypes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddHardTypeIncompatibility" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddHardTypeIncompatibility">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddHardTypeIncompatibility</span><span class="signature">(self, type1: int, type2: int) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddHardTypeIncompatibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type1</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">type2</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Incompatibilities:</span>
|
|
<span class="sd"> Two nodes with "hard" incompatible types cannot share the same route at</span>
|
|
<span class="sd"> all, while with a "temporal" incompatibility they can't be on the same</span>
|
|
<span class="sd"> route at the same time.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddHardTypeIncompatibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type1</span><span class="p">,</span> <span class="n">type2</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Incompatibilities:
|
|
Two nodes with "hard" incompatible types cannot share the same route at
|
|
all, while with a "temporal" incompatibility they can't be on the same
|
|
route at the same time.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddTemporalTypeIncompatibility" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddTemporalTypeIncompatibility">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddTemporalTypeIncompatibility</span><span class="signature">(self, type1: int, type2: int) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddTemporalTypeIncompatibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type1</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">type2</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddTemporalTypeIncompatibility</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">type1</span><span class="p">,</span> <span class="n">type2</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetHardTypeIncompatibilitiesOfType" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetHardTypeIncompatibilitiesOfType">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetHardTypeIncompatibilitiesOfType</span><span class="signature">(self, type: int) -> 'absl::flat_hash_set< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetHardTypeIncompatibilitiesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"absl::flat_hash_set< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns visit types incompatible with a given type."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetHardTypeIncompatibilitiesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns visit types incompatible with a given type.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetTemporalTypeIncompatibilitiesOfType" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetTemporalTypeIncompatibilitiesOfType">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetTemporalTypeIncompatibilitiesOfType</span><span class="signature">(self, type: int) -> 'absl::flat_hash_set< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetTemporalTypeIncompatibilitiesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"absl::flat_hash_set< int > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetTemporalTypeIncompatibilitiesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.HasHardTypeIncompatibilities" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.HasHardTypeIncompatibilities">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">HasHardTypeIncompatibilities</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">HasHardTypeIncompatibilities</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true iff any hard (resp. temporal) type incompatibilities have</span>
|
|
<span class="sd"> been added to the model.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasHardTypeIncompatibilities</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true iff any hard (resp. temporal) type incompatibilities have
|
|
been added to the model.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.HasTemporalTypeIncompatibilities" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.HasTemporalTypeIncompatibilities">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">HasTemporalTypeIncompatibilities</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">HasTemporalTypeIncompatibilities</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasTemporalTypeIncompatibilities</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddSameVehicleRequiredTypeAlternatives" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddSameVehicleRequiredTypeAlternatives">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddSameVehicleRequiredTypeAlternatives</span><span class="signature">(
|
|
self,
|
|
dependent_type: int,
|
|
required_type_alternatives: 'absl::flat_hash_set< int >'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddSameVehicleRequiredTypeAlternatives</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">:</span> <span class="s2">"absl::flat_hash_set< int >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Requirements:</span>
|
|
<span class="sd"> NOTE: As of 2019-04, cycles in the requirement graph are not supported,</span>
|
|
<span class="sd"> and lead to the dependent nodes being skipped if possible (otherwise</span>
|
|
<span class="sd"> the model is considered infeasible).</span>
|
|
<span class="sd"> The following functions specify that "dependent_type" requires at least</span>
|
|
<span class="sd"> one of the types in "required_type_alternatives".</span>
|
|
|
|
<span class="sd"> For same-vehicle requirements, a node of dependent type type_D requires at</span>
|
|
<span class="sd"> least one node of type type_R among the required alternatives on the same</span>
|
|
<span class="sd"> route.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddSameVehicleRequiredTypeAlternatives</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Requirements:
|
|
NOTE: As of 2019-04, cycles in the requirement graph are not supported,
|
|
and lead to the dependent nodes being skipped if possible (otherwise
|
|
the model is considered infeasible).
|
|
The following functions specify that "dependent_type" requires at least
|
|
one of the types in "required_type_alternatives".</p>
|
|
|
|
<p>For same-vehicle requirements, a node of dependent type type_D requires at
|
|
least one node of type type_R among the required alternatives on the same
|
|
route.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddRequiredTypeAlternativesWhenAddingType" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddRequiredTypeAlternativesWhenAddingType">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddRequiredTypeAlternativesWhenAddingType</span><span class="signature">(
|
|
self,
|
|
dependent_type: int,
|
|
required_type_alternatives: 'absl::flat_hash_set< int >'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddRequiredTypeAlternativesWhenAddingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">:</span> <span class="s2">"absl::flat_hash_set< int >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> If type_D depends on type_R when adding type_D, any node_D of type_D and</span>
|
|
<span class="sd"> VisitTypePolicy TYPE_ADDED_TO_VEHICLE or</span>
|
|
<span class="sd"> TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED requires at least one type_R on its</span>
|
|
<span class="sd"> vehicle at the time node_D is visited.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddRequiredTypeAlternativesWhenAddingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>If type_D depends on type_R when adding type_D, any node_D of type_D and
|
|
VisitTypePolicy TYPE_ADDED_TO_VEHICLE or
|
|
TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED requires at least one type_R on its
|
|
vehicle at the time node_D is visited.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddRequiredTypeAlternativesWhenRemovingType" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddRequiredTypeAlternativesWhenRemovingType">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddRequiredTypeAlternativesWhenRemovingType</span><span class="signature">(
|
|
self,
|
|
dependent_type: int,
|
|
required_type_alternatives: 'absl::flat_hash_set< int >'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddRequiredTypeAlternativesWhenRemovingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">:</span> <span class="s2">"absl::flat_hash_set< int >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The following requirements apply when visiting dependent nodes that remove</span>
|
|
<span class="sd"> their type from the route, i.e. type_R must be on the vehicle when type_D</span>
|
|
<span class="sd"> of VisitTypePolicy ADDED_TYPE_REMOVED_FROM_VEHICLE,</span>
|
|
<span class="sd"> TYPE_ON_VEHICLE_UP_TO_VISIT or TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED is</span>
|
|
<span class="sd"> visited.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddRequiredTypeAlternativesWhenRemovingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dependent_type</span><span class="p">,</span> <span class="n">required_type_alternatives</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>The following requirements apply when visiting dependent nodes that remove
|
|
their type from the route, i.e. type_R must be on the vehicle when type_D
|
|
of VisitTypePolicy ADDED_TYPE_REMOVED_FROM_VEHICLE,
|
|
TYPE_ON_VEHICLE_UP_TO_VISIT or TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED is
|
|
visited.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetSameVehicleRequiredTypeAlternativesOfType" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetSameVehicleRequiredTypeAlternativesOfType">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetSameVehicleRequiredTypeAlternativesOfType</span><span class="signature">(
|
|
self,
|
|
type: int
|
|
) -> 'std::vector< absl::flat_hash_set< int > > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetSameVehicleRequiredTypeAlternativesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< absl::flat_hash_set< int > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the set of same-vehicle requirement alternatives for the given</span>
|
|
<span class="sd"> type.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetSameVehicleRequiredTypeAlternativesOfType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the set of same-vehicle requirement alternatives for the given
|
|
type.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetRequiredTypeAlternativesWhenAddingType" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetRequiredTypeAlternativesWhenAddingType">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetRequiredTypeAlternativesWhenAddingType</span><span class="signature">(
|
|
self,
|
|
type: int
|
|
) -> 'std::vector< absl::flat_hash_set< int > > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetRequiredTypeAlternativesWhenAddingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< absl::flat_hash_set< int > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the set of requirement alternatives when adding the given type."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetRequiredTypeAlternativesWhenAddingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the set of requirement alternatives when adding the given type.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetRequiredTypeAlternativesWhenRemovingType" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetRequiredTypeAlternativesWhenRemovingType">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetRequiredTypeAlternativesWhenRemovingType</span><span class="signature">(
|
|
self,
|
|
type: int
|
|
) -> 'std::vector< absl::flat_hash_set< int > > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetRequiredTypeAlternativesWhenRemovingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< absl::flat_hash_set< int > > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the set of requirement alternatives when removing the given type."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetRequiredTypeAlternativesWhenRemovingType</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">type</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the set of requirement alternatives when removing the given type.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.HasSameVehicleTypeRequirements" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.HasSameVehicleTypeRequirements">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">HasSameVehicleTypeRequirements</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">HasSameVehicleTypeRequirements</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true iff any same-route (resp. temporal) type requirements have</span>
|
|
<span class="sd"> been added to the model.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasSameVehicleTypeRequirements</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true iff any same-route (resp. temporal) type requirements have
|
|
been added to the model.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.HasTemporalTypeRequirements" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.HasTemporalTypeRequirements">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">HasTemporalTypeRequirements</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">HasTemporalTypeRequirements</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasTemporalTypeRequirements</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.HasTypeRegulations" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.HasTypeRegulations">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">HasTypeRegulations</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">HasTypeRegulations</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true iff the model has any incompatibilities or requirements set</span>
|
|
<span class="sd"> on node types.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasTypeRegulations</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true iff the model has any incompatibilities or requirements set
|
|
on node types.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.UnperformedPenalty" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.UnperformedPenalty">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">UnperformedPenalty</span><span class="signature">(self, var_index: 'int64_t') -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">UnperformedPenalty</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Get the "unperformed" penalty of a node. This is only well defined if the</span>
|
|
<span class="sd"> node is only part of a single Disjunction, and that disjunction has a</span>
|
|
<span class="sd"> penalty. For forced active nodes returns max int64_t. In all other cases,</span>
|
|
<span class="sd"> this returns 0.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_UnperformedPenalty</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var_index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Get the "unperformed" penalty of a node. This is only well defined if the
|
|
node is only part of a single Disjunction, and that disjunction has a
|
|
penalty. For forced active nodes returns max int64_t. In all other cases,
|
|
this returns 0.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.UnperformedPenaltyOrValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.UnperformedPenaltyOrValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">UnperformedPenaltyOrValue</span><span class="signature">(self, default_value: 'int64_t', var_index: 'int64_t') -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">UnperformedPenaltyOrValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default_value</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">var_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as above except that it returns default_value instead of 0 when</span>
|
|
<span class="sd"> penalty is not well defined (default value is passed as first argument to</span>
|
|
<span class="sd"> simplify the usage of the method in a callback).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_UnperformedPenaltyOrValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">default_value</span><span class="p">,</span> <span class="n">var_index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Same as above except that it returns default_value instead of 0 when
|
|
penalty is not well defined (default value is passed as first argument to
|
|
simplify the usage of the method in a callback).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetDepot" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetDepot">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetDepot</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetDepot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the variable index of the first starting or ending node of all</span>
|
|
<span class="sd"> routes. If all routes start and end at the same node (single depot), this</span>
|
|
<span class="sd"> is the node returned.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetDepot</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the variable index of the first starting or ending node of all
|
|
routes. If all routes start and end at the same node (single depot), this
|
|
is the node returned.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SetMaximumNumberOfActiveVehicles" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SetMaximumNumberOfActiveVehicles">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetMaximumNumberOfActiveVehicles</span><span class="signature">(self, max_active_vehicles: int) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetMaximumNumberOfActiveVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">max_active_vehicles</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Constrains the maximum number of active vehicles, aka the number of</span>
|
|
<span class="sd"> vehicles which do not have an empty route. For instance, this can be used</span>
|
|
<span class="sd"> to limit the number of routes in the case where there are fewer drivers</span>
|
|
<span class="sd"> than vehicles and that the fleet of vehicle is heterogeneous.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetMaximumNumberOfActiveVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">max_active_vehicles</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Constrains the maximum number of active vehicles, aka the number of
|
|
vehicles which do not have an empty route. For instance, this can be used
|
|
to limit the number of routes in the case where there are fewer drivers
|
|
than vehicles and that the fleet of vehicle is heterogeneous.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetMaximumNumberOfActiveVehicles" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetMaximumNumberOfActiveVehicles">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetMaximumNumberOfActiveVehicles</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetMaximumNumberOfActiveVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the maximum number of active vehicles."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetMaximumNumberOfActiveVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the maximum number of active vehicles.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SetArcCostEvaluatorOfAllVehicles" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SetArcCostEvaluatorOfAllVehicles">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetArcCostEvaluatorOfAllVehicles</span><span class="signature">(self, evaluator_index: int) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetArcCostEvaluatorOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets the cost function of the model such that the cost of a segment of a</span>
|
|
<span class="sd"> route between node 'from' and 'to' is evaluator(from, to), whatever the</span>
|
|
<span class="sd"> route or vehicle performing the route.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetArcCostEvaluatorOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Sets the cost function of the model such that the cost of a segment of a
|
|
route between node 'from' and 'to' is evaluator(from, to), whatever the
|
|
route or vehicle performing the route.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SetArcCostEvaluatorOfVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SetArcCostEvaluatorOfVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetArcCostEvaluatorOfVehicle</span><span class="signature">(self, evaluator_index: int, vehicle: int) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetArcCostEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Sets the cost function for a given vehicle route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetArcCostEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator_index</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Sets the cost function for a given vehicle route.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SetFixedCostOfAllVehicles" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SetFixedCostOfAllVehicles">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetFixedCostOfAllVehicles</span><span class="signature">(self, cost: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetFixedCostOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets the fixed cost of all vehicle routes. It is equivalent to calling</span>
|
|
<span class="sd"> SetFixedCostOfVehicle on all vehicle routes.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetFixedCostOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Sets the fixed cost of all vehicle routes. It is equivalent to calling
|
|
SetFixedCostOfVehicle on all vehicle routes.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SetFixedCostOfVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SetFixedCostOfVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetFixedCostOfVehicle</span><span class="signature">(self, cost: 'int64_t', vehicle: int) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetFixedCostOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Sets the fixed cost of one vehicle route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetFixedCostOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Sets the fixed cost of one vehicle route.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetFixedCostOfVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetFixedCostOfVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetFixedCostOfVehicle</span><span class="signature">(self, vehicle: int) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetFixedCostOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the route fixed cost taken into account if the route of the</span>
|
|
<span class="sd"> vehicle is not empty, aka there's at least one node on the route other</span>
|
|
<span class="sd"> than the first and last nodes.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetFixedCostOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the route fixed cost taken into account if the route of the
|
|
vehicle is not empty, aka there's at least one node on the route other
|
|
than the first and last nodes.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SetAmortizedCostFactorsOfAllVehicles" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SetAmortizedCostFactorsOfAllVehicles">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetAmortizedCostFactorsOfAllVehicles</span><span class="signature">(
|
|
self,
|
|
linear_cost_factor: 'int64_t',
|
|
quadratic_cost_factor: 'int64_t'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetAmortizedCostFactorsOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">linear_cost_factor</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">quadratic_cost_factor</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The following methods set the linear and quadratic cost factors of</span>
|
|
<span class="sd"> vehicles (must be positive values). The default value of these parameters</span>
|
|
<span class="sd"> is zero for all vehicles.</span>
|
|
|
|
<span class="sd"> When set, the cost_ of the model will contain terms aiming at reducing the</span>
|
|
<span class="sd"> number of vehicles used in the model, by adding the following to the</span>
|
|
<span class="sd"> objective for every vehicle v:</span>
|
|
<span class="sd"> INDICATOR(v used in the model) *</span>
|
|
<span class="sd"> [linear_cost_factor_of_vehicle_[v]</span>
|
|
<span class="sd"> - quadratic_cost_factor_of_vehicle_[v]*(square of length of route v)]</span>
|
|
<span class="sd"> i.e. for every used vehicle, we add the linear factor as fixed cost, and</span>
|
|
<span class="sd"> subtract the square of the route length multiplied by the quadratic</span>
|
|
<span class="sd"> factor. This second term aims at making the routes as dense as possible.</span>
|
|
|
|
<span class="sd"> Sets the linear and quadratic cost factor of all vehicles.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetAmortizedCostFactorsOfAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">linear_cost_factor</span><span class="p">,</span> <span class="n">quadratic_cost_factor</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>The following methods set the linear and quadratic cost factors of
|
|
vehicles (must be positive values). The default value of these parameters
|
|
is zero for all vehicles.</p>
|
|
|
|
<p>When set, the cost_ of the model will contain terms aiming at reducing the
|
|
number of vehicles used in the model, by adding the following to the
|
|
objective for every vehicle v:
|
|
INDICATOR(v used in the model) *
|
|
[linear_cost_factor_of_vehicle_[v]</p>
|
|
|
|
<ul>
|
|
<li>quadratic_cost_factor_of_vehicle_[v]*(square of length of route v)]
|
|
i.e. for every used vehicle, we add the linear factor as fixed cost, and
|
|
subtract the square of the route length multiplied by the quadratic
|
|
factor. This second term aims at making the routes as dense as possible.</li>
|
|
</ul>
|
|
|
|
<p>Sets the linear and quadratic cost factor of all vehicles.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SetAmortizedCostFactorsOfVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SetAmortizedCostFactorsOfVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetAmortizedCostFactorsOfVehicle</span><span class="signature">(
|
|
self,
|
|
linear_cost_factor: 'int64_t',
|
|
quadratic_cost_factor: 'int64_t',
|
|
vehicle: int
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetAmortizedCostFactorsOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">linear_cost_factor</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">quadratic_cost_factor</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Sets the linear and quadratic cost factor of the given vehicle."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetAmortizedCostFactorsOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">linear_cost_factor</span><span class="p">,</span> <span class="n">quadratic_cost_factor</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Sets the linear and quadratic cost factor of the given vehicle.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetAmortizedLinearCostFactorOfVehicles" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetAmortizedLinearCostFactorOfVehicles">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetAmortizedLinearCostFactorOfVehicles</span><span class="signature">(self) -> 'std::vector< int64_t > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetAmortizedLinearCostFactorOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetAmortizedLinearCostFactorOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetAmortizedQuadraticCostFactorOfVehicles" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetAmortizedQuadraticCostFactorOfVehicles">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetAmortizedQuadraticCostFactorOfVehicles</span><span class="signature">(self) -> 'std::vector< int64_t > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetAmortizedQuadraticCostFactorOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetAmortizedQuadraticCostFactorOfVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.ConsiderEmptyRouteCostsForVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.ConsiderEmptyRouteCostsForVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ConsiderEmptyRouteCostsForVehicle</span><span class="signature">(self, consider_costs: bool, vehicle: int) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ConsiderEmptyRouteCostsForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">consider_costs</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ConsiderEmptyRouteCostsForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">consider_costs</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AreEmptyRouteCostsConsideredForVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AreEmptyRouteCostsConsideredForVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AreEmptyRouteCostsConsideredForVehicle</span><span class="signature">(self, vehicle: int) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AreEmptyRouteCostsConsideredForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AreEmptyRouteCostsConsideredForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SetFirstSolutionEvaluator" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SetFirstSolutionEvaluator">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetFirstSolutionEvaluator</span><span class="signature">(
|
|
self,
|
|
evaluator: 'operations_research::Solver::IndexEvaluator2'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetFirstSolutionEvaluator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">:</span> <span class="s2">"operations_research::Solver::IndexEvaluator2"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Gets/sets the evaluator used during the search. Only relevant when</span>
|
|
<span class="sd"> RoutingSearchParameters.first_solution_strategy = EVALUATOR_STRATEGY.</span>
|
|
<span class="sd"> Takes ownership of evaluator.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetFirstSolutionEvaluator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">evaluator</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Gets/sets the evaluator used during the search. Only relevant when
|
|
RoutingSearchParameters.first_solution_strategy = EVALUATOR_STRATEGY.
|
|
Takes ownership of evaluator.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddLocalSearchOperator" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddLocalSearchOperator">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddLocalSearchOperator</span><span class="signature">(self, ls_operator: <a href="#LocalSearchOperator">pywrapcp.LocalSearchOperator</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddLocalSearchOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ls_operator</span><span class="p">:</span> <span class="s2">"LocalSearchOperator"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a local search operator to the set of operators used to solve the</span>
|
|
<span class="sd"> vehicle routing problem.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddLocalSearchOperator</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">ls_operator</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Adds a local search operator to the set of operators used to solve the
|
|
vehicle routing problem.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddSearchMonitor" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddSearchMonitor">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddSearchMonitor</span><span class="signature">(self, monitor: <a href="#SearchMonitor">pywrapcp.SearchMonitor</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddSearchMonitor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">monitor</span><span class="p">:</span> <span class="s2">"SearchMonitor"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Adds a search monitor to the search used to solve the routing model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddSearchMonitor</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">monitor</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Adds a search monitor to the search used to solve the routing model.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddAtSolutionCallback" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddAtSolutionCallback">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddAtSolutionCallback</span><span class="signature">(self, callback: 'std::function< void () >') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddAtSolutionCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">:</span> <span class="s2">"std::function< void () >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a callback called each time a solution is found during the search.</span>
|
|
<span class="sd"> This is a shortcut to creating a monitor to call the callback on</span>
|
|
<span class="sd"> AtSolution() and adding it with AddSearchMonitor.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddAtSolutionCallback</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">callback</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Adds a callback called each time a solution is found during the search.
|
|
This is a shortcut to creating a monitor to call the callback on
|
|
AtSolution() and adding it with AddSearchMonitor.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddVariableMinimizedByFinalizer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddVariableMinimizedByFinalizer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddVariableMinimizedByFinalizer</span><span class="signature">(self, var: <a href="#IntVar">pywrapcp.IntVar</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddVariableMinimizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a variable to minimize in the solution finalizer. The solution</span>
|
|
<span class="sd"> finalizer is called each time a solution is found during the search and</span>
|
|
<span class="sd"> allows to instantiate secondary variables (such as dimension cumul</span>
|
|
<span class="sd"> variables).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddVariableMinimizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Adds a variable to minimize in the solution finalizer. The solution
|
|
finalizer is called each time a solution is found during the search and
|
|
allows to instantiate secondary variables (such as dimension cumul
|
|
variables).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddVariableMaximizedByFinalizer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddVariableMaximizedByFinalizer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddVariableMaximizedByFinalizer</span><span class="signature">(self, var: <a href="#IntVar">pywrapcp.IntVar</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddVariableMaximizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a variable to maximize in the solution finalizer (see above for</span>
|
|
<span class="sd"> information on the solution finalizer).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddVariableMaximizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Adds a variable to maximize in the solution finalizer (see above for
|
|
information on the solution finalizer).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddWeightedVariableMinimizedByFinalizer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddWeightedVariableMinimizedByFinalizer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddWeightedVariableMinimizedByFinalizer</span><span class="signature">(self, var: <a href="#IntVar">pywrapcp.IntVar</a>, cost: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddWeightedVariableMinimizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">cost</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a variable to minimize in the solution finalizer, with a weighted</span>
|
|
<span class="sd"> priority: the higher the more priority it has.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddWeightedVariableMinimizedByFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">cost</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Adds a variable to minimize in the solution finalizer, with a weighted
|
|
priority: the higher the more priority it has.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddVariableTargetToFinalizer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddVariableTargetToFinalizer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddVariableTargetToFinalizer</span><span class="signature">(self, var: <a href="#IntVar">pywrapcp.IntVar</a>, target: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddVariableTargetToFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">,</span> <span class="n">target</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Add a variable to set the closest possible to the target value in the</span>
|
|
<span class="sd"> solution finalizer.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddVariableTargetToFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">,</span> <span class="n">target</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Add a variable to set the closest possible to the target value in the
|
|
solution finalizer.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.CloseModel" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.CloseModel">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">CloseModel</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">CloseModel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Closes the current routing model; after this method is called, no</span>
|
|
<span class="sd"> modification to the model can be done, but RoutesToAssignment becomes</span>
|
|
<span class="sd"> available. Note that CloseModel() is automatically called by Solve() and</span>
|
|
<span class="sd"> other methods that produce solution.</span>
|
|
<span class="sd"> This is equivalent to calling</span>
|
|
<span class="sd"> CloseModelWithParameters(DefaultRoutingSearchParameters()).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CloseModel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Closes the current routing model; after this method is called, no
|
|
modification to the model can be done, but RoutesToAssignment becomes
|
|
available. Note that CloseModel() is automatically called by Solve() and
|
|
other methods that produce solution.
|
|
This is equivalent to calling
|
|
CloseModelWithParameters(DefaultRoutingSearchParameters()).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.CloseModelWithParameters" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.CloseModelWithParameters">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">CloseModelWithParameters</span><span class="signature">(
|
|
self,
|
|
search_parameters: 'operations_research::RoutingSearchParameters const &'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">CloseModelWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as above taking search parameters (as of 10/2015 some the parameters</span>
|
|
<span class="sd"> have to be set when closing the model).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CloseModelWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Same as above taking search parameters (as of 10/2015 some the parameters
|
|
have to be set when closing the model).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.Solve" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.Solve">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Solve</span><span class="signature">(
|
|
self,
|
|
assignment: <a href="#Assignment">pywrapcp.Assignment</a> = None
|
|
) -> 'operations_research::Assignment const *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Solve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Solves the current routing model; closes the current model.</span>
|
|
<span class="sd"> This is equivalent to calling</span>
|
|
<span class="sd"> SolveWithParameters(DefaultRoutingSearchParameters())</span>
|
|
<span class="sd"> or</span>
|
|
<span class="sd"> SolveFromAssignmentWithParameters(assignment,</span>
|
|
<span class="sd"> DefaultRoutingSearchParameters()).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_Solve</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Solves the current routing model; closes the current model.
|
|
This is equivalent to calling
|
|
SolveWithParameters(DefaultRoutingSearchParameters())
|
|
or
|
|
SolveFromAssignmentWithParameters(assignment,
|
|
DefaultRoutingSearchParameters()).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SolveWithParameters" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SolveWithParameters">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SolveWithParameters</span><span class="signature">(
|
|
self,
|
|
search_parameters: 'operations_research::RoutingSearchParameters const &',
|
|
solutions: 'std::vector< operations_research::Assignment const * > *' = None
|
|
) -> 'operations_research::Assignment const *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SolveWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">,</span> <span class="n">solutions</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::Assignment const * > *"</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Solves the current routing model with the given parameters. If 'solutions'</span>
|
|
<span class="sd"> is specified, it will contain the k best solutions found during the search</span>
|
|
<span class="sd"> (from worst to best, including the one returned by this method), where k</span>
|
|
<span class="sd"> corresponds to the 'number_of_solutions_to_collect' in</span>
|
|
<span class="sd"> 'search_parameters'. Note that the Assignment returned by the method and</span>
|
|
<span class="sd"> the ones in solutions are owned by the underlying solver and should not be</span>
|
|
<span class="sd"> deleted.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SolveWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">,</span> <span class="n">solutions</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Solves the current routing model with the given parameters. If 'solutions'
|
|
is specified, it will contain the k best solutions found during the search
|
|
(from worst to best, including the one returned by this method), where k
|
|
corresponds to the 'number_of_solutions_to_collect' in
|
|
'search_parameters'. Note that the Assignment returned by the method and
|
|
the ones in solutions are owned by the underlying solver and should not be
|
|
deleted.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SolveFromAssignmentWithParameters" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SolveFromAssignmentWithParameters">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SolveFromAssignmentWithParameters</span><span class="signature">(
|
|
self,
|
|
assignment: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
search_parameters: 'operations_research::RoutingSearchParameters const &',
|
|
solutions: 'std::vector< operations_research::Assignment const * > *' = None
|
|
) -> 'operations_research::Assignment const *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SolveFromAssignmentWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">,</span> <span class="n">solutions</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::Assignment const * > *"</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as above, except that if assignment is not null, it will be used as</span>
|
|
<span class="sd"> the initial solution.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SolveFromAssignmentWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">,</span> <span class="n">solutions</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Same as above, except that if assignment is not null, it will be used as
|
|
the initial solution.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SolveFromAssignmentsWithParameters" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SolveFromAssignmentsWithParameters">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SolveFromAssignmentsWithParameters</span><span class="signature">(
|
|
self,
|
|
assignments: 'std::vector< operations_research::Assignment const * > const &',
|
|
search_parameters: 'operations_research::RoutingSearchParameters const &',
|
|
solutions: 'std::vector< operations_research::Assignment const * > *' = None
|
|
) -> 'operations_research::Assignment const *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SolveFromAssignmentsWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignments</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::Assignment const * > const &"</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">,</span> <span class="n">solutions</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::Assignment const * > *"</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as above but will try all assignments in order as first solutions</span>
|
|
<span class="sd"> until one succeeds.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SolveFromAssignmentsWithParameters</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignments</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">,</span> <span class="n">solutions</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Same as above but will try all assignments in order as first solutions
|
|
until one succeeds.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.SetAssignmentFromOtherModelAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.SetAssignmentFromOtherModelAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetAssignmentFromOtherModelAssignment</span><span class="signature">(
|
|
self,
|
|
target_assignment: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
source_model: <a href="#RoutingModel">pywrapcp.RoutingModel</a>,
|
|
source_assignment: <a href="#Assignment">pywrapcp.Assignment</a>
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetAssignmentFromOtherModelAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">target_assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">source_model</span><span class="p">:</span> <span class="s2">"RoutingModel"</span><span class="p">,</span> <span class="n">source_assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Given a "source_model" and its "source_assignment", resets</span>
|
|
<span class="sd"> "target_assignment" with the IntVar variables (nexts_, and vehicle_vars_</span>
|
|
<span class="sd"> if costs aren't homogeneous across vehicles) of "this" model, with the</span>
|
|
<span class="sd"> values set according to those in "other_assignment".</span>
|
|
<span class="sd"> The objective_element of target_assignment is set to this->cost_.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_SetAssignmentFromOtherModelAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">target_assignment</span><span class="p">,</span> <span class="n">source_model</span><span class="p">,</span> <span class="n">source_assignment</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Given a "source_model" and its "source_assignment", resets
|
|
"target_assignment" with the IntVar variables (nexts_, and vehicle_vars_
|
|
if costs aren't homogeneous across vehicles) of "this" model, with the
|
|
values set according to those in "other_assignment".
|
|
The objective_element of target_assignment is set to this->cost_.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.ComputeLowerBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.ComputeLowerBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ComputeLowerBound</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ComputeLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Computes a lower bound to the routing problem solving a linear assignment</span>
|
|
<span class="sd"> problem. The routing model must be closed before calling this method.</span>
|
|
<span class="sd"> Note that problems with node disjunction constraints (including optional</span>
|
|
<span class="sd"> nodes) and non-homogenous costs are not supported (the method returns 0 in</span>
|
|
<span class="sd"> these cases).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ComputeLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Computes a lower bound to the routing problem solving a linear assignment
|
|
problem. The routing model must be closed before calling this method.
|
|
Note that problems with node disjunction constraints (including optional
|
|
nodes) and non-homogenous costs are not supported (the method returns 0 in
|
|
these cases).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.status" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.status">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">status</span><span class="signature">(self) -> 'operations_research::RoutingModel::Status'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">status</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::Status"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the current status of the routing model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_status</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the current status of the routing model.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.ApplyLocks" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.ApplyLocks">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ApplyLocks</span><span class="signature">(
|
|
self,
|
|
locks: 'std::vector< int64_t > const &'
|
|
) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ApplyLocks</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locks</span><span class="p">:</span> <span class="s2">"std::vector< int64_t > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Applies a lock chain to the next search. 'locks' represents an ordered</span>
|
|
<span class="sd"> vector of nodes representing a partial route which will be fixed during</span>
|
|
<span class="sd"> the next search; it will constrain next variables such that:</span>
|
|
<span class="sd"> next[locks[i]] == locks[i+1].</span>
|
|
|
|
<span class="sd"> Returns the next variable at the end of the locked chain; this variable is</span>
|
|
<span class="sd"> not locked. An assignment containing the locks can be obtained by calling</span>
|
|
<span class="sd"> PreAssignment().</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ApplyLocks</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locks</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Applies a lock chain to the next search. 'locks' represents an ordered
|
|
vector of nodes representing a partial route which will be fixed during
|
|
the next search; it will constrain next variables such that:
|
|
next[locks[i]] == locks[i+1].</p>
|
|
|
|
<p>Returns the next variable at the end of the locked chain; this variable is
|
|
not locked. An assignment containing the locks can be obtained by calling
|
|
PreAssignment().</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.ApplyLocksToAllVehicles" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.ApplyLocksToAllVehicles">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ApplyLocksToAllVehicles</span><span class="signature">(
|
|
self,
|
|
locks: 'std::vector< std::vector< int64_t > > const &',
|
|
close_routes: bool
|
|
) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ApplyLocksToAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locks</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > > const &"</span><span class="p">,</span> <span class="n">close_routes</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Applies lock chains to all vehicles to the next search, such that locks[p]</span>
|
|
<span class="sd"> is the lock chain for route p. Returns false if the locks do not contain</span>
|
|
<span class="sd"> valid routes; expects that the routes do not contain the depots,</span>
|
|
<span class="sd"> i.e. there are empty vectors in place of empty routes.</span>
|
|
<span class="sd"> If close_routes is set to true, adds the end nodes to the route of each</span>
|
|
<span class="sd"> vehicle and deactivates other nodes.</span>
|
|
<span class="sd"> An assignment containing the locks can be obtained by calling</span>
|
|
<span class="sd"> PreAssignment().</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ApplyLocksToAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">locks</span><span class="p">,</span> <span class="n">close_routes</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Applies lock chains to all vehicles to the next search, such that locks[p]
|
|
is the lock chain for route p. Returns false if the locks do not contain
|
|
valid routes; expects that the routes do not contain the depots,
|
|
i.e. there are empty vectors in place of empty routes.
|
|
If close_routes is set to true, adds the end nodes to the route of each
|
|
vehicle and deactivates other nodes.
|
|
An assignment containing the locks can be obtained by calling
|
|
PreAssignment().</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.PreAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.PreAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">PreAssignment</span><span class="signature">(self) -> 'operations_research::Assignment const *const'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">PreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *const"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns an assignment used to fix some of the variables of the problem.</span>
|
|
<span class="sd"> In practice, this assignment locks partial routes of the problem. This</span>
|
|
<span class="sd"> can be used in the context of locking the parts of the routes which have</span>
|
|
<span class="sd"> already been driven in online routing problems.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_PreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns an assignment used to fix some of the variables of the problem.
|
|
In practice, this assignment locks partial routes of the problem. This
|
|
can be used in the context of locking the parts of the routes which have
|
|
already been driven in online routing problems.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.MutablePreAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.MutablePreAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MutablePreAssignment</span><span class="signature">(self) -> 'operations_research::Assignment *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MutablePreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_MutablePreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.WriteAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.WriteAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">WriteAssignment</span><span class="signature">(self, file_name: 'std::string const &') -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">WriteAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Writes the current solution to a file containing an AssignmentProto.</span>
|
|
<span class="sd"> Returns false if the file cannot be opened or if there is no current</span>
|
|
<span class="sd"> solution.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_WriteAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Writes the current solution to a file containing an AssignmentProto.
|
|
Returns false if the file cannot be opened or if there is no current
|
|
solution.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.ReadAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.ReadAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ReadAssignment</span><span class="signature">(
|
|
self,
|
|
file_name: 'std::string const &'
|
|
) -> 'operations_research::Assignment *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ReadAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Reads an assignment from a file and returns the current solution.</span>
|
|
<span class="sd"> Returns nullptr if the file cannot be opened or if the assignment is not</span>
|
|
<span class="sd"> valid.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ReadAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">file_name</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Reads an assignment from a file and returns the current solution.
|
|
Returns nullptr if the file cannot be opened or if the assignment is not
|
|
valid.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.RestoreAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.RestoreAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RestoreAssignment</span><span class="signature">(
|
|
self,
|
|
solution: <a href="#Assignment">pywrapcp.Assignment</a>
|
|
) -> 'operations_research::Assignment *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RestoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Restores an assignment as a solution in the routing model and returns the</span>
|
|
<span class="sd"> new solution. Returns nullptr if the assignment is not valid.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RestoreAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Restores an assignment as a solution in the routing model and returns the
|
|
new solution. Returns nullptr if the assignment is not valid.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.ReadAssignmentFromRoutes" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.ReadAssignmentFromRoutes">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ReadAssignmentFromRoutes</span><span class="signature">(
|
|
self,
|
|
routes: 'std::vector< std::vector< int64_t > > const &',
|
|
ignore_inactive_indices: bool
|
|
) -> 'operations_research::Assignment *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ReadAssignmentFromRoutes</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">routes</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > > const &"</span><span class="p">,</span> <span class="n">ignore_inactive_indices</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Restores the routes as the current solution. Returns nullptr if the</span>
|
|
<span class="sd"> solution cannot be restored (routes do not contain a valid solution). Note</span>
|
|
<span class="sd"> that calling this method will run the solver to assign values to the</span>
|
|
<span class="sd"> dimension variables; this may take considerable amount of time, especially</span>
|
|
<span class="sd"> when using dimensions with slack.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ReadAssignmentFromRoutes</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">routes</span><span class="p">,</span> <span class="n">ignore_inactive_indices</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Restores the routes as the current solution. Returns nullptr if the
|
|
solution cannot be restored (routes do not contain a valid solution). Note
|
|
that calling this method will run the solver to assign values to the
|
|
dimension variables; this may take considerable amount of time, especially
|
|
when using dimensions with slack.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.RoutesToAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.RoutesToAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RoutesToAssignment</span><span class="signature">(
|
|
self,
|
|
routes: 'std::vector< std::vector< int64_t > > const &',
|
|
ignore_inactive_indices: bool,
|
|
close_routes: bool,
|
|
assignment: <a href="#Assignment">pywrapcp.Assignment</a>
|
|
) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RoutesToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">routes</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > > const &"</span><span class="p">,</span> <span class="n">ignore_inactive_indices</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">close_routes</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Fills an assignment from a specification of the routes of the</span>
|
|
<span class="sd"> vehicles. The routes are specified as lists of variable indices that</span>
|
|
<span class="sd"> appear on the routes of the vehicles. The indices of the outer vector in</span>
|
|
<span class="sd"> 'routes' correspond to vehicles IDs, the inner vector contains the</span>
|
|
<span class="sd"> variable indices on the routes for the given vehicle. The inner vectors</span>
|
|
<span class="sd"> must not contain the start and end indices, as these are determined by the</span>
|
|
<span class="sd"> routing model. Sets the value of NextVars in the assignment, adding the</span>
|
|
<span class="sd"> variables to the assignment if necessary. The method does not touch other</span>
|
|
<span class="sd"> variables in the assignment. The method can only be called after the model</span>
|
|
<span class="sd"> is closed. With ignore_inactive_indices set to false, this method will</span>
|
|
<span class="sd"> fail (return nullptr) in case some of the route contain indices that are</span>
|
|
<span class="sd"> deactivated in the model; when set to true, these indices will be</span>
|
|
<span class="sd"> skipped. Returns true if routes were successfully</span>
|
|
<span class="sd"> loaded. However, such assignment still might not be a valid</span>
|
|
<span class="sd"> solution to the routing problem due to more complex constraints;</span>
|
|
<span class="sd"> it is advisible to call solver()->CheckSolution() afterwards.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RoutesToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">routes</span><span class="p">,</span> <span class="n">ignore_inactive_indices</span><span class="p">,</span> <span class="n">close_routes</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Fills an assignment from a specification of the routes of the
|
|
vehicles. The routes are specified as lists of variable indices that
|
|
appear on the routes of the vehicles. The indices of the outer vector in
|
|
'routes' correspond to vehicles IDs, the inner vector contains the
|
|
variable indices on the routes for the given vehicle. The inner vectors
|
|
must not contain the start and end indices, as these are determined by the
|
|
routing model. Sets the value of NextVars in the assignment, adding the
|
|
variables to the assignment if necessary. The method does not touch other
|
|
variables in the assignment. The method can only be called after the model
|
|
is closed. With ignore_inactive_indices set to false, this method will
|
|
fail (return nullptr) in case some of the route contain indices that are
|
|
deactivated in the model; when set to true, these indices will be
|
|
skipped. Returns true if routes were successfully
|
|
loaded. However, such assignment still might not be a valid
|
|
solution to the routing problem due to more complex constraints;
|
|
it is advisible to call solver()->CheckSolution() afterwards.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AssignmentToRoutes" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AssignmentToRoutes">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AssignmentToRoutes</span><span class="signature">(
|
|
self,
|
|
assignment: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
routes: 'std::vector< std::vector< int64_t > > *const'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AssignmentToRoutes</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">routes</span><span class="p">:</span> <span class="s2">"std::vector< std::vector< int64_t > > *const"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Converts the solution in the given assignment to routes for all vehicles.</span>
|
|
<span class="sd"> Expects that assignment contains a valid solution (i.e. routes for all</span>
|
|
<span class="sd"> vehicles end with an end index for that vehicle).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AssignmentToRoutes</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">routes</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Converts the solution in the given assignment to routes for all vehicles.
|
|
Expects that assignment contains a valid solution (i.e. routes for all
|
|
vehicles end with an end index for that vehicle).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.CompactAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.CompactAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">CompactAssignment</span><span class="signature">(
|
|
self,
|
|
assignment: <a href="#Assignment">pywrapcp.Assignment</a>
|
|
) -> 'operations_research::Assignment *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">CompactAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Converts the solution in the given assignment to routes for all vehicles.</span>
|
|
<span class="sd"> If the returned vector is route_indices, route_indices[i][j] is the index</span>
|
|
<span class="sd"> for jth location visited on route i. Note that contrary to</span>
|
|
<span class="sd"> AssignmentToRoutes, the vectors do include start and end locations.</span>
|
|
<span class="sd"> Returns a compacted version of the given assignment, in which all vehicles</span>
|
|
<span class="sd"> with id lower or equal to some N have non-empty routes, and all vehicles</span>
|
|
<span class="sd"> with id greater than N have empty routes. Does not take ownership of the</span>
|
|
<span class="sd"> returned object.</span>
|
|
<span class="sd"> If found, the cost of the compact assignment is the same as in the</span>
|
|
<span class="sd"> original assignment and it preserves the values of 'active' variables.</span>
|
|
<span class="sd"> Returns nullptr if a compact assignment was not found.</span>
|
|
<span class="sd"> This method only works in homogenous mode, and it only swaps equivalent</span>
|
|
<span class="sd"> vehicles (vehicles with the same start and end nodes). When creating the</span>
|
|
<span class="sd"> compact assignment, the empty plan is replaced by the route assigned to</span>
|
|
<span class="sd"> the compatible vehicle with the highest id. Note that with more complex</span>
|
|
<span class="sd"> constraints on vehicle variables, this method might fail even if a compact</span>
|
|
<span class="sd"> solution exists.</span>
|
|
<span class="sd"> This method changes the vehicle and dimension variables as necessary.</span>
|
|
<span class="sd"> While compacting the solution, only basic checks on vehicle variables are</span>
|
|
<span class="sd"> performed; if one of these checks fails no attempts to repair it are made</span>
|
|
<span class="sd"> (instead, the method returns nullptr).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CompactAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Converts the solution in the given assignment to routes for all vehicles.
|
|
If the returned vector is route_indices, route_indices[i][j] is the index
|
|
for jth location visited on route i. Note that contrary to
|
|
AssignmentToRoutes, the vectors do include start and end locations.
|
|
Returns a compacted version of the given assignment, in which all vehicles
|
|
with id lower or equal to some N have non-empty routes, and all vehicles
|
|
with id greater than N have empty routes. Does not take ownership of the
|
|
returned object.
|
|
If found, the cost of the compact assignment is the same as in the
|
|
original assignment and it preserves the values of 'active' variables.
|
|
Returns nullptr if a compact assignment was not found.
|
|
This method only works in homogenous mode, and it only swaps equivalent
|
|
vehicles (vehicles with the same start and end nodes). When creating the
|
|
compact assignment, the empty plan is replaced by the route assigned to
|
|
the compatible vehicle with the highest id. Note that with more complex
|
|
constraints on vehicle variables, this method might fail even if a compact
|
|
solution exists.
|
|
This method changes the vehicle and dimension variables as necessary.
|
|
While compacting the solution, only basic checks on vehicle variables are
|
|
performed; if one of these checks fails no attempts to repair it are made
|
|
(instead, the method returns nullptr).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.CompactAndCheckAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.CompactAndCheckAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">CompactAndCheckAssignment</span><span class="signature">(
|
|
self,
|
|
assignment: <a href="#Assignment">pywrapcp.Assignment</a>
|
|
) -> 'operations_research::Assignment *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">CompactAndCheckAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as CompactAssignment() but also checks the validity of the final</span>
|
|
<span class="sd"> compact solution; if it is not valid, no attempts to repair it are made</span>
|
|
<span class="sd"> (instead, the method returns nullptr).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CompactAndCheckAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Same as CompactAssignment() but also checks the validity of the final
|
|
compact solution; if it is not valid, no attempts to repair it are made
|
|
(instead, the method returns nullptr).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddToAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddToAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddToAssignment</span><span class="signature">(self, var: <a href="#IntVar">pywrapcp.IntVar</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">:</span> <span class="s2">"IntVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Adds an extra variable to the vehicle routing assignment."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">var</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Adds an extra variable to the vehicle routing assignment.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddIntervalToAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddIntervalToAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddIntervalToAssignment</span><span class="signature">(self, interval: <a href="#IntervalVar">pywrapcp.IntervalVar</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddIntervalToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval</span><span class="p">:</span> <span class="s2">"IntervalVar"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddIntervalToAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.PackCumulsOfOptimizerDimensionsFromAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.PackCumulsOfOptimizerDimensionsFromAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">PackCumulsOfOptimizerDimensionsFromAssignment</span><span class="signature">(
|
|
self,
|
|
original_assignment: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
duration_limit: 'absl::Duration'
|
|
) -> 'operations_research::Assignment const *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">PackCumulsOfOptimizerDimensionsFromAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">original_assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">duration_limit</span><span class="p">:</span> <span class="s2">"absl::Duration"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Assignment const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> For every dimension in the model with an optimizer in</span>
|
|
<span class="sd"> local/global_dimension_optimizers_, this method tries to pack the cumul</span>
|
|
<span class="sd"> values of the dimension, such that:</span>
|
|
<span class="sd"> - The cumul costs (span costs, soft lower and upper bound costs, etc) are</span>
|
|
<span class="sd"> minimized.</span>
|
|
<span class="sd"> - The cumuls of the ends of the routes are minimized for this given</span>
|
|
<span class="sd"> minimal cumul cost.</span>
|
|
<span class="sd"> - Given these minimal end cumuls, the route start cumuls are maximized.</span>
|
|
<span class="sd"> Returns the assignment resulting from allocating these packed cumuls with</span>
|
|
<span class="sd"> the solver, and nullptr if these cumuls could not be set by the solver.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_PackCumulsOfOptimizerDimensionsFromAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">original_assignment</span><span class="p">,</span> <span class="n">duration_limit</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>For every dimension in the model with an optimizer in
|
|
local/global_dimension_optimizers_, this method tries to pack the cumul
|
|
values of the dimension, such that:</p>
|
|
|
|
<ul>
|
|
<li>The cumul costs (span costs, soft lower and upper bound costs, etc) are
|
|
minimized.</li>
|
|
<li>The cumuls of the ends of the routes are minimized for this given
|
|
minimal cumul cost.</li>
|
|
<li>Given these minimal end cumuls, the route start cumuls are maximized.
|
|
Returns the assignment resulting from allocating these packed cumuls with
|
|
the solver, and nullptr if these cumuls could not be set by the solver.</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.AddLocalSearchFilter" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.AddLocalSearchFilter">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddLocalSearchFilter</span><span class="signature">(self, filter: <a href="#LocalSearchFilter">pywrapcp.LocalSearchFilter</a>) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddLocalSearchFilter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">filter</span><span class="p">:</span> <span class="s2">"LocalSearchFilter"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Adds a custom local search filter to the list of filters used to speed up</span>
|
|
<span class="sd"> local search by pruning unfeasible variable assignments.</span>
|
|
<span class="sd"> Calling this method after the routing model has been closed (CloseModel()</span>
|
|
<span class="sd"> or Solve() has been called) has no effect.</span>
|
|
<span class="sd"> The routing model does not take ownership of the filter.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_AddLocalSearchFilter</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="nb">filter</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Adds a custom local search filter to the list of filters used to speed up
|
|
local search by pruning unfeasible variable assignments.
|
|
Calling this method after the routing model has been closed (CloseModel()
|
|
or Solve() has been called) has no effect.
|
|
The routing model does not take ownership of the filter.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.Start" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.Start">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Start</span><span class="signature">(self, vehicle: int) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Model inspection.</span>
|
|
<span class="sd"> Returns the variable index of the starting node of a vehicle route.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_Start</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Model inspection.
|
|
Returns the variable index of the starting node of a vehicle route.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.End" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.End">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">End</span><span class="signature">(self, vehicle: int) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">End</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the variable index of the ending node of a vehicle route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_End</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the variable index of the ending node of a vehicle route.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.IsStart" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.IsStart">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsStart</span><span class="signature">(self, index: 'int64_t') -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if 'index' represents the first node of a route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IsStart</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true if 'index' represents the first node of a route.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.IsEnd" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.IsEnd">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsEnd</span><span class="signature">(self, index: 'int64_t') -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if 'index' represents the last node of a route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IsEnd</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true if 'index' represents the last node of a route.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.VehicleIndex" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.VehicleIndex">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">VehicleIndex</span><span class="signature">(self, index: 'int64_t') -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">VehicleIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the vehicle of the given start/end index, and -1 if the given</span>
|
|
<span class="sd"> index is not a vehicle start/end.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_VehicleIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the vehicle of the given start/end index, and -1 if the given
|
|
index is not a vehicle start/end.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.Next" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.Next">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Next</span><span class="signature">(self, assignment: <a href="#Assignment">pywrapcp.Assignment</a>, index: 'int64_t') -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Next</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Assignment inspection</span>
|
|
<span class="sd"> Returns the variable index of the node directly after the node</span>
|
|
<span class="sd"> corresponding to 'index' in 'assignment'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_Next</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Assignment inspection
|
|
Returns the variable index of the node directly after the node
|
|
corresponding to 'index' in 'assignment'.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.IsVehicleUsed" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.IsVehicleUsed">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsVehicleUsed</span><span class="signature">(self, assignment: <a href="#Assignment">pywrapcp.Assignment</a>, vehicle: int) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsVehicleUsed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if the route of 'vehicle' is non empty in 'assignment'."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IsVehicleUsed</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">assignment</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true if the route of 'vehicle' is non empty in 'assignment'.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.NextVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.NextVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">NextVar</span><span class="signature">(self, index: 'int64_t') -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">NextVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the next variable of the node corresponding to index. Note that</span>
|
|
<span class="sd"> NextVar(index) == index is equivalent to ActiveVar(index) == 0.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_NextVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the next variable of the node corresponding to index. Note that
|
|
NextVar(index) == index is equivalent to ActiveVar(index) == 0.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.ActiveVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.ActiveVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ActiveVar</span><span class="signature">(self, index: 'int64_t') -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ActiveVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the active variable of the node corresponding to index."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ActiveVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the active variable of the node corresponding to index.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.ActiveVehicleVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.ActiveVehicleVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ActiveVehicleVar</span><span class="signature">(self, vehicle: int) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ActiveVehicleVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the active variable of the vehicle. It will be equal to 1 iff the</span>
|
|
<span class="sd"> route of the vehicle is not empty, 0 otherwise.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ActiveVehicleVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the active variable of the vehicle. It will be equal to 1 iff the
|
|
route of the vehicle is not empty, 0 otherwise.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.VehicleCostsConsideredVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.VehicleCostsConsideredVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">VehicleCostsConsideredVar</span><span class="signature">(self, vehicle: int) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">VehicleCostsConsideredVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the variable specifying whether or not costs are considered for</span>
|
|
<span class="sd"> vehicle.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_VehicleCostsConsideredVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the variable specifying whether or not costs are considered for
|
|
vehicle.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.VehicleVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.VehicleVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">VehicleVar</span><span class="signature">(self, index: 'int64_t') -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">VehicleVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the vehicle variable of the node corresponding to index. Note that</span>
|
|
<span class="sd"> VehicleVar(index) == -1 is equivalent to ActiveVar(index) == 0.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_VehicleVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the vehicle variable of the node corresponding to index. Note that
|
|
VehicleVar(index) == -1 is equivalent to ActiveVar(index) == 0.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.CostVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.CostVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">CostVar</span><span class="signature">(self) -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">CostVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the global cost variable which is being minimized."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CostVar</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the global cost variable which is being minimized.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetArcCostForVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetArcCostForVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetArcCostForVehicle</span><span class="signature">(
|
|
self,
|
|
from_index: 'int64_t',
|
|
to_index: 'int64_t',
|
|
vehicle: 'int64_t'
|
|
) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetArcCostForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost of the transit arc between two nodes for a given vehicle.</span>
|
|
<span class="sd"> Input are variable indices of node. This returns 0 if vehicle < 0.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetArcCostForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the cost of the transit arc between two nodes for a given vehicle.
|
|
Input are variable indices of node. This returns 0 if vehicle < 0.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.CostsAreHomogeneousAcrossVehicles" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.CostsAreHomogeneousAcrossVehicles">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">CostsAreHomogeneousAcrossVehicles</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">CostsAreHomogeneousAcrossVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Whether costs are homogeneous across all vehicles."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CostsAreHomogeneousAcrossVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Whether costs are homogeneous across all vehicles.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetHomogeneousCost" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetHomogeneousCost">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetHomogeneousCost</span><span class="signature">(self, from_index: 'int64_t', to_index: 'int64_t') -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetHomogeneousCost</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost of the segment between two nodes supposing all vehicle</span>
|
|
<span class="sd"> costs are the same (returns the cost for the first vehicle otherwise).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetHomogeneousCost</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the cost of the segment between two nodes supposing all vehicle
|
|
costs are the same (returns the cost for the first vehicle otherwise).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetArcCostForFirstSolution" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetArcCostForFirstSolution">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetArcCostForFirstSolution</span><span class="signature">(self, from_index: 'int64_t', to_index: 'int64_t') -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetArcCostForFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost of the arc in the context of the first solution strategy.</span>
|
|
<span class="sd"> This is typically a simplification of the actual cost; see the .cc.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetArcCostForFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the cost of the arc in the context of the first solution strategy.
|
|
This is typically a simplification of the actual cost; see the .cc.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetArcCostForClass" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetArcCostForClass">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetArcCostForClass</span><span class="signature">(
|
|
self,
|
|
from_index: 'int64_t',
|
|
to_index: 'int64_t',
|
|
cost_class_index: 'int64_t'
|
|
) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetArcCostForClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">cost_class_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost of the segment between two nodes for a given cost</span>
|
|
<span class="sd"> class. Input are variable indices of nodes and the cost class.</span>
|
|
<span class="sd"> Unlike GetArcCostForVehicle(), if cost_class is kNoCost, then the</span>
|
|
<span class="sd"> returned cost won't necessarily be zero: only some of the components</span>
|
|
<span class="sd"> of the cost that depend on the cost class will be omited. See the code</span>
|
|
<span class="sd"> for details.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetArcCostForClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">,</span> <span class="n">cost_class_index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the cost of the segment between two nodes for a given cost
|
|
class. Input are variable indices of nodes and the cost class.
|
|
Unlike GetArcCostForVehicle(), if cost_class is kNoCost, then the
|
|
returned cost won't necessarily be zero: only some of the components
|
|
of the cost that depend on the cost class will be omited. See the code
|
|
for details.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetCostClassIndexOfVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetCostClassIndexOfVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetCostClassIndexOfVehicle</span><span class="signature">(
|
|
self,
|
|
vehicle: 'int64_t'
|
|
) -> 'operations_research::RoutingModel::CostClassIndex'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetCostClassIndexOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::CostClassIndex"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Get the cost class index of the given vehicle."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetCostClassIndexOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Get the cost class index of the given vehicle.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.HasVehicleWithCostClassIndex" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.HasVehicleWithCostClassIndex">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">HasVehicleWithCostClassIndex</span><span class="signature">(
|
|
self,
|
|
cost_class_index: 'operations_research::RoutingModel::CostClassIndex'
|
|
) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">HasVehicleWithCostClassIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost_class_index</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::CostClassIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true iff the model contains a vehicle with the given</span>
|
|
<span class="sd"> cost_class_index.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_HasVehicleWithCostClassIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">cost_class_index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true iff the model contains a vehicle with the given
|
|
cost_class_index.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetCostClassesCount" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetCostClassesCount">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetCostClassesCount</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetCostClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of different cost classes in the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetCostClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the number of different cost classes in the model.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetNonZeroCostClassesCount" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetNonZeroCostClassesCount">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetNonZeroCostClassesCount</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetNonZeroCostClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Ditto, minus the 'always zero', built-in cost class."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNonZeroCostClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Ditto, minus the 'always zero', built-in cost class.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetVehicleClassIndexOfVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetVehicleClassIndexOfVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetVehicleClassIndexOfVehicle</span><span class="signature">(
|
|
self,
|
|
vehicle: 'int64_t'
|
|
) -> 'operations_research::RoutingModel::VehicleClassIndex'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetVehicleClassIndexOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::VehicleClassIndex"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVehicleClassIndexOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetVehicleOfClass" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetVehicleOfClass">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetVehicleOfClass</span><span class="signature">(
|
|
self,
|
|
vehicle_class: 'operations_research::RoutingModel::VehicleClassIndex'
|
|
) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetVehicleOfClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle_class</span><span class="p">:</span> <span class="s2">"operations_research::RoutingModel::VehicleClassIndex"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a vehicle of the given vehicle class, and -1 if there are no</span>
|
|
<span class="sd"> vehicles for this class.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVehicleOfClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle_class</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns a vehicle of the given vehicle class, and -1 if there are no
|
|
vehicles for this class.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetVehicleClassesCount" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetVehicleClassesCount">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetVehicleClassesCount</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetVehicleClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of different vehicle classes in the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVehicleClassesCount</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the number of different vehicle classes in the model.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetSameVehicleIndicesOfIndex" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetSameVehicleIndicesOfIndex">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetSameVehicleIndicesOfIndex</span><span class="signature">(self, node: int) -> 'std::vector< int > const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetSameVehicleIndicesOfIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::vector< int > const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns variable indices of nodes constrained to be on the same route."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetSameVehicleIndicesOfIndex</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns variable indices of nodes constrained to be on the same route.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetVehicleTypeContainer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetVehicleTypeContainer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetVehicleTypeContainer</span><span class="signature">(
|
|
self
|
|
) -> 'operations_research::RoutingModel::VehicleTypeContainer const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetVehicleTypeContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel::VehicleTypeContainer const &"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetVehicleTypeContainer</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.ArcIsMoreConstrainedThanArc" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.ArcIsMoreConstrainedThanArc">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ArcIsMoreConstrainedThanArc</span><span class="signature">(self, _from: 'int64_t', to1: 'int64_t', to2: 'int64_t') -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ArcIsMoreConstrainedThanArc</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_from</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to1</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to2</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns whether the arc from->to1 is more constrained than from->to2,</span>
|
|
<span class="sd"> taking into account, in order:</span>
|
|
<span class="sd"> - whether the destination node isn't an end node</span>
|
|
<span class="sd"> - whether the destination node is mandatory</span>
|
|
<span class="sd"> - whether the destination node is bound to the same vehicle as the source</span>
|
|
<span class="sd"> - the "primary constrained" dimension (see SetPrimaryConstrainedDimension)</span>
|
|
<span class="sd"> It then breaks ties using, in order:</span>
|
|
<span class="sd"> - the arc cost (taking unperformed penalties into account)</span>
|
|
<span class="sd"> - the size of the vehicle vars of "to1" and "to2" (lowest size wins)</span>
|
|
<span class="sd"> - the value: the lowest value of the indices to1 and to2 wins.</span>
|
|
<span class="sd"> See the .cc for details.</span>
|
|
<span class="sd"> The more constrained arc is typically preferable when building a</span>
|
|
<span class="sd"> first solution. This method is intended to be used as a callback for the</span>
|
|
<span class="sd"> BestValueByComparisonSelector value selector.</span>
|
|
<span class="sd"> Args:</span>
|
|
<span class="sd"> from: the variable index of the source node</span>
|
|
<span class="sd"> to1: the variable index of the first candidate destination node.</span>
|
|
<span class="sd"> to2: the variable index of the second candidate destination node.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_ArcIsMoreConstrainedThanArc</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_from</span><span class="p">,</span> <span class="n">to1</span><span class="p">,</span> <span class="n">to2</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns whether the arc from->to1 is more constrained than from->to2,
|
|
taking into account, in order:</p>
|
|
|
|
<ul>
|
|
<li>whether the destination node isn't an end node</li>
|
|
<li>whether the destination node is mandatory</li>
|
|
<li>whether the destination node is bound to the same vehicle as the source</li>
|
|
<li>the "primary constrained" dimension (see SetPrimaryConstrainedDimension)
|
|
It then breaks ties using, in order:</li>
|
|
<li>the arc cost (taking unperformed penalties into account)</li>
|
|
<li>the size of the vehicle vars of "to1" and "to2" (lowest size wins)</li>
|
|
<li>the value: the lowest value of the indices to1 and to2 wins.
|
|
See the .cc for details.
|
|
The more constrained arc is typically preferable when building a
|
|
first solution. This method is intended to be used as a callback for the
|
|
BestValueByComparisonSelector value selector.</li>
|
|
</ul>
|
|
|
|
<h6 id="args">Args</h6>
|
|
|
|
<ul>
|
|
<li><strong>from:</strong> the variable index of the source node</li>
|
|
<li><strong>to1:</strong> the variable index of the first candidate destination node.</li>
|
|
<li><strong>to2:</strong> the variable index of the second candidate destination node.</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.DebugOutputAssignment" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.DebugOutputAssignment">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugOutputAssignment</span><span class="signature">(
|
|
self,
|
|
solution_assignment: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
dimension_to_print: 'std::string const &'
|
|
) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugOutputAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution_assignment</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">dimension_to_print</span><span class="p">:</span> <span class="s2">"std::string const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Print some debugging information about an assignment, including the</span>
|
|
<span class="sd"> feasible intervals of the CumulVar for dimension "dimension_to_print"</span>
|
|
<span class="sd"> at each step of the routes.</span>
|
|
<span class="sd"> If "dimension_to_print" is omitted, all dimensions will be printed.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_DebugOutputAssignment</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">solution_assignment</span><span class="p">,</span> <span class="n">dimension_to_print</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Print some debugging information about an assignment, including the
|
|
feasible intervals of the CumulVar for dimension "dimension_to_print"
|
|
at each step of the routes.
|
|
If "dimension_to_print" is omitted, all dimensions will be printed.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.solver" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.solver">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">solver</span><span class="signature">(self) -> 'operations_research::Solver *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::Solver *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns a vector cumul_bounds, for which cumul_bounds[i][j] is a pair</span>
|
|
<span class="sd"> containing the minimum and maximum of the CumulVar of the jth node on</span>
|
|
<span class="sd"> route i.</span>
|
|
<span class="sd"> - cumul_bounds[i][j].first is the minimum.</span>
|
|
<span class="sd"> - cumul_bounds[i][j].second is the maximum.</span>
|
|
<span class="sd"> Returns the underlying constraint solver. Can be used to add extra</span>
|
|
<span class="sd"> constraints and/or modify search algorithms.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_solver</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns a vector cumul_bounds, for which cumul_bounds[i][j] is a pair
|
|
containing the minimum and maximum of the CumulVar of the jth node on
|
|
route i.</p>
|
|
|
|
<ul>
|
|
<li>cumul_bounds[i][j].first is the minimum.</li>
|
|
<li>cumul_bounds[i][j].second is the maximum.
|
|
Returns the underlying constraint solver. Can be used to add extra
|
|
constraints and/or modify search algorithms.</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.CheckLimit" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.CheckLimit">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">CheckLimit</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">CheckLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if the search limit has been crossed."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_CheckLimit</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true if the search limit has been crossed.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.RemainingTime" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.RemainingTime">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">RemainingTime</span><span class="signature">(self) -> 'absl::Duration'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">RemainingTime</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"absl::Duration"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the time left in the search limit."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_RemainingTime</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the time left in the search limit.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.nodes" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.nodes">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">nodes</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">nodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sizes and indices</span>
|
|
<span class="sd"> Returns the number of nodes in the model.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_nodes</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Sizes and indices
|
|
Returns the number of nodes in the model.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.vehicles" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.vehicles">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">vehicles</span><span class="signature">(self) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">vehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of vehicle routes in the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_vehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the number of vehicle routes in the model.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.Size" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.Size">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Size</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the number of next variables in the model."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_Size</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the number of next variables in the model.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetNumberOfDecisionsInFirstSolution" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetNumberOfDecisionsInFirstSolution">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetNumberOfDecisionsInFirstSolution</span><span class="signature">(
|
|
self,
|
|
search_parameters: 'operations_research::RoutingSearchParameters const &'
|
|
) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetNumberOfDecisionsInFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns statistics on first solution search, number of decisions sent to</span>
|
|
<span class="sd"> filters, number of decisions rejected by filters.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNumberOfDecisionsInFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns statistics on first solution search, number of decisions sent to
|
|
filters, number of decisions rejected by filters.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetNumberOfRejectsInFirstSolution" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetNumberOfRejectsInFirstSolution">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetNumberOfRejectsInFirstSolution</span><span class="signature">(
|
|
self,
|
|
search_parameters: 'operations_research::RoutingSearchParameters const &'
|
|
) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetNumberOfRejectsInFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetNumberOfRejectsInFirstSolution</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.GetAutomaticFirstSolutionStrategy" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.GetAutomaticFirstSolutionStrategy">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetAutomaticFirstSolutionStrategy</span><span class="signature">(self) -> 'operations_research::FirstSolutionStrategy::Value'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetAutomaticFirstSolutionStrategy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::FirstSolutionStrategy::Value"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the automatic first solution strategy selected."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_GetAutomaticFirstSolutionStrategy</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the automatic first solution strategy selected.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.IsMatchingModel" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.IsMatchingModel">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">IsMatchingModel</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">IsMatchingModel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if a vehicle/node matching problem is detected."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_IsMatchingModel</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true if a vehicle/node matching problem is detected.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.MakeGuidedSlackFinalizer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.MakeGuidedSlackFinalizer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MakeGuidedSlackFinalizer</span><span class="signature">(
|
|
self,
|
|
dimension: <a href="#RoutingDimension">pywrapcp.RoutingDimension</a>,
|
|
initializer: 'std::function< int64_t (int64_t) >'
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MakeGuidedSlackFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">,</span> <span class="n">initializer</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The next few members are in the public section only for testing purposes.</span>
|
|
|
|
<span class="sd"> MakeGuidedSlackFinalizer creates a DecisionBuilder for the slacks of a</span>
|
|
<span class="sd"> dimension using a callback to choose which values to start with.</span>
|
|
<span class="sd"> The finalizer works only when all next variables in the model have</span>
|
|
<span class="sd"> been fixed. It has the following two characteristics:</span>
|
|
<span class="sd"> 1. It follows the routes defined by the nexts variables when choosing a</span>
|
|
<span class="sd"> variable to make a decision on.</span>
|
|
<span class="sd"> 2. When it comes to choose a value for the slack of node i, the decision</span>
|
|
<span class="sd"> builder first calls the callback with argument i, and supposingly the</span>
|
|
<span class="sd"> returned value is x it creates decisions slack[i] = x, slack[i] = x +</span>
|
|
<span class="sd"> 1, slack[i] = x - 1, slack[i] = x + 2, etc.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_MakeGuidedSlackFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">,</span> <span class="n">initializer</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>The next few members are in the public section only for testing purposes.</p>
|
|
|
|
<p>MakeGuidedSlackFinalizer creates a DecisionBuilder for the slacks of a
|
|
dimension using a callback to choose which values to start with.
|
|
The finalizer works only when all next variables in the model have
|
|
been fixed. It has the following two characteristics:</p>
|
|
|
|
<ol>
|
|
<li>It follows the routes defined by the nexts variables when choosing a
|
|
variable to make a decision on.</li>
|
|
<li>When it comes to choose a value for the slack of node i, the decision
|
|
builder first calls the callback with argument i, and supposingly the
|
|
returned value is x it creates decisions slack[i] = x, slack[i] = x +
|
|
1, slack[i] = x - 1, slack[i] = x + 2, etc.</li>
|
|
</ol>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.MakeSelfDependentDimensionFinalizer" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModel.MakeSelfDependentDimensionFinalizer">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MakeSelfDependentDimensionFinalizer</span><span class="signature">(
|
|
self,
|
|
dimension: <a href="#RoutingDimension">pywrapcp.RoutingDimension</a>
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">MakeSelfDependentDimensionFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> MakeSelfDependentDimensionFinalizer is a finalizer for the slacks of a</span>
|
|
<span class="sd"> self-dependent dimension. It makes an extensive use of the caches of the</span>
|
|
<span class="sd"> state dependent transits.</span>
|
|
<span class="sd"> In detail, MakeSelfDependentDimensionFinalizer returns a composition of a</span>
|
|
<span class="sd"> local search decision builder with a greedy descent operator for the cumul</span>
|
|
<span class="sd"> of the start of each route and a guided slack finalizer. Provided there</span>
|
|
<span class="sd"> are no time windows and the maximum slacks are large enough, once the</span>
|
|
<span class="sd"> cumul of the start of route is fixed, the guided finalizer can find</span>
|
|
<span class="sd"> optimal values of the slacks for the rest of the route in time</span>
|
|
<span class="sd"> proportional to the length of the route. Therefore the composed finalizer</span>
|
|
<span class="sd"> generally works in time O(log(t)*n*m), where t is the latest possible</span>
|
|
<span class="sd"> departute time, n is the number of nodes in the network and m is the</span>
|
|
<span class="sd"> number of vehicles.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModel_MakeSelfDependentDimensionFinalizer</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>MakeSelfDependentDimensionFinalizer is a finalizer for the slacks of a
|
|
self-dependent dimension. It makes an extensive use of the caches of the
|
|
state dependent transits.
|
|
In detail, MakeSelfDependentDimensionFinalizer returns a composition of a
|
|
local search decision builder with a greedy descent operator for the cumul
|
|
of the start of each route and a guided slack finalizer. Provided there
|
|
are no time windows and the maximum slacks are large enough, once the
|
|
cumul of the start of route is fixed, the guided finalizer can find
|
|
optimal values of the slacks for the rest of the route in time
|
|
proportional to the length of the route. Therefore the composed finalizer
|
|
generally works in time O(log(t)<em>n</em>m), where t is the latest possible
|
|
departute time, n is the number of nodes in the network and m is the
|
|
number of vehicles.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.kNoPenalty" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.kNoPenalty">#  </a>
|
|
|
|
<span class="name">kNoPenalty</span><span class="default_value"> = -1</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.kNoDisjunction" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.kNoDisjunction">#  </a>
|
|
|
|
<span class="name">kNoDisjunction</span><span class="default_value"> = <Swig Object of type 'operations_research::RoutingModel::DisjunctionIndex *'></span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModel.kNoDimension" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModel.kNoDimension">#  </a>
|
|
|
|
<span class="name">kNoDimension</span><span class="default_value"> = <Swig Object of type 'operations_research::RoutingModel::DimensionIndex *'></span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="RoutingModelVisitor">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#RoutingModelVisitor">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">RoutingModelVisitor</span><wbr>(<span class="base"><a href="#BaseObject">BaseObject</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">RoutingModelVisitor</span><span class="p">(</span><span class="n">BaseObject</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" Routing model visitor."""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModelVisitor_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_RoutingModelVisitor</span><span class="p">())</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_RoutingModelVisitor</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Routing model visitor.</p>
|
|
</div>
|
|
|
|
|
|
<div id="RoutingModelVisitor.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingModelVisitor.__init__">#  </a>
|
|
|
|
|
|
<span class="name">RoutingModelVisitor</span><span class="signature">()</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingModelVisitor_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_RoutingModelVisitor</span><span class="p">())</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModelVisitor.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModelVisitor.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModelVisitor.kLightElement" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModelVisitor.kLightElement">#  </a>
|
|
|
|
<span class="name">kLightElement</span><span class="default_value"> = 'LightElement'</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModelVisitor.kLightElement2" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModelVisitor.kLightElement2">#  </a>
|
|
|
|
<span class="name">kLightElement2</span><span class="default_value"> = 'LightElement2'</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingModelVisitor.kRemoveValues" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingModelVisitor.kRemoveValues">#  </a>
|
|
|
|
<span class="name">kRemoveValues</span><span class="default_value"> = 'RemoveValues'</span>
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#BaseObject">BaseObject</a></dt>
|
|
<dd id="RoutingModelVisitor.DebugString" class="function"><a href="#BaseObject.DebugString">DebugString</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="GlobalVehicleBreaksConstraint">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#GlobalVehicleBreaksConstraint">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">GlobalVehicleBreaksConstraint</span><wbr>(<span class="base"><a href="#Constraint">Constraint</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">GlobalVehicleBreaksConstraint</span><span class="p">(</span><span class="n">Constraint</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> GlobalVehicleBreaksConstraint ensures breaks constraints are enforced on</span>
|
|
<span class="sd"> all vehicles in the dimension passed to its constructor.</span>
|
|
<span class="sd"> It is intended to be used for dimensions representing time.</span>
|
|
<span class="sd"> A break constraint ensures break intervals fit on the route of a vehicle.</span>
|
|
<span class="sd"> For a given vehicle, it forces break intervals to be disjoint from visit</span>
|
|
<span class="sd"> intervals, where visit intervals start at CumulVar(node) and last for</span>
|
|
<span class="sd"> node_visit_transit[node]. Moreover, it ensures that there is enough time</span>
|
|
<span class="sd"> between two consecutive nodes of a route to do transit and vehicle breaks,</span>
|
|
<span class="sd"> i.e. if Next(nodeA) = nodeB, CumulVar(nodeA) = tA and CumulVar(nodeB) = tB,</span>
|
|
<span class="sd"> then SlackVar(nodeA) >= sum_{breaks [tA, tB)} duration(break).</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">GlobalVehicleBreaksConstraint_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_GlobalVehicleBreaksConstraint</span><span class="p">(</span><span class="n">dimension</span><span class="p">))</span>
|
|
|
|
<span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">GlobalVehicleBreaksConstraint_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">GlobalVehicleBreaksConstraint_Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">GlobalVehicleBreaksConstraint_InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_GlobalVehicleBreaksConstraint</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>GlobalVehicleBreaksConstraint ensures breaks constraints are enforced on
|
|
all vehicles in the dimension passed to its constructor.
|
|
It is intended to be used for dimensions representing time.
|
|
A break constraint ensures break intervals fit on the route of a vehicle.
|
|
For a given vehicle, it forces break intervals to be disjoint from visit
|
|
intervals, where visit intervals start at CumulVar(node) and last for
|
|
node_visit_transit[node]. Moreover, it ensures that there is enough time
|
|
between two consecutive nodes of a route to do transit and vehicle breaks,
|
|
i.e. if Next(nodeA) = nodeB, CumulVar(nodeA) = tA and CumulVar(nodeB) = tB,
|
|
then SlackVar(nodeA) >= sum_{breaks [tA, tB)} duration(break).</p>
|
|
</div>
|
|
|
|
|
|
<div id="GlobalVehicleBreaksConstraint.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#GlobalVehicleBreaksConstraint.__init__">#  </a>
|
|
|
|
|
|
<span class="name">GlobalVehicleBreaksConstraint</span><span class="signature">(dimension: <a href="#RoutingDimension">pywrapcp.RoutingDimension</a>)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">dimension</span><span class="p">:</span> <span class="s2">"RoutingDimension"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">GlobalVehicleBreaksConstraint_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_GlobalVehicleBreaksConstraint</span><span class="p">(</span><span class="n">dimension</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="GlobalVehicleBreaksConstraint.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#GlobalVehicleBreaksConstraint.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="GlobalVehicleBreaksConstraint.DebugString" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#GlobalVehicleBreaksConstraint.DebugString">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">DebugString</span><span class="signature">(self) -> 'std::string'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">GlobalVehicleBreaksConstraint_DebugString</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="GlobalVehicleBreaksConstraint.Post" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#GlobalVehicleBreaksConstraint.Post">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Post</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">GlobalVehicleBreaksConstraint_Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method is called when the constraint is processed by the
|
|
solver. Its main usage is to attach demons to variables.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="GlobalVehicleBreaksConstraint.InitialPropagateWrapper" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#GlobalVehicleBreaksConstraint.InitialPropagateWrapper">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">InitialPropagateWrapper</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">GlobalVehicleBreaksConstraint_InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method performs the initial propagation of the
|
|
constraint. It is called just after the post.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#Constraint">Constraint</a></dt>
|
|
<dd id="GlobalVehicleBreaksConstraint.Var" class="function"><a href="#Constraint.Var">Var</a></dd>
|
|
<dd id="GlobalVehicleBreaksConstraint.Square" class="function"><a href="#Constraint.Square">Square</a></dd>
|
|
<dd id="GlobalVehicleBreaksConstraint.MapTo" class="function"><a href="#Constraint.MapTo">MapTo</a></dd>
|
|
<dd id="GlobalVehicleBreaksConstraint.IndexOf" class="function"><a href="#Constraint.IndexOf">IndexOf</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#PropagationBaseObject">PropagationBaseObject</a></dt>
|
|
<dd id="GlobalVehicleBreaksConstraint.solver" class="function"><a href="#PropagationBaseObject.solver">solver</a></dd>
|
|
<dd id="GlobalVehicleBreaksConstraint.Name" class="function"><a href="#PropagationBaseObject.Name">Name</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="TypeRegulationsChecker">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#TypeRegulationsChecker">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">TypeRegulationsChecker</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">TypeRegulationsChecker</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_TypeRegulationsChecker</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CheckVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">next_accessor</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRegulationsChecker_CheckVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">,</span> <span class="n">next_accessor</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
<div id="TypeRegulationsChecker.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#TypeRegulationsChecker.__init__">#  </a>
|
|
|
|
|
|
<span class="name">TypeRegulationsChecker</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined - class is abstract"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="TypeRegulationsChecker.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#TypeRegulationsChecker.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="TypeRegulationsChecker.CheckVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#TypeRegulationsChecker.CheckVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">CheckVehicle</span><span class="signature">(
|
|
self,
|
|
vehicle: int,
|
|
next_accessor: 'std::function< int64_t (int64_t) > const &'
|
|
) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">CheckVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">next_accessor</span><span class="p">:</span> <span class="s2">"std::function< int64_t (int64_t) > const &"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRegulationsChecker_CheckVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">,</span> <span class="n">next_accessor</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="TypeIncompatibilityChecker">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#TypeIncompatibilityChecker">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">TypeIncompatibilityChecker</span><wbr>(<span class="base"><a href="#TypeRegulationsChecker">TypeRegulationsChecker</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">TypeIncompatibilityChecker</span><span class="p">(</span><span class="n">TypeRegulationsChecker</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" Checker for type incompatibilities."""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">model</span><span class="p">:</span> <span class="s2">"RoutingModel"</span><span class="p">,</span> <span class="n">check_hard_incompatibilities</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeIncompatibilityChecker_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_TypeIncompatibilityChecker</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">check_hard_incompatibilities</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_TypeIncompatibilityChecker</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Checker for type incompatibilities.</p>
|
|
</div>
|
|
|
|
|
|
<div id="TypeIncompatibilityChecker.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#TypeIncompatibilityChecker.__init__">#  </a>
|
|
|
|
|
|
<span class="name">TypeIncompatibilityChecker</span><span class="signature">(model: <a href="#RoutingModel">pywrapcp.RoutingModel</a>, check_hard_incompatibilities: bool)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">model</span><span class="p">:</span> <span class="s2">"RoutingModel"</span><span class="p">,</span> <span class="n">check_hard_incompatibilities</span><span class="p">:</span> <span class="s2">"bool"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeIncompatibilityChecker_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_TypeIncompatibilityChecker</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">check_hard_incompatibilities</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="TypeIncompatibilityChecker.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#TypeIncompatibilityChecker.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#TypeRegulationsChecker">TypeRegulationsChecker</a></dt>
|
|
<dd id="TypeIncompatibilityChecker.CheckVehicle" class="function"><a href="#TypeRegulationsChecker.CheckVehicle">CheckVehicle</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="TypeRequirementChecker">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#TypeRequirementChecker">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">TypeRequirementChecker</span><wbr>(<span class="base"><a href="#TypeRegulationsChecker">TypeRegulationsChecker</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">TypeRequirementChecker</span><span class="p">(</span><span class="n">TypeRegulationsChecker</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">""" Checker for type requirements."""</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">model</span><span class="p">:</span> <span class="s2">"RoutingModel"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRequirementChecker_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_TypeRequirementChecker</span><span class="p">(</span><span class="n">model</span><span class="p">))</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_TypeRequirementChecker</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Checker for type requirements.</p>
|
|
</div>
|
|
|
|
|
|
<div id="TypeRequirementChecker.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#TypeRequirementChecker.__init__">#  </a>
|
|
|
|
|
|
<span class="name">TypeRequirementChecker</span><span class="signature">(model: <a href="#RoutingModel">pywrapcp.RoutingModel</a>)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">model</span><span class="p">:</span> <span class="s2">"RoutingModel"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRequirementChecker_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_TypeRequirementChecker</span><span class="p">(</span><span class="n">model</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="TypeRequirementChecker.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#TypeRequirementChecker.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#TypeRegulationsChecker">TypeRegulationsChecker</a></dt>
|
|
<dd id="TypeRequirementChecker.CheckVehicle" class="function"><a href="#TypeRegulationsChecker.CheckVehicle">CheckVehicle</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="TypeRegulationsConstraint">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#TypeRegulationsConstraint">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">TypeRegulationsConstraint</span><wbr>(<span class="base"><a href="#Constraint">Constraint</a></span>):
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">TypeRegulationsConstraint</span><span class="p">(</span><span class="n">Constraint</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> The following constraint ensures that incompatibilities and requirements</span>
|
|
<span class="sd"> between types are respected.</span>
|
|
|
|
<span class="sd"> It verifies both "hard" and "temporal" incompatibilities.</span>
|
|
<span class="sd"> Two nodes with hard incompatible types cannot be served by the same vehicle</span>
|
|
<span class="sd"> at all, while with a temporal incompatibility they can't be on the same</span>
|
|
<span class="sd"> route at the same time.</span>
|
|
<span class="sd"> The VisitTypePolicy of a node determines how visiting it impacts the type</span>
|
|
<span class="sd"> count on the route.</span>
|
|
|
|
<span class="sd"> For example, for</span>
|
|
<span class="sd"> - three temporally incompatible types T1 T2 and T3</span>
|
|
<span class="sd"> - 2 pairs of nodes a1/r1 and a2/r2 of type T1 and T2 respectively, with</span>
|
|
<span class="sd"> - a1 and a2 of VisitTypePolicy TYPE_ADDED_TO_VEHICLE</span>
|
|
<span class="sd"> - r1 and r2 of policy ADDED_TYPE_REMOVED_FROM_VEHICLE</span>
|
|
<span class="sd"> - 3 nodes A, UV and AR of type T3, respectively with type policies</span>
|
|
<span class="sd"> TYPE_ADDED_TO_VEHICLE, TYPE_ON_VEHICLE_UP_TO_VISIT and</span>
|
|
<span class="sd"> TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED</span>
|
|
<span class="sd"> the configurations</span>
|
|
<span class="sd"> UV --> a1 --> r1 --> a2 --> r2, a1 --> r1 --> a2 --> r2 --> A and</span>
|
|
<span class="sd"> a1 --> r1 --> AR --> a2 --> r2 are acceptable, whereas the configurations</span>
|
|
<span class="sd"> a1 --> a2 --> r1 --> ..., or A --> a1 --> r1 --> ..., or</span>
|
|
<span class="sd"> a1 --> r1 --> UV --> ... are not feasible.</span>
|
|
|
|
<span class="sd"> It also verifies same-vehicle and temporal type requirements.</span>
|
|
<span class="sd"> A node of type T_d with a same-vehicle requirement for type T_r needs to be</span>
|
|
<span class="sd"> served by the same vehicle as a node of type T_r.</span>
|
|
<span class="sd"> Temporal requirements, on the other hand, can take effect either when the</span>
|
|
<span class="sd"> dependent type is being added to the route or when it's removed from it,</span>
|
|
<span class="sd"> which is determined by the dependent node's VisitTypePolicy.</span>
|
|
<span class="sd"> In the above example:</span>
|
|
<span class="sd"> - If T3 is required on the same vehicle as T1, A, AR or UV must be on the</span>
|
|
<span class="sd"> same vehicle as a1.</span>
|
|
<span class="sd"> - If T2 is required when adding T1, a2 must be visited *before* a1, and if</span>
|
|
<span class="sd"> r2 is also visited on the route, it must be *after* a1, i.e. T2 must be on</span>
|
|
<span class="sd"> the vehicle when a1 is visited:</span>
|
|
<span class="sd"> ... --> a2 --> ... --> a1 --> ... --> r2 --> ...</span>
|
|
<span class="sd"> - If T3 is required when removing T1, T3 needs to be on the vehicle when</span>
|
|
<span class="sd"> r1 is visited:</span>
|
|
<span class="sd"> ... --> A --> ... --> r1 --> ... OR ... --> r1 --> ... --> UV --> ...</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">model</span><span class="p">:</span> <span class="s2">"RoutingModel"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRegulationsConstraint_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_TypeRegulationsConstraint</span><span class="p">(</span><span class="n">model</span><span class="p">))</span>
|
|
|
|
<span class="k">def</span> <span class="nf">Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRegulationsConstraint_Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRegulationsConstraint_InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_TypeRegulationsConstraint</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>The following constraint ensures that incompatibilities and requirements
|
|
between types are respected.</p>
|
|
|
|
<p>It verifies both "hard" and "temporal" incompatibilities.
|
|
Two nodes with hard incompatible types cannot be served by the same vehicle
|
|
at all, while with a temporal incompatibility they can't be on the same
|
|
route at the same time.
|
|
The VisitTypePolicy of a node determines how visiting it impacts the type
|
|
count on the route.</p>
|
|
|
|
<p>For example, for</p>
|
|
|
|
<ul>
|
|
<li>three temporally incompatible types T1 T2 and T3</li>
|
|
<li>2 pairs of nodes a1/r1 and a2/r2 of type T1 and T2 respectively, with
|
|
<ul>
|
|
<li>a1 and a2 of VisitTypePolicy TYPE_ADDED_TO_VEHICLE</li>
|
|
<li>r1 and r2 of policy ADDED_TYPE_REMOVED_FROM_VEHICLE</li>
|
|
</ul></li>
|
|
<li>3 nodes A, UV and AR of type T3, respectively with type policies
|
|
TYPE_ADDED_TO_VEHICLE, TYPE_ON_VEHICLE_UP_TO_VISIT and
|
|
TYPE_SIMULTANEOUSLY_ADDED_AND_REMOVED
|
|
the configurations
|
|
UV --> a1 --> r1 --> a2 --> r2, a1 --> r1 --> a2 --> r2 --> A and
|
|
a1 --> r1 --> AR --> a2 --> r2 are acceptable, whereas the configurations
|
|
a1 --> a2 --> r1 --> ..., or A --> a1 --> r1 --> ..., or
|
|
a1 --> r1 --> UV --> ... are not feasible.</li>
|
|
</ul>
|
|
|
|
<p>It also verifies same-vehicle and temporal type requirements.
|
|
A node of type T_d with a same-vehicle requirement for type T_r needs to be
|
|
served by the same vehicle as a node of type T_r.
|
|
Temporal requirements, on the other hand, can take effect either when the
|
|
dependent type is being added to the route or when it's removed from it,
|
|
which is determined by the dependent node's VisitTypePolicy.
|
|
In the above example:</p>
|
|
|
|
<ul>
|
|
<li>If T3 is required on the same vehicle as T1, A, AR or UV must be on the
|
|
same vehicle as a1.</li>
|
|
<li>If T2 is required when adding T1, a2 must be visited <em>before</em> a1, and if
|
|
r2 is also visited on the route, it must be <em>after</em> a1, i.e. T2 must be on
|
|
the vehicle when a1 is visited:
|
|
... --> a2 --> ... --> a1 --> ... --> r2 --> ...</li>
|
|
<li>If T3 is required when removing T1, T3 needs to be on the vehicle when
|
|
r1 is visited:
|
|
... --> A --> ... --> r1 --> ... OR ... --> r1 --> ... --> UV --> ...</li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<div id="TypeRegulationsConstraint.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#TypeRegulationsConstraint.__init__">#  </a>
|
|
|
|
|
|
<span class="name">TypeRegulationsConstraint</span><span class="signature">(model: <a href="#RoutingModel">pywrapcp.RoutingModel</a>)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">model</span><span class="p">:</span> <span class="s2">"RoutingModel"</span><span class="p">):</span>
|
|
<span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRegulationsConstraint_swiginit</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">new_TypeRegulationsConstraint</span><span class="p">(</span><span class="n">model</span><span class="p">))</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="TypeRegulationsConstraint.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#TypeRegulationsConstraint.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="TypeRegulationsConstraint.Post" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#TypeRegulationsConstraint.Post">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">Post</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRegulationsConstraint_Post</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method is called when the constraint is processed by the
|
|
solver. Its main usage is to attach demons to variables.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="TypeRegulationsConstraint.InitialPropagateWrapper" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#TypeRegulationsConstraint.InitialPropagateWrapper">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">InitialPropagateWrapper</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">TypeRegulationsConstraint_InitialPropagateWrapper</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>This method performs the initial propagation of the
|
|
constraint. It is called just after the post.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div class="inherited">
|
|
<h5>Inherited Members</h5>
|
|
<dl>
|
|
<div><dt><a href="#Constraint">Constraint</a></dt>
|
|
<dd id="TypeRegulationsConstraint.DebugString" class="function"><a href="#Constraint.DebugString">DebugString</a></dd>
|
|
<dd id="TypeRegulationsConstraint.Var" class="function"><a href="#Constraint.Var">Var</a></dd>
|
|
<dd id="TypeRegulationsConstraint.Square" class="function"><a href="#Constraint.Square">Square</a></dd>
|
|
<dd id="TypeRegulationsConstraint.MapTo" class="function"><a href="#Constraint.MapTo">MapTo</a></dd>
|
|
<dd id="TypeRegulationsConstraint.IndexOf" class="function"><a href="#Constraint.IndexOf">IndexOf</a></dd>
|
|
|
|
</div>
|
|
<div><dt><a href="#PropagationBaseObject">PropagationBaseObject</a></dt>
|
|
<dd id="TypeRegulationsConstraint.solver" class="function"><a href="#PropagationBaseObject.solver">solver</a></dd>
|
|
<dd id="TypeRegulationsConstraint.Name" class="function"><a href="#PropagationBaseObject.Name">Name</a></dd>
|
|
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</section>
|
|
<section id="RoutingDimension">
|
|
<div class="attr class">
|
|
<a class="headerlink" href="#RoutingDimension">#  </a>
|
|
|
|
|
|
<span class="def">class</span>
|
|
<span class="name">RoutingDimension</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">class</span> <span class="nc">RoutingDimension</span><span class="p">(</span><span class="nb">object</span><span class="p">):</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Dimensions represent quantities accumulated at nodes along the routes. They</span>
|
|
<span class="sd"> represent quantities such as weights or volumes carried along the route, or</span>
|
|
<span class="sd"> distance or times.</span>
|
|
|
|
<span class="sd"> Quantities at a node are represented by "cumul" variables and the increase</span>
|
|
<span class="sd"> or decrease of quantities between nodes are represented by "transit"</span>
|
|
<span class="sd"> variables. These variables are linked as follows:</span>
|
|
|
|
<span class="sd"> if j == next(i),</span>
|
|
<span class="sd"> cumuls(j) = cumuls(i) + transits(i) + slacks(i) +</span>
|
|
<span class="sd"> state_dependent_transits(i)</span>
|
|
|
|
<span class="sd"> where slack is a positive slack variable (can represent waiting times for</span>
|
|
<span class="sd"> a time dimension), and state_dependent_transits is a non-purely functional</span>
|
|
<span class="sd"> version of transits_. Favour transits over state_dependent_transits when</span>
|
|
<span class="sd"> possible, because purely functional callbacks allow more optimisations and</span>
|
|
<span class="sd"> make the model faster and easier to solve.</span>
|
|
<span class="sd"> for a given vehicle, it is passed as an external vector, it would be better</span>
|
|
<span class="sd"> to have this information here.</span>
|
|
<span class="sd"> """</span>
|
|
|
|
<span class="n">thisown</span> <span class="o">=</span> <span class="nb">property</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(),</span> <span class="k">lambda</span> <span class="n">x</span><span class="p">,</span> <span class="n">v</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">this</span><span class="o">.</span><span class="n">own</span><span class="p">(</span><span class="n">v</span><span class="p">),</span> <span class="n">doc</span><span class="o">=</span><span class="s2">"The membership flag"</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
<span class="fm">__repr__</span> <span class="o">=</span> <span class="n">_swig_repr</span>
|
|
<span class="n">__swig_destroy__</span> <span class="o">=</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">delete_RoutingDimension</span>
|
|
|
|
<span class="k">def</span> <span class="nf">model</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the model on which the dimension was created."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_model</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetTransitValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the transition value for a given pair of nodes (as var index);</span>
|
|
<span class="sd"> this value is the one taken by the corresponding transit variable when</span>
|
|
<span class="sd"> the 'next' variable for 'from_index' is bound to 'to_index'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetTransitValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetTransitValueFromClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle_class</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as above but taking a vehicle class of the dimension instead of a</span>
|
|
<span class="sd"> vehicle (the class of a vehicle can be obtained with vehicle_to_class()).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetTransitValueFromClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">,</span> <span class="n">vehicle_class</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">CumulVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Get the cumul, transit and slack variables for the given node (given as</span>
|
|
<span class="sd"> int64_t var index).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_CumulVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">TransitVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_TransitVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">FixedTransitVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_FixedTransitVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SlackVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SlackVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetSpanUpperBoundForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">upper_bound</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets an upper bound on the dimension span on a given vehicle. This is the</span>
|
|
<span class="sd"> preferred way to limit the "length" of the route of a vehicle according to</span>
|
|
<span class="sd"> a dimension.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetSpanUpperBoundForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">upper_bound</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetSpanCostCoefficientForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets a cost proportional to the dimension span on a given vehicle,</span>
|
|
<span class="sd"> or on all vehicles at once. "coefficient" must be nonnegative.</span>
|
|
<span class="sd"> This is handy to model costs proportional to idle time when the dimension</span>
|
|
<span class="sd"> represents time.</span>
|
|
<span class="sd"> The cost for a vehicle is</span>
|
|
<span class="sd"> span_cost = coefficient * (dimension end value - dimension start value).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetSpanCostCoefficientForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetSpanCostCoefficientForAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetSpanCostCoefficientForAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetGlobalSpanCostCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets a cost proportional to the *global* dimension span, that is the</span>
|
|
<span class="sd"> difference between the largest value of route end cumul variables and</span>
|
|
<span class="sd"> the smallest value of route start cumul variables.</span>
|
|
<span class="sd"> In other words:</span>
|
|
<span class="sd"> global_span_cost =</span>
|
|
<span class="sd"> coefficient * (Max(dimension end value) - Min(dimension start value)).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetGlobalSpanCostCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">upper_bound</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets a soft upper bound to the cumul variable of a given variable index.</span>
|
|
<span class="sd"> If the value of the cumul variable is greater than the bound, a cost</span>
|
|
<span class="sd"> proportional to the difference between this value and the bound is added</span>
|
|
<span class="sd"> to the cost function of the model:</span>
|
|
<span class="sd"> cumulVar <= upper_bound -> cost = 0</span>
|
|
<span class="sd"> cumulVar > upper_bound -> cost = coefficient * (cumulVar - upper_bound)</span>
|
|
<span class="sd"> This is also handy to model tardiness costs when the dimension represents</span>
|
|
<span class="sd"> time.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">upper_bound</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true if a soft upper bound has been set for a given variable</span>
|
|
<span class="sd"> index.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_HasCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the soft upper bound of a cumul variable for a given variable</span>
|
|
<span class="sd"> index. The "hard" upper bound of the variable is returned if no soft upper</span>
|
|
<span class="sd"> bound has been set.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetCumulVarSoftUpperBoundCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost coefficient of the soft upper bound of a cumul variable</span>
|
|
<span class="sd"> for a given variable index. If no soft upper bound has been set, 0 is</span>
|
|
<span class="sd"> returned.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetCumulVarSoftUpperBoundCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">lower_bound</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets a soft lower bound to the cumul variable of a given variable index.</span>
|
|
<span class="sd"> If the value of the cumul variable is less than the bound, a cost</span>
|
|
<span class="sd"> proportional to the difference between this value and the bound is added</span>
|
|
<span class="sd"> to the cost function of the model:</span>
|
|
<span class="sd"> cumulVar > lower_bound -> cost = 0</span>
|
|
<span class="sd"> cumulVar <= lower_bound -> cost = coefficient * (lower_bound -</span>
|
|
<span class="sd"> cumulVar).</span>
|
|
<span class="sd"> This is also handy to model earliness costs when the dimension represents</span>
|
|
<span class="sd"> time.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">lower_bound</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true if a soft lower bound has been set for a given variable</span>
|
|
<span class="sd"> index.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_HasCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the soft lower bound of a cumul variable for a given variable</span>
|
|
<span class="sd"> index. The "hard" lower bound of the variable is returned if no soft lower</span>
|
|
<span class="sd"> bound has been set.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetCumulVarSoftLowerBoundCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost coefficient of the soft lower bound of a cumul variable</span>
|
|
<span class="sd"> for a given variable index. If no soft lower bound has been set, 0 is</span>
|
|
<span class="sd"> returned.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetCumulVarSoftLowerBoundCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetBreakIntervalsOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">breaks</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntervalVar * >"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">node_visit_transits</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets the breaks for a given vehicle. Breaks are represented by</span>
|
|
<span class="sd"> IntervalVars. They may interrupt transits between nodes and increase</span>
|
|
<span class="sd"> the value of corresponding slack variables.</span>
|
|
<span class="sd"> A break may take place before the start of a vehicle, after the end of</span>
|
|
<span class="sd"> a vehicle, or during a travel i -> j.</span>
|
|
|
|
<span class="sd"> In that case, the interval [break.Start(), break.End()) must be a subset</span>
|
|
<span class="sd"> of [CumulVar(i) + pre_travel(i, j), CumulVar(j) - post_travel(i, j)). In</span>
|
|
<span class="sd"> other words, a break may not overlap any node n's visit, given by</span>
|
|
<span class="sd"> [CumulVar(n) - post_travel(_, n), CumulVar(n) + pre_travel(n, _)).</span>
|
|
<span class="sd"> This formula considers post_travel(_, start) and pre_travel(end, _) to be</span>
|
|
<span class="sd"> 0; pre_travel will never be called on any (_, start) and post_travel will</span>
|
|
<span class="sd"> never we called on any (end, _). If pre_travel_evaluator or</span>
|
|
<span class="sd"> post_travel_evaluator is -1, it will be taken as a function that always</span>
|
|
<span class="sd"> returns 0.</span>
|
|
<span class="sd"> Deprecated, sets pre_travel(i, j) = node_visit_transit[i].</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetBreakIntervalsOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">breaks</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">,</span> <span class="n">node_visit_transits</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetBreakDistanceDurationOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distance</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> With breaks supposed to be consecutive, this forces the distance between</span>
|
|
<span class="sd"> breaks of size at least minimum_break_duration to be at most distance.</span>
|
|
<span class="sd"> This supposes that the time until route start and after route end are</span>
|
|
<span class="sd"> infinite breaks.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetBreakDistanceDurationOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distance</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">InitializeBreaks</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets up vehicle_break_intervals_, vehicle_break_distance_duration_,</span>
|
|
<span class="sd"> pre_travel_evaluators and post_travel_evaluators.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_InitializeBreaks</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasBreakConstraints</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if any break interval or break distance was defined."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_HasBreakConstraints</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetPreTravelEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetPreTravelEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetPostTravelEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetPostTravelEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">base_dimension</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingDimension const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the parent in the dependency tree if any or nullptr otherwise."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_base_dimension</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">ShortestTransitionSlack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> It makes sense to use the function only for self-dependent dimension.</span>
|
|
<span class="sd"> For such dimensions the value of the slack of a node determines the</span>
|
|
<span class="sd"> transition cost of the next transit. Provided that</span>
|
|
<span class="sd"> 1. cumul[node] is fixed,</span>
|
|
<span class="sd"> 2. next[node] and next[next[node]] (if exists) are fixed,</span>
|
|
<span class="sd"> the value of slack[node] for which cumul[next[node]] + transit[next[node]]</span>
|
|
<span class="sd"> is minimized can be found in O(1) using this function.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_ShortestTransitionSlack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the name of the dimension."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">SetPickupToDeliveryLimitFunctionForPair</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">limit_function</span><span class="p">:</span> <span class="s2">"operations_research::RoutingDimension::PickupToDeliveryLimitFunction"</span><span class="p">,</span> <span class="n">pair_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetPickupToDeliveryLimitFunctionForPair</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">limit_function</span><span class="p">,</span> <span class="n">pair_index</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">HasPickupToDeliveryLimits</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_HasPickupToDeliveryLimits</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">AddNodePrecedence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_node</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">second_node</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">offset</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_AddNodePrecedence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_node</span><span class="p">,</span> <span class="n">second_node</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetSpanUpperBoundForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetSpanUpperBoundForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetSpanCostCoefficientForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetSpanCostCoefficientForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">global_span_cost_coefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_global_span_cost_coefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetGlobalOptimizerOffset</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetGlobalOptimizerOffset</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
|
|
<span class="k">def</span> <span class="nf">GetLocalOptimizerOffsetForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetLocalOptimizerOffsetForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Dimensions represent quantities accumulated at nodes along the routes. They
|
|
represent quantities such as weights or volumes carried along the route, or
|
|
distance or times.</p>
|
|
|
|
<p>Quantities at a node are represented by "cumul" variables and the increase
|
|
or decrease of quantities between nodes are represented by "transit"
|
|
variables. These variables are linked as follows:</p>
|
|
|
|
<p>if j == next(i),
|
|
cumuls(j) = cumuls(i) + transits(i) + slacks(i) +
|
|
state_dependent_transits(i)</p>
|
|
|
|
<p>where slack is a positive slack variable (can represent waiting times for
|
|
a time dimension), and state_dependent_transits is a non-purely functional
|
|
version of transits_. Favour transits over state_dependent_transits when
|
|
possible, because purely functional callbacks allow more optimisations and
|
|
make the model faster and easier to solve.
|
|
for a given vehicle, it is passed as an external vector, it would be better
|
|
to have this information here.</p>
|
|
</div>
|
|
|
|
|
|
<div id="RoutingDimension.__init__" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.__init__">#  </a>
|
|
|
|
|
|
<span class="name">RoutingDimension</span><span class="signature">(*args, **kwargs)</span>
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
|
|
<span class="k">raise</span> <span class="ne">AttributeError</span><span class="p">(</span><span class="s2">"No constructor defined"</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.thisown" class="classattr">
|
|
<div class="attr variable"><a class="headerlink" href="#RoutingDimension.thisown">#  </a>
|
|
|
|
<span class="name">thisown</span>
|
|
</div>
|
|
|
|
<div class="docstring"><p>The membership flag</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.model" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.model">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">model</span><span class="signature">(self) -> 'operations_research::RoutingModel *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">model</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingModel *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the model on which the dimension was created."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_model</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the model on which the dimension was created.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.GetTransitValue" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.GetTransitValue">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetTransitValue</span><span class="signature">(
|
|
self,
|
|
from_index: 'int64_t',
|
|
to_index: 'int64_t',
|
|
vehicle: 'int64_t'
|
|
) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetTransitValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the transition value for a given pair of nodes (as var index);</span>
|
|
<span class="sd"> this value is the one taken by the corresponding transit variable when</span>
|
|
<span class="sd"> the 'next' variable for 'from_index' is bound to 'to_index'.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetTransitValue</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the transition value for a given pair of nodes (as var index);
|
|
this value is the one taken by the corresponding transit variable when
|
|
the 'next' variable for 'from_index' is bound to 'to_index'.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.GetTransitValueFromClass" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.GetTransitValueFromClass">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetTransitValueFromClass</span><span class="signature">(
|
|
self,
|
|
from_index: 'int64_t',
|
|
to_index: 'int64_t',
|
|
vehicle_class: 'int64_t'
|
|
) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetTransitValueFromClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">to_index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle_class</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Same as above but taking a vehicle class of the dimension instead of a</span>
|
|
<span class="sd"> vehicle (the class of a vehicle can be obtained with vehicle_to_class()).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetTransitValueFromClass</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">from_index</span><span class="p">,</span> <span class="n">to_index</span><span class="p">,</span> <span class="n">vehicle_class</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Same as above but taking a vehicle class of the dimension instead of a
|
|
vehicle (the class of a vehicle can be obtained with vehicle_to_class()).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.CumulVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.CumulVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">CumulVar</span><span class="signature">(self, index: 'int64_t') -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">CumulVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Get the cumul, transit and slack variables for the given node (given as</span>
|
|
<span class="sd"> int64_t var index).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_CumulVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Get the cumul, transit and slack variables for the given node (given as
|
|
int64_t var index).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.TransitVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.TransitVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">TransitVar</span><span class="signature">(self, index: 'int64_t') -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">TransitVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_TransitVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.FixedTransitVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.FixedTransitVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">FixedTransitVar</span><span class="signature">(self, index: 'int64_t') -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">FixedTransitVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_FixedTransitVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.SlackVar" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.SlackVar">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SlackVar</span><span class="signature">(self, index: 'int64_t') -> 'operations_research::IntVar *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SlackVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::IntVar *"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SlackVar</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.SetSpanUpperBoundForVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.SetSpanUpperBoundForVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetSpanUpperBoundForVehicle</span><span class="signature">(self, upper_bound: 'int64_t', vehicle: int) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetSpanUpperBoundForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">upper_bound</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets an upper bound on the dimension span on a given vehicle. This is the</span>
|
|
<span class="sd"> preferred way to limit the "length" of the route of a vehicle according to</span>
|
|
<span class="sd"> a dimension.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetSpanUpperBoundForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">upper_bound</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Sets an upper bound on the dimension span on a given vehicle. This is the
|
|
preferred way to limit the "length" of the route of a vehicle according to
|
|
a dimension.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.SetSpanCostCoefficientForVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.SetSpanCostCoefficientForVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetSpanCostCoefficientForVehicle</span><span class="signature">(self, coefficient: 'int64_t', vehicle: int) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetSpanCostCoefficientForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets a cost proportional to the dimension span on a given vehicle,</span>
|
|
<span class="sd"> or on all vehicles at once. "coefficient" must be nonnegative.</span>
|
|
<span class="sd"> This is handy to model costs proportional to idle time when the dimension</span>
|
|
<span class="sd"> represents time.</span>
|
|
<span class="sd"> The cost for a vehicle is</span>
|
|
<span class="sd"> span_cost = coefficient * (dimension end value - dimension start value).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetSpanCostCoefficientForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Sets a cost proportional to the dimension span on a given vehicle,
|
|
or on all vehicles at once. "coefficient" must be nonnegative.
|
|
This is handy to model costs proportional to idle time when the dimension
|
|
represents time.
|
|
The cost for a vehicle is
|
|
span_cost = coefficient * (dimension end value - dimension start value).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.SetSpanCostCoefficientForAllVehicles" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.SetSpanCostCoefficientForAllVehicles">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetSpanCostCoefficientForAllVehicles</span><span class="signature">(self, coefficient: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetSpanCostCoefficientForAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetSpanCostCoefficientForAllVehicles</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.SetGlobalSpanCostCoefficient" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.SetGlobalSpanCostCoefficient">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetGlobalSpanCostCoefficient</span><span class="signature">(self, coefficient: 'int64_t') -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetGlobalSpanCostCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets a cost proportional to the *global* dimension span, that is the</span>
|
|
<span class="sd"> difference between the largest value of route end cumul variables and</span>
|
|
<span class="sd"> the smallest value of route start cumul variables.</span>
|
|
<span class="sd"> In other words:</span>
|
|
<span class="sd"> global_span_cost =</span>
|
|
<span class="sd"> coefficient * (Max(dimension end value) - Min(dimension start value)).</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetGlobalSpanCostCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Sets a cost proportional to the <em>global</em> dimension span, that is the
|
|
difference between the largest value of route end cumul variables and
|
|
the smallest value of route start cumul variables.
|
|
In other words:
|
|
global_span_cost =
|
|
coefficient * (Max(dimension end value) - Min(dimension start value)).</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.SetCumulVarSoftUpperBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.SetCumulVarSoftUpperBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetCumulVarSoftUpperBound</span><span class="signature">(
|
|
self,
|
|
index: 'int64_t',
|
|
upper_bound: 'int64_t',
|
|
coefficient: 'int64_t'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">upper_bound</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets a soft upper bound to the cumul variable of a given variable index.</span>
|
|
<span class="sd"> If the value of the cumul variable is greater than the bound, a cost</span>
|
|
<span class="sd"> proportional to the difference between this value and the bound is added</span>
|
|
<span class="sd"> to the cost function of the model:</span>
|
|
<span class="sd"> cumulVar <= upper_bound -> cost = 0</span>
|
|
<span class="sd"> cumulVar > upper_bound -> cost = coefficient * (cumulVar - upper_bound)</span>
|
|
<span class="sd"> This is also handy to model tardiness costs when the dimension represents</span>
|
|
<span class="sd"> time.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">upper_bound</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Sets a soft upper bound to the cumul variable of a given variable index.
|
|
If the value of the cumul variable is greater than the bound, a cost
|
|
proportional to the difference between this value and the bound is added
|
|
to the cost function of the model:
|
|
cumulVar <= upper_bound -> cost = 0
|
|
cumulVar > upper_bound -> cost = coefficient * (cumulVar - upper_bound)
|
|
This is also handy to model tardiness costs when the dimension represents
|
|
time.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.HasCumulVarSoftUpperBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.HasCumulVarSoftUpperBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">HasCumulVarSoftUpperBound</span><span class="signature">(self, index: 'int64_t') -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">HasCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true if a soft upper bound has been set for a given variable</span>
|
|
<span class="sd"> index.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_HasCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true if a soft upper bound has been set for a given variable
|
|
index.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.GetCumulVarSoftUpperBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.GetCumulVarSoftUpperBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetCumulVarSoftUpperBound</span><span class="signature">(self, index: 'int64_t') -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the soft upper bound of a cumul variable for a given variable</span>
|
|
<span class="sd"> index. The "hard" upper bound of the variable is returned if no soft upper</span>
|
|
<span class="sd"> bound has been set.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetCumulVarSoftUpperBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the soft upper bound of a cumul variable for a given variable
|
|
index. The "hard" upper bound of the variable is returned if no soft upper
|
|
bound has been set.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.GetCumulVarSoftUpperBoundCoefficient" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.GetCumulVarSoftUpperBoundCoefficient">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetCumulVarSoftUpperBoundCoefficient</span><span class="signature">(self, index: 'int64_t') -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetCumulVarSoftUpperBoundCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost coefficient of the soft upper bound of a cumul variable</span>
|
|
<span class="sd"> for a given variable index. If no soft upper bound has been set, 0 is</span>
|
|
<span class="sd"> returned.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetCumulVarSoftUpperBoundCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the cost coefficient of the soft upper bound of a cumul variable
|
|
for a given variable index. If no soft upper bound has been set, 0 is
|
|
returned.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.SetCumulVarSoftLowerBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.SetCumulVarSoftLowerBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetCumulVarSoftLowerBound</span><span class="signature">(
|
|
self,
|
|
index: 'int64_t',
|
|
lower_bound: 'int64_t',
|
|
coefficient: 'int64_t'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">lower_bound</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets a soft lower bound to the cumul variable of a given variable index.</span>
|
|
<span class="sd"> If the value of the cumul variable is less than the bound, a cost</span>
|
|
<span class="sd"> proportional to the difference between this value and the bound is added</span>
|
|
<span class="sd"> to the cost function of the model:</span>
|
|
<span class="sd"> cumulVar > lower_bound -> cost = 0</span>
|
|
<span class="sd"> cumulVar <= lower_bound -> cost = coefficient * (lower_bound -</span>
|
|
<span class="sd"> cumulVar).</span>
|
|
<span class="sd"> This is also handy to model earliness costs when the dimension represents</span>
|
|
<span class="sd"> time.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">,</span> <span class="n">lower_bound</span><span class="p">,</span> <span class="n">coefficient</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Sets a soft lower bound to the cumul variable of a given variable index.
|
|
If the value of the cumul variable is less than the bound, a cost
|
|
proportional to the difference between this value and the bound is added
|
|
to the cost function of the model:
|
|
cumulVar > lower_bound -> cost = 0
|
|
cumulVar <= lower_bound -> cost = coefficient * (lower_bound -
|
|
cumulVar).
|
|
This is also handy to model earliness costs when the dimension represents
|
|
time.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.HasCumulVarSoftLowerBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.HasCumulVarSoftLowerBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">HasCumulVarSoftLowerBound</span><span class="signature">(self, index: 'int64_t') -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">HasCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns true if a soft lower bound has been set for a given variable</span>
|
|
<span class="sd"> index.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_HasCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true if a soft lower bound has been set for a given variable
|
|
index.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.GetCumulVarSoftLowerBound" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.GetCumulVarSoftLowerBound">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetCumulVarSoftLowerBound</span><span class="signature">(self, index: 'int64_t') -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the soft lower bound of a cumul variable for a given variable</span>
|
|
<span class="sd"> index. The "hard" lower bound of the variable is returned if no soft lower</span>
|
|
<span class="sd"> bound has been set.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetCumulVarSoftLowerBound</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the soft lower bound of a cumul variable for a given variable
|
|
index. The "hard" lower bound of the variable is returned if no soft lower
|
|
bound has been set.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.GetCumulVarSoftLowerBoundCoefficient" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.GetCumulVarSoftLowerBoundCoefficient">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetCumulVarSoftLowerBoundCoefficient</span><span class="signature">(self, index: 'int64_t') -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetCumulVarSoftLowerBoundCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Returns the cost coefficient of the soft lower bound of a cumul variable</span>
|
|
<span class="sd"> for a given variable index. If no soft lower bound has been set, 0 is</span>
|
|
<span class="sd"> returned.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetCumulVarSoftLowerBoundCoefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the cost coefficient of the soft lower bound of a cumul variable
|
|
for a given variable index. If no soft lower bound has been set, 0 is
|
|
returned.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.SetBreakIntervalsOfVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.SetBreakIntervalsOfVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetBreakIntervalsOfVehicle</span><span class="signature">(
|
|
self,
|
|
breaks: 'std::vector< operations_research::IntervalVar * >',
|
|
vehicle: int,
|
|
node_visit_transits: 'std::vector< int64_t >'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetBreakIntervalsOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">breaks</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntervalVar * >"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">,</span> <span class="n">node_visit_transits</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets the breaks for a given vehicle. Breaks are represented by</span>
|
|
<span class="sd"> IntervalVars. They may interrupt transits between nodes and increase</span>
|
|
<span class="sd"> the value of corresponding slack variables.</span>
|
|
<span class="sd"> A break may take place before the start of a vehicle, after the end of</span>
|
|
<span class="sd"> a vehicle, or during a travel i -> j.</span>
|
|
|
|
<span class="sd"> In that case, the interval [break.Start(), break.End()) must be a subset</span>
|
|
<span class="sd"> of [CumulVar(i) + pre_travel(i, j), CumulVar(j) - post_travel(i, j)). In</span>
|
|
<span class="sd"> other words, a break may not overlap any node n's visit, given by</span>
|
|
<span class="sd"> [CumulVar(n) - post_travel(_, n), CumulVar(n) + pre_travel(n, _)).</span>
|
|
<span class="sd"> This formula considers post_travel(_, start) and pre_travel(end, _) to be</span>
|
|
<span class="sd"> 0; pre_travel will never be called on any (_, start) and post_travel will</span>
|
|
<span class="sd"> never we called on any (end, _). If pre_travel_evaluator or</span>
|
|
<span class="sd"> post_travel_evaluator is -1, it will be taken as a function that always</span>
|
|
<span class="sd"> returns 0.</span>
|
|
<span class="sd"> Deprecated, sets pre_travel(i, j) = node_visit_transit[i].</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetBreakIntervalsOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">breaks</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">,</span> <span class="n">node_visit_transits</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Sets the breaks for a given vehicle. Breaks are represented by
|
|
IntervalVars. They may interrupt transits between nodes and increase
|
|
the value of corresponding slack variables.
|
|
A break may take place before the start of a vehicle, after the end of
|
|
a vehicle, or during a travel i -> j.</p>
|
|
|
|
<p>In that case, the interval [break.Start(), break.End()) must be a subset
|
|
of [CumulVar(i) + pre_travel(i, j), CumulVar(j) - post_travel(i, j)). In
|
|
other words, a break may not overlap any node n's visit, given by
|
|
[CumulVar(n) - post_travel(_, n), CumulVar(n) + pre_travel(n, _)).
|
|
This formula considers post_travel(_, start) and pre_travel(end, _) to be
|
|
0; pre_travel will never be called on any (_, start) and post_travel will
|
|
never we called on any (end, _). If pre_travel_evaluator or
|
|
post_travel_evaluator is -1, it will be taken as a function that always
|
|
returns 0.
|
|
Deprecated, sets pre_travel(i, j) = node_visit_transit[i].</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.SetBreakDistanceDurationOfVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.SetBreakDistanceDurationOfVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetBreakDistanceDurationOfVehicle</span><span class="signature">(
|
|
self,
|
|
distance: 'int64_t',
|
|
duration: 'int64_t',
|
|
vehicle: int
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetBreakDistanceDurationOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distance</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">duration</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> With breaks supposed to be consecutive, this forces the distance between</span>
|
|
<span class="sd"> breaks of size at least minimum_break_duration to be at most distance.</span>
|
|
<span class="sd"> This supposes that the time until route start and after route end are</span>
|
|
<span class="sd"> infinite breaks.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetBreakDistanceDurationOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">distance</span><span class="p">,</span> <span class="n">duration</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>With breaks supposed to be consecutive, this forces the distance between
|
|
breaks of size at least minimum_break_duration to be at most distance.
|
|
This supposes that the time until route start and after route end are
|
|
infinite breaks.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.InitializeBreaks" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.InitializeBreaks">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">InitializeBreaks</span><span class="signature">(self) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">InitializeBreaks</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Sets up vehicle_break_intervals_, vehicle_break_distance_duration_,</span>
|
|
<span class="sd"> pre_travel_evaluators and post_travel_evaluators.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_InitializeBreaks</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Sets up vehicle_break_intervals_, vehicle_break_distance_duration_,
|
|
pre_travel_evaluators and post_travel_evaluators.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.HasBreakConstraints" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.HasBreakConstraints">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">HasBreakConstraints</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">HasBreakConstraints</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns true if any break interval or break distance was defined."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_HasBreakConstraints</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns true if any break interval or break distance was defined.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.GetPreTravelEvaluatorOfVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.GetPreTravelEvaluatorOfVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetPreTravelEvaluatorOfVehicle</span><span class="signature">(self, vehicle: int) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetPreTravelEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetPreTravelEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.GetPostTravelEvaluatorOfVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.GetPostTravelEvaluatorOfVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetPostTravelEvaluatorOfVehicle</span><span class="signature">(self, vehicle: int) -> int</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetPostTravelEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetPostTravelEvaluatorOfVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.base_dimension" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.base_dimension">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">base_dimension</span><span class="signature">(self) -> 'operations_research::RoutingDimension const *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">base_dimension</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::RoutingDimension const *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the parent in the dependency tree if any or nullptr otherwise."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_base_dimension</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the parent in the dependency tree if any or nullptr otherwise.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.ShortestTransitionSlack" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.ShortestTransitionSlack">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">ShortestTransitionSlack</span><span class="signature">(self, node: 'int64_t') -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">ShortestTransitionSlack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> It makes sense to use the function only for self-dependent dimension.</span>
|
|
<span class="sd"> For such dimensions the value of the slack of a node determines the</span>
|
|
<span class="sd"> transition cost of the next transit. Provided that</span>
|
|
<span class="sd"> 1. cumul[node] is fixed,</span>
|
|
<span class="sd"> 2. next[node] and next[next[node]] (if exists) are fixed,</span>
|
|
<span class="sd"> the value of slack[node] for which cumul[next[node]] + transit[next[node]]</span>
|
|
<span class="sd"> is minimized can be found in O(1) using this function.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_ShortestTransitionSlack</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">node</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>It makes sense to use the function only for self-dependent dimension.
|
|
For such dimensions the value of the slack of a node determines the
|
|
transition cost of the next transit. Provided that</p>
|
|
|
|
<ol>
|
|
<li>cumul[node] is fixed,</li>
|
|
<li>next[node] and next[next[node]] (if exists) are fixed,
|
|
the value of slack[node] for which cumul[next[node]] + transit[next[node]]
|
|
is minimized can be found in O(1) using this function.</li>
|
|
</ol>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.name" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.name">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">name</span><span class="signature">(self) -> 'std::string const &'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"std::string const &"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">""" Returns the name of the dimension."""</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_name</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Returns the name of the dimension.</p>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.SetPickupToDeliveryLimitFunctionForPair" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.SetPickupToDeliveryLimitFunctionForPair">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SetPickupToDeliveryLimitFunctionForPair</span><span class="signature">(
|
|
self,
|
|
limit_function: 'operations_research::RoutingDimension::PickupToDeliveryLimitFunction',
|
|
pair_index: int
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">SetPickupToDeliveryLimitFunctionForPair</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">limit_function</span><span class="p">:</span> <span class="s2">"operations_research::RoutingDimension::PickupToDeliveryLimitFunction"</span><span class="p">,</span> <span class="n">pair_index</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_SetPickupToDeliveryLimitFunctionForPair</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">limit_function</span><span class="p">,</span> <span class="n">pair_index</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.HasPickupToDeliveryLimits" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.HasPickupToDeliveryLimits">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">HasPickupToDeliveryLimits</span><span class="signature">(self) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">HasPickupToDeliveryLimits</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_HasPickupToDeliveryLimits</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.AddNodePrecedence" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.AddNodePrecedence">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">AddNodePrecedence</span><span class="signature">(
|
|
self,
|
|
first_node: 'int64_t',
|
|
second_node: 'int64_t',
|
|
offset: 'int64_t'
|
|
) -> 'void'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">AddNodePrecedence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_node</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">second_node</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">,</span> <span class="n">offset</span><span class="p">:</span> <span class="s2">"int64_t"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"void"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_AddNodePrecedence</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">first_node</span><span class="p">,</span> <span class="n">second_node</span><span class="p">,</span> <span class="n">offset</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.GetSpanUpperBoundForVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.GetSpanUpperBoundForVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetSpanUpperBoundForVehicle</span><span class="signature">(self, vehicle: int) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetSpanUpperBoundForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetSpanUpperBoundForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.GetSpanCostCoefficientForVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.GetSpanCostCoefficientForVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetSpanCostCoefficientForVehicle</span><span class="signature">(self, vehicle: int) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetSpanCostCoefficientForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetSpanCostCoefficientForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.global_span_cost_coefficient" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.global_span_cost_coefficient">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">global_span_cost_coefficient</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">global_span_cost_coefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_global_span_cost_coefficient</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.GetGlobalOptimizerOffset" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.GetGlobalOptimizerOffset">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetGlobalOptimizerOffset</span><span class="signature">(self) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetGlobalOptimizerOffset</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetGlobalOptimizerOffset</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
<div id="RoutingDimension.GetLocalOptimizerOffsetForVehicle" class="classattr">
|
|
<div class="attr function"><a class="headerlink" href="#RoutingDimension.GetLocalOptimizerOffsetForVehicle">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">GetLocalOptimizerOffsetForVehicle</span><span class="signature">(self, vehicle: int) -> 'int64_t'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span> <span class="k">def</span> <span class="nf">GetLocalOptimizerOffsetForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">:</span> <span class="s2">"int"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"int64_t"</span><span class="p">:</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">RoutingDimension_GetLocalOptimizerOffsetForVehicle</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">vehicle</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
|
|
|
|
</div>
|
|
</section>
|
|
<section id="MakeSetValuesFromTargets">
|
|
<div class="attr function"><a class="headerlink" href="#MakeSetValuesFromTargets">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">MakeSetValuesFromTargets</span><span class="signature">(
|
|
solver: <a href="#Solver">pywrapcp.Solver</a>,
|
|
variables: 'std::vector< operations_research::IntVar * >',
|
|
targets: 'std::vector< int64_t >'
|
|
) -> 'operations_research::DecisionBuilder *'</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">MakeSetValuesFromTargets</span><span class="p">(</span><span class="n">solver</span><span class="p">:</span> <span class="s2">"Solver"</span><span class="p">,</span> <span class="n">variables</span><span class="p">:</span> <span class="s2">"std::vector< operations_research::IntVar * >"</span><span class="p">,</span> <span class="n">targets</span><span class="p">:</span> <span class="s2">"std::vector< int64_t >"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"operations_research::DecisionBuilder *"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> A decision builder which tries to assign values to variables as close as</span>
|
|
<span class="sd"> possible to target values first.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">MakeSetValuesFromTargets</span><span class="p">(</span><span class="n">solver</span><span class="p">,</span> <span class="n">variables</span><span class="p">,</span> <span class="n">targets</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>A decision builder which tries to assign values to variables as close as
|
|
possible to target values first.</p>
|
|
</div>
|
|
|
|
|
|
</section>
|
|
<section id="SolveModelWithSat">
|
|
<div class="attr function"><a class="headerlink" href="#SolveModelWithSat">#  </a>
|
|
|
|
|
|
<span class="def">def</span>
|
|
<span class="name">SolveModelWithSat</span><span class="signature">(
|
|
model: <a href="#RoutingModel">pywrapcp.RoutingModel</a>,
|
|
search_parameters: 'operations_research::RoutingSearchParameters const &',
|
|
initial_solution: <a href="#Assignment">pywrapcp.Assignment</a>,
|
|
solution: <a href="#Assignment">pywrapcp.Assignment</a>
|
|
) -> bool</span>:
|
|
</div>
|
|
|
|
<details>
|
|
<summary>View Source</summary>
|
|
<div class="codehilite"><pre><span></span><span class="k">def</span> <span class="nf">SolveModelWithSat</span><span class="p">(</span><span class="n">model</span><span class="p">:</span> <span class="s2">"RoutingModel"</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">:</span> <span class="s2">"operations_research::RoutingSearchParameters const &"</span><span class="p">,</span> <span class="n">initial_solution</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">,</span> <span class="n">solution</span><span class="p">:</span> <span class="s2">"Assignment"</span><span class="p">)</span> <span class="o">-></span> <span class="s2">"bool"</span><span class="p">:</span>
|
|
<span class="sa">r</span><span class="sd">"""</span>
|
|
<span class="sd"> Attempts to solve the model using the cp-sat solver. As of 5/2019, will</span>
|
|
<span class="sd"> solve the TSP corresponding to the model if it has a single vehicle.</span>
|
|
<span class="sd"> Therefore the resulting solution might not actually be feasible. Will return</span>
|
|
<span class="sd"> false if a solution could not be found.</span>
|
|
<span class="sd"> """</span>
|
|
<span class="k">return</span> <span class="n">_pywrapcp</span><span class="o">.</span><span class="n">SolveModelWithSat</span><span class="p">(</span><span class="n">model</span><span class="p">,</span> <span class="n">search_parameters</span><span class="p">,</span> <span class="n">initial_solution</span><span class="p">,</span> <span class="n">solution</span><span class="p">)</span>
|
|
</pre></div>
|
|
|
|
</details>
|
|
|
|
<div class="docstring"><p>Attempts to solve the model using the cp-sat solver. As of 5/2019, will
|
|
solve the TSP corresponding to the model if it has a single vehicle.
|
|
Therefore the resulting solution might not actually be feasible. Will return
|
|
false if a solution could not be found.</p>
|
|
</div>
|
|
|
|
|
|
</section>
|
|
</main>
|
|
</body>
|
|
</html> |