From b132b5410dbaab2369995eac1971a1a775ec65ed Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Mon, 2 Oct 2023 10:08:08 +0000 Subject: [PATCH] Update documentation --- searchindex.js | 2 +- technical/solvers.html | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/searchindex.js b/searchindex.js index 7038777f..f6f99065 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["CaseStudies/a_blending_problem", "CaseStudies/a_set_partitioning_problem", "CaseStudies/a_sudoku_problem", "CaseStudies/a_transportation_problem", "CaseStudies/a_two_stage_production_planning_problem", "CaseStudies/index", "develop/add_solver", "develop/contribute", "develop/index", "guides/how_to_configure_solvers", "guides/how_to_debug", "guides/how_to_elastic_constraints", "guides/how_to_export_models", "guides/how_to_mip_start", "guides/index", "index", "main/amply", "main/basic_python_coding", "main/includeme", "main/index", "main/installing_pulp_at_home", "main/optimisation_concepts", "main/the_optimisation_process", "plugins/amply", "plugins/index", "plugins/lparray", "plugins/orloge", "plugins/pytups", "technical/constants", "technical/index", "technical/pulp", "technical/solvers"], "filenames": ["CaseStudies/a_blending_problem.rst", "CaseStudies/a_set_partitioning_problem.rst", "CaseStudies/a_sudoku_problem.rst", "CaseStudies/a_transportation_problem.rst", "CaseStudies/a_two_stage_production_planning_problem.rst", "CaseStudies/index.rst", "develop/add_solver.rst", "develop/contribute.rst", "develop/index.rst", "guides/how_to_configure_solvers.rst", "guides/how_to_debug.rst", "guides/how_to_elastic_constraints.rst", "guides/how_to_export_models.rst", "guides/how_to_mip_start.rst", "guides/index.rst", "index.rst", "main/amply.rst", "main/basic_python_coding.rst", "main/includeme.rst", "main/index.rst", "main/installing_pulp_at_home.rst", "main/optimisation_concepts.rst", "main/the_optimisation_process.rst", "plugins/amply.rst", "plugins/index.rst", "plugins/lparray.rst", "plugins/orloge.rst", "plugins/pytups.rst", "technical/constants.rst", "technical/index.rst", "technical/pulp.rst", "technical/solvers.rst"], "titles": ["A Blending Problem", "A Set Partitioning Problem", "A Sudoku Problem formulated as an LP", "A Transportation Problem", "A Two Stage Production Planning Problem", "Case Studies", "How to add a new solver to PuLP", "How to contribute to PuLP", "Developer Guides", "How to configure a solver in PuLP", "How to debug most errors during solving", "Elastic Constraints", "How to import and export models in PuLP", "How to warm-start a solver", "User Guides", "Optimization with PuLP", "Amply", "Basic Python Coding", "pulp", "Main Topics", "Installing PuLP at Home", "Optimisation Concepts", "The Optimisation Process", "amply: AMPL data manipulation", "Plugins", "PuLP_LPARRAY: PuLP x NumPy, a match made in heaven", "orloge: OR logs parser", "pytups: smart dictionaries and tuple lists", "pulp.constants", "PuLP Internal Documentation", "pulp: Pulp classes", "pulp.apis Interface to Solvers"], "terms": {"whiska": [0, 3], "cat": [0, 1, 2, 4, 12, 13, 30], "food": 0, "shown": [0, 2, 3, 9, 12, 17, 22, 31], "abov": [0, 2, 3, 9, 17], "i": [0, 1, 2, 3, 4, 6, 7, 10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 25, 26, 28, 30, 31], "manufactur": 0, "uncl": 0, "ben": 0, "": [0, 1, 2, 3, 4, 6, 7, 9, 10, 12, 15, 17, 18, 20, 22, 25, 30], "want": [0, 7, 9, 10, 13, 18, 22], "produc": [0, 3, 4, 10], "product": [0, 3, 5, 15], "cheapli": 0, "possibl": [0, 1, 3, 4, 9, 10, 12, 13, 22, 31], "while": [0, 2, 4, 6, 13, 14, 21], "ensur": [0, 2, 7], "thei": [0, 3, 6, 9, 17, 18, 21, 22, 27], "meet": 0, "state": [0, 1, 12, 13], "nutrit": 0, "analysi": [0, 5], "requir": [0, 3, 6, 7, 9, 17, 18, 20, 25], "can": [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 15, 17, 18, 20, 21, 22, 27, 30, 31], "thu": [0, 2, 10], "vari": [0, 9, 30], "quantiti": 0, "each": [0, 1, 2, 3, 4, 6, 7, 9, 12, 13, 17, 20, 22, 30, 31], "ingredi": 0, "us": [0, 1, 2, 3, 4, 6, 7, 10, 12, 13, 14, 15, 17, 18, 20, 21, 22, 25, 26, 27, 30, 31], "main": [0, 6, 9, 10, 15, 30, 31], "being": [0, 2, 3, 9, 10, 30], "chicken": [0, 17], "beef": [0, 17], "mutton": [0, 17], "rice": [0, 17], "wheat": 0, "gel": 0, "still": [0, 1, 2, 3, 12], "standard": [0, 6, 12, 26], "cost": [0, 3, 4, 9, 12, 17, 22], "ar": [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 15, 17, 18, 21, 22, 30, 31], "0": [0, 1, 2, 3, 4, 6, 9, 11, 12, 13, 17, 18, 25, 26, 28, 30, 31], "013": 0, "008": 0, "010": 0, "respect": [0, 2, 3, 27, 30], "002": 0, "005": 0, "001": 0, "all": [0, 1, 2, 3, 6, 7, 9, 10, 12, 13, 17, 20, 22, 25, 30, 31], "per": [0, 2, 3, 4, 6, 14, 22], "gram": 0, "For": [0, 3, 7, 9, 10, 12, 13, 15, 17, 18, 21, 22, 31], "thi": [0, 1, 2, 3, 4, 6, 7, 9, 10, 12, 13, 15, 17, 20, 22, 28, 30, 31], "exercis": 0, "we": [0, 1, 2, 3, 4, 6, 7, 9, 12, 13, 15, 18, 21, 22, 30], "ignor": 0, "vitamin": 0, "miner": 0, "ani": [0, 1, 2, 9, 10, 12, 15, 17, 20, 21, 22, 27], "like": [0, 1, 3, 4, 9, 10, 17, 21, 25], "veri": [0, 2, 3, 7, 9, 10, 12, 21, 27], "small": [0, 3], "anywai": 0, "contribut": [0, 4, 8, 15], "total": [0, 1, 3, 4, 13, 22, 31], "weight": 0, "protein": 0, "fat": 0, "fibr": 0, "salt": 0, "final": [0, 2, 3, 4, 7, 9, 10, 11, 22, 31], "given": [0, 2, 3, 13, 17, 18, 22, 30, 31], "tabl": [0, 1, 2, 3, 12, 13], "below": [0, 2, 3, 10, 12, 13, 15, 17, 20], "stuff": 0, "100": [0, 3, 4, 17, 30], "080": 0, "200": [0, 3, 11], "150": 0, "110": 0, "003": 0, "007": 0, "000": 0, "bran": 0, "040": 0, "first": [0, 1, 2, 3, 4, 6, 7, 9, 10, 17, 20, 22], "consid": [0, 2, 3, 22], "build": [0, 8, 10, 12, 30], "simpl": [0, 3, 9, 12, 17, 22], "python": [0, 3, 7, 9, 10, 12, 15, 18, 19, 20, 22, 23, 26, 28, 31], "model": [0, 1, 2, 4, 5, 6, 9, 10, 13, 14, 15, 17, 18, 19, 20, 30, 31], "assum": [0, 3, 7, 15, 17, 30, 31], "make": [0, 1, 2, 3, 4, 8, 9, 10, 17, 18, 20, 22, 27, 30, 31], "out": [0, 1, 2, 3, 4, 10, 13, 26], "just": [0, 2, 3, 6, 9, 13, 25, 31], "two": [0, 3, 5, 6, 7, 9, 10, 11, 12, 13, 15, 18, 27], "defin": [0, 1, 2, 3, 4, 6, 11, 17, 22, 27, 30], "our": [0, 2, 3, 4, 12, 13, 22], "x_1": [0, 21, 30], "text": [0, 2, 9, 10, 31], "percentag": 0, "meat": [0, 17], "x_2": [0, 21, 30], "limit": [0, 3, 4, 22, 31], "greater": [0, 3], "than": [0, 2, 3, 6, 9], "zero": [0, 1, 3, 17, 20, 30], "must": [0, 1, 2, 3, 4, 12, 13, 17, 18, 20, 21, 22, 31], "note": [0, 1, 2, 3, 4, 12, 20, 21, 28, 30], "implement": [0, 6, 22, 31], "enter": [0, 2, 3, 17, 20, 22], "list": [0, 1, 2, 3, 4, 6, 9, 11, 12, 13, 15, 18, 20, 24, 30, 31], "separ": 0, "other": [0, 1, 2, 3, 4, 6, 9, 10, 12, 18, 19, 20, 22, 30, 31], "becom": [0, 1, 2, 10, 12, 17, 18], "textbf": 0, "min": [0, 3, 25], "sum": [0, 2, 3, 17, 25, 30], "met": [0, 2, 3], "1": [0, 1, 2, 3, 4, 6, 9, 10, 11, 13, 14, 17, 18, 25, 26, 28, 30, 31], "ge": [0, 3, 4, 11], "8": [0, 2, 4, 10, 17], "6": [0, 2, 17], "le": [0, 4, 11], "2": [0, 2, 3, 4, 6, 11, 14, 17, 18, 20, 25, 26, 28, 30, 31], "4": [0, 1, 2, 3, 4, 12, 13, 17, 18, 20, 22, 26, 30], "To": [0, 1, 2, 3, 4, 7, 10, 13, 17, 18, 20, 22], "obtain": [0, 20], "linear": [0, 1, 2, 3, 18, 19, 22, 25, 30], "program": [0, 1, 2, 3, 9, 10, 17, 18, 19, 20], "write": [0, 2, 7, 14, 17, 20, 30, 31], "short": [0, 17], "call": [0, 2, 3, 6, 9, 11, 17, 18, 20, 21, 22, 30, 31], "pulp": [0, 1, 2, 4, 5, 8, 10, 13, 14, 17, 19, 22, 24, 27], "which": [0, 2, 3, 4, 7, 11, 14, 17, 18, 21, 22, 30, 31], "solver": [0, 2, 4, 7, 8, 10, 14, 15, 18, 20, 21, 22, 26, 28, 29, 30], "explain": [0, 2, 3, 6, 9, 15], "step": [0, 7, 9, 11, 17, 22], "how": [0, 1, 3, 4, 8, 14, 15, 17, 18, 22], "It": [0, 6, 7, 9, 12, 20, 25, 26, 27, 31], "suggest": [0, 18, 22], "you": [0, 2, 3, 7, 9, 10, 12, 13, 15, 17, 18, 20, 21, 22, 23, 31], "repeat": [0, 20], "yourself": 0, "code": [0, 2, 3, 6, 7, 12, 13, 15, 19, 20, 27], "exampl": [0, 2, 3, 8, 9, 10, 11, 14, 17, 19, 20, 22, 25, 26, 27, 30], "found": [0, 1, 2, 3, 4, 6, 9, 18, 26, 28, 31], "whiskasmodel1": 0, "py": [0, 1, 2, 3, 4, 6, 7, 9, 17, 20], "start": [0, 2, 3, 14, 15, 17, 20, 22, 31], "your": [0, 3, 6, 7, 9, 10, 17, 18, 19, 21, 22, 25, 31], "file": [0, 1, 2, 3, 4, 6, 7, 10, 11, 12, 14, 17, 18, 20, 22, 28, 30, 31], "should": [0, 2, 3, 7, 9, 20, 22, 31], "head": [0, 3, 17], "comment": [0, 2, 3, 18], "section": [0, 6, 9, 12, 17], "outlin": 0, "purpos": 0, "author": [0, 1, 2, 3, 4, 13], "antoni": [0, 2, 3, 15], "phillip": [0, 2, 3, 15], "dr": [0, 2, 3], "stuart": [0, 1, 2, 3, 13, 15, 18, 31], "mitchel": [0, 1, 2, 3, 13, 15, 18, 31], "2007": [0, 3, 31], "Then": [0, 1, 17, 20], "import": [0, 1, 2, 3, 4, 6, 10, 13, 14, 15, 19, 20, 21, 22, 25, 26, 30], "from": [0, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 17, 18, 21, 22, 25, 28, 30, 31], "prob": [0, 2, 3, 9, 10, 12, 18, 25, 31], "although": [0, 9, 10], "its": [0, 3, 6, 9, 10, 11, 16, 30, 31], "name": [0, 2, 3, 4, 6, 7, 9, 12, 17, 18, 20, 25, 30, 31], "creat": [0, 1, 2, 3, 4, 8, 9, 12, 13, 17, 18, 22, 26, 30, 31], "lpproblem": [0, 1, 2, 3, 4, 6, 9, 11, 12, 13, 18, 25], "ha": [0, 3, 6, 10, 11, 12, 13, 14, 16, 31], "paramet": [0, 3, 4, 10, 12, 17, 23, 30, 31], "arbitrari": [0, 31], "string": [0, 17, 28, 30, 31], "second": [0, 3, 6, 9, 31], "either": [0, 11, 17, 20, 22, 30, 31], "lpminim": [0, 1, 2, 3, 9, 12, 13, 18, 25, 28, 30], "lpmaxim": [0, 2, 4, 6, 28, 30], "depend": [0, 7, 9, 17, 31], "type": [0, 11, 14, 19, 20, 21, 25, 30, 31], "lp": [0, 3, 4, 5, 6, 9, 10, 11, 15, 17, 18, 20, 30, 31], "try": [0, 2, 6, 9, 14, 17], "solv": [0, 1, 2, 3, 4, 6, 9, 12, 13, 14, 15, 18, 20, 21, 25, 28, 30, 31], "contain": [0, 1, 2, 3, 6, 11, 17, 18, 21, 28, 30], "data": [0, 2, 3, 4, 6, 14, 15, 17, 22, 24, 26, 30, 31], "x1": [0, 18], "x2": [0, 18], "lpvariabl": [0, 1, 2, 3, 4, 9, 12, 13, 18, 20, 25, 30], "class": [0, 8, 12, 15, 18, 27, 28, 29, 31], "four": [0, 4], "what": [0, 7, 10, 14, 17, 20, 22], "repres": [0, 2, 4, 17, 30], "lower": [0, 3, 9, 13, 30], "bound": [0, 3, 13, 21, 22, 26, 30], "third": [0, 2], "upper": [0, 3, 30], "fourth": [0, 17], "essenti": [0, 2], "discret": 0, "continu": [0, 4, 12, 17, 20, 21, 28, 30], "option": [0, 2, 3, 6, 9, 30, 31], "lpcontinu": [0, 28], "lpinteg": [0, 1, 3, 12, 13, 28], "default": [0, 3, 6, 9, 10, 12, 13, 17, 18, 20, 30, 31], "If": [0, 2, 3, 9, 10, 13, 17, 18, 22, 31], "were": [0, 2, 3, 17], "number": [0, 1, 2, 3, 10, 11, 12, 13, 17, 21, 22, 27, 30, 31], "would": [0, 1, 2, 3, 4, 9, 13, 17, 20, 22, 31], "need": [0, 2, 3, 6, 7, 9, 10, 12, 13, 15, 17, 20, 21, 22, 27], "input": [0, 3, 17, 30], "sinc": [0, 2, 3, 9, 10, 21], "directli": [0, 7, 9, 10, 12], "none": [0, 2, 3, 6, 9, 12, 17, 26, 30, 31], "e": [0, 1, 2, 3, 6, 9, 10, 12, 13, 17, 22, 30, 31], "posit": [0, 17, 30], "neg": [0, 3, 22, 30], "infin": [0, 30], "few": [0, 2], "rest": [0, 2, 3], "take": [0, 2, 3, 6, 10, 12, 22, 31], "valu": [0, 1, 2, 3, 4, 6, 9, 10, 11, 12, 14, 17, 18, 21, 22, 25, 28, 30, 31], "howev": [0, 2, 15, 17, 22], "wish": [0, 1], "specifi": [0, 1, 2, 3, 4, 11, 12, 13, 17, 21, 30, 31], "specif": [0, 4, 10, 17, 23, 30], "set": [0, 2, 3, 4, 5, 6, 9, 12, 13, 15, 22, 23, 25, 28, 30, 31], "cannot": [0, 2, 3, 6, 12, 17, 22, 31], "leav": [0, 3, 9], "entri": 0, "blank": 0, "g": [0, 1, 3, 6, 9, 10, 12, 13, 22, 31], "upbound": [0, 1, 12, 13, 30], "explicitli": [0, 1, 2], "chickenperc": 0, "beefperc": 0, "now": [0, 3, 7, 9, 10, 12, 16, 17, 20, 31], "begin": [0, 4, 15, 17], "collect": 0, "oper": [0, 2, 3, 6, 9, 10, 17, 22, 25, 27], "logic": [0, 2, 3, 4, 6, 22], "an": [0, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 25, 30, 31], "comma": [0, 17], "end": [0, 2, 4, 9, 12, 13, 17], "statement": [0, 2, 3, 23], "ad": [0, 2, 3, 4, 8, 9, 10, 17, 18, 30, 31], "non": [0, 1, 2, 3, 30], "alreadi": [0, 3, 9, 10, 13, 20, 22], "includ": [0, 3, 4, 7, 8, 9, 10, 15, 17, 18, 20, 22, 26], "when": [0, 2, 3, 6, 7, 9, 10, 12, 13, 17, 31], "done": [0, 4, 6, 7, 9, 17, 21, 22], "again": [0, 2, 9, 12, 22, 25, 30, 31], "more": [0, 2, 3, 6, 9, 10, 17, 18, 22, 25, 28, 30, 31], "after": [0, 2, 4, 9, 17, 20, 22, 30, 31], "equat": 0, "brief": [0, 30], "caus": [0, 10], "five": [0, 3, 22], "percentagessum": 0, "proteinrequir": 0, "fatrequir": 0, "fibrerequir": 0, "saltrequir": 0, "writelp": [0, 2, 3, 4, 10, 11, 30], "copi": [0, 9, 30, 31], "inform": [0, 3, 6, 9, 10, 12, 15, 17, 18, 26, 30, 31], "directori": [0, 3, 6, 7, 9, 10, 18, 20, 31], "block": 0, "run": [0, 3, 8, 9, 10, 13, 18, 20, 22], "onc": [0, 2, 3, 9, 13, 17], "successfulli": [0, 7], "open": [0, 2, 6, 7, 9, 10, 18, 20, 22], "editor": [0, 10], "see": [0, 3, 9, 10, 12, 13, 15, 18, 25, 31], "do": [0, 2, 4, 6, 7, 9, 10, 12, 13, 17, 18, 20, 22, 25], "notic": [0, 3], "assign": [0, 13, 17], "equal": [0, 2, 3, 4, 11], "sign": 0, "line": [0, 2, 3, 6, 7, 9, 10, 17, 20, 27, 31], "becaus": [0, 2, 3, 6, 9, 12], "method": [0, 7, 8, 9, 11, 13, 21, 22, 30], "perform": [0, 13, 17, 31], "whiskasmodel": 0, "addit": [0, 6, 10, 14, 25, 30, 31], "dot": 0, "between": [0, 1, 2, 6, 12, 13], "seen": [0, 6, 10, 12], "frequent": 0, "orient": 0, "softwar": [0, 20, 22], "written": [0, 2, 4, 9, 11, 12, 18, 20, 31], "choos": [0, 9], "bracket": [0, 17], "left": [0, 11, 20], "empti": [0, 17, 30], "case": [0, 1, 2, 3, 4, 9, 10, 13, 15], "cplex": [0, 10, 18, 20, 21, 22, 26, 31], "choic": [0, 2, 4, 7], "result": [0, 2, 7, 9, 12, 17], "displai": [0, 17, 18, 20], "output": [0, 4, 12, 17, 20, 26, 30], "u": [0, 3, 18], "firstli": 0, "request": [0, 8], "statu": [0, 2, 4, 6, 7, 9, 12, 18, 26, 28, 30, 31], "one": [0, 1, 2, 3, 4, 6, 7, 9, 10, 12, 13, 17, 21, 30], "Not": [0, 9, 28], "infeas": [0, 3, 14, 20, 28, 31], "unbound": [0, 20, 28, 31], "undefin": [0, 28], "optim": [0, 2, 3, 4, 13, 18, 20, 26, 28, 31], "return": [0, 1, 2, 3, 6, 9, 11, 12, 13, 17, 20, 28, 30, 31], "integ": [0, 2, 3, 12, 17, 19, 20, 28, 30, 31], "convert": [0, 4, 30], "signific": 0, "mean": [0, 2, 9, 12, 22], "lpstatu": [0, 2, 4, 18, 28], "dictionari": [0, 3, 4, 9, 12, 13, 15, 24, 26, 28, 30, 31], "dict": [0, 1, 2, 3, 4, 12, 13, 17, 30, 31], "squar": [0, 2, 17], "print": [0, 1, 2, 4, 13, 17, 25, 30], "screen": [0, 2, 4], "resolv": [0, 3, 4, 30, 31], "optimum": [0, 4], "v": [0, 2, 4, 10, 13, 31], "varvalu": [0, 4, 12, 30], "loop": [0, 2, 3, 19, 22], "cycl": [0, 3], "through": [0, 3, 7, 17, 20, 22], "follow": [0, 2, 3, 6, 7, 9, 10, 11, 12, 13, 17, 18, 20, 21, 26, 30, 31], "properti": [0, 6], "optimis": [0, 4, 15, 19, 20], "right": [0, 9, 11], "format": [0, 12, 17, 30, 31], "attribut": [0, 6, 9, 17, 30, 31], "show": [0, 3, 7, 9, 17, 31], "up": [0, 3, 12, 17, 22, 30], "33": 0, "66": 0, "67": [0, 26], "96": 0, "cent": 0, "fulli": 0, "whilst": [0, 2, 3], "could": [0, 2, 3, 10, 12, 13, 17, 22], "littl": [0, 2, 9], "look": [0, 3, 9, 10, 15, 17, 22], "better": [0, 2, 9, 17], "wai": [0, 1, 2, 3, 6, 7, 9, 10, 12, 17, 18, 20, 21, 22], "doe": [0, 1, 6, 9, 12, 17, 30, 31], "mix": [0, 17, 21], "much": [0, 2, 3, 4, 17], "easier": [0, 2, 12], "chang": [0, 3, 4, 6, 7, 9, 20, 21, 22, 28, 30], "test": [0, 8, 12, 18, 19, 26, 31], "same": [0, 2, 3, 9, 10, 12, 13, 17, 22, 30, 31], "algebra": 0, "differ": [0, 9, 17, 22, 31], "100g": 0, "also": [0, 2, 3, 7, 9, 10, 12, 13, 17, 20, 21, 22, 26, 27], "amount": [0, 3, 30], "formal": [0, 22], "sure": [0, 3, 7, 9, 20, 22], "unit": [0, 3, 4, 22], "x_3": [0, 21], "x_4": 0, "x_5": 0, "x_6": 0, "minimis": [0, 2, 3, 22], "know": [0, 3, 7, 9, 13], "decid": [0, 3, 4, 22], "so": [0, 2, 3, 4, 7, 9, 10, 12, 13, 15, 17, 22, 30, 31], "divid": [0, 20], "multipli": 0, "give": [0, 2, 3, 4, 9, 13, 14, 17, 22, 30], "whole": [0, 3, 7, 14, 26], "x": [0, 1, 9, 11, 12, 13, 15, 17, 18, 24, 26, 30, 31], "_6": 0, "have": [0, 1, 2, 3, 4, 7, 9, 10, 12, 13, 15, 17, 20, 21, 22, 25, 27, 31], "least": [0, 1, 3, 15, 31], "8g": 0, "6g": 0, "2g": 0, "4g": 0, "previou": [0, 3, 9, 12, 13], "allow": [0, 1, 6, 9, 21, 23, 25, 31], "improv": [0, 31], "whiskasmodel2": 0, "As": [0, 2, 3, 6, 9, 10, 12, 17], "last": [0, 3, 9], "time": [0, 2, 3, 6, 7, 12, 20, 21, 22, 26, 31], "advis": 0, "date": 0, "next": [0, 4, 9, 17, 22], "befor": [0, 6, 7, 9, 12, 15, 17, 31], "kei": [0, 3, 17, 22, 28, 30, 31], "nutrient": 0, "These": [0, 2, 4, 6, 9, 17], "clearli": [0, 2, 22], "laid": 0, "easili": [0, 3, 17, 22], "someon": [0, 31], "knowledg": [0, 17], "refer": [0, 3, 4, 17, 31], "percent": 0, "proteinperc": 0, "fatperc": 0, "fibreperc": 0, "saltperc": 0, "usual": [0, 3, 4, 6, 9, 10, 13, 22], "pass": [0, 6, 7, 9, 10, 12, 13, 17, 20, 31], "ingredient_var": 0, "ingr_ingredientnam": 0, "ingr_mutton": 0, "referenc": [0, 3], "ingr": 0, "simpli": [0, 2, 3, 17], "extract": [0, 20], "comprehens": [0, 3, 4, 22], "lpsum": [0, 1, 2, 3, 4, 12, 13, 18, 30], "add": [0, 4, 7, 8, 9, 10, 15, 18, 30, 31], "element": [0, 1, 2, 4, 17, 30, 31], "further": [0, 3, 7, 21, 22], "5": [0, 1, 2, 3, 4, 9, 11, 12, 13, 17, 30, 31], "describ": [0, 10, 20], "them": [0, 2, 3, 9, 10, 12, 17, 18], "etc": [0, 3, 9, 20, 26], "exactli": [0, 1, 2, 3, 10, 12], "60": 0, "40": 0, "lead": [0, 2, 3, 13], "52": [0, 6], "determin": [1, 4, 22], "item": [1, 4, 13, 30], "smaller": [1, 2], "subset": [1, 23, 30], "onli": [1, 2, 3, 6, 7, 9, 12, 13, 17, 21, 23, 31], "relat": [1, 2, 30, 31], "pack": 1, "cover": [1, 6, 31], "In": [1, 2, 4, 6, 7, 9, 13, 17, 20, 22, 30], "studi": [1, 4, 15], "wed": [1, 13], "planner": 1, "guest": [1, 12, 13], "seat": [1, 12, 13], "alloc": 1, "invit": 1, "The": [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 15, 18, 19, 20, 21, 31], "maximis": [1, 2, 22], "happi": [1, 12, 13], "mai": [1, 2, 3, 4, 9, 10, 11, 12, 20, 21, 22, 30, 31], "enumer": 1, "though": [1, 12], "approach": [1, 2], "intract": 1, "larg": [1, 2, 3], "without": [1, 17, 27, 30], "column": [1, 2, 18, 20, 26, 30], "gener": [1, 6, 10, 17, 18, 22, 30, 31], "advantag": [1, 9, 12, 22], "object": [1, 4, 6, 9, 10, 11, 12, 17, 18, 20, 21, 22, 26, 30, 31], "function": [1, 4, 6, 7, 10, 11, 15, 18, 20, 22, 25, 27, 30, 31], "co": 1, "effici": [1, 3, 25, 27], "express": [1, 2, 4, 18, 21, 22], "allcombin": [1, 12, 13, 30], "possible_t": [1, 12, 13], "tupl": [1, 2, 3, 12, 13, 15, 24, 30, 31], "c": [1, 2, 3, 4, 9, 11, 12, 13, 20, 25, 30, 31], "max_table_s": [1, 12, 13], "binari": [1, 2, 10, 12, 13, 20, 25, 28, 30, 31], "variabl": [1, 4, 6, 10, 14, 17, 18, 20, 21, 22, 25, 26, 31], "solut": [1, 4, 5, 6, 9, 10, 12, 13, 18, 20, 21, 26, 28, 30, 31], "otherwis": [1, 6, 9, 18, 31], "lowbound": [1, 4, 9, 12, 13, 30], "script": [1, 20], "difficult": [1, 21], "seating_model": [1, 12, 13], "maximum": [1, 3, 12, 13, 31], "max_tabl": [1, 12, 13], "maximum_number_of_t": [1, 12, 13], "constraint": [1, 4, 10, 12, 14, 15, 18, 20, 21, 22, 26, 31], "guarante": [1, 3, 22], "f": [1, 3, 12, 13, 30], "must_seat_": [1, 12, 13], "full": [1, 2, 4, 5, 15], "here": [1, 3, 4, 6, 7, 9, 10, 12, 13, 17, 21], "2009": [1, 13], "b": [1, 2, 3, 11, 12, 13, 18, 21, 30], "d": [1, 3, 11, 12, 13], "j": [1, 2, 3, 4, 12, 13, 17, 18], "k": [1, 2, 12, 13, 30], "l": [1, 2, 12, 13], "m": [1, 2, 7, 12, 13, 18], "n": [1, 2, 12, 13, 25, 31], "o": [1, 3, 6, 12, 13, 15, 17, 31], "p": [1, 4, 12, 13], "q": [1, 12, 13], "r": [1, 2, 4, 7, 9, 12, 13, 18, 25, 30], "split": [1, 6, 12, 13], "def": [1, 6, 12, 13, 17], "find": [1, 2, 4, 6, 7, 9, 12, 13, 18, 21, 30], "calcul": [1, 12, 13, 17, 30], "distanc": [1, 11, 12, 13], "letter": [1, 12, 13], "ab": [1, 12, 13, 25], "ord": [1, 12, 13], "choosen": [1, 13], "len": [1, 13], "incomplet": 2, "9x9": 2, "fill": [2, 6, 9, 14], "accord": 2, "sever": [2, 3, 9, 10, 12, 17, 26], "rule": 2, "within": [2, 4, 22], "9": [2, 12, 17, 25], "individu": 2, "3x3": 2, "box": [2, 25], "grid": 2, "row": [2, 26], "On": [2, 7, 18], "page": [2, 7, 10, 18], "wikipedia": [2, 17], "modif": [2, 31], "order": [2, 3, 4, 7, 9, 13, 15, 17, 30, 31], "81": 2, "awfulli": 2, "complic": [2, 4], "necessari": [2, 9, 30], "45": 2, "mani": [2, 3, 4, 9, 12, 13, 22], "satisfi": [2, 3, 7], "There": [2, 3, 6, 9, 10], "big": [2, 9, 10], "compar": [2, 3], "pair": [2, 31], "strictli": 2, "prefer": [2, 9], "present": [2, 4, 5, 13], "eleg": 2, "729": 2, "where": [2, 3, 11, 13, 14, 20, 21, 30, 31], "correspond": [2, 4, 6, 17], "might": 2, "natur": [2, 3, 17], "sai": 2, "whether": [2, 31], "exist": [2, 6, 9, 17, 28, 30, 31], "true": [2, 6, 9, 10, 13, 17, 21, 30, 31], "fals": [2, 6, 9, 30, 31], "therefor": 2, "place": [2, 17], "clear": [2, 17], "interestingli": 2, "anoth": [2, 3, 9, 10, 12, 17, 18, 22], "definit": [2, 3, 17, 28], "realli": [2, 9, 12], "anyth": 2, "neither": 2, "nor": 2, "known": [2, 4, 21, 22], "plu": 2, "own": [2, 9, 10, 16, 17], "featur": [2, 19], "overlap": 2, "overal": 2, "seem": 2, "obviou": 2, "those": [2, 3, 4, 9, 13], "changeabl": 2, "actual": [2, 4, 7, 9, 22, 30, 31], "wherea": [2, 17], "control": [2, 9, 31], "feasibl": [2, 10, 20], "instead": [2, 3, 12, 17, 22, 27], "introductori": 2, "edit": [2, 3, 4, 9, 31], "nathan": 2, "sudermann": 2, "merx": 2, "uniqu": [2, 12, 31], "exact": 2, "val": [2, 30], "col": [2, 26], "rang": [2, 17, 30], "10": [2, 3, 4, 9, 12, 17, 26, 30, 31], "indic": [2, 30], "similar": [2, 7, 9, 12, 17, 20, 31], "had": 2, "effect": [2, 21, 22, 30], "been": [2, 3, 10, 12, 13, 16, 17, 31], "wast": 2, "index": [2, 4, 7, 12, 18, 25, 30, 31], "3": [2, 3, 4, 9, 12, 17, 18, 20, 25, 26, 28, 30, 31], "locat": [2, 6, 9, 20, 31], "combin": [2, 3, 4, 10, 18], "choice_4_2_9": 2, "abl": [2, 9, 12, 20], "wa": [2, 3, 9, 10, 17, 30, 31], "situat": [2, 3, 10, 22], "don": [2, 3, 22], "t": [2, 3, 4, 21, 22], "concern": 2, "read": [2, 3, 4, 9, 12, 15, 31], "particular": [2, 6, 10, 22], "occur": [2, 4], "input_data": 2, "7": [2, 4, 12, 17, 18, 20, 26], "meaning": [2, 3, 4, 7], "draw": 2, "put": [2, 3, 10, 22], "inbetween": 2, "everi": [2, 3, 7, 17], "sudokuout": 2, "txt": [2, 7, 18], "folder": [2, 7, 10, 18, 20], "overwritten": [2, 9], "w": [2, 3, 4, 6], "str": [2, 4, 30, 31], "close": [2, 20], "user": [2, 9, 10, 15, 17, 31], "provid": [2, 12, 15, 22, 26, 27, 31], "sudoku1": 2, "did": [2, 9, 10, 31], "fact": [2, 17], "multipl": [2, 17, 31], "well": [2, 6, 17, 22, 31], "over": [2, 9, 12], "success": [2, 30, 31], "deem": 2, "80": 2, "new": [2, 3, 7, 8, 9, 12, 15, 17, 18, 22, 30], "els": [2, 6, 9, 12, 17, 31], "break": [2, 22], "avail": [2, 3, 4, 8, 9, 12, 15, 17, 18, 22, 31], "sudoku2": 2, "long": [2, 3, 12, 17, 20, 22], "delet": [2, 9, 31], "singl": 2, "remov": [2, 6], "sudden": 2, "dramat": 2, "increas": [2, 21, 22], "boutiqu": 3, "breweri": 3, "warehous": 3, "distribut": [3, 20], "beer": 3, "carefulli": [3, 22], "chosen": 3, "bar": 3, "At": [3, 4, 13, 17], "week": [3, 22], "send": [3, 7], "offic": 3, "crate": 3, "dispatch": 3, "appropri": [3, 22], "interact": 3, "comput": [3, 9, 12], "tell": [3, 9], "suppli": 3, "minim": [3, 6, 11, 12, 28], "suppos": 3, "1000": 3, "4000": 3, "500": [3, 11], "900": 3, "1800": 3, "700": 3, "graphic": [3, 9], "represent": 3, "often": [3, 10, 17, 21, 22], "help": [3, 7, 14], "dure": [3, 9, 14, 15, 31], "good": [3, 10, 21, 31], "node": [3, 26, 31], "demand": [3, 4], "arc": 3, "connect": [3, 9], "diagram": [3, 22], "pub": 3, "a1": [3, 18], "ship": 3, "a5": 3, "b1": 3, "b5": 3, "let": [3, 22, 25], "x_": 3, "ldot": 3, "foral": 3, "mathbb": 3, "z": [3, 12], "fraction": [3, 20, 31], "loos": 3, "sometim": [3, 9, 10, 22], "due": 3, "factor": 3, "economi": 3, "scale": 3, "fix": [3, 7, 10, 14, 30], "truck": 3, "accommod": 3, "impli": [3, 9, 13, 17, 26], "go": [3, 7, 9, 12, 20, 21, 31], "jump": 3, "extra": [3, 5, 8], "later": [3, 4, 15], "cours": [3, 10, 17], "shall": 3, "capac": [3, 4], "deliv": 3, "assumpt": 3, "talk": [3, 9, 22], "financi": 3, "manag": 3, "she": 3, "dollar": 3, "routea1": 3, "routeb5": 3, "sum_": [3, 4, 30], "c_": 3, "come": [3, 9, 22, 30, 31], "consider": [3, 6, 14, 22], "exce": [3, 17], "similarli": 3, "less": 3, "Such": 3, "a2": [3, 9, 18], "a3": 3, "a4": 3, "b2": 3, "b3": 3, "b4": 3, "s_w": 3, "avoid": 3, "lost": 3, "sale": 3, "penalti": [3, 11, 20, 30], "oversuppli": 3, "incur": 3, "_balance_": 3, "d_b": 3, "blend": [3, 5, 15], "beerdistributionproblem": 3, "associ": [3, 4, 17, 30], "sub": 3, "structur": [3, 6, 9, 12, 17, 23], "appear": 3, "easi": [3, 7, 9, 27], "makedict": 3, "previous": [3, 13, 31], "path": [3, 6, 10, 14, 20, 31], "made": [3, 12, 15, 24], "rout": 3, "var": [3, 31], "route_tupl": 3, "route_a_2": 3, "intern": [3, 12, 15, 31], "sum_of_transporting_cost": 3, "normal": [3, 17, 30], "turn": [3, 13, 17], "constrain": [3, 25], "max": [3, 4, 25, 31], "minimum": [3, 10], "sum_of_products_out_of_warehouse_": 3, "sum_of_products_into_bar": 3, "programm": [3, 17], "alwai": [3, 10, 17], "about": [3, 9, 11, 31], "detail": [3, 6, 10, 21, 22], "check": [3, 10, 13, 14, 30, 31], "integr": [3, 7, 14], "_balanced_": 3, "store": [3, 6, 9, 12, 17], "somewher": [3, 9], "purchas": [3, 4], "altern": [3, 10, 12], "sourc": [3, 8, 31], "substitut": 3, "5000": 3, "4100": 3, "sent": 3, "_dummy_": 3, "flow": 3, "dummi": 3, "origin": [3, 7, 12, 22], "expand": 3, "balanc": 3, "realist": 3, "stock": 3, "unbalanc": 3, "excess": 3, "get": [3, 6, 7, 9, 10, 12, 13, 18, 20, 31], "beerdistributionproblemwarehouseextens": 3, "beerdistributionproblemcompetitorextens": 3, "shipment": 3, "totalcost": 3, "____": 3, "___": 3, "rise": 3, "summari": [3, 7, 22], "mike": 3, "sullivan": [3, 15], "1234567": 3, "__________": 3, "forecast": 3, "schedul": 3, "_____": 3, "form": [3, 11, 18, 21, 22], "updat": [3, 17, 22], "cheaper": 3, "along": 3, "affect": [3, 17], "save": [3, 7, 12, 31], "reduc": [3, 9, 12], "decis": [4, 21, 22], "maker": 4, "materi": [4, 17], "labor": 4, "resourc": 4, "maxim": [4, 6, 20, 28], "profit": [4, 22], "compani": 4, "gtc": 4, "wrench": 4, "plier": 4, "subject": [4, 12], "steel": 4, "machin": [4, 7, 9, 22], "capabl": 4, "mold": 4, "assembli": 4, "market": 4, "earn": 4, "unknown": [4, 17, 31], "period": [4, 22], "revenu": [4, 22], "uncertainti": [4, 22], "scenario": 4, "probabl": [4, 9], "packag": [4, 7, 9, 12, 16, 20, 31], "vector": [4, 30], "databas": 4, "price": [4, 9, 12, 30], "130": 4, "capsteel": 4, "27": 4, "capmold": 4, "21": [4, 17, 26], "lb": [4, 25], "capacity_ub": 4, "15": [4, 17, 26], "16": [4, 26], "steelpric": 4, "58": 4, "pscenario": 4, "25": [4, 17], "wrenchearn": 4, "160": 4, "90": 4, "plierearn": 4, "capassembli": 4, "pricescenario": 4, "priceitem": 4, "sublist": 4, "zip": [4, 17], "price_dict": 4, "capacity_dict": 4, "steel_dict": 4, "molding_dict": 4, "assembly_dict": 4, "production_var": 4, "steelpurchas": 4, "goal": [4, 22], "net": 4, "gemstoneprob": 4, "gemston": 4, "tool": [4, 31], "base": [4, 7, 8, 9, 12, 20, 28, 30, 31], "notat": 4, "summat": 4, "differenti": 4, "comparison": 4, "appli": [4, 8, 11, 30], "two_stage_stochastic_gemstonetool": 4, "loui": 4, "luangkesorn": 4, "lugerpitt": 4, "gmail": [4, 15], "com": [4, 7, 10, 15, 16, 18, 23, 25, 26, 31], "2019": [4, 13], "http": [4, 10, 16, 18, 23, 25, 26, 27, 31], "github": [4, 7, 10, 16, 18, 20, 23, 25, 26, 27, 31], "lluang": 4, "titl": 4, "taken": [4, 10, 12, 13], "bertsima": 4, "freund": 4, "4th": 4, "dmd": 4, "cap_": 4, "hour": [4, 22], "ub_w": 4, "ub_p": 4, "w_": 4, "p_": 4, "5w_": 4, "nonneg": 4, "consol": [4, 9, 31], "A": [5, 7, 9, 11, 12, 13, 15, 17, 18, 22, 25, 30, 31], "problem": [5, 6, 9, 12, 14, 15, 17, 18, 20, 21, 30, 31], "descript": 5, "formul": [5, 6, 15, 31], "partit": [5, 12, 13, 15], "sudoku": [5, 15, 25], "expert": 5, "transport": [5, 15], "extens": 5, "ongo": 5, "monitor": [5, 22], "stage": [5, 15], "plan": [5, 15], "organ": 6, "configur": [6, 14, 15, 18, 31], "instal": [6, 8, 10, 15, 19, 31], "system": [6, 7, 9, 10, 18], "smallest": 6, "mipcl_api": 6, "mipcl_cmd": [6, 9, 31], "lpsolver": [6, 31], "lpsolver_cmd": [6, 31], "core": 6, "command": [6, 7, 9, 10, 17, 20, 31], "subprocess": [6, 31], "pulpsolvererror": [6, 10, 31], "constant": [6, 12, 15, 21, 29, 30], "warn": 6, "__init__": [6, 17], "self": [6, 12, 17, 28, 30, 31], "keepfil": [6, 9, 31], "mip": [6, 9, 14, 20, 21, 26, 30, 31], "msg": [6, 9, 10, 13, 18, 31], "timelimit": [6, 9, 31], "thing": [6, 9, 10, 31], "declar": [6, 23], "level": [6, 9, 17, 31], "some": [6, 7, 9, 10, 11, 12, 13, 17, 21, 30, 31], "argument": [6, 9, 10, 13, 17, 30, 31], "ideal": 6, "convent": [6, 12], "initi": [6, 9, 13, 17, 30, 31], "parent": 6, "expect": [6, 20, 31], "execut": [6, 7, 9, 14, 18, 31], "rais": [6, 30, 31], "tmpmp": 6, "tmpsol": 6, "create_tmp_fil": [6, 31], "mp": [6, 9, 10, 14, 18, 30, 31], "sol": [6, 9], "sens": [6, 11, 12, 22, 28, 30], "swap": 6, "handl": [6, 10], "invers": 6, "checkduplicatevar": 6, "checklengthvar": 6, "writemp": [6, 10, 12, 30], "mpssens": [6, 30], "report": [6, 10, 18, 20, 26], "duplic": [6, 10], "except": [6, 17, 21, 28, 30, 31], "cmd": [6, 14, 20], "solfil": 6, "ismip": 6, "relax": [6, 20], "pipe": 6, "devnul": 6, "return_cod": 6, "stdout": 6, "stderr": 6, "undo": 6, "finish": 6, "error": [6, 14, 15], "lpstatusnotsolv": [6, 28], "status_sol": 6, "lpsolutionnosolutionfound": [6, 28], "readsol": [6, 31], "delete_tmp_fil": [6, 31], "assignstatu": 6, "lpstatusinfeas": [6, 28], "assignvarsv": 6, "executableextens": [6, 31], "mps_mipcl": 6, "modifi": [6, 7, 13, 17, 30], "_all_solv": 6, "coupl": 6, "test_pulp": [6, 7], "mipcl_cmdtest": 6, "basesolvertest": 6, "pulptest": [6, 18, 20], "solveinst": 6, "best": [6, 22, 26], "practic": 6, "account": [6, 7, 10, 12], "buildsolvermodel": [6, 9, 31], "callsolv": [6, 9, 31], "solutionstatu": 6, "findsolutionvalu": [6, 9, 31], "solvermodel": [6, 9, 31], "pointer": [6, 10, 31], "gurobipi": 6, "gurobi": [6, 13, 18, 20, 22, 26, 31], "permit": [6, 9, 12, 13, 27], "consist": 6, "minimalist": 7, "guid": [7, 9, 15, 17, 18], "setup": [7, 9, 20], "pr": [7, 10], "quick": 7, "repo": 7, "lint": 7, "doc": [7, 18, 31], "accur": 7, "submit": [7, 10], "top": [7, 17, 31], "git": [7, 18], "plain": 7, "feel": 7, "free": [7, 11, 20, 30], "client": [7, 22], "download": [7, 10, 17, 18, 20], "replac": [7, 11, 30], "pchtsp": [7, 15, 26, 27], "usernam": 7, "That": 7, "wil": 7, "insid": [7, 9, 10, 17, 18, 30], "virtual": [7, 18], "environ": [7, 14, 18], "linux": [7, 9, 18, 31], "mac": [7, 9], "window": [7, 9, 18], "cd": [7, 9, 18, 20], "python3": [7, 9], "venv": 7, "bin": [7, 9], "activ": [7, 14], "pip": [7, 18], "dev": [7, 18, 31], "develop": [7, 15], "link": [7, 15, 17], "version": [7, 9, 10, 13, 18, 20, 26, 31], "run_test": 7, "detect": 7, "ones": [7, 27], "issu": [7, 12, 14, 18], "repositori": 7, "style": 7, "quickest": 7, "And": [7, 10, 12, 17, 31], "easiest": [7, 18, 20], "id": 7, "learn": [7, 15, 17], "sphinx": [7, 18], "restructuredtext": 7, "html": [7, 18, 27, 31], "home": [7, 15, 18, 19, 31], "browser": [7, 18], "rebuild": 7, "re": [7, 9, 10, 12, 20], "commit": 7, "push": [7, 20], "some_modified_fil": 7, "messag": [7, 10, 13], "fork": 8, "clone": 8, "project": [8, 10, 22], "black": 8, "linter": 8, "formatt": 8, "document": [8, 9, 10, 15, 19], "pull": [8, 18], "inherit": 8, "actualsolv": [8, 30, 31], "defaultpath": [8, 31], "suit": [8, 31], "offici": [8, 14], "api": [8, 14, 15, 29], "typic": [9, 22], "pc": [9, 10], "concept": [9, 15, 19], "question": [9, 10], "helper": [9, 27, 30], "queri": 9, "pl": 9, "solver_list": 9, "listsolv": [9, 31], "glpk_cmd": [9, 20, 31], "pyglpk": [9, 20, 31], "cplex_cmd": [9, 13, 20, 31], "cplex_dll": [9, 20], "gurobi_cmd": [9, 13, 20, 31], "mosek": [9, 18, 31], "xpress": [9, 13, 18, 20, 31], "pulp_cbc_cmd": [9, 10, 13, 20, 31], "coin_cmd": [9, 20, 31], "coinmp_dll": [9, 20, 31], "choco_cmd": [9, 31], "scip_cmd": [9, 31], "onlyavail": [9, 31], "current": [9, 17, 20, 21, 31], "constructor": 9, "getsolv": [9, 31], "sake": 9, "session": [9, 10], "applic": 9, "But": [9, 12], "knew": 9, "hard": [9, 22, 30], "drive": [9, 20], "match": [9, 15, 24], "trace": 9, "fairli": 9, "cross": 9, "platform": [9, 31], "among": 9, "interfac": [9, 12, 15, 29], "summar": 9, "group": [9, 14, 17], "librari": [9, 20, 31], "most": [9, 14, 15, 21, 26], "former": 9, "latter": 9, "via": [9, 10, 13, 18, 21, 22, 31], "happen": 9, "idea": 9, "both": [9, 12, 17], "mine": 9, "ibm": 9, "ilog": 9, "cplex_studio128": 9, "x64_win64": 9, "ex": [9, 14, 18], "imagin": [9, 12], "path_to_cplex": 9, "_var": 9, "_var2": 9, "someth": [9, 10, 28], "absolut": [9, 31], "cumbersom": 9, "random": [9, 31], "correctli": [9, 10, 13, 20], "forget": 9, "until": [9, 17], "magic": 9, "enough": [9, 12], "dynam": [9, 31], "deploi": 9, "_cmd": 9, "whatev": 9, "reason": [9, 12, 21], "safe": 9, "sorri": 9, "procedur": 9, "explicit": [9, 17, 22], "my": 9, "adapt": [9, 13], "bashrc": 9, "ve": [9, 13, 30], "gui": [9, 20], "profil": 9, "bash": 9, "cplex_hom": 9, "opt": 9, "cpo_hom": 9, "cpoptim": 9, "x86": 9, "64_linux": 9, "ld_library_path": 9, "pythonpath": 9, "gurobi_hom": 9, "gurobi801": 9, "linux64": 9, "lib": 9, "plenti": 9, "By": [9, 20, 22], "keep": 9, "intermediari": 9, "mst": 9, "temp": 9, "tmp": [9, 31], "tmpdir": [9, 31], "With": [9, 17], "manual": 9, "put_some_alternative_path_her": 9, "xpress_pi": [9, 13, 31], "offer": [9, 12], "seri": 9, "faster": 9, "involv": [9, 10, 22], "disk": 9, "lot": [9, 12, 21], "extrem": 9, "rai": 9, "dual": [9, 20, 21], "work": [9, 10, 12, 13, 17, 20, 22, 31], "automat": [9, 12], "recomend": 9, "python_path": 9, "admin": 9, "sudo": [9, 18, 20], "load": [9, 13, 20, 23, 31], "mip_start": [9, 31], "some_mst_fil": 9, "backup": 9, "json": [9, 14, 30, 31], "solver_dict": 9, "todict": [9, 30, 31], "quit": 9, "warmstart": [9, 13, 30, 31], "tojson": [9, 30, 31], "some_file_nam": 9, "getsolverfromdict": [9, 31], "Or": [9, 12], "getsolverfromjson": [9, 31], "ujson": [9, 12], "fast": [9, 12, 17], "advic": 10, "year": 10, "answer": 10, "discuss": [10, 18], "coin": [10, 18, 22, 31], "stack": 10, "overflow": 10, "tag": 10, "stackoverflow": 10, "Of": 10, "site": [10, 20, 23, 25, 26, 27], "suffici": 10, "understand": [10, 17, 22], "old": 10, "highli": [10, 17], "recommend": [10, 15, 18], "common": 10, "nonetheless": 10, "reproduc": 10, "video": 10, "aim": [10, 22], "languag": [10, 19, 20], "share": [10, 31], "export": [10, 14, 15, 18, 30, 31], "pypi": [10, 18], "12": [10, 17, 31], "complet": [10, 12, 13], "path_to_cbc": 10, "precis": 10, "high": [10, 18, 31], "never": [10, 22, 25], "100000000000": 10, "special": [10, 25], "1200": 10, "09123642123": 10, "decim": 10, "round": [10, 17, 30, 31], "coeffici": [10, 12, 22, 30], "memori": [10, 31], "python32": 10, "python64": 10, "32": [10, 20], "bit": [10, 20], "even": [10, 31], "64": [10, 20, 31], "mpsfile": 10, "recent": 10, "slack": [10, 20, 31], "post": 10, "built": [10, 18], "log": [10, 15, 24, 31], "regard": 10, "logpath": [10, 31], "support": [10, 14, 17, 23, 25, 26, 30, 31], "bring": 10, "appar": 10, "access": [10, 14, 17, 18, 20], "imposs": 10, "permiss": 10, "launch": 10, "410": 10, "384": 10, "elastic": [11, 30], "denot": [11, 17], "interv": 11, "instanti": [11, 31], "subclass": 11, "lpconstraint": [11, 18, 25, 28, 30], "target": [11, 30], "makeelasticsubproblem": [11, 30], "fixedelasticsubproblem": [11, 30], "rh": [11, 30], "elasticproblem": 11, "penalty_valu": 11, "proportionfreebound": [11, 30], "freebound_valu": 11, "proportionfreeboundlist": [11, 30], "freebound_list_valu": 11, "real": [11, 17, 21], "symmetr": 11, "proport": [11, 30], "asymmetr": 11, "point": [11, 21, 22, 31], "magnitud": 11, "assess": 11, "examin": [11, 22], "constraint_1": 11, "ex_1": 11, "elasticproblem_1": 11, "01": 11, "constraint_2": 11, "ex_2": 11, "elasticproblem_2": 11, "02": 11, "05": [11, 30], "side": [11, 30], "too": [12, 22], "industri": [12, 22], "flexibl": 12, "fit": [12, 30], "lose": [12, 27], "restor": 12, "identifi": [12, 17, 22, 30], "shadow": [12, 30], "test_export_dict_mip": 12, "y": [12, 18, 25, 30], "obj": [12, 28, 30], "c1": 12, "c2": 12, "c3": 12, "to_dict": [12, 30, 31], "pi": 12, "sol_statu": [12, 31], "sos1": 12, "sos2": 12, "dj": [12, 30], "var1": 12, "prob1": 12, "from_dict": [12, 30], "TO": 12, "size": [12, 21], "frommp": 12, "wedding_seating_model": 12, "to_json": [12, 31], "wedding_var": 12, "wedding_model": 12, "from_json": 12, "inspect": 12, "table_": 12, "_": 12, "longer": [12, 17, 20], "unfortun": 12, "flat": [12, 27], "concaten": 12, "mention": 12, "nevertheless": 12, "strict": 12, "clever": 12, "pars": 12, "reconstruct": 12, "modul": [12, 17, 20, 31], "transform": [12, 27], "np": 12, "custom": 12, "encod": 12, "npencod": 12, "jsonencod": 12, "isinst": 12, "int": [12, 17, 30, 31], "elif": [12, 17], "float": [12, 17, 30, 31], "ndarrai": 12, "tolist": 12, "super": 12, "cl": 12, "cast": 12, "valid": [13, 22], "parcial": 13, "gain": 13, "cbc_cmd": 13, "cplex_pi": [13, 20, 31], "afterward": 13, "yet": 13, "setinitialvalu": [13, 30], "reus": 13, "confirm": 13, "fixvalu": [13, 30], "_variabl": 13, "upperbound": 13, "click": [13, 20], "franco": [13, 15], "peschiera": [13, 15], "temporari": [14, 31], "warm": [14, 15, 31], "elast": [14, 15, 20, 30], "caveat": 14, "panda": [14, 26, 27], "numpi": [14, 15, 24], "debug": [14, 15, 31], "feedback": [14, 22], "ask": [14, 22], "cbc": [14, 18, 20, 26, 31], "jupyt": 14, "notebook": 14, "anaconda": 14, "conda": 14, "content": [15, 17, 26], "process": [15, 19, 21], "introduct": 15, "instruct": [15, 18, 20], "earlier": 15, "relev": [15, 17, 22, 30], "topic": 15, "basic": [15, 19], "ampli": [15, 19, 24], "readm": [15, 19], "plugin": 15, "orlog": [15, 24], "OR": [15, 18, 24], "parser": [15, 24, 31], "pytup": [15, 24], "smart": [15, 24], "ampl": [15, 24], "manipul": [15, 20, 24, 27], "pulp_lparrai": [15, 24], "heaven": [15, 24], "team": 15, "auckland": 15, "ac": 15, "nz": 15, "anita": 15, "kean": 15, "andrew": 15, "mason": 15, "michael": 15, "move": [16, 17], "willu47": [16, 23], "excel": [17, 22], "internet": 17, "freeli": [17, 20], "book": 17, "dive": 17, "Into": 17, "host": 17, "beginn": 17, "websit": 17, "beginnersguid": 17, "nonprogramm": 17, "fundament": 17, "principl": 17, "mainli": 17, "focu": 17, "prompt": [17, 20], "sequenc": 17, "indent": 17, "govern": 17, "colon": 17, "observ": [17, 22], "bottom": 17, "demonstr": 17, "ingredientslist": 17, "water": 17, "jelli": 17, "No": [17, 28, 31], "condit": [17, 21], "told": 17, "eventu": 17, "iter": [17, 30], "testlist": 17, "togeth": 17, "stop": [17, 31], "creation": 17, "pt": 17, "14": 17, "wherebi": 17, "consecut": 17, "unlik": 17, "curli": 17, "game": 17, "dimens": 17, "lamb": 17, "under": [17, 22, 25], "parenthes": 17, "concis": [17, 22], "odd": 17, "11": 17, "13": 17, "17": 17, "19": 17, "23": [17, 26], "modulu": 17, "remaind": 17, "divis": 17, "fifth": 17, "20": [17, 31], "scratch": 17, "challeng": 17, "prime": 17, "perfect": 17, "throughout": 17, "hash": 17, "symbol": [17, 28], "intend": 17, "usabl": [17, 31], "asterisk": 17, "inputparameter1": 17, "inputparameter2": 17, "bodi": 17, "matter": 17, "keyword": [17, 25, 30, 31], "string_append": 17, "tail": 17, "end_messag": 17, "eol": 17, "newbegin": 17, "stringov": 17, "newbeginendstringov": 17, "endmessag": 17, "word": 17, "pattern": 17, "instanc": [17, 30, 31], "lengthsdict": 17, "__str__": 17, "trim": 17, "act": 17, "spongerol": 17, "trimvalu": 17, "04": 17, "totalrolllength": 17, "lenopt": 17, "length": [17, 30], "patterna": 17, "glpk": [18, 20, 31], "clp": [18, 31], "choco": [18, 31], "mipcl": [18, 31], "scip": [18, 31], "fscip": [18, 31], "latest": [18, 20, 31], "osx": 18, "newer": 18, "io": [18, 27], "myproblem": 18, "sovler": 18, "a1x1": 18, "a2x2": 18, "anxn": 18, "lpconstraintvar": [18, 30], "construct": [18, 22], "wise": 18, "lpdot": 18, "xn": 18, "local": 18, "termin": 18, "root": [18, 20], "bug": 18, "patch": 18, "welcom": 18, "copyright": [18, 31], "roi": 18, "2003": 18, "2005": 18, "licens": [18, 20], "arrai": [19, 31], "mathemat": [20, 21], "numer": [20, 28, 30], "extern": 20, "far": 20, "pleas": [20, 31], "python34": 20, "zipfil": 20, "suitabl": [20, 30, 31], "desktop": 20, "menu": 20, "navig": 20, "foldernam": 20, "stand": 20, "back": [20, 22], "idl": 20, "pydev": 20, "callabl": [20, 31], "debain": 20, "apt": 20, "util": 20, "academ": 20, "interpret": [20, 31], "bundl": 20, "pulptestal": 20, "subtract": 20, "lpaffineexpress": [20, 25, 30], "freebound": 20, "unchang": 20, "unavail": 20, "yaposib": [20, 31], "simplest": 21, "a_1": 21, "a_2": 21, "a_3": 21, "a_n": 21, "x_n": 21, "a_i": [21, 30], "x_i": [21, 30], "revis": [21, 22], "simplex": [21, 22], "primal": 21, "interior": [21, 22], "won": 21, "almost": 21, "ident": 21, "minor": 21, "enorm": 21, "research": [21, 22], "branch": [21, 31], "grow": 21, "exponenti": 21, "broken": 22, "down": 22, "consult": 22, "person": 22, "who": 22, "invalid": 22, "alter": [22, 30], "incorpor": 22, "methodologi": 22, "translat": [22, 31], "term": [22, 30], "shortcut": 22, "popul": 22, "neat": 22, "tidi": 22, "simplif": 22, "rigour": 22, "abstract": 22, "spend": 22, "subsequ": 22, "significantli": 22, "quantifi": 22, "restrict": 22, "captur": 22, "interdepend": 22, "pai": 22, "attent": 22, "reflect": [22, 30], "rel": [22, 31], "understood": 22, "algorithm": [22, 31], "techniqu": 22, "heurist": [22, 31], "accuraci": 22, "futur": 22, "robust": 22, "variou": 22, "fail": 22, "sort": [22, 30], "tactic": 22, "strateg": 22, "invest": 22, "factori": 22, "importantli": 22, "why": 22, "crucial": 22, "stakehold": 22, "consequ": 22, "intellig": 22, "chanc": 22, "benefit": 22, "identif": 22, "opportun": 22, "syntax": 23, "hood": 25, "heavi": 25, "lift": [25, 31], "power": 25, "broadcast": 25, "reshap": 25, "trick": 25, "galor": 25, "ever": 25, "clip": 25, "boolean": 25, "wide": 25, "axi": 25, "qdbp": 25, "lparrai": 25, "unconstrain": 25, "supersudoku": 25, "puzzl": 25, "digit": 25, "coordin": 25, "distinct": 25, "ub": 25, "create_anon": 25, "board": 25, "pp": 25, "lpbinari": [25, 28], "onedigitpercel": 25, "maxoneperrow": 25, "maxonepercol": 25, "maxoneperbox": 25, "maxoneperxi": 25, "argmax": 25, "cut": [26, 31], "gap": [26, 31], "datafram": 26, "progress": 26, "ol": 26, "get_info_log_solv": 26, "gurobi700": 26, "app1": 26, "best_bound": 26, "41": 26, "best_solut": 26, "cut_info": 26, "167": 26, "97894": 26, "cliqu": 26, "gomori": [26, 31], "mir": 26, "22": 26, "first_relax": 26, "178": 26, "94318": 26, "first_solut": 26, "matrix": 26, "53467": 26, "nonzero": 26, "199175": 26, "26871": 26, "matrix_post": 26, "35616": 26, "149085": 26, "22010": 26, "526": 26, "presolv": [26, 31], "4861": 26, "17851": 26, "nodesleft": 26, "depth": 26, "cutsbestbound": 26, "itpnod": 26, "336": 26, "171": 26, "91701": 26, "319": 26, "170": 26, "97660": 26, "317": 26, "26": 26, "roottim": 26, "sol_cod": 26, "status_cod": 26, "46": 26, "superdict": 27, "tuplist": 27, "pyton": 27, "loss": 27, "chain": 27, "\u00e0": 27, "la": 27, "vice": 27, "versa": 27, "nest": 27, "ton": 27, "shorten": 27, "readabl": 27, "hopefulli": 28, "pulperror": [28, 31], "arg": [28, 30, 31], "with_traceback": 28, "tb": 28, "__traceback__": 28, "isiter": 28, "lpstatusoptim": 28, "lpstatusunbound": 28, "lpstatusundefin": 28, "lpsolut": 28, "lpsolutionoptim": 28, "lpsolutionstatusinfeas": 28, "lpsolutionstatusunbound": 28, "lpsolutionintegerfeas": 28, "lpsens": 28, "lpconstrainteq": [28, 30], "lpconstraintl": [28, 30], "lpconstraintg": [28, 30], "lpconstraintsens": 28, "lpfractionconstraint": 30, "fractionelasticsubproblem": 30, "nonam": 30, "three": 30, "kwarg": [30, 31], "roundsolut": 30, "epsint": 30, "1e": [30, 31], "ep": 30, "07": 30, "setobject": 30, "columnwis": 30, "filenam": [30, 31], "writeso": 30, "max_length": 30, "renam": 30, "with_objsens": 30, "bool": [30, 31], "classmethod": [30, 31], "fromjson": 30, "lpelement": 30, "categori": 30, "addvariabletoconstraint": 30, "indexstart": 30, "prefix": [30, 31], "part": 30, "itself": 30, "deprec": [30, 31], "fromdict": 30, "isfix": 30, "valueerror": 30, "infti": 30, "ordereddict": 30, "initialis": [30, 31], "undetermin": 30, "equival": 30, "x_name": 30, "x_0": 30, "textsf": 30, "ascplexlpaffineexpress": 30, "affin": 30, "ascplexvariablesonli": 30, "reset": 30, "sorted_kei": 30, "ascplexlpconstraint": 30, "changerh": 30, "_dict": 30, "subproblem": 30, "violat": 30, "alternam": 30, "anonym": 30, "deelastic": 30, "de": 30, "finddifferencefromrh": 30, "lh": 30, "findlhsvalu": 30, "isviol": 30, "reelastic": 30, "orgset": 30, "maxcardin": 30, "allpermut": 30, "static": 31, "alia": 31, "coin_mp": 31, "dll": 31, "forc": 31, "exit": 31, "epgap": 31, "toler": 31, "gaprel": 31, "gapab": 31, "coinmp_dll_load_dl": 31, "fracgap": 31, "maxsecond": 31, "strong": 31, "thread": 31, "timemod": 31, "elaps": 31, "knapsack": 31, "probe": 31, "count": 31, "wall": 31, "cpu": 31, "getopt": 31, "get_statu": 31, "readsol_lp": 31, "reducedcost": 31, "shadowpric": 31, "readsol_mp": 31, "variablesnam": 31, "constraintsnam": 31, "objectivenam": 31, "solve_cbc": 31, "use_mp": 31, "writesol": 31, "copt": 31, "solvervar": 31, "solverconstraint": 31, "callback": 31, "copt_cmd": 31, "logfil": 31, "param": 31, "borrow": 31, "writemst": 31, "lpvar": 31, "copt_dll": 31, "err": 31, "typeerror": 31, "byte": 31, "pathlik": 31, "nonetyp": 31, "copt_dll_loadlib": 31, "maxmemori": 31, "maxnod": 31, "reach": 31, "bind": 31, "wrap": 31, "against": 31, "modulenotfounderror": 31, "fscip_cmd": 31, "multi": 31, "fiberscip": 31, "fscip_status": 31, "no_solution_status": 31, "parse_object": 31, "parse_statu": 31, "parse_vari": 31, "env": 31, "highs_cmd": 31, "juliabinarywrapp": 31, "highs_jll": 31, "jl": 31, "releas": 31, "compil": 31, "solution_styl": 31, "actualresolv": 31, "getcplexstylearrai": 31, "sensedict": 31, "lpvarcategori": 31, "lpobjsens": 31, "infbound": 31, "cdll": 31, "settmpdir": 31, "reasonn": 31, "silent_remov": 31, "precompil": 31, "pulp_cbc_path": 31, "runner": 31, "solverdir": 31, "christoph": 31, "mari": 31, "duquesn": 31, "2012": 31, "configpars": 31, "scip_status": 31, "restart": 31, "stall": 31, "interrupt": 31, "scip_pi": 31, "targetgap": 31, "heurfreq": 31, "heurstra": 31, "covercut": 31, "frequenc": 31, "tree": 31, "search": 31, "strategi": 31, "inequ": 31, "nodeselect": 31, "heurdepth": 31, "www": 31, "fico": 31, "chapter7": 31, "quote_path": 31, "quot": 31, "doubl": 31, "escap": 31, "charact": 31, "tcl": 31, "shell": 31, "attrfil": 31, "writeslxsol": 31, "slx": 31, "solutionn": 31, "xpress_cmd": 31, "prepar": 31, "tweak": 31, "low": 31, "getattribut": 31, "osi": 31, "byref": 31, "offset": 31, "lookalik": 31, "clock": 31, "monoton": 31, "backward": 31, "configsolv": 31, "design": 31, "coptstr": 31, "ctypesarrayfil": 31, "mylist": 31, "ctype": 31, "c_doubl": 31, "get_solv": 31, "get_solver_from_dict": 31, "get_solver_from_json": 31, "operating_system": 31, "arch": 31, "list_solv": 31, "mktemp": 31, "suffix": 31, "dir": 31, "mkstemp": 31, "accept": 31, "unsaf": 31, "AND": 31, "NOT": 31, "BE": 31, "around": 31, "beaten": 31, "punch": 31, "setconfiginform": 31, "moment": 31, "to_str": 31, "_obj": 31, "uuid4": 31, "uuid": 31}, "objects": {"": [[30, 0, 0, "-", "pulp"]], "pulp": [[30, 1, 1, "", "FixedElasticSubProblem"], [30, 1, 1, "", "LpAffineExpression"], [30, 1, 1, "", "LpConstraint"], [30, 1, 1, "", "LpElement"], [30, 1, 1, "", "LpProblem"], [30, 1, 1, "", "LpVariable"], [30, 4, 1, "", "allcombinations"], [30, 4, 1, "", "allpermutations"], [31, 0, 0, "-", "apis"], [30, 4, 1, "", "combination"], [28, 0, 0, "-", "constants"], [30, 4, 1, "", "lpSum"], [30, 4, 1, "", "permutation"], [30, 4, 1, "", "value"]], "pulp.FixedElasticSubProblem": [[30, 2, 1, "", "alterName"], [30, 2, 1, "", "deElasticize"], [30, 2, 1, "", "findDifferenceFromRHS"], [30, 2, 1, "", "findLHSValue"], [30, 2, 1, "", "isViolated"], [30, 2, 1, "", "reElasticize"]], "pulp.LpAffineExpression": [[30, 2, 1, "", "asCplexLpAffineExpression"], [30, 2, 1, "", "asCplexVariablesOnly"], [30, 2, 1, "", "copy"], [30, 2, 1, "", "sorted_keys"], [30, 2, 1, "", "toDict"], [30, 2, 1, "", "to_dict"]], "pulp.LpConstraint": [[30, 2, 1, "", "asCplexLpConstraint"], [30, 2, 1, "", "changeRHS"], [30, 2, 1, "", "copy"], [30, 2, 1, "", "fromDict"], [30, 2, 1, "", "from_dict"], [30, 2, 1, "", "makeElasticSubProblem"], [30, 2, 1, "", "toDict"]], "pulp.LpProblem": [[30, 3, 1, "", "constraints"], [30, 2, 1, "", "fromJson"], [30, 3, 1, "", "objective"], [30, 2, 1, "", "roundSolution"], [30, 2, 1, "", "setObjective"], [30, 2, 1, "", "solve"], [30, 3, 1, "", "status"], [30, 2, 1, "", "toJson"], [30, 2, 1, "", "variables"], [30, 2, 1, "", "writeLP"], [30, 2, 1, "", "writeMPS"]], "pulp.LpVariable": [[30, 2, 1, "", "addVariableToConstraints"], [30, 2, 1, "", "dicts"], [30, 2, 1, "", "fixValue"], [30, 2, 1, "", "fromDict"], [30, 2, 1, "", "from_dict"], [30, 2, 1, "", "isFixed"], [30, 2, 1, "", "setInitialValue"], [30, 2, 1, "", "toDict"], [30, 2, 1, "", "to_dict"]], "pulp.apis": [[31, 1, 1, "", "CHOCO_CMD"], [31, 3, 1, "", "COIN"], [31, 1, 1, "", "COINMP_DLL"], [31, 4, 1, "", "COINMP_DLL_load_dll"], [31, 1, 1, "", "COIN_CMD"], [31, 1, 1, "", "COPT"], [31, 1, 1, "", "COPT_CMD"], [31, 1, 1, "", "COPT_DLL"], [31, 4, 1, "", "COPT_DLL_loadlib"], [31, 3, 1, "", "CPLEX"], [31, 1, 1, "", "CPLEX_CMD"], [31, 1, 1, "", "CPLEX_PY"], [31, 3, 1, "", "FSCIP"], [31, 1, 1, "", "FSCIP_CMD"], [31, 3, 1, "", "GLPK"], [31, 1, 1, "", "GLPK_CMD"], [31, 1, 1, "", "GUROBI"], [31, 1, 1, "", "GUROBI_CMD"], [31, 1, 1, "", "HiGHS"], [31, 1, 1, "", "HiGHS_CMD"], [31, 1, 1, "", "LpSolver"], [31, 1, 1, "", "LpSolver_CMD"], [31, 1, 1, "", "MIPCL_CMD"], [31, 1, 1, "", "MOSEK"], [31, 1, 1, "", "PULP_CBC_CMD"], [31, 1, 1, "", "PYGLPK"], [31, 3, 1, "", "Parser"], [31, 5, 1, "", "PulpSolverError"], [31, 3, 1, "", "SCIP"], [31, 1, 1, "", "SCIP_CMD"], [31, 1, 1, "", "SCIP_PY"], [31, 1, 1, "", "XPRESS"], [31, 3, 1, "", "XPRESS_CMD"], [31, 1, 1, "", "XPRESS_PY"], [31, 1, 1, "", "YAPOSIB"], [31, 4, 1, "", "byref"], [31, 4, 1, "", "clock"], [31, 4, 1, "", "configSolvers"], [31, 4, 1, "", "coptstr"], [31, 4, 1, "", "ctypesArrayFill"], [31, 4, 1, "", "getSolver"], [31, 4, 1, "", "getSolverFromDict"], [31, 4, 1, "", "getSolverFromJson"], [31, 4, 1, "", "get_solver"], [31, 4, 1, "", "get_solver_from_dict"], [31, 4, 1, "", "get_solver_from_json"], [31, 4, 1, "", "initialize"], [31, 4, 1, "", "listSolvers"], [31, 4, 1, "", "list_solvers"], [31, 4, 1, "", "mktemp"], [31, 4, 1, "", "setConfigInformation"], [31, 4, 1, "", "to_string"], [31, 4, 1, "", "uuid4"]], "pulp.apis.CHOCO_CMD": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"]], "pulp.apis.COINMP_DLL": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "name"]], "pulp.apis.COIN_CMD": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "copy"], [31, 2, 1, "", "defaultPath"], [31, 2, 1, "", "getOptions"], [31, 2, 1, "", "get_status"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol_LP"], [31, 2, 1, "", "readsol_MPS"], [31, 2, 1, "", "solve_CBC"], [31, 2, 1, "", "writesol"]], "pulp.apis.COPT": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "name"]], "pulp.apis.COPT_CMD": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"], [31, 2, 1, "", "writemst"]], "pulp.apis.COPT_DLL": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "err"], [31, 3, 1, "", "name"]], "pulp.apis.CPLEX_CMD": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 2, 1, "", "getOptions"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"], [31, 2, 1, "", "writesol"]], "pulp.apis.CPLEX_PY": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "err"], [31, 3, 1, "", "name"]], "pulp.apis.FSCIP_CMD": [[31, 3, 1, "", "FSCIP_STATUSES"], [31, 3, 1, "", "NO_SOLUTION_STATUSES"], [31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "parse_objective"], [31, 2, 1, "", "parse_status"], [31, 2, 1, "", "parse_variable"], [31, 2, 1, "", "readsol"]], "pulp.apis.GLPK_CMD": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"]], "pulp.apis.GUROBI": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "env"], [31, 3, 1, "", "name"]], "pulp.apis.GUROBI_CMD": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 2, 1, "", "getOptions"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"], [31, 2, 1, "", "writesol"]], "pulp.apis.HiGHS": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "name"]], "pulp.apis.HiGHS_CMD": [[31, 3, 1, "", "SOLUTION_STYLE"], [31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"]], "pulp.apis.LpSolver": [[31, 2, 1, "", "actualResolve"], [31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "copy"], [31, 2, 1, "", "getCplexStyleArrays"], [31, 3, 1, "", "name"], [31, 2, 1, "", "solve"], [31, 2, 1, "", "toDict"], [31, 2, 1, "", "toJson"], [31, 2, 1, "", "to_dict"], [31, 2, 1, "", "to_json"]], "pulp.apis.LpSolver_CMD": [[31, 2, 1, "", "copy"], [31, 2, 1, "", "create_tmp_files"], [31, 2, 1, "", "defaultPath"], [31, 2, 1, "", "delete_tmp_files"], [31, 2, 1, "", "executable"], [31, 2, 1, "", "executableExtension"], [31, 3, 1, "", "name"], [31, 2, 1, "", "setTmpDir"], [31, 2, 1, "", "silent_remove"]], "pulp.apis.MIPCL_CMD": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"]], "pulp.apis.MOSEK": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "name"]], "pulp.apis.PULP_CBC_CMD": [[31, 3, 1, "", "name"], [31, 3, 1, "", "pulp_cbc_path"]], "pulp.apis.PYGLPK": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "name"]], "pulp.apis.SCIP_CMD": [[31, 3, 1, "", "NO_SOLUTION_STATUSES"], [31, 3, 1, "", "SCIP_STATUSES"], [31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"]], "pulp.apis.SCIP_PY": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "name"]], "pulp.apis.XPRESS": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "quote_path"], [31, 2, 1, "", "readsol"], [31, 2, 1, "", "writeslxsol"]], "pulp.apis.XPRESS_PY": [[31, 2, 1, "", "actualResolve"], [31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "buildSolverModel"], [31, 2, 1, "", "callSolver"], [31, 2, 1, "", "findSolutionValues"], [31, 2, 1, "", "getAttribute"], [31, 3, 1, "", "name"]], "pulp.apis.YAPOSIB": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "name"]], "pulp.constants": [[28, 6, 1, "", "LpConstraintEQ"], [28, 6, 1, "", "LpConstraintGE"], [28, 6, 1, "", "LpConstraintLE"], [28, 6, 1, "", "LpConstraintSenses"], [28, 6, 1, "", "LpContinuous"], [28, 6, 1, "", "LpMaximize"], [28, 6, 1, "", "LpMinimize"], [28, 6, 1, "", "LpSenses"], [28, 6, 1, "", "LpSolution"], [28, 6, 1, "", "LpStatus"], [28, 6, 1, "", "LpStatusInfeasible"], [28, 6, 1, "", "LpStatusNotSolved"], [28, 6, 1, "", "LpStatusOptimal"], [28, 6, 1, "", "LpStatusUnbounded"], [28, 6, 1, "", "LpStatusUndefined"], [28, 5, 1, "", "PulpError"], [28, 4, 1, "", "isiterable"]], "pulp.constants.PulpError": [[28, 3, 1, "", "args"], [28, 2, 1, "", "with_traceback"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function", "5": "py:exception", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"], "5": ["py", "exception", "Python exception"], "6": ["py", "data", "Python data"]}, "titleterms": {"A": [0, 1, 2, 3, 4], "blend": 0, "problem": [0, 1, 2, 3, 4, 10, 13, 22], "descript": [0, 2, 3, 22], "simplifi": 0, "formul": [0, 2, 3, 22], "identifi": [0, 2, 3], "decis": [0, 2, 3], "variabl": [0, 2, 3, 9, 12, 13, 30], "object": [0, 2, 3], "function": [0, 2, 3, 9, 17], "The": [0, 17, 22, 30], "constraint": [0, 2, 3, 11, 30], "solut": [0, 2, 3, 22], "full": 0, "set": 1, "partit": 1, "sudoku": 2, "an": [2, 9], "lp": 2, "extra": [2, 6], "expert": 2, "transport": 3, "pulp": [3, 6, 7, 9, 12, 15, 18, 20, 25, 28, 29, 30, 31], "model": [3, 12, 22], "extens": 3, "valid": 3, "storag": 3, "bui": 3, "In": 3, "present": [3, 22], "analysi": [3, 22], "ongo": 3, "monitor": 3, "two": 4, "stage": 4, "product": 4, "plan": 4, "case": 5, "studi": 5, "how": [6, 7, 9, 10, 12, 13], "add": 6, "new": 6, "solver": [6, 9, 13, 31], "exampl": [6, 12, 13, 18], "inherit": 6, "base": 6, "class": [6, 17, 30], "avail": 6, "method": 6, "actualsolv": 6, "defaultpath": 6, "make": [6, 7], "includ": 6, "test": [6, 7, 20], "suit": 6, "ad": 6, "offici": [6, 9], "api": [6, 9, 13, 31], "contribut": 7, "fork": 7, "clone": 7, "project": 7, "instal": [7, 9, 18, 20], "from": [7, 20], "sourc": [7, 20], "run": 7, "creat": 7, "appli": 7, "black": 7, "linter": 7, "formatt": 7, "build": [7, 18], "document": [7, 18, 29], "pull": 7, "request": 7, "develop": 8, "guid": [8, 14], "configur": 9, "check": 9, "which": 9, "ha": 9, "access": 9, "what": 9, "i": 9, "environ": 9, "type": [9, 12, 17], "integr": 9, "path": 9, "addit": 9, "per": 9, "cplex": 9, "gurobi": 9, "where": 9, "cmd": 9, "write": 9, "temporari": 9, "file": 9, "us": 9, "cplex_pi": 9, "specif": 9, "import": [9, 12, 17], "export": [9, 12], "debug": 10, "most": 10, "error": 10, "dure": 10, "solv": [10, 22], "give": 10, "feedback": 10, "ask": 10, "help": 10, "while": [10, 17], "try": 10, "execut": 10, "cbc": 10, "ex": 10, "infeas": 10, "jupyt": 10, "notebook": 10, "anaconda": 10, "conda": 10, "issu": 10, "elast": 11, "consider": 12, "1": 12, "json": 12, "mp": 12, "2": 12, "group": 12, "caveat": 12, "panda": 12, "numpi": [12, 25], "data": [12, 23], "warm": 13, "start": 13, "support": 13, "fill": 13, "valu": 13, "activ": 13, "mip": 13, "fix": 13, "whole": 13, "user": 14, "optim": [15, 22], "author": 15, "ampli": [16, 23], "basic": 17, "python": 17, "code": 17, "loop": 17, "statement": 17, "arrai": 17, "list": [17, 27], "tupl": [17, 27], "dictionari": [17, 27], "syntax": 17, "note": 17, "comprehens": 17, "other": 17, "languag": 17, "featur": 17, "comment": 17, "main": 19, "topic": 19, "home": 20, "pip": 20, "pypi": 20, "window": 20, "linux": 20, "your": 20, "optimis": [21, 22], "concept": 21, "linear": 21, "program": [21, 22], "integ": 21, "process": 22, "get": 22, "mathemat": 22, "perform": 22, "some": 22, "post": 22, "ampl": 23, "manipul": 23, "plugin": 24, "pulp_lparrai": 25, "x": 25, "match": 25, "made": 25, "heaven": 25, "orlog": 26, "OR": 26, "log": 26, "parser": 26, "pytup": 27, "smart": 27, "constant": 28, "intern": 29, "todo": 30, "lpproblem": 30, "express": 30, "combin": 30, "permut": 30, "interfac": 31}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"A Blending Problem": [[0, "a-blending-problem"]], "Problem Description": [[0, "problem-description"], [2, "problem-description"], [3, "problem-description"]], "Simplified Formulation": [[0, "simplified-formulation"]], "Identify the Decision Variables": [[0, "identify-the-decision-variables"], [2, "identify-the-decision-variables"], [3, "identify-the-decision-variables"]], "Formulate the Objective Function": [[0, "formulate-the-objective-function"], [2, "formulate-the-objective-function"], [3, "formulate-the-objective-function"]], "The Constraints": [[0, "the-constraints"]], "Solution to Simplified Problem": [[0, "solution-to-simplified-problem"]], "Full Formulation": [[0, "full-formulation"]], "Solution to Full Problem": [[0, "solution-to-full-problem"]], "A Set Partitioning Problem": [[1, "a-set-partitioning-problem"]], "A Sudoku Problem formulated as an LP": [[2, "a-sudoku-problem-formulated-as-an-lp"]], "Formulation": [[2, "formulation"], [3, "formulation"]], "Formulate the Constraints": [[2, "formulate-the-constraints"], [3, "formulate-the-constraints"]], "Solution": [[2, "solution"]], "Extra for Experts": [[2, "extra-for-experts"]], "A Transportation Problem": [[3, "a-transportation-problem"]], "PuLP Model": [[3, "pulp-model"]], "Extensions": [[3, "extensions"]], "Validation": [[3, "validation"]], "Storage and \u201cBuying In\u201d": [[3, "storage-and-buying-in"]], "Presentation of Solution and Analysis": [[3, "presentation-of-solution-and-analysis"]], "Ongoing Monitoring": [[3, "ongoing-monitoring"]], "A Two Stage Production Planning Problem": [[4, "a-two-stage-production-planning-problem"]], "Case Studies": [[5, "case-studies"]], "How to add a new solver to PuLP": [[6, "how-to-add-a-new-solver-to-pulp"]], "Example": [[6, "example"]], "Inheriting base classes": [[6, "inheriting-base-classes"]], "available method": [[6, "available-method"]], "actualSolve method": [[6, "actualsolve-method"]], "defaultPath method": [[6, "defaultpath-method"]], "Making the solver available to PuLP": [[6, "making-the-solver-available-to-pulp"]], "Including the solver in tests suite": [[6, "including-the-solver-in-tests-suite"]], "Extra: adding a official solver API": [[6, "extra-adding-a-official-solver-api"]], "How to contribute to PuLP": [[7, "how-to-contribute-to-pulp"]], "Forking PuLP": [[7, "forking-pulp"]], "Cloning the project": [[7, "cloning-the-project"]], "Installing from source": [[7, "installing-from-source"]], "Running tests": [[7, "running-tests"]], "Creating a test": [[7, "creating-a-test"]], "Applying the black linter / formatter": [[7, "applying-the-black-linter-formatter"]], "Building the documentation": [[7, "building-the-documentation"], [18, "building-the-documentation"]], "Making a Pull Request": [[7, "making-a-pull-request"]], "Developer Guides": [[8, "developer-guides"]], "How to configure a solver in PuLP": [[9, "how-to-configure-a-solver-in-pulp"]], "Checking which solvers PuLP has access to": [[9, "checking-which-solvers-pulp-has-access-to"]], "What is an environment variable": [[9, "what-is-an-environment-variable"]], "Types of PuLP integrations (API) to solvers": [[9, "types-of-pulp-integrations-api-to-solvers"]], "Configuring the path to the solver": [[9, "configuring-the-path-to-the-solver"]], "Additional environment variables per solver": [[9, "additional-environment-variables-per-solver"]], "CPLEX": [[9, "cplex"]], "GUROBI": [[9, "gurobi"]], "Configuring where the CMD solvers write their temporary files": [[9, "configuring-where-the-cmd-solvers-write-their-temporary-files"]], "Using the official solver API": [[9, "using-the-official-solver-api"]], "Installing CPLEX_PY": [[9, "installing-cplex-py"]], "Installing GUROBI": [[9, "installing-gurobi"]], "Using solver-specific functionality": [[9, "using-solver-specific-functionality"]], "Importing and exporting a solver": [[9, "importing-and-exporting-a-solver"]], "How to debug most errors during solving": [[10, "how-to-debug-most-errors-during-solving"]], "Giving feedback and asking for help": [[10, "giving-feedback-and-asking-for-help"]], "Error while trying to execute cbc.exe": [[10, "error-while-trying-to-execute-cbc-exe"]], "Infeasible problems": [[10, "infeasible-problems"]], "Jupyter notebooks / anaconda / conda issues": [[10, "jupyter-notebooks-anaconda-conda-issues"]], "Elastic Constraints": [[11, "elastic-constraints"]], "How to import and export models in PuLP": [[12, "how-to-import-and-export-models-in-pulp"]], "Considerations": [[12, "considerations"]], "Example 1: json": [[12, "example-1-json"]], "Example 1: mps": [[12, "example-1-mps"]], "Example 2: json": [[12, "example-2-json"]], "Grouping variables": [[12, "grouping-variables"]], "Caveats with json and pandas / numpy data types": [[12, "caveats-with-json-and-pandas-numpy-data-types"]], "How to warm-start a solver": [[13, "how-to-warm-start-a-solver"]], "Supported solver APIs": [[13, "supported-solver-apis"]], "Example problem": [[13, "example-problem"]], "Filling a variable with a value": [[13, "filling-a-variable-with-a-value"]], "Activating MIP start": [[13, "activating-mip-start"]], "Fixing a variable": [[13, "fixing-a-variable"]], "Whole Example": [[13, "whole-example"]], "User Guides": [[14, "user-guides"]], "Optimization with PuLP": [[15, "optimization-with-pulp"]], "Authors": [[15, "authors"]], "Amply": [[16, "amply"]], "Basic Python Coding": [[17, "basic-python-coding"]], "Loops in Python": [[17, "loops-in-python"]], "for Loop": [[17, "for-loop"]], "while Loop": [[17, "while-loop"]], "The if statement": [[17, "the-if-statement"]], "Array types in python": [[17, "array-types-in-python"]], "Lists": [[17, "lists"]], "Tuples": [[17, "tuples"]], "Dictionaries": [[17, "dictionaries"]], "List/Tuple/Dictionary Syntax Note": [[17, "list-tuple-dictionary-syntax-note"]], "List Comprehensions": [[17, "list-comprehensions"]], "Other important language features": [[17, "other-important-language-features"]], "Commenting in Python": [[17, "commenting-in-python"]], "Import Statement": [[17, "import-statement"]], "Functions": [[17, "functions"]], "Classes": [[17, "classes"]], "pulp": [[18, "pulp"]], "Installation": [[18, "installation"], [20, "id1"]], "Examples": [[18, "examples"]], "Documentation": [[18, "documentation"]], "Main Topics": [[19, "main-topics"]], "Installing PuLP at Home": [[20, "installing-pulp-at-home"]], "Pip and pypi installation": [[20, "pip-and-pypi-installation"]], "Windows installation from source": [[20, "windows-installation-from-source"]], "Linux Installation": [[20, "linux-installation"]], "Testing your PuLP installation": [[20, "testing-your-pulp-installation"]], "Optimisation Concepts": [[21, "optimisation-concepts"]], "Linear Programing": [[21, "linear-programing"]], "Integer Programing": [[21, "integer-programing"]], "The Optimisation Process": [[22, "the-optimisation-process"]], "The Modeling Process": [[22, "the-modeling-process"]], "Getting the Problem Description": [[22, "getting-the-problem-description"]], "Formulating the mathematical program": [[22, "formulating-the-mathematical-program"]], "Solving the mathematical program": [[22, "solving-the-mathematical-program"]], "Performing some post-optimal analysis": [[22, "performing-some-post-optimal-analysis"]], "Presenting the solution and analysis": [[22, "presenting-the-solution-and-analysis"]], "amply: AMPL data manipulation": [[23, "amply-ampl-data-manipulation"]], "Plugins": [[24, "plugins"]], "PuLP_LPARRAY: PuLP x NumPy, a match made in heaven": [[25, "pulp-lparray-pulp-x-numpy-a-match-made-in-heaven"]], "orloge: OR logs parser": [[26, "orloge-or-logs-parser"]], "pytups: smart dictionaries and tuple lists": [[27, "pytups-smart-dictionaries-and-tuple-lists"]], "pulp.constants": [[28, "module-pulp.constants"]], "PuLP Internal Documentation": [[29, "pulp-internal-documentation"]], "pulp: Pulp classes": [[30, "module-pulp"]], "Todo": [[30, "id1"]], "The LpProblem Class": [[30, "the-lpproblem-class"]], "Variables and Expressions": [[30, "variables-and-expressions"]], "Constraints": [[30, "constraints"]], "Combinations and Permutations": [[30, "combinations-and-permutations"]], "pulp.apis Interface to Solvers": [[31, "module-pulp.apis"]]}, "indexentries": {"lpconstrainteq (in module pulp.constants)": [[28, "pulp.constants.LpConstraintEQ"]], "lpconstraintge (in module pulp.constants)": [[28, "pulp.constants.LpConstraintGE"]], "lpconstraintle (in module pulp.constants)": [[28, "pulp.constants.LpConstraintLE"]], "lpconstraintsenses (in module pulp.constants)": [[28, "pulp.constants.LpConstraintSenses"]], "lpcontinuous (in module pulp.constants)": [[28, "pulp.constants.LpContinuous"]], "lpmaximize (in module pulp.constants)": [[28, "pulp.constants.LpMaximize"]], "lpminimize (in module pulp.constants)": [[28, "pulp.constants.LpMinimize"]], "lpsenses (in module pulp.constants)": [[28, "pulp.constants.LpSenses"]], "lpsolution (in module pulp.constants)": [[28, "pulp.constants.LpSolution"]], "lpstatus (in module pulp.constants)": [[28, "pulp.constants.LpStatus"]], "lpstatusinfeasible (in module pulp.constants)": [[28, "pulp.constants.LpStatusInfeasible"]], "lpstatusnotsolved (in module pulp.constants)": [[28, "pulp.constants.LpStatusNotSolved"]], "lpstatusoptimal (in module pulp.constants)": [[28, "pulp.constants.LpStatusOptimal"]], "lpstatusunbounded (in module pulp.constants)": [[28, "pulp.constants.LpStatusUnbounded"]], "lpstatusundefined (in module pulp.constants)": [[28, "pulp.constants.LpStatusUndefined"]], "pulperror": [[28, "pulp.constants.PulpError"]], "args (pulp.constants.pulperror attribute)": [[28, "pulp.constants.PulpError.args"]], "isiterable() (in module pulp.constants)": [[28, "pulp.constants.isiterable"]], "module": [[28, "module-pulp.constants"], [30, "module-pulp"], [31, "module-pulp.apis"]], "pulp.constants": [[28, "module-pulp.constants"]], "with_traceback() (pulp.constants.pulperror method)": [[28, "pulp.constants.PulpError.with_traceback"]], "fixedelasticsubproblem (class in pulp)": [[30, "pulp.FixedElasticSubProblem"]], "lpaffineexpression (class in pulp)": [[30, "pulp.LpAffineExpression"]], "lpconstraint (class in pulp)": [[30, "pulp.LpConstraint"]], "lpelement (class in pulp)": [[30, "pulp.LpElement"]], "lpproblem (class in pulp)": [[30, "pulp.LpProblem"]], "lpvariable (class in pulp)": [[30, "pulp.LpVariable"]], "addvariabletoconstraints() (pulp.lpvariable method)": [[30, "pulp.LpVariable.addVariableToConstraints"]], "allcombinations() (in module pulp)": [[30, "pulp.allcombinations"]], "allpermutations() (in module pulp)": [[30, "pulp.allpermutations"]], "altername() (pulp.fixedelasticsubproblem method)": [[30, "pulp.FixedElasticSubProblem.alterName"]], "ascplexlpaffineexpression() (pulp.lpaffineexpression method)": [[30, "pulp.LpAffineExpression.asCplexLpAffineExpression"]], "ascplexlpconstraint() (pulp.lpconstraint method)": [[30, "pulp.LpConstraint.asCplexLpConstraint"]], "ascplexvariablesonly() (pulp.lpaffineexpression method)": [[30, "pulp.LpAffineExpression.asCplexVariablesOnly"]], "changerhs() (pulp.lpconstraint method)": [[30, "pulp.LpConstraint.changeRHS"]], "combination() (in module pulp)": [[30, "pulp.combination"]], "constraints (pulp.lpproblem attribute)": [[30, "pulp.LpProblem.constraints"]], "copy() (pulp.lpaffineexpression method)": [[30, "pulp.LpAffineExpression.copy"]], "copy() (pulp.lpconstraint method)": [[30, "pulp.LpConstraint.copy"]], "deelasticize() (pulp.fixedelasticsubproblem method)": [[30, "pulp.FixedElasticSubProblem.deElasticize"]], "dicts() (pulp.lpvariable class method)": [[30, "pulp.LpVariable.dicts"]], "finddifferencefromrhs() (pulp.fixedelasticsubproblem method)": [[30, "pulp.FixedElasticSubProblem.findDifferenceFromRHS"]], "findlhsvalue() (pulp.fixedelasticsubproblem method)": [[30, "pulp.FixedElasticSubProblem.findLHSValue"]], "fixvalue() (pulp.lpvariable method)": [[30, "pulp.LpVariable.fixValue"]], "fromdict() (pulp.lpconstraint class method)": [[30, "pulp.LpConstraint.fromDict"]], "fromdict() (pulp.lpvariable class method)": [[30, "pulp.LpVariable.fromDict"]], "fromjson() (pulp.lpproblem class method)": [[30, "pulp.LpProblem.fromJson"]], "from_dict() (pulp.lpconstraint class method)": [[30, "pulp.LpConstraint.from_dict"]], "from_dict() (pulp.lpvariable class method)": [[30, "pulp.LpVariable.from_dict"]], "isfixed() (pulp.lpvariable method)": [[30, "pulp.LpVariable.isFixed"]], "isviolated() (pulp.fixedelasticsubproblem method)": [[30, "pulp.FixedElasticSubProblem.isViolated"]], "lpsum() (in module pulp)": [[30, "pulp.lpSum"]], "makeelasticsubproblem() (pulp.lpconstraint method)": [[30, "pulp.LpConstraint.makeElasticSubProblem"]], "objective (pulp.lpproblem attribute)": [[30, "pulp.LpProblem.objective"]], "permutation() (in module pulp)": [[30, "pulp.permutation"]], "pulp": [[30, "module-pulp"]], "reelasticize() (pulp.fixedelasticsubproblem method)": [[30, "pulp.FixedElasticSubProblem.reElasticize"]], "roundsolution() (pulp.lpproblem method)": [[30, "pulp.LpProblem.roundSolution"]], "setinitialvalue() (pulp.lpvariable method)": [[30, "pulp.LpVariable.setInitialValue"]], "setobjective() (pulp.lpproblem method)": [[30, "pulp.LpProblem.setObjective"]], "solve() (pulp.lpproblem method)": [[30, "pulp.LpProblem.solve"]], "sorted_keys() (pulp.lpaffineexpression method)": [[30, "pulp.LpAffineExpression.sorted_keys"]], "status (pulp.lpproblem attribute)": [[30, "pulp.LpProblem.status"]], "todict() (pulp.lpaffineexpression method)": [[30, "pulp.LpAffineExpression.toDict"]], "todict() (pulp.lpconstraint method)": [[30, "pulp.LpConstraint.toDict"]], "todict() (pulp.lpvariable method)": [[30, "pulp.LpVariable.toDict"]], "tojson() (pulp.lpproblem method)": [[30, "pulp.LpProblem.toJson"]], "to_dict() (pulp.lpaffineexpression method)": [[30, "pulp.LpAffineExpression.to_dict"]], "to_dict() (pulp.lpvariable method)": [[30, "pulp.LpVariable.to_dict"]], "value() (in module pulp)": [[30, "pulp.value"]], "variables() (pulp.lpproblem method)": [[30, "pulp.LpProblem.variables"]], "writelp() (pulp.lpproblem method)": [[30, "pulp.LpProblem.writeLP"]], "writemps() (pulp.lpproblem method)": [[30, "pulp.LpProblem.writeMPS"]], "choco_cmd (class in pulp.apis)": [[31, "pulp.apis.CHOCO_CMD"]], "coin (in module pulp.apis)": [[31, "pulp.apis.COIN"]], "coinmp_dll (class in pulp.apis)": [[31, "pulp.apis.COINMP_DLL"]], "coinmp_dll_load_dll() (in module pulp.apis)": [[31, "pulp.apis.COINMP_DLL_load_dll"]], "coin_cmd (class in pulp.apis)": [[31, "pulp.apis.COIN_CMD"]], "copt (class in pulp.apis)": [[31, "pulp.apis.COPT"]], "copt_cmd (class in pulp.apis)": [[31, "pulp.apis.COPT_CMD"]], "copt_dll (class in pulp.apis)": [[31, "pulp.apis.COPT_DLL"]], "copt_dll_loadlib() (in module pulp.apis)": [[31, "pulp.apis.COPT_DLL_loadlib"]], "cplex (in module pulp.apis)": [[31, "pulp.apis.CPLEX"]], "cplex_cmd (class in pulp.apis)": [[31, "pulp.apis.CPLEX_CMD"]], "cplex_py (class in pulp.apis)": [[31, "pulp.apis.CPLEX_PY"]], "fscip (in module pulp.apis)": [[31, "pulp.apis.FSCIP"]], "fscip_cmd (class in pulp.apis)": [[31, "pulp.apis.FSCIP_CMD"]], "fscip_statuses (pulp.apis.fscip_cmd attribute)": [[31, "pulp.apis.FSCIP_CMD.FSCIP_STATUSES"]], "glpk (in module pulp.apis)": [[31, "pulp.apis.GLPK"]], "glpk_cmd (class in pulp.apis)": [[31, "pulp.apis.GLPK_CMD"]], "gurobi (class in pulp.apis)": [[31, "pulp.apis.GUROBI"]], "gurobi_cmd (class in pulp.apis)": [[31, "pulp.apis.GUROBI_CMD"]], "highs (class in pulp.apis)": [[31, "pulp.apis.HiGHS"]], "highs_cmd (class in pulp.apis)": [[31, "pulp.apis.HiGHS_CMD"]], "lpsolver (class in pulp.apis)": [[31, "pulp.apis.LpSolver"]], "lpsolver_cmd (class in pulp.apis)": [[31, "pulp.apis.LpSolver_CMD"]], "mipcl_cmd (class in pulp.apis)": [[31, "pulp.apis.MIPCL_CMD"]], "mosek (class in pulp.apis)": [[31, "pulp.apis.MOSEK"]], "no_solution_statuses (pulp.apis.fscip_cmd attribute)": [[31, "pulp.apis.FSCIP_CMD.NO_SOLUTION_STATUSES"]], "no_solution_statuses (pulp.apis.scip_cmd attribute)": [[31, "pulp.apis.SCIP_CMD.NO_SOLUTION_STATUSES"]], "pulp_cbc_cmd (class in pulp.apis)": [[31, "pulp.apis.PULP_CBC_CMD"]], "pyglpk (class in pulp.apis)": [[31, "pulp.apis.PYGLPK"]], "parser (in module pulp.apis)": [[31, "pulp.apis.Parser"]], "pulpsolvererror": [[31, "pulp.apis.PulpSolverError"]], "scip (in module pulp.apis)": [[31, "pulp.apis.SCIP"]], "scip_cmd (class in pulp.apis)": [[31, "pulp.apis.SCIP_CMD"]], "scip_py (class in pulp.apis)": [[31, "pulp.apis.SCIP_PY"]], "scip_statuses (pulp.apis.scip_cmd attribute)": [[31, "pulp.apis.SCIP_CMD.SCIP_STATUSES"]], "solution_style (pulp.apis.highs_cmd attribute)": [[31, "pulp.apis.HiGHS_CMD.SOLUTION_STYLE"]], "xpress (class in pulp.apis)": [[31, "pulp.apis.XPRESS"]], "xpress_cmd (in module pulp.apis)": [[31, "pulp.apis.XPRESS_CMD"]], "xpress_py (class in pulp.apis)": [[31, "pulp.apis.XPRESS_PY"]], "yaposib (class in pulp.apis)": [[31, "pulp.apis.YAPOSIB"]], "actualresolve() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.actualResolve"]], "actualresolve() (pulp.apis.xpress_py method)": [[31, "pulp.apis.XPRESS_PY.actualResolve"]], "actualsolve() (pulp.apis.choco_cmd method)": [[31, "pulp.apis.CHOCO_CMD.actualSolve"]], "actualsolve() (pulp.apis.coinmp_dll method)": [[31, "pulp.apis.COINMP_DLL.actualSolve"]], "actualsolve() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.actualSolve"]], "actualsolve() (pulp.apis.copt method)": [[31, "pulp.apis.COPT.actualSolve"]], "actualsolve() (pulp.apis.copt_cmd method)": [[31, "pulp.apis.COPT_CMD.actualSolve"]], "actualsolve() (pulp.apis.copt_dll method)": [[31, "pulp.apis.COPT_DLL.actualSolve"]], "actualsolve() (pulp.apis.cplex_cmd method)": [[31, "pulp.apis.CPLEX_CMD.actualSolve"]], "actualsolve() (pulp.apis.cplex_py method)": [[31, "pulp.apis.CPLEX_PY.actualSolve"]], "actualsolve() (pulp.apis.fscip_cmd method)": [[31, "pulp.apis.FSCIP_CMD.actualSolve"]], "actualsolve() (pulp.apis.glpk_cmd method)": [[31, "pulp.apis.GLPK_CMD.actualSolve"]], "actualsolve() (pulp.apis.gurobi method)": [[31, "pulp.apis.GUROBI.actualSolve"]], "actualsolve() (pulp.apis.gurobi_cmd method)": [[31, "pulp.apis.GUROBI_CMD.actualSolve"]], "actualsolve() (pulp.apis.highs method)": [[31, "pulp.apis.HiGHS.actualSolve"]], "actualsolve() (pulp.apis.highs_cmd method)": [[31, "pulp.apis.HiGHS_CMD.actualSolve"]], "actualsolve() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.actualSolve"]], "actualsolve() (pulp.apis.mipcl_cmd method)": [[31, "pulp.apis.MIPCL_CMD.actualSolve"]], "actualsolve() (pulp.apis.mosek method)": [[31, "pulp.apis.MOSEK.actualSolve"]], "actualsolve() (pulp.apis.pyglpk method)": [[31, "pulp.apis.PYGLPK.actualSolve"]], "actualsolve() (pulp.apis.scip_cmd method)": [[31, "pulp.apis.SCIP_CMD.actualSolve"]], "actualsolve() (pulp.apis.scip_py method)": [[31, "pulp.apis.SCIP_PY.actualSolve"]], "actualsolve() (pulp.apis.xpress method)": [[31, "pulp.apis.XPRESS.actualSolve"]], "actualsolve() (pulp.apis.xpress_py method)": [[31, "pulp.apis.XPRESS_PY.actualSolve"]], "actualsolve() (pulp.apis.yaposib method)": [[31, "pulp.apis.YAPOSIB.actualSolve"]], "available() (pulp.apis.choco_cmd method)": [[31, "pulp.apis.CHOCO_CMD.available"]], "available() (pulp.apis.coinmp_dll class method)": [[31, "pulp.apis.COINMP_DLL.available"]], "available() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.available"]], "available() (pulp.apis.copt method)": [[31, "pulp.apis.COPT.available"]], "available() (pulp.apis.copt_cmd method)": [[31, "pulp.apis.COPT_CMD.available"]], "available() (pulp.apis.copt_dll method)": [[31, "pulp.apis.COPT_DLL.available"]], "available() (pulp.apis.cplex_cmd method)": [[31, "pulp.apis.CPLEX_CMD.available"]], "available() (pulp.apis.cplex_py method)": [[31, "pulp.apis.CPLEX_PY.available"]], "available() (pulp.apis.fscip_cmd method)": [[31, "pulp.apis.FSCIP_CMD.available"]], "available() (pulp.apis.glpk_cmd method)": [[31, "pulp.apis.GLPK_CMD.available"]], "available() (pulp.apis.gurobi method)": [[31, "pulp.apis.GUROBI.available"]], "available() (pulp.apis.gurobi_cmd method)": [[31, "pulp.apis.GUROBI_CMD.available"]], "available() (pulp.apis.highs method)": [[31, "pulp.apis.HiGHS.available"]], "available() (pulp.apis.highs_cmd method)": [[31, "pulp.apis.HiGHS_CMD.available"]], "available() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.available"]], "available() (pulp.apis.mipcl_cmd method)": [[31, "pulp.apis.MIPCL_CMD.available"]], "available() (pulp.apis.mosek method)": [[31, "pulp.apis.MOSEK.available"]], "available() (pulp.apis.pyglpk method)": [[31, "pulp.apis.PYGLPK.available"]], "available() (pulp.apis.scip_cmd method)": [[31, "pulp.apis.SCIP_CMD.available"]], "available() (pulp.apis.scip_py method)": [[31, "pulp.apis.SCIP_PY.available"]], "available() (pulp.apis.xpress method)": [[31, "pulp.apis.XPRESS.available"]], "available() (pulp.apis.xpress_py method)": [[31, "pulp.apis.XPRESS_PY.available"]], "available() (pulp.apis.yaposib method)": [[31, "pulp.apis.YAPOSIB.available"]], "buildsolvermodel() (pulp.apis.xpress_py method)": [[31, "pulp.apis.XPRESS_PY.buildSolverModel"]], "byref() (in module pulp.apis)": [[31, "pulp.apis.byref"]], "callsolver() (pulp.apis.xpress_py method)": [[31, "pulp.apis.XPRESS_PY.callSolver"]], "clock() (in module pulp.apis)": [[31, "pulp.apis.clock"]], "configsolvers() (in module pulp.apis)": [[31, "pulp.apis.configSolvers"]], "coptstr() (in module pulp.apis)": [[31, "pulp.apis.coptstr"]], "copy() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.copy"]], "copy() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.copy"]], "copy() (pulp.apis.lpsolver_cmd method)": [[31, "pulp.apis.LpSolver_CMD.copy"]], "create_tmp_files() (pulp.apis.lpsolver_cmd method)": [[31, "pulp.apis.LpSolver_CMD.create_tmp_files"]], "ctypesarrayfill() (in module pulp.apis)": [[31, "pulp.apis.ctypesArrayFill"]], "defaultpath() (pulp.apis.choco_cmd method)": [[31, "pulp.apis.CHOCO_CMD.defaultPath"]], "defaultpath() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.defaultPath"]], "defaultpath() (pulp.apis.copt_cmd method)": [[31, "pulp.apis.COPT_CMD.defaultPath"]], "defaultpath() (pulp.apis.cplex_cmd method)": [[31, "pulp.apis.CPLEX_CMD.defaultPath"]], "defaultpath() (pulp.apis.fscip_cmd method)": [[31, "pulp.apis.FSCIP_CMD.defaultPath"]], "defaultpath() (pulp.apis.glpk_cmd method)": [[31, "pulp.apis.GLPK_CMD.defaultPath"]], "defaultpath() (pulp.apis.gurobi_cmd method)": [[31, "pulp.apis.GUROBI_CMD.defaultPath"]], "defaultpath() (pulp.apis.highs_cmd method)": [[31, "pulp.apis.HiGHS_CMD.defaultPath"]], "defaultpath() (pulp.apis.lpsolver_cmd method)": [[31, "pulp.apis.LpSolver_CMD.defaultPath"]], "defaultpath() (pulp.apis.mipcl_cmd method)": [[31, "pulp.apis.MIPCL_CMD.defaultPath"]], "defaultpath() (pulp.apis.scip_cmd method)": [[31, "pulp.apis.SCIP_CMD.defaultPath"]], "defaultpath() (pulp.apis.xpress method)": [[31, "pulp.apis.XPRESS.defaultPath"]], "delete_tmp_files() (pulp.apis.lpsolver_cmd method)": [[31, "pulp.apis.LpSolver_CMD.delete_tmp_files"]], "env (pulp.apis.gurobi attribute)": [[31, "pulp.apis.GUROBI.env"]], "err (pulp.apis.copt_dll attribute)": [[31, "pulp.apis.COPT_DLL.err"]], "err (pulp.apis.cplex_py attribute)": [[31, "pulp.apis.CPLEX_PY.err"]], "executable() (pulp.apis.lpsolver_cmd static method)": [[31, "pulp.apis.LpSolver_CMD.executable"]], "executableextension() (pulp.apis.lpsolver_cmd static method)": [[31, "pulp.apis.LpSolver_CMD.executableExtension"]], "findsolutionvalues() (pulp.apis.xpress_py method)": [[31, "pulp.apis.XPRESS_PY.findSolutionValues"]], "getattribute() (pulp.apis.xpress_py method)": [[31, "pulp.apis.XPRESS_PY.getAttribute"]], "getcplexstylearrays() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.getCplexStyleArrays"]], "getoptions() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.getOptions"]], "getoptions() (pulp.apis.cplex_cmd method)": [[31, "pulp.apis.CPLEX_CMD.getOptions"]], "getoptions() (pulp.apis.gurobi_cmd method)": [[31, "pulp.apis.GUROBI_CMD.getOptions"]], "getsolver() (in module pulp.apis)": [[31, "pulp.apis.getSolver"]], "getsolverfromdict() (in module pulp.apis)": [[31, "pulp.apis.getSolverFromDict"]], "getsolverfromjson() (in module pulp.apis)": [[31, "pulp.apis.getSolverFromJson"]], "get_solver() (in module pulp.apis)": [[31, "pulp.apis.get_solver"]], "get_solver_from_dict() (in module pulp.apis)": [[31, "pulp.apis.get_solver_from_dict"]], "get_solver_from_json() (in module pulp.apis)": [[31, "pulp.apis.get_solver_from_json"]], "get_status() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.get_status"]], "initialize() (in module pulp.apis)": [[31, "pulp.apis.initialize"]], "listsolvers() (in module pulp.apis)": [[31, "pulp.apis.listSolvers"]], "list_solvers() (in module pulp.apis)": [[31, "pulp.apis.list_solvers"]], "mktemp() (in module pulp.apis)": [[31, "pulp.apis.mktemp"]], "name (pulp.apis.choco_cmd attribute)": [[31, "pulp.apis.CHOCO_CMD.name"]], "name (pulp.apis.coinmp_dll attribute)": [[31, "pulp.apis.COINMP_DLL.name"]], "name (pulp.apis.coin_cmd attribute)": [[31, "pulp.apis.COIN_CMD.name"]], "name (pulp.apis.copt attribute)": [[31, "pulp.apis.COPT.name"]], "name (pulp.apis.copt_cmd attribute)": [[31, "pulp.apis.COPT_CMD.name"]], "name (pulp.apis.copt_dll attribute)": [[31, "pulp.apis.COPT_DLL.name"]], "name (pulp.apis.cplex_cmd attribute)": [[31, "pulp.apis.CPLEX_CMD.name"]], "name (pulp.apis.cplex_py attribute)": [[31, "pulp.apis.CPLEX_PY.name"]], "name (pulp.apis.fscip_cmd attribute)": [[31, "pulp.apis.FSCIP_CMD.name"]], "name (pulp.apis.glpk_cmd attribute)": [[31, "pulp.apis.GLPK_CMD.name"]], "name (pulp.apis.gurobi attribute)": [[31, "pulp.apis.GUROBI.name"]], "name (pulp.apis.gurobi_cmd attribute)": [[31, "pulp.apis.GUROBI_CMD.name"]], "name (pulp.apis.highs attribute)": [[31, "pulp.apis.HiGHS.name"]], "name (pulp.apis.highs_cmd attribute)": [[31, "pulp.apis.HiGHS_CMD.name"]], "name (pulp.apis.lpsolver attribute)": [[31, "pulp.apis.LpSolver.name"]], "name (pulp.apis.lpsolver_cmd attribute)": [[31, "pulp.apis.LpSolver_CMD.name"]], "name (pulp.apis.mipcl_cmd attribute)": [[31, "pulp.apis.MIPCL_CMD.name"]], "name (pulp.apis.mosek attribute)": [[31, "pulp.apis.MOSEK.name"]], "name (pulp.apis.pulp_cbc_cmd attribute)": [[31, "pulp.apis.PULP_CBC_CMD.name"]], "name (pulp.apis.pyglpk attribute)": [[31, "pulp.apis.PYGLPK.name"]], "name (pulp.apis.scip_cmd attribute)": [[31, "pulp.apis.SCIP_CMD.name"]], "name (pulp.apis.scip_py attribute)": [[31, "pulp.apis.SCIP_PY.name"]], "name (pulp.apis.xpress attribute)": [[31, "pulp.apis.XPRESS.name"]], "name (pulp.apis.xpress_py attribute)": [[31, "pulp.apis.XPRESS_PY.name"]], "name (pulp.apis.yaposib attribute)": [[31, "pulp.apis.YAPOSIB.name"]], "parse_objective() (pulp.apis.fscip_cmd static method)": [[31, "pulp.apis.FSCIP_CMD.parse_objective"]], "parse_status() (pulp.apis.fscip_cmd static method)": [[31, "pulp.apis.FSCIP_CMD.parse_status"]], "parse_variable() (pulp.apis.fscip_cmd static method)": [[31, "pulp.apis.FSCIP_CMD.parse_variable"]], "pulp.apis": [[31, "module-pulp.apis"]], "pulp_cbc_path (pulp.apis.pulp_cbc_cmd attribute)": [[31, "pulp.apis.PULP_CBC_CMD.pulp_cbc_path"]], "quote_path() (pulp.apis.xpress static method)": [[31, "pulp.apis.XPRESS.quote_path"]], "readsol() (pulp.apis.choco_cmd static method)": [[31, "pulp.apis.CHOCO_CMD.readsol"]], "readsol() (pulp.apis.copt_cmd method)": [[31, "pulp.apis.COPT_CMD.readsol"]], "readsol() (pulp.apis.cplex_cmd method)": [[31, "pulp.apis.CPLEX_CMD.readsol"]], "readsol() (pulp.apis.fscip_cmd static method)": [[31, "pulp.apis.FSCIP_CMD.readsol"]], "readsol() (pulp.apis.glpk_cmd method)": [[31, "pulp.apis.GLPK_CMD.readsol"]], "readsol() (pulp.apis.gurobi_cmd method)": [[31, "pulp.apis.GUROBI_CMD.readsol"]], "readsol() (pulp.apis.highs_cmd static method)": [[31, "pulp.apis.HiGHS_CMD.readsol"]], "readsol() (pulp.apis.mipcl_cmd static method)": [[31, "pulp.apis.MIPCL_CMD.readsol"]], "readsol() (pulp.apis.scip_cmd static method)": [[31, "pulp.apis.SCIP_CMD.readsol"]], "readsol() (pulp.apis.xpress static method)": [[31, "pulp.apis.XPRESS.readsol"]], "readsol_lp() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.readsol_LP"]], "readsol_mps() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.readsol_MPS"]], "setconfiginformation() (in module pulp.apis)": [[31, "pulp.apis.setConfigInformation"]], "settmpdir() (pulp.apis.lpsolver_cmd method)": [[31, "pulp.apis.LpSolver_CMD.setTmpDir"]], "silent_remove() (pulp.apis.lpsolver_cmd method)": [[31, "pulp.apis.LpSolver_CMD.silent_remove"]], "solve() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.solve"]], "solve_cbc() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.solve_CBC"]], "todict() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.toDict"]], "tojson() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.toJson"]], "to_dict() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.to_dict"]], "to_json() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.to_json"]], "to_string() (in module pulp.apis)": [[31, "pulp.apis.to_string"]], "uuid4() (in module pulp.apis)": [[31, "pulp.apis.uuid4"]], "writemst() (pulp.apis.copt_cmd method)": [[31, "pulp.apis.COPT_CMD.writemst"]], "writeslxsol() (pulp.apis.xpress method)": [[31, "pulp.apis.XPRESS.writeslxsol"]], "writesol() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.writesol"]], "writesol() (pulp.apis.cplex_cmd method)": [[31, "pulp.apis.CPLEX_CMD.writesol"]], "writesol() (pulp.apis.gurobi_cmd method)": [[31, "pulp.apis.GUROBI_CMD.writesol"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["CaseStudies/a_blending_problem", "CaseStudies/a_set_partitioning_problem", "CaseStudies/a_sudoku_problem", "CaseStudies/a_transportation_problem", "CaseStudies/a_two_stage_production_planning_problem", "CaseStudies/index", "develop/add_solver", "develop/contribute", "develop/index", "guides/how_to_configure_solvers", "guides/how_to_debug", "guides/how_to_elastic_constraints", "guides/how_to_export_models", "guides/how_to_mip_start", "guides/index", "index", "main/amply", "main/basic_python_coding", "main/includeme", "main/index", "main/installing_pulp_at_home", "main/optimisation_concepts", "main/the_optimisation_process", "plugins/amply", "plugins/index", "plugins/lparray", "plugins/orloge", "plugins/pytups", "technical/constants", "technical/index", "technical/pulp", "technical/solvers"], "filenames": ["CaseStudies/a_blending_problem.rst", "CaseStudies/a_set_partitioning_problem.rst", "CaseStudies/a_sudoku_problem.rst", "CaseStudies/a_transportation_problem.rst", "CaseStudies/a_two_stage_production_planning_problem.rst", "CaseStudies/index.rst", "develop/add_solver.rst", "develop/contribute.rst", "develop/index.rst", "guides/how_to_configure_solvers.rst", "guides/how_to_debug.rst", "guides/how_to_elastic_constraints.rst", "guides/how_to_export_models.rst", "guides/how_to_mip_start.rst", "guides/index.rst", "index.rst", "main/amply.rst", "main/basic_python_coding.rst", "main/includeme.rst", "main/index.rst", "main/installing_pulp_at_home.rst", "main/optimisation_concepts.rst", "main/the_optimisation_process.rst", "plugins/amply.rst", "plugins/index.rst", "plugins/lparray.rst", "plugins/orloge.rst", "plugins/pytups.rst", "technical/constants.rst", "technical/index.rst", "technical/pulp.rst", "technical/solvers.rst"], "titles": ["A Blending Problem", "A Set Partitioning Problem", "A Sudoku Problem formulated as an LP", "A Transportation Problem", "A Two Stage Production Planning Problem", "Case Studies", "How to add a new solver to PuLP", "How to contribute to PuLP", "Developer Guides", "How to configure a solver in PuLP", "How to debug most errors during solving", "Elastic Constraints", "How to import and export models in PuLP", "How to warm-start a solver", "User Guides", "Optimization with PuLP", "Amply", "Basic Python Coding", "pulp", "Main Topics", "Installing PuLP at Home", "Optimisation Concepts", "The Optimisation Process", "amply: AMPL data manipulation", "Plugins", "PuLP_LPARRAY: PuLP x NumPy, a match made in heaven", "orloge: OR logs parser", "pytups: smart dictionaries and tuple lists", "pulp.constants", "PuLP Internal Documentation", "pulp: Pulp classes", "pulp.apis Interface to Solvers"], "terms": {"whiska": [0, 3], "cat": [0, 1, 2, 4, 12, 13, 30], "food": 0, "shown": [0, 2, 3, 9, 12, 17, 22, 31], "abov": [0, 2, 3, 9, 17], "i": [0, 1, 2, 3, 4, 6, 7, 10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 25, 26, 28, 30, 31], "manufactur": 0, "uncl": 0, "ben": 0, "": [0, 1, 2, 3, 4, 6, 7, 9, 10, 12, 15, 17, 18, 20, 22, 25, 30], "want": [0, 7, 9, 10, 13, 18, 22], "produc": [0, 3, 4, 10], "product": [0, 3, 5, 15], "cheapli": 0, "possibl": [0, 1, 3, 4, 9, 10, 12, 13, 22, 31], "while": [0, 2, 4, 6, 13, 14, 21], "ensur": [0, 2, 7], "thei": [0, 3, 6, 9, 17, 18, 21, 22, 27], "meet": 0, "state": [0, 1, 12, 13], "nutrit": 0, "analysi": [0, 5], "requir": [0, 3, 6, 7, 9, 17, 18, 20, 25], "can": [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 15, 17, 18, 20, 21, 22, 27, 30, 31], "thu": [0, 2, 10], "vari": [0, 9, 30], "quantiti": 0, "each": [0, 1, 2, 3, 4, 6, 7, 9, 12, 13, 17, 20, 22, 30, 31], "ingredi": 0, "us": [0, 1, 2, 3, 4, 6, 7, 10, 12, 13, 14, 15, 17, 18, 20, 21, 22, 25, 26, 27, 30, 31], "main": [0, 6, 9, 10, 15, 30, 31], "being": [0, 2, 3, 9, 10, 30], "chicken": [0, 17], "beef": [0, 17], "mutton": [0, 17], "rice": [0, 17], "wheat": 0, "gel": 0, "still": [0, 1, 2, 3, 12], "standard": [0, 6, 12, 26], "cost": [0, 3, 4, 9, 12, 17, 22], "ar": [0, 1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 15, 17, 18, 21, 22, 30, 31], "0": [0, 1, 2, 3, 4, 6, 9, 11, 12, 13, 17, 18, 25, 26, 28, 30, 31], "013": 0, "008": 0, "010": 0, "respect": [0, 2, 3, 27, 30], "002": 0, "005": 0, "001": 0, "all": [0, 1, 2, 3, 6, 7, 9, 10, 12, 13, 17, 20, 22, 25, 30, 31], "per": [0, 2, 3, 4, 6, 14, 22], "gram": 0, "For": [0, 3, 7, 9, 10, 12, 13, 15, 17, 18, 21, 22, 31], "thi": [0, 1, 2, 3, 4, 6, 7, 9, 10, 12, 13, 15, 17, 20, 22, 28, 30, 31], "exercis": 0, "we": [0, 1, 2, 3, 4, 6, 7, 9, 12, 13, 15, 18, 21, 22, 30], "ignor": 0, "vitamin": 0, "miner": 0, "ani": [0, 1, 2, 9, 10, 12, 15, 17, 20, 21, 22, 27], "like": [0, 1, 3, 4, 9, 10, 17, 21, 25], "veri": [0, 2, 3, 7, 9, 10, 12, 21, 27], "small": [0, 3], "anywai": 0, "contribut": [0, 4, 8, 15], "total": [0, 1, 3, 4, 13, 22, 31], "weight": 0, "protein": 0, "fat": 0, "fibr": 0, "salt": 0, "final": [0, 2, 3, 4, 7, 9, 10, 11, 22, 31], "given": [0, 2, 3, 13, 17, 18, 22, 30, 31], "tabl": [0, 1, 2, 3, 12, 13], "below": [0, 2, 3, 10, 12, 13, 15, 17, 20], "stuff": 0, "100": [0, 3, 4, 17, 30], "080": 0, "200": [0, 3, 11], "150": 0, "110": 0, "003": 0, "007": 0, "000": 0, "bran": 0, "040": 0, "first": [0, 1, 2, 3, 4, 6, 7, 9, 10, 17, 20, 22], "consid": [0, 2, 3, 22], "build": [0, 8, 10, 12, 30], "simpl": [0, 3, 9, 12, 17, 22], "python": [0, 3, 7, 9, 10, 12, 15, 18, 19, 20, 22, 23, 26, 28, 31], "model": [0, 1, 2, 4, 5, 6, 9, 10, 13, 14, 15, 17, 18, 19, 20, 30, 31], "assum": [0, 3, 7, 15, 17, 30, 31], "make": [0, 1, 2, 3, 4, 8, 9, 10, 17, 18, 20, 22, 27, 30, 31], "out": [0, 1, 2, 3, 4, 10, 13, 26], "just": [0, 2, 3, 6, 9, 13, 25, 31], "two": [0, 3, 5, 6, 7, 9, 10, 11, 12, 13, 15, 18, 27], "defin": [0, 1, 2, 3, 4, 6, 11, 17, 22, 27, 30], "our": [0, 2, 3, 4, 12, 13, 22], "x_1": [0, 21, 30], "text": [0, 2, 9, 10, 31], "percentag": 0, "meat": [0, 17], "x_2": [0, 21, 30], "limit": [0, 3, 4, 22, 31], "greater": [0, 3], "than": [0, 2, 3, 6, 9], "zero": [0, 1, 3, 17, 20, 30], "must": [0, 1, 2, 3, 4, 12, 13, 17, 18, 20, 21, 22, 31], "note": [0, 1, 2, 3, 4, 12, 20, 21, 28, 30], "implement": [0, 6, 22, 31], "enter": [0, 2, 3, 17, 20, 22], "list": [0, 1, 2, 3, 4, 6, 9, 11, 12, 13, 15, 18, 20, 24, 30, 31], "separ": 0, "other": [0, 1, 2, 3, 4, 6, 9, 10, 12, 18, 19, 20, 22, 30, 31], "becom": [0, 1, 2, 10, 12, 17, 18], "textbf": 0, "min": [0, 3, 25], "sum": [0, 2, 3, 17, 25, 30], "met": [0, 2, 3], "1": [0, 1, 2, 3, 4, 6, 9, 10, 11, 13, 14, 17, 18, 25, 26, 28, 30, 31], "ge": [0, 3, 4, 11], "8": [0, 2, 4, 10, 17], "6": [0, 2, 17], "le": [0, 4, 11], "2": [0, 2, 3, 4, 6, 11, 14, 17, 18, 20, 25, 26, 28, 30, 31], "4": [0, 1, 2, 3, 4, 12, 13, 17, 18, 20, 22, 26, 30], "To": [0, 1, 2, 3, 4, 7, 10, 13, 17, 18, 20, 22], "obtain": [0, 20], "linear": [0, 1, 2, 3, 18, 19, 22, 25, 30], "program": [0, 1, 2, 3, 9, 10, 17, 18, 19, 20], "write": [0, 2, 7, 14, 17, 20, 30, 31], "short": [0, 17], "call": [0, 2, 3, 6, 9, 11, 17, 18, 20, 21, 22, 30, 31], "pulp": [0, 1, 2, 4, 5, 8, 10, 13, 14, 17, 19, 22, 24, 27], "which": [0, 2, 3, 4, 7, 11, 14, 17, 18, 21, 22, 30, 31], "solver": [0, 2, 4, 7, 8, 10, 14, 15, 18, 20, 21, 22, 26, 28, 29, 30], "explain": [0, 2, 3, 6, 9, 15], "step": [0, 7, 9, 11, 17, 22], "how": [0, 1, 3, 4, 8, 14, 15, 17, 18, 22], "It": [0, 6, 7, 9, 12, 20, 25, 26, 27, 31], "suggest": [0, 18, 22], "you": [0, 2, 3, 7, 9, 10, 12, 13, 15, 17, 18, 20, 21, 22, 23, 31], "repeat": [0, 20], "yourself": 0, "code": [0, 2, 3, 6, 7, 12, 13, 15, 19, 20, 27], "exampl": [0, 2, 3, 8, 9, 10, 11, 14, 17, 19, 20, 22, 25, 26, 27, 30], "found": [0, 1, 2, 3, 4, 6, 9, 18, 26, 28, 31], "whiskasmodel1": 0, "py": [0, 1, 2, 3, 4, 6, 7, 9, 17, 20], "start": [0, 2, 3, 14, 15, 17, 20, 22, 31], "your": [0, 3, 6, 7, 9, 10, 17, 18, 19, 21, 22, 25, 31], "file": [0, 1, 2, 3, 4, 6, 7, 10, 11, 12, 14, 17, 18, 20, 22, 28, 30, 31], "should": [0, 2, 3, 7, 9, 20, 22, 31], "head": [0, 3, 17], "comment": [0, 2, 3, 18], "section": [0, 6, 9, 12, 17], "outlin": 0, "purpos": 0, "author": [0, 1, 2, 3, 4, 13], "antoni": [0, 2, 3, 15], "phillip": [0, 2, 3, 15], "dr": [0, 2, 3], "stuart": [0, 1, 2, 3, 13, 15, 18, 31], "mitchel": [0, 1, 2, 3, 13, 15, 18, 31], "2007": [0, 3, 31], "Then": [0, 1, 17, 20], "import": [0, 1, 2, 3, 4, 6, 10, 13, 14, 15, 19, 20, 21, 22, 25, 26, 30], "from": [0, 2, 3, 4, 6, 8, 9, 10, 11, 12, 13, 17, 18, 21, 22, 25, 28, 30, 31], "prob": [0, 2, 3, 9, 10, 12, 18, 25, 31], "although": [0, 9, 10], "its": [0, 3, 6, 9, 10, 11, 16, 30, 31], "name": [0, 2, 3, 4, 6, 7, 9, 12, 17, 18, 20, 25, 30, 31], "creat": [0, 1, 2, 3, 4, 8, 9, 12, 13, 17, 18, 22, 26, 30, 31], "lpproblem": [0, 1, 2, 3, 4, 6, 9, 11, 12, 13, 18, 25], "ha": [0, 3, 6, 10, 11, 12, 13, 14, 16, 31], "paramet": [0, 3, 4, 10, 12, 17, 23, 30, 31], "arbitrari": [0, 31], "string": [0, 17, 28, 30, 31], "second": [0, 3, 6, 9, 31], "either": [0, 11, 17, 20, 22, 30, 31], "lpminim": [0, 1, 2, 3, 9, 12, 13, 18, 25, 28, 30], "lpmaxim": [0, 2, 4, 6, 28, 30], "depend": [0, 7, 9, 17, 31], "type": [0, 11, 14, 19, 20, 21, 25, 30, 31], "lp": [0, 3, 4, 5, 6, 9, 10, 11, 15, 17, 18, 20, 30, 31], "try": [0, 2, 6, 9, 14, 17], "solv": [0, 1, 2, 3, 4, 6, 9, 12, 13, 14, 15, 18, 20, 21, 25, 28, 30, 31], "contain": [0, 1, 2, 3, 6, 11, 17, 18, 21, 28, 30], "data": [0, 2, 3, 4, 6, 14, 15, 17, 22, 24, 26, 30, 31], "x1": [0, 18], "x2": [0, 18], "lpvariabl": [0, 1, 2, 3, 4, 9, 12, 13, 18, 20, 25, 30], "class": [0, 8, 12, 15, 18, 27, 28, 29, 31], "four": [0, 4], "what": [0, 7, 10, 14, 17, 20, 22], "repres": [0, 2, 4, 17, 30], "lower": [0, 3, 9, 13, 30], "bound": [0, 3, 13, 21, 22, 26, 30], "third": [0, 2], "upper": [0, 3, 30], "fourth": [0, 17], "essenti": [0, 2], "discret": 0, "continu": [0, 4, 12, 17, 20, 21, 28, 30], "option": [0, 2, 3, 6, 9, 30, 31], "lpcontinu": [0, 28], "lpinteg": [0, 1, 3, 12, 13, 28], "default": [0, 3, 6, 9, 10, 12, 13, 17, 18, 20, 30, 31], "If": [0, 2, 3, 9, 10, 13, 17, 18, 22, 31], "were": [0, 2, 3, 17], "number": [0, 1, 2, 3, 10, 11, 12, 13, 17, 21, 22, 27, 30, 31], "would": [0, 1, 2, 3, 4, 9, 13, 17, 20, 22, 31], "need": [0, 2, 3, 6, 7, 9, 10, 12, 13, 15, 17, 20, 21, 22, 27], "input": [0, 3, 17, 30], "sinc": [0, 2, 3, 9, 10, 21], "directli": [0, 7, 9, 10, 12], "none": [0, 2, 3, 6, 9, 12, 17, 26, 30, 31], "e": [0, 1, 2, 3, 6, 9, 10, 12, 13, 17, 22, 30, 31], "posit": [0, 17, 30], "neg": [0, 3, 22, 30], "infin": [0, 30], "few": [0, 2], "rest": [0, 2, 3], "take": [0, 2, 3, 6, 10, 12, 22, 31], "valu": [0, 1, 2, 3, 4, 6, 9, 10, 11, 12, 14, 17, 18, 21, 22, 25, 28, 30, 31], "howev": [0, 2, 15, 17, 22], "wish": [0, 1], "specifi": [0, 1, 2, 3, 4, 11, 12, 13, 17, 21, 30, 31], "specif": [0, 4, 10, 17, 23, 30], "set": [0, 2, 3, 4, 5, 6, 9, 12, 13, 15, 22, 23, 25, 28, 30, 31], "cannot": [0, 2, 3, 6, 12, 17, 22, 31], "leav": [0, 3, 9], "entri": 0, "blank": 0, "g": [0, 1, 3, 6, 9, 10, 12, 13, 22, 31], "upbound": [0, 1, 12, 13, 30], "explicitli": [0, 1, 2], "chickenperc": 0, "beefperc": 0, "now": [0, 3, 7, 9, 10, 12, 16, 17, 20, 31], "begin": [0, 4, 15, 17], "collect": 0, "oper": [0, 2, 3, 6, 9, 10, 17, 22, 25, 27], "logic": [0, 2, 3, 4, 6, 22], "an": [0, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 25, 30, 31], "comma": [0, 17], "end": [0, 2, 4, 9, 12, 13, 17], "statement": [0, 2, 3, 23], "ad": [0, 2, 3, 4, 8, 9, 10, 17, 18, 30, 31], "non": [0, 1, 2, 3, 30], "alreadi": [0, 3, 9, 10, 13, 20, 22], "includ": [0, 3, 4, 7, 8, 9, 10, 15, 17, 18, 20, 22, 26], "when": [0, 2, 3, 6, 7, 9, 10, 12, 13, 17, 31], "done": [0, 4, 6, 7, 9, 17, 21, 22], "again": [0, 2, 9, 12, 22, 25, 30, 31], "more": [0, 2, 3, 6, 9, 10, 17, 18, 22, 25, 28, 30, 31], "after": [0, 2, 4, 9, 17, 20, 22, 30, 31], "equat": 0, "brief": [0, 30], "caus": [0, 10], "five": [0, 3, 22], "percentagessum": 0, "proteinrequir": 0, "fatrequir": 0, "fibrerequir": 0, "saltrequir": 0, "writelp": [0, 2, 3, 4, 10, 11, 30], "copi": [0, 9, 30, 31], "inform": [0, 3, 6, 9, 10, 12, 15, 17, 18, 26, 30, 31], "directori": [0, 3, 6, 7, 9, 10, 18, 20, 31], "block": 0, "run": [0, 3, 8, 9, 10, 13, 18, 20, 22], "onc": [0, 2, 3, 9, 13, 17], "successfulli": [0, 7], "open": [0, 2, 6, 7, 9, 10, 18, 20, 22], "editor": [0, 10], "see": [0, 3, 9, 10, 12, 13, 15, 18, 25, 31], "do": [0, 2, 4, 6, 7, 9, 10, 12, 13, 17, 18, 20, 22, 25], "notic": [0, 3], "assign": [0, 13, 17], "equal": [0, 2, 3, 4, 11], "sign": 0, "line": [0, 2, 3, 6, 7, 9, 10, 17, 20, 27, 31], "becaus": [0, 2, 3, 6, 9, 12], "method": [0, 7, 8, 9, 11, 13, 21, 22, 30], "perform": [0, 13, 17, 31], "whiskasmodel": 0, "addit": [0, 6, 10, 14, 25, 30, 31], "dot": 0, "between": [0, 1, 2, 6, 12, 13], "seen": [0, 6, 10, 12], "frequent": 0, "orient": 0, "softwar": [0, 20, 22], "written": [0, 2, 4, 9, 11, 12, 18, 20, 31], "choos": [0, 9], "bracket": [0, 17], "left": [0, 11, 20], "empti": [0, 17, 30], "case": [0, 1, 2, 3, 4, 9, 10, 13, 15], "cplex": [0, 10, 18, 20, 21, 22, 26, 31], "choic": [0, 2, 4, 7], "result": [0, 2, 7, 9, 12, 17], "displai": [0, 17, 18, 20], "output": [0, 4, 12, 17, 20, 26, 30], "u": [0, 3, 18], "firstli": 0, "request": [0, 8], "statu": [0, 2, 4, 6, 7, 9, 12, 18, 26, 28, 30, 31], "one": [0, 1, 2, 3, 4, 6, 7, 9, 10, 12, 13, 17, 21, 30], "Not": [0, 9, 28], "infeas": [0, 3, 14, 20, 28, 31], "unbound": [0, 20, 28, 31], "undefin": [0, 28], "optim": [0, 2, 3, 4, 13, 18, 20, 26, 28, 31], "return": [0, 1, 2, 3, 6, 9, 11, 12, 13, 17, 20, 28, 30, 31], "integ": [0, 2, 3, 12, 17, 19, 20, 28, 30, 31], "convert": [0, 4, 30], "signific": 0, "mean": [0, 2, 9, 12, 22], "lpstatu": [0, 2, 4, 18, 28], "dictionari": [0, 3, 4, 9, 12, 13, 15, 24, 26, 28, 30, 31], "dict": [0, 1, 2, 3, 4, 12, 13, 17, 30, 31], "squar": [0, 2, 17], "print": [0, 1, 2, 4, 13, 17, 25, 30], "screen": [0, 2, 4], "resolv": [0, 3, 4, 30, 31], "optimum": [0, 4], "v": [0, 2, 4, 10, 13, 31], "varvalu": [0, 4, 12, 30], "loop": [0, 2, 3, 19, 22], "cycl": [0, 3], "through": [0, 3, 7, 17, 20, 22], "follow": [0, 2, 3, 6, 7, 9, 10, 11, 12, 13, 17, 18, 20, 21, 26, 30, 31], "properti": [0, 6], "optimis": [0, 4, 15, 19, 20], "right": [0, 9, 11], "format": [0, 12, 17, 30, 31], "attribut": [0, 6, 9, 17, 30, 31], "show": [0, 3, 7, 9, 17, 31], "up": [0, 3, 12, 17, 22, 30], "33": 0, "66": 0, "67": [0, 26], "96": 0, "cent": 0, "fulli": 0, "whilst": [0, 2, 3], "could": [0, 2, 3, 10, 12, 13, 17, 22], "littl": [0, 2, 9], "look": [0, 3, 9, 10, 15, 17, 22], "better": [0, 2, 9, 17], "wai": [0, 1, 2, 3, 6, 7, 9, 10, 12, 17, 18, 20, 21, 22], "doe": [0, 1, 6, 9, 12, 17, 30, 31], "mix": [0, 17, 21], "much": [0, 2, 3, 4, 17], "easier": [0, 2, 12], "chang": [0, 3, 4, 6, 7, 9, 20, 21, 22, 28, 30], "test": [0, 8, 12, 18, 19, 26, 31], "same": [0, 2, 3, 9, 10, 12, 13, 17, 22, 30, 31], "algebra": 0, "differ": [0, 9, 17, 22, 31], "100g": 0, "also": [0, 2, 3, 7, 9, 10, 12, 13, 17, 20, 21, 22, 26, 27], "amount": [0, 3, 30], "formal": [0, 22], "sure": [0, 3, 7, 9, 20, 22], "unit": [0, 3, 4, 22], "x_3": [0, 21], "x_4": 0, "x_5": 0, "x_6": 0, "minimis": [0, 2, 3, 22], "know": [0, 3, 7, 9, 13], "decid": [0, 3, 4, 22], "so": [0, 2, 3, 4, 7, 9, 10, 12, 13, 15, 17, 22, 30, 31], "divid": [0, 20], "multipli": 0, "give": [0, 2, 3, 4, 9, 13, 14, 17, 22, 30], "whole": [0, 3, 7, 14, 26], "x": [0, 1, 9, 11, 12, 13, 15, 17, 18, 24, 26, 30, 31], "_6": 0, "have": [0, 1, 2, 3, 4, 7, 9, 10, 12, 13, 15, 17, 20, 21, 22, 25, 27, 31], "least": [0, 1, 3, 15, 31], "8g": 0, "6g": 0, "2g": 0, "4g": 0, "previou": [0, 3, 9, 12, 13], "allow": [0, 1, 6, 9, 21, 23, 25, 31], "improv": [0, 31], "whiskasmodel2": 0, "As": [0, 2, 3, 6, 9, 10, 12, 17], "last": [0, 3, 9], "time": [0, 2, 3, 6, 7, 12, 20, 21, 22, 26, 31], "advis": 0, "date": 0, "next": [0, 4, 9, 17, 22], "befor": [0, 6, 7, 9, 12, 15, 17, 31], "kei": [0, 3, 17, 22, 28, 30, 31], "nutrient": 0, "These": [0, 2, 4, 6, 9, 17], "clearli": [0, 2, 22], "laid": 0, "easili": [0, 3, 17, 22], "someon": [0, 31], "knowledg": [0, 17], "refer": [0, 3, 4, 17, 31], "percent": 0, "proteinperc": 0, "fatperc": 0, "fibreperc": 0, "saltperc": 0, "usual": [0, 3, 4, 6, 9, 10, 13, 22], "pass": [0, 6, 7, 9, 10, 12, 13, 17, 20, 31], "ingredient_var": 0, "ingr_ingredientnam": 0, "ingr_mutton": 0, "referenc": [0, 3], "ingr": 0, "simpli": [0, 2, 3, 17], "extract": [0, 20], "comprehens": [0, 3, 4, 22], "lpsum": [0, 1, 2, 3, 4, 12, 13, 18, 30], "add": [0, 4, 7, 8, 9, 10, 15, 18, 30, 31], "element": [0, 1, 2, 4, 17, 30, 31], "further": [0, 3, 7, 21, 22], "5": [0, 1, 2, 3, 4, 9, 11, 12, 13, 17, 30, 31], "describ": [0, 10, 20], "them": [0, 2, 3, 9, 10, 12, 17, 18], "etc": [0, 3, 9, 20, 26], "exactli": [0, 1, 2, 3, 10, 12], "60": 0, "40": 0, "lead": [0, 2, 3, 13], "52": [0, 6], "determin": [1, 4, 22], "item": [1, 4, 13, 30], "smaller": [1, 2], "subset": [1, 23, 30], "onli": [1, 2, 3, 6, 7, 9, 12, 13, 17, 21, 23, 31], "relat": [1, 2, 30, 31], "pack": 1, "cover": [1, 6, 31], "In": [1, 2, 4, 6, 7, 9, 13, 17, 20, 22, 30], "studi": [1, 4, 15], "wed": [1, 13], "planner": 1, "guest": [1, 12, 13], "seat": [1, 12, 13], "alloc": 1, "invit": 1, "The": [1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 15, 18, 19, 20, 21, 31], "maximis": [1, 2, 22], "happi": [1, 12, 13], "mai": [1, 2, 3, 4, 9, 10, 11, 12, 20, 21, 22, 30, 31], "enumer": 1, "though": [1, 12], "approach": [1, 2], "intract": 1, "larg": [1, 2, 3], "without": [1, 17, 27, 30], "column": [1, 2, 18, 20, 26, 30], "gener": [1, 6, 10, 17, 18, 22, 30, 31], "advantag": [1, 9, 12, 22], "object": [1, 4, 6, 9, 10, 11, 12, 17, 18, 20, 21, 22, 26, 30, 31], "function": [1, 4, 6, 7, 10, 11, 15, 18, 20, 22, 25, 27, 30, 31], "co": 1, "effici": [1, 3, 25, 27], "express": [1, 2, 4, 18, 21, 22], "allcombin": [1, 12, 13, 30], "possible_t": [1, 12, 13], "tupl": [1, 2, 3, 12, 13, 15, 24, 30, 31], "c": [1, 2, 3, 4, 9, 11, 12, 13, 20, 25, 30, 31], "max_table_s": [1, 12, 13], "binari": [1, 2, 10, 12, 13, 20, 25, 28, 30, 31], "variabl": [1, 4, 6, 10, 14, 17, 18, 20, 21, 22, 25, 26, 31], "solut": [1, 4, 5, 6, 9, 10, 12, 13, 18, 20, 21, 26, 28, 30, 31], "otherwis": [1, 6, 9, 18, 31], "lowbound": [1, 4, 9, 12, 13, 30], "script": [1, 20], "difficult": [1, 21], "seating_model": [1, 12, 13], "maximum": [1, 3, 12, 13, 31], "max_tabl": [1, 12, 13], "maximum_number_of_t": [1, 12, 13], "constraint": [1, 4, 10, 12, 14, 15, 18, 20, 21, 22, 26, 31], "guarante": [1, 3, 22], "f": [1, 3, 12, 13, 30], "must_seat_": [1, 12, 13], "full": [1, 2, 4, 5, 15], "here": [1, 3, 4, 6, 7, 9, 10, 12, 13, 17, 21], "2009": [1, 13], "b": [1, 2, 3, 11, 12, 13, 18, 21, 30], "d": [1, 3, 11, 12, 13], "j": [1, 2, 3, 4, 12, 13, 17, 18], "k": [1, 2, 12, 13, 30], "l": [1, 2, 12, 13], "m": [1, 2, 7, 12, 13, 18], "n": [1, 2, 12, 13, 25, 31], "o": [1, 3, 6, 12, 13, 15, 17, 31], "p": [1, 4, 12, 13], "q": [1, 12, 13], "r": [1, 2, 4, 7, 9, 12, 13, 18, 25, 30], "split": [1, 6, 12, 13], "def": [1, 6, 12, 13, 17], "find": [1, 2, 4, 6, 7, 9, 12, 13, 18, 21, 30], "calcul": [1, 12, 13, 17, 30], "distanc": [1, 11, 12, 13], "letter": [1, 12, 13], "ab": [1, 12, 13, 25], "ord": [1, 12, 13], "choosen": [1, 13], "len": [1, 13], "incomplet": 2, "9x9": 2, "fill": [2, 6, 9, 14], "accord": 2, "sever": [2, 3, 9, 10, 12, 17, 26], "rule": 2, "within": [2, 4, 22], "9": [2, 12, 17, 25], "individu": 2, "3x3": 2, "box": [2, 25], "grid": 2, "row": [2, 26], "On": [2, 7, 18], "page": [2, 7, 10, 18], "wikipedia": [2, 17], "modif": [2, 31], "order": [2, 3, 4, 7, 9, 13, 15, 17, 30, 31], "81": 2, "awfulli": 2, "complic": [2, 4], "necessari": [2, 9, 30], "45": 2, "mani": [2, 3, 4, 9, 12, 13, 22], "satisfi": [2, 3, 7], "There": [2, 3, 6, 9, 10], "big": [2, 9, 10], "compar": [2, 3], "pair": [2, 31], "strictli": 2, "prefer": [2, 9], "present": [2, 4, 5, 13], "eleg": 2, "729": 2, "where": [2, 3, 11, 13, 14, 20, 21, 30, 31], "correspond": [2, 4, 6, 17], "might": 2, "natur": [2, 3, 17], "sai": 2, "whether": [2, 31], "exist": [2, 6, 9, 17, 28, 30, 31], "true": [2, 6, 9, 10, 13, 17, 21, 30, 31], "fals": [2, 6, 9, 30, 31], "therefor": 2, "place": [2, 17], "clear": [2, 17], "interestingli": 2, "anoth": [2, 3, 9, 10, 12, 17, 18, 22], "definit": [2, 3, 17, 28], "realli": [2, 9, 12], "anyth": 2, "neither": 2, "nor": 2, "known": [2, 4, 21, 22], "plu": 2, "own": [2, 9, 10, 16, 17], "featur": [2, 19], "overlap": 2, "overal": 2, "seem": 2, "obviou": 2, "those": [2, 3, 4, 9, 13], "changeabl": 2, "actual": [2, 4, 7, 9, 22, 30, 31], "wherea": [2, 17], "control": [2, 9, 31], "feasibl": [2, 10, 20], "instead": [2, 3, 12, 17, 22, 27], "introductori": 2, "edit": [2, 3, 4, 9, 31], "nathan": 2, "sudermann": 2, "merx": 2, "uniqu": [2, 12, 31], "exact": 2, "val": [2, 30], "col": [2, 26], "rang": [2, 17, 30], "10": [2, 3, 4, 9, 12, 17, 26, 30, 31], "indic": [2, 30], "similar": [2, 7, 9, 12, 17, 20, 31], "had": 2, "effect": [2, 21, 22, 30], "been": [2, 3, 10, 12, 13, 16, 17, 31], "wast": 2, "index": [2, 4, 7, 12, 18, 25, 30, 31], "3": [2, 3, 4, 9, 12, 17, 18, 20, 25, 26, 28, 30, 31], "locat": [2, 6, 9, 20, 31], "combin": [2, 3, 4, 10, 18], "choice_4_2_9": 2, "abl": [2, 9, 12, 20], "wa": [2, 3, 9, 10, 17, 30, 31], "situat": [2, 3, 10, 22], "don": [2, 3, 22], "t": [2, 3, 4, 21, 22], "concern": 2, "read": [2, 3, 4, 9, 12, 15, 31], "particular": [2, 6, 10, 22], "occur": [2, 4], "input_data": 2, "7": [2, 4, 12, 17, 18, 20, 26], "meaning": [2, 3, 4, 7], "draw": 2, "put": [2, 3, 10, 22], "inbetween": 2, "everi": [2, 3, 7, 17], "sudokuout": 2, "txt": [2, 7, 18], "folder": [2, 7, 10, 18, 20], "overwritten": [2, 9], "w": [2, 3, 4, 6], "str": [2, 4, 30, 31], "close": [2, 20], "user": [2, 9, 10, 15, 17, 31], "provid": [2, 12, 15, 22, 26, 27, 31], "sudoku1": 2, "did": [2, 9, 10, 31], "fact": [2, 17], "multipl": [2, 17, 31], "well": [2, 6, 17, 22, 31], "over": [2, 9, 12], "success": [2, 30, 31], "deem": 2, "80": 2, "new": [2, 3, 7, 8, 9, 12, 15, 17, 18, 22, 30], "els": [2, 6, 9, 12, 17, 31], "break": [2, 22], "avail": [2, 3, 4, 8, 9, 12, 15, 17, 18, 22, 31], "sudoku2": 2, "long": [2, 3, 12, 17, 20, 22], "delet": [2, 9, 31], "singl": 2, "remov": [2, 6], "sudden": 2, "dramat": 2, "increas": [2, 21, 22], "boutiqu": 3, "breweri": 3, "warehous": 3, "distribut": [3, 20], "beer": 3, "carefulli": [3, 22], "chosen": 3, "bar": 3, "At": [3, 4, 13, 17], "week": [3, 22], "send": [3, 7], "offic": 3, "crate": 3, "dispatch": 3, "appropri": [3, 22], "interact": 3, "comput": [3, 9, 12], "tell": [3, 9], "suppli": 3, "minim": [3, 6, 11, 12, 28], "suppos": 3, "1000": 3, "4000": 3, "500": [3, 11], "900": 3, "1800": 3, "700": 3, "graphic": [3, 9], "represent": 3, "often": [3, 10, 17, 21, 22], "help": [3, 7, 14], "dure": [3, 9, 14, 15, 31], "good": [3, 10, 21, 31], "node": [3, 26, 31], "demand": [3, 4], "arc": 3, "connect": [3, 9], "diagram": [3, 22], "pub": 3, "a1": [3, 18], "ship": 3, "a5": 3, "b1": 3, "b5": 3, "let": [3, 22, 25], "x_": 3, "ldot": 3, "foral": 3, "mathbb": 3, "z": [3, 12], "fraction": [3, 20, 31], "loos": 3, "sometim": [3, 9, 10, 22], "due": 3, "factor": 3, "economi": 3, "scale": 3, "fix": [3, 7, 10, 14, 30], "truck": 3, "accommod": 3, "impli": [3, 9, 13, 17, 26], "go": [3, 7, 9, 12, 20, 21, 31], "jump": 3, "extra": [3, 5, 8], "later": [3, 4, 15], "cours": [3, 10, 17], "shall": 3, "capac": [3, 4], "deliv": 3, "assumpt": 3, "talk": [3, 9, 22], "financi": 3, "manag": 3, "she": 3, "dollar": 3, "routea1": 3, "routeb5": 3, "sum_": [3, 4, 30], "c_": 3, "come": [3, 9, 22, 30, 31], "consider": [3, 6, 14, 22], "exce": [3, 17], "similarli": 3, "less": 3, "Such": 3, "a2": [3, 9, 18], "a3": 3, "a4": 3, "b2": 3, "b3": 3, "b4": 3, "s_w": 3, "avoid": 3, "lost": 3, "sale": 3, "penalti": [3, 11, 20, 30], "oversuppli": 3, "incur": 3, "_balance_": 3, "d_b": 3, "blend": [3, 5, 15], "beerdistributionproblem": 3, "associ": [3, 4, 17, 30], "sub": 3, "structur": [3, 6, 9, 12, 17, 23], "appear": 3, "easi": [3, 7, 9, 27], "makedict": 3, "previous": [3, 13, 31], "path": [3, 6, 10, 14, 20, 31], "made": [3, 12, 15, 24], "rout": 3, "var": [3, 31], "route_tupl": 3, "route_a_2": 3, "intern": [3, 12, 15, 31], "sum_of_transporting_cost": 3, "normal": [3, 17, 30], "turn": [3, 13, 17], "constrain": [3, 25], "max": [3, 4, 25, 31], "minimum": [3, 10], "sum_of_products_out_of_warehouse_": 3, "sum_of_products_into_bar": 3, "programm": [3, 17], "alwai": [3, 10, 17], "about": [3, 9, 11, 31], "detail": [3, 6, 10, 21, 22], "check": [3, 10, 13, 14, 30, 31], "integr": [3, 7, 14], "_balanced_": 3, "store": [3, 6, 9, 12, 17], "somewher": [3, 9], "purchas": [3, 4], "altern": [3, 10, 12], "sourc": [3, 8, 31], "substitut": 3, "5000": 3, "4100": 3, "sent": 3, "_dummy_": 3, "flow": 3, "dummi": 3, "origin": [3, 7, 12, 22], "expand": 3, "balanc": 3, "realist": 3, "stock": 3, "unbalanc": 3, "excess": 3, "get": [3, 6, 7, 9, 10, 12, 13, 18, 20, 31], "beerdistributionproblemwarehouseextens": 3, "beerdistributionproblemcompetitorextens": 3, "shipment": 3, "totalcost": 3, "____": 3, "___": 3, "rise": 3, "summari": [3, 7, 22], "mike": 3, "sullivan": [3, 15], "1234567": 3, "__________": 3, "forecast": 3, "schedul": 3, "_____": 3, "form": [3, 11, 18, 21, 22], "updat": [3, 17, 22], "cheaper": 3, "along": 3, "affect": [3, 17], "save": [3, 7, 12, 31], "reduc": [3, 9, 12], "decis": [4, 21, 22], "maker": 4, "materi": [4, 17], "labor": 4, "resourc": 4, "maxim": [4, 6, 20, 28], "profit": [4, 22], "compani": 4, "gtc": 4, "wrench": 4, "plier": 4, "subject": [4, 12], "steel": 4, "machin": [4, 7, 9, 22], "capabl": 4, "mold": 4, "assembli": 4, "market": 4, "earn": 4, "unknown": [4, 17, 31], "period": [4, 22], "revenu": [4, 22], "uncertainti": [4, 22], "scenario": 4, "probabl": [4, 9], "packag": [4, 7, 9, 12, 16, 20, 31], "vector": [4, 30], "databas": 4, "price": [4, 9, 12, 30], "130": 4, "capsteel": 4, "27": 4, "capmold": 4, "21": [4, 17, 26], "lb": [4, 25], "capacity_ub": 4, "15": [4, 17, 26], "16": [4, 26], "steelpric": 4, "58": 4, "pscenario": 4, "25": [4, 17], "wrenchearn": 4, "160": 4, "90": 4, "plierearn": 4, "capassembli": 4, "pricescenario": 4, "priceitem": 4, "sublist": 4, "zip": [4, 17], "price_dict": 4, "capacity_dict": 4, "steel_dict": 4, "molding_dict": 4, "assembly_dict": 4, "production_var": 4, "steelpurchas": 4, "goal": [4, 22], "net": 4, "gemstoneprob": 4, "gemston": 4, "tool": [4, 31], "base": [4, 7, 8, 9, 12, 20, 28, 30, 31], "notat": 4, "summat": 4, "differenti": 4, "comparison": 4, "appli": [4, 8, 11, 30], "two_stage_stochastic_gemstonetool": 4, "loui": 4, "luangkesorn": 4, "lugerpitt": 4, "gmail": [4, 15], "com": [4, 7, 10, 15, 16, 18, 23, 25, 26, 31], "2019": [4, 13], "http": [4, 10, 16, 18, 23, 25, 26, 27, 31], "github": [4, 7, 10, 16, 18, 20, 23, 25, 26, 27, 31], "lluang": 4, "titl": 4, "taken": [4, 10, 12, 13], "bertsima": 4, "freund": 4, "4th": 4, "dmd": 4, "cap_": 4, "hour": [4, 22], "ub_w": 4, "ub_p": 4, "w_": 4, "p_": 4, "5w_": 4, "nonneg": 4, "consol": [4, 9, 31], "A": [5, 7, 9, 11, 12, 13, 15, 17, 18, 22, 25, 30, 31], "problem": [5, 6, 9, 12, 14, 15, 17, 18, 20, 21, 30, 31], "descript": 5, "formul": [5, 6, 15, 31], "partit": [5, 12, 13, 15], "sudoku": [5, 15, 25], "expert": 5, "transport": [5, 15], "extens": 5, "ongo": 5, "monitor": [5, 22], "stage": [5, 15], "plan": [5, 15], "organ": 6, "configur": [6, 14, 15, 18, 31], "instal": [6, 8, 10, 15, 19, 31], "system": [6, 7, 9, 10, 18], "smallest": 6, "mipcl_api": 6, "mipcl_cmd": [6, 9, 31], "lpsolver": [6, 31], "lpsolver_cmd": [6, 31], "core": 6, "command": [6, 7, 9, 10, 17, 20, 31], "subprocess": [6, 31], "pulpsolvererror": [6, 10, 31], "constant": [6, 12, 15, 21, 29, 30], "warn": 6, "__init__": [6, 17], "self": [6, 12, 17, 28, 30, 31], "keepfil": [6, 9, 31], "mip": [6, 9, 14, 20, 21, 26, 30, 31], "msg": [6, 9, 10, 13, 18, 31], "timelimit": [6, 9, 31], "thing": [6, 9, 10, 31], "declar": [6, 23], "level": [6, 9, 17, 31], "some": [6, 7, 9, 10, 11, 12, 13, 17, 21, 30, 31], "argument": [6, 9, 10, 13, 17, 30, 31], "ideal": 6, "convent": [6, 12], "initi": [6, 9, 13, 17, 30, 31], "parent": 6, "expect": [6, 20, 31], "execut": [6, 7, 9, 14, 18, 31], "rais": [6, 30, 31], "tmpmp": 6, "tmpsol": 6, "create_tmp_fil": [6, 31], "mp": [6, 9, 10, 14, 18, 30, 31], "sol": [6, 9], "sens": [6, 11, 12, 22, 28, 30], "swap": 6, "handl": [6, 10], "invers": 6, "checkduplicatevar": 6, "checklengthvar": 6, "writemp": [6, 10, 12, 30], "mpssens": [6, 30], "report": [6, 10, 18, 20, 26], "duplic": [6, 10], "except": [6, 17, 21, 28, 30, 31], "cmd": [6, 14, 20], "solfil": 6, "ismip": 6, "relax": [6, 20], "pipe": 6, "devnul": 6, "return_cod": 6, "stdout": 6, "stderr": 6, "undo": 6, "finish": 6, "error": [6, 14, 15], "lpstatusnotsolv": [6, 28], "status_sol": 6, "lpsolutionnosolutionfound": [6, 28], "readsol": [6, 31], "delete_tmp_fil": [6, 31], "assignstatu": 6, "lpstatusinfeas": [6, 28], "assignvarsv": 6, "executableextens": [6, 31], "mps_mipcl": 6, "modifi": [6, 7, 13, 17, 30], "_all_solv": 6, "coupl": 6, "test_pulp": [6, 7], "mipcl_cmdtest": 6, "basesolvertest": 6, "pulptest": [6, 18, 20], "solveinst": 6, "best": [6, 22, 26], "practic": 6, "account": [6, 7, 10, 12], "buildsolvermodel": [6, 9, 31], "callsolv": [6, 9, 31], "solutionstatu": 6, "findsolutionvalu": [6, 9, 31], "solvermodel": [6, 9, 31], "pointer": [6, 10, 31], "gurobipi": 6, "gurobi": [6, 13, 18, 20, 22, 26, 31], "permit": [6, 9, 12, 13, 27], "consist": 6, "minimalist": 7, "guid": [7, 9, 15, 17, 18], "setup": [7, 9, 20], "pr": [7, 10], "quick": 7, "repo": 7, "lint": 7, "doc": [7, 18, 31], "accur": 7, "submit": [7, 10], "top": [7, 17, 31], "git": [7, 18], "plain": 7, "feel": 7, "free": [7, 11, 20, 30], "client": [7, 22], "download": [7, 10, 17, 18, 20], "replac": [7, 11, 30], "pchtsp": [7, 15, 26, 27], "usernam": 7, "That": 7, "wil": 7, "insid": [7, 9, 10, 17, 18, 30], "virtual": [7, 18], "environ": [7, 14, 18], "linux": [7, 9, 18, 31], "mac": [7, 9], "window": [7, 9, 18], "cd": [7, 9, 18, 20], "python3": [7, 9], "venv": 7, "bin": [7, 9], "activ": [7, 14], "pip": [7, 18], "dev": [7, 18, 31], "develop": [7, 15], "link": [7, 15, 17], "version": [7, 9, 10, 13, 18, 20, 26, 31], "run_test": 7, "detect": 7, "ones": [7, 27], "issu": [7, 12, 14, 18], "repositori": 7, "style": 7, "quickest": 7, "And": [7, 10, 12, 17, 31], "easiest": [7, 18, 20], "id": 7, "learn": [7, 15, 17], "sphinx": [7, 18], "restructuredtext": 7, "html": [7, 18, 27, 31], "home": [7, 15, 18, 19, 31], "browser": [7, 18], "rebuild": 7, "re": [7, 9, 10, 12, 20], "commit": 7, "push": [7, 20], "some_modified_fil": 7, "messag": [7, 10, 13], "fork": 8, "clone": 8, "project": [8, 10, 22], "black": 8, "linter": 8, "formatt": 8, "document": [8, 9, 10, 15, 19], "pull": [8, 18], "inherit": 8, "actualsolv": [8, 30, 31], "defaultpath": [8, 31], "suit": [8, 31], "offici": [8, 14], "api": [8, 14, 15, 29], "typic": [9, 22], "pc": [9, 10], "concept": [9, 15, 19], "question": [9, 10], "helper": [9, 27, 30], "queri": 9, "pl": 9, "solver_list": 9, "listsolv": [9, 31], "glpk_cmd": [9, 20, 31], "pyglpk": [9, 20, 31], "cplex_cmd": [9, 13, 20, 31], "cplex_dll": [9, 20], "gurobi_cmd": [9, 13, 20, 31], "mosek": [9, 18, 31], "xpress": [9, 13, 18, 20, 31], "pulp_cbc_cmd": [9, 10, 13, 20, 31], "coin_cmd": [9, 20, 31], "coinmp_dll": [9, 20, 31], "choco_cmd": [9, 31], "scip_cmd": [9, 31], "onlyavail": [9, 31], "current": [9, 17, 20, 21, 31], "constructor": 9, "getsolv": [9, 31], "sake": 9, "session": [9, 10], "applic": 9, "But": [9, 12], "knew": 9, "hard": [9, 22, 30], "drive": [9, 20], "match": [9, 15, 24], "trace": 9, "fairli": 9, "cross": 9, "platform": [9, 31], "among": 9, "interfac": [9, 12, 15, 29], "summar": 9, "group": [9, 14, 17], "librari": [9, 20, 31], "most": [9, 14, 15, 21, 26], "former": 9, "latter": 9, "via": [9, 10, 13, 18, 21, 22, 31], "happen": 9, "idea": 9, "both": [9, 12, 17], "mine": 9, "ibm": 9, "ilog": 9, "cplex_studio128": 9, "x64_win64": 9, "ex": [9, 14, 18], "imagin": [9, 12], "path_to_cplex": 9, "_var": 9, "_var2": 9, "someth": [9, 10, 28], "absolut": [9, 31], "cumbersom": 9, "random": [9, 31], "correctli": [9, 10, 13, 20], "forget": 9, "until": [9, 17], "magic": 9, "enough": [9, 12], "dynam": [9, 31], "deploi": 9, "_cmd": 9, "whatev": 9, "reason": [9, 12, 21], "safe": 9, "sorri": 9, "procedur": 9, "explicit": [9, 17, 22], "my": 9, "adapt": [9, 13], "bashrc": 9, "ve": [9, 13, 30], "gui": [9, 20], "profil": 9, "bash": 9, "cplex_hom": 9, "opt": 9, "cpo_hom": 9, "cpoptim": 9, "x86": 9, "64_linux": 9, "ld_library_path": 9, "pythonpath": 9, "gurobi_hom": 9, "gurobi801": 9, "linux64": 9, "lib": 9, "plenti": 9, "By": [9, 20, 22], "keep": 9, "intermediari": 9, "mst": 9, "temp": 9, "tmp": [9, 31], "tmpdir": [9, 31], "With": [9, 17], "manual": 9, "put_some_alternative_path_her": 9, "xpress_pi": [9, 13, 31], "offer": [9, 12], "seri": 9, "faster": 9, "involv": [9, 10, 22], "disk": 9, "lot": [9, 12, 21], "extrem": 9, "rai": 9, "dual": [9, 20, 21], "work": [9, 10, 12, 13, 17, 20, 22, 31], "automat": [9, 12], "recomend": 9, "python_path": 9, "admin": 9, "sudo": [9, 18, 20], "load": [9, 13, 20, 23, 31], "mip_start": [9, 31], "some_mst_fil": 9, "backup": 9, "json": [9, 14, 30, 31], "solver_dict": 9, "todict": [9, 30, 31], "quit": 9, "warmstart": [9, 13, 30, 31], "tojson": [9, 30, 31], "some_file_nam": 9, "getsolverfromdict": [9, 31], "Or": [9, 12], "getsolverfromjson": [9, 31], "ujson": [9, 12], "fast": [9, 12, 17], "advic": 10, "year": 10, "answer": 10, "discuss": [10, 18], "coin": [10, 18, 22, 31], "stack": 10, "overflow": 10, "tag": 10, "stackoverflow": 10, "Of": 10, "site": [10, 20, 23, 25, 26, 27], "suffici": 10, "understand": [10, 17, 22], "old": 10, "highli": [10, 17], "recommend": [10, 15, 18], "common": 10, "nonetheless": 10, "reproduc": 10, "video": 10, "aim": [10, 22], "languag": [10, 19, 20], "share": [10, 31], "export": [10, 14, 15, 18, 30, 31], "pypi": [10, 18], "12": [10, 17, 31], "complet": [10, 12, 13], "path_to_cbc": 10, "precis": 10, "high": [10, 18, 31], "never": [10, 22, 25], "100000000000": 10, "special": [10, 25], "1200": 10, "09123642123": 10, "decim": 10, "round": [10, 17, 30, 31], "coeffici": [10, 12, 22, 30], "memori": [10, 31], "python32": 10, "python64": 10, "32": [10, 20], "bit": [10, 20], "even": [10, 31], "64": [10, 20, 31], "mpsfile": 10, "recent": 10, "slack": [10, 20, 31], "post": 10, "built": [10, 18], "log": [10, 15, 24, 31], "regard": 10, "logpath": [10, 31], "support": [10, 14, 17, 23, 25, 26, 30, 31], "bring": 10, "appar": 10, "access": [10, 14, 17, 18, 20], "imposs": 10, "permiss": 10, "launch": 10, "410": 10, "384": 10, "elastic": [11, 30], "denot": [11, 17], "interv": 11, "instanti": [11, 31], "subclass": 11, "lpconstraint": [11, 18, 25, 28, 30], "target": [11, 30], "makeelasticsubproblem": [11, 30], "fixedelasticsubproblem": [11, 30], "rh": [11, 30], "elasticproblem": 11, "penalty_valu": 11, "proportionfreebound": [11, 30], "freebound_valu": 11, "proportionfreeboundlist": [11, 30], "freebound_list_valu": 11, "real": [11, 17, 21], "symmetr": 11, "proport": [11, 30], "asymmetr": 11, "point": [11, 21, 22, 31], "magnitud": 11, "assess": 11, "examin": [11, 22], "constraint_1": 11, "ex_1": 11, "elasticproblem_1": 11, "01": 11, "constraint_2": 11, "ex_2": 11, "elasticproblem_2": 11, "02": 11, "05": [11, 30], "side": [11, 30], "too": [12, 22], "industri": [12, 22], "flexibl": 12, "fit": [12, 30], "lose": [12, 27], "restor": 12, "identifi": [12, 17, 22, 30], "shadow": [12, 30], "test_export_dict_mip": 12, "y": [12, 18, 25, 30], "obj": [12, 28, 30], "c1": 12, "c2": 12, "c3": 12, "to_dict": [12, 30, 31], "pi": 12, "sol_statu": [12, 31], "sos1": 12, "sos2": 12, "dj": [12, 30], "var1": 12, "prob1": 12, "from_dict": [12, 30], "TO": 12, "size": [12, 21], "frommp": 12, "wedding_seating_model": 12, "to_json": [12, 31], "wedding_var": 12, "wedding_model": 12, "from_json": 12, "inspect": 12, "table_": 12, "_": 12, "longer": [12, 17, 20], "unfortun": 12, "flat": [12, 27], "concaten": 12, "mention": 12, "nevertheless": 12, "strict": 12, "clever": 12, "pars": 12, "reconstruct": 12, "modul": [12, 17, 20, 31], "transform": [12, 27], "np": 12, "custom": 12, "encod": 12, "npencod": 12, "jsonencod": 12, "isinst": 12, "int": [12, 17, 30, 31], "elif": [12, 17], "float": [12, 17, 30, 31], "ndarrai": 12, "tolist": 12, "super": 12, "cl": 12, "cast": 12, "valid": [13, 22], "parcial": 13, "gain": 13, "cbc_cmd": 13, "cplex_pi": [13, 20, 31], "afterward": 13, "yet": 13, "setinitialvalu": [13, 30], "reus": 13, "confirm": 13, "fixvalu": [13, 30], "_variabl": 13, "upperbound": 13, "click": [13, 20], "franco": [13, 15], "peschiera": [13, 15], "temporari": [14, 31], "warm": [14, 15, 31], "elast": [14, 15, 20, 30], "caveat": 14, "panda": [14, 26, 27], "numpi": [14, 15, 24], "debug": [14, 15, 31], "feedback": [14, 22], "ask": [14, 22], "cbc": [14, 18, 20, 26, 31], "jupyt": 14, "notebook": 14, "anaconda": 14, "conda": 14, "content": [15, 17, 26], "process": [15, 19, 21], "introduct": 15, "instruct": [15, 18, 20], "earlier": 15, "relev": [15, 17, 22, 30], "topic": 15, "basic": [15, 19], "ampli": [15, 19, 24], "readm": [15, 19], "plugin": 15, "orlog": [15, 24], "OR": [15, 18, 24], "parser": [15, 24, 31], "pytup": [15, 24], "smart": [15, 24], "ampl": [15, 24], "manipul": [15, 20, 24, 27], "pulp_lparrai": [15, 24], "heaven": [15, 24], "team": 15, "auckland": 15, "ac": 15, "nz": 15, "anita": 15, "kean": 15, "andrew": 15, "mason": 15, "michael": 15, "move": [16, 17], "willu47": [16, 23], "excel": [17, 22], "internet": 17, "freeli": [17, 20], "book": 17, "dive": 17, "Into": 17, "host": 17, "beginn": 17, "websit": 17, "beginnersguid": 17, "nonprogramm": 17, "fundament": 17, "principl": 17, "mainli": 17, "focu": 17, "prompt": [17, 20], "sequenc": 17, "indent": 17, "govern": 17, "colon": 17, "observ": [17, 22], "bottom": 17, "demonstr": 17, "ingredientslist": 17, "water": 17, "jelli": 17, "No": [17, 28, 31], "condit": [17, 21], "told": 17, "eventu": 17, "iter": [17, 30], "testlist": 17, "togeth": 17, "stop": [17, 31], "creation": 17, "pt": 17, "14": 17, "wherebi": 17, "consecut": 17, "unlik": 17, "curli": 17, "game": 17, "dimens": 17, "lamb": 17, "under": [17, 22, 25], "parenthes": 17, "concis": [17, 22], "odd": 17, "11": 17, "13": 17, "17": 17, "19": 17, "23": [17, 26], "modulu": 17, "remaind": 17, "divis": 17, "fifth": 17, "20": [17, 31], "scratch": 17, "challeng": 17, "prime": 17, "perfect": 17, "throughout": 17, "hash": 17, "symbol": [17, 28], "intend": 17, "usabl": [17, 31], "asterisk": 17, "inputparameter1": 17, "inputparameter2": 17, "bodi": 17, "matter": 17, "keyword": [17, 25, 30, 31], "string_append": 17, "tail": 17, "end_messag": 17, "eol": 17, "newbegin": 17, "stringov": 17, "newbeginendstringov": 17, "endmessag": 17, "word": 17, "pattern": 17, "instanc": [17, 30, 31], "lengthsdict": 17, "__str__": 17, "trim": 17, "act": 17, "spongerol": 17, "trimvalu": 17, "04": 17, "totalrolllength": 17, "lenopt": 17, "length": [17, 30], "patterna": 17, "glpk": [18, 20, 31], "clp": [18, 31], "choco": [18, 31], "mipcl": [18, 31], "scip": [18, 31], "fscip": [18, 31], "latest": [18, 20, 31], "osx": 18, "newer": 18, "io": [18, 27], "myproblem": 18, "sovler": 18, "a1x1": 18, "a2x2": 18, "anxn": 18, "lpconstraintvar": [18, 30], "construct": [18, 22], "wise": 18, "lpdot": 18, "xn": 18, "local": 18, "termin": 18, "root": [18, 20], "bug": 18, "patch": 18, "welcom": 18, "copyright": [18, 31], "roi": 18, "2003": 18, "2005": 18, "licens": [18, 20], "arrai": [19, 31], "mathemat": [20, 21], "numer": [20, 28, 30], "extern": 20, "far": 20, "pleas": [20, 31], "python34": 20, "zipfil": 20, "suitabl": [20, 30, 31], "desktop": 20, "menu": 20, "navig": 20, "foldernam": 20, "stand": 20, "back": [20, 22], "idl": 20, "pydev": 20, "callabl": [20, 31], "debain": 20, "apt": 20, "util": 20, "academ": 20, "interpret": [20, 31], "bundl": 20, "pulptestal": 20, "subtract": 20, "lpaffineexpress": [20, 25, 30], "freebound": 20, "unchang": 20, "unavail": 20, "yaposib": [20, 31], "simplest": 21, "a_1": 21, "a_2": 21, "a_3": 21, "a_n": 21, "x_n": 21, "a_i": [21, 30], "x_i": [21, 30], "revis": [21, 22], "simplex": [21, 22], "primal": 21, "interior": [21, 22], "won": 21, "almost": 21, "ident": 21, "minor": 21, "enorm": 21, "research": [21, 22], "branch": [21, 31], "grow": 21, "exponenti": 21, "broken": 22, "down": 22, "consult": 22, "person": 22, "who": 22, "invalid": 22, "alter": [22, 30], "incorpor": 22, "methodologi": 22, "translat": [22, 31], "term": [22, 30], "shortcut": 22, "popul": 22, "neat": 22, "tidi": 22, "simplif": 22, "rigour": 22, "abstract": 22, "spend": 22, "subsequ": 22, "significantli": 22, "quantifi": 22, "restrict": 22, "captur": 22, "interdepend": 22, "pai": 22, "attent": 22, "reflect": [22, 30], "rel": [22, 31], "understood": 22, "algorithm": [22, 31], "techniqu": 22, "heurist": [22, 31], "accuraci": 22, "futur": 22, "robust": 22, "variou": 22, "fail": 22, "sort": [22, 30], "tactic": 22, "strateg": 22, "invest": 22, "factori": 22, "importantli": 22, "why": 22, "crucial": 22, "stakehold": 22, "consequ": 22, "intellig": 22, "chanc": 22, "benefit": 22, "identif": 22, "opportun": 22, "syntax": 23, "hood": 25, "heavi": 25, "lift": [25, 31], "power": 25, "broadcast": 25, "reshap": 25, "trick": 25, "galor": 25, "ever": 25, "clip": 25, "boolean": 25, "wide": 25, "axi": 25, "qdbp": 25, "lparrai": 25, "unconstrain": 25, "supersudoku": 25, "puzzl": 25, "digit": 25, "coordin": 25, "distinct": 25, "ub": 25, "create_anon": 25, "board": 25, "pp": 25, "lpbinari": [25, 28], "onedigitpercel": 25, "maxoneperrow": 25, "maxonepercol": 25, "maxoneperbox": 25, "maxoneperxi": 25, "argmax": 25, "cut": [26, 31], "gap": [26, 31], "datafram": 26, "progress": 26, "ol": 26, "get_info_log_solv": 26, "gurobi700": 26, "app1": 26, "best_bound": 26, "41": 26, "best_solut": 26, "cut_info": 26, "167": 26, "97894": 26, "cliqu": 26, "gomori": [26, 31], "mir": 26, "22": 26, "first_relax": 26, "178": 26, "94318": 26, "first_solut": 26, "matrix": 26, "53467": 26, "nonzero": 26, "199175": 26, "26871": 26, "matrix_post": 26, "35616": 26, "149085": 26, "22010": 26, "526": 26, "presolv": [26, 31], "4861": 26, "17851": 26, "nodesleft": 26, "depth": 26, "cutsbestbound": 26, "itpnod": 26, "336": 26, "171": 26, "91701": 26, "319": 26, "170": 26, "97660": 26, "317": 26, "26": 26, "roottim": 26, "sol_cod": 26, "status_cod": 26, "46": 26, "superdict": 27, "tuplist": 27, "pyton": 27, "loss": 27, "chain": 27, "\u00e0": 27, "la": 27, "vice": 27, "versa": 27, "nest": 27, "ton": 27, "shorten": 27, "readabl": 27, "hopefulli": 28, "pulperror": [28, 31], "arg": [28, 30, 31], "with_traceback": 28, "tb": 28, "__traceback__": 28, "isiter": 28, "lpstatusoptim": 28, "lpstatusunbound": 28, "lpstatusundefin": 28, "lpsolut": 28, "lpsolutionoptim": 28, "lpsolutionstatusinfeas": 28, "lpsolutionstatusunbound": 28, "lpsolutionintegerfeas": 28, "lpsens": 28, "lpconstrainteq": [28, 30], "lpconstraintl": [28, 30], "lpconstraintg": [28, 30], "lpconstraintsens": 28, "lpfractionconstraint": 30, "fractionelasticsubproblem": 30, "nonam": 30, "three": 30, "kwarg": [30, 31], "roundsolut": 30, "epsint": 30, "1e": [30, 31], "ep": 30, "07": 30, "setobject": 30, "columnwis": 30, "filenam": [30, 31], "writeso": 30, "max_length": 30, "renam": 30, "with_objsens": 30, "bool": [30, 31], "classmethod": [30, 31], "fromjson": 30, "lpelement": 30, "categori": 30, "addvariabletoconstraint": 30, "indexstart": 30, "prefix": [30, 31], "part": 30, "itself": 30, "deprec": [30, 31], "fromdict": 30, "isfix": 30, "valueerror": 30, "infti": 30, "ordereddict": 30, "initialis": [30, 31], "undetermin": 30, "equival": 30, "x_name": 30, "x_0": 30, "textsf": 30, "ascplexlpaffineexpress": 30, "affin": 30, "ascplexvariablesonli": 30, "reset": 30, "sorted_kei": 30, "ascplexlpconstraint": 30, "changerh": 30, "_dict": 30, "subproblem": 30, "violat": 30, "alternam": 30, "anonym": 30, "deelastic": 30, "de": 30, "finddifferencefromrh": 30, "lh": 30, "findlhsvalu": 30, "isviol": 30, "reelastic": 30, "orgset": 30, "maxcardin": 30, "allpermut": 30, "static": 31, "alia": 31, "coin_mp": 31, "dll": 31, "forc": 31, "exit": 31, "epgap": 31, "toler": 31, "gaprel": 31, "gapab": 31, "coinmp_dll_load_dl": 31, "fracgap": 31, "maxsecond": 31, "strong": 31, "thread": 31, "timemod": 31, "elaps": 31, "maxnod": 31, "knapsack": 31, "probe": 31, "count": 31, "wall": 31, "cpu": 31, "reach": 31, "getopt": 31, "get_statu": 31, "readsol_lp": 31, "reducedcost": 31, "shadowpric": 31, "readsol_mp": 31, "variablesnam": 31, "constraintsnam": 31, "objectivenam": 31, "solve_cbc": 31, "use_mp": 31, "writesol": 31, "copt": 31, "solvervar": 31, "solverconstraint": 31, "callback": 31, "copt_cmd": 31, "logfil": 31, "param": 31, "borrow": 31, "writemst": 31, "lpvar": 31, "copt_dll": 31, "err": 31, "typeerror": 31, "byte": 31, "pathlik": 31, "nonetyp": 31, "copt_dll_loadlib": 31, "maxmemori": 31, "bind": 31, "wrap": 31, "against": 31, "modulenotfounderror": 31, "fscip_cmd": 31, "multi": 31, "fiberscip": 31, "fscip_status": 31, "no_solution_status": 31, "parse_object": 31, "parse_statu": 31, "parse_vari": 31, "env": 31, "highs_cmd": 31, "juliabinarywrapp": 31, "highs_jll": 31, "jl": 31, "releas": 31, "compil": 31, "solution_styl": 31, "actualresolv": 31, "getcplexstylearrai": 31, "sensedict": 31, "lpvarcategori": 31, "lpobjsens": 31, "infbound": 31, "cdll": 31, "settmpdir": 31, "reasonn": 31, "silent_remov": 31, "precompil": 31, "pulp_cbc_path": 31, "runner": 31, "solverdir": 31, "christoph": 31, "mari": 31, "duquesn": 31, "2012": 31, "configpars": 31, "scip_status": 31, "restart": 31, "stall": 31, "interrupt": 31, "scip_pi": 31, "targetgap": 31, "heurfreq": 31, "heurstra": 31, "covercut": 31, "frequenc": 31, "tree": 31, "search": 31, "strategi": 31, "inequ": 31, "nodeselect": 31, "heurdepth": 31, "www": 31, "fico": 31, "chapter7": 31, "quote_path": 31, "quot": 31, "doubl": 31, "escap": 31, "charact": 31, "tcl": 31, "shell": 31, "attrfil": 31, "writeslxsol": 31, "slx": 31, "solutionn": 31, "xpress_cmd": 31, "prepar": 31, "tweak": 31, "low": 31, "getattribut": 31, "osi": 31, "byref": 31, "offset": 31, "lookalik": 31, "clock": 31, "monoton": 31, "backward": 31, "configsolv": 31, "design": 31, "coptstr": 31, "ctypesarrayfil": 31, "mylist": 31, "ctype": 31, "c_doubl": 31, "get_solv": 31, "get_solver_from_dict": 31, "get_solver_from_json": 31, "operating_system": 31, "arch": 31, "list_solv": 31, "mktemp": 31, "suffix": 31, "dir": 31, "mkstemp": 31, "accept": 31, "unsaf": 31, "AND": 31, "NOT": 31, "BE": 31, "around": 31, "beaten": 31, "punch": 31, "setconfiginform": 31, "moment": 31, "to_str": 31, "_obj": 31, "uuid4": 31, "uuid": 31}, "objects": {"": [[30, 0, 0, "-", "pulp"]], "pulp": [[30, 1, 1, "", "FixedElasticSubProblem"], [30, 1, 1, "", "LpAffineExpression"], [30, 1, 1, "", "LpConstraint"], [30, 1, 1, "", "LpElement"], [30, 1, 1, "", "LpProblem"], [30, 1, 1, "", "LpVariable"], [30, 4, 1, "", "allcombinations"], [30, 4, 1, "", "allpermutations"], [31, 0, 0, "-", "apis"], [30, 4, 1, "", "combination"], [28, 0, 0, "-", "constants"], [30, 4, 1, "", "lpSum"], [30, 4, 1, "", "permutation"], [30, 4, 1, "", "value"]], "pulp.FixedElasticSubProblem": [[30, 2, 1, "", "alterName"], [30, 2, 1, "", "deElasticize"], [30, 2, 1, "", "findDifferenceFromRHS"], [30, 2, 1, "", "findLHSValue"], [30, 2, 1, "", "isViolated"], [30, 2, 1, "", "reElasticize"]], "pulp.LpAffineExpression": [[30, 2, 1, "", "asCplexLpAffineExpression"], [30, 2, 1, "", "asCplexVariablesOnly"], [30, 2, 1, "", "copy"], [30, 2, 1, "", "sorted_keys"], [30, 2, 1, "", "toDict"], [30, 2, 1, "", "to_dict"]], "pulp.LpConstraint": [[30, 2, 1, "", "asCplexLpConstraint"], [30, 2, 1, "", "changeRHS"], [30, 2, 1, "", "copy"], [30, 2, 1, "", "fromDict"], [30, 2, 1, "", "from_dict"], [30, 2, 1, "", "makeElasticSubProblem"], [30, 2, 1, "", "toDict"]], "pulp.LpProblem": [[30, 3, 1, "", "constraints"], [30, 2, 1, "", "fromJson"], [30, 3, 1, "", "objective"], [30, 2, 1, "", "roundSolution"], [30, 2, 1, "", "setObjective"], [30, 2, 1, "", "solve"], [30, 3, 1, "", "status"], [30, 2, 1, "", "toJson"], [30, 2, 1, "", "variables"], [30, 2, 1, "", "writeLP"], [30, 2, 1, "", "writeMPS"]], "pulp.LpVariable": [[30, 2, 1, "", "addVariableToConstraints"], [30, 2, 1, "", "dicts"], [30, 2, 1, "", "fixValue"], [30, 2, 1, "", "fromDict"], [30, 2, 1, "", "from_dict"], [30, 2, 1, "", "isFixed"], [30, 2, 1, "", "setInitialValue"], [30, 2, 1, "", "toDict"], [30, 2, 1, "", "to_dict"]], "pulp.apis": [[31, 1, 1, "", "CHOCO_CMD"], [31, 3, 1, "", "COIN"], [31, 1, 1, "", "COINMP_DLL"], [31, 4, 1, "", "COINMP_DLL_load_dll"], [31, 1, 1, "", "COIN_CMD"], [31, 1, 1, "", "COPT"], [31, 1, 1, "", "COPT_CMD"], [31, 1, 1, "", "COPT_DLL"], [31, 4, 1, "", "COPT_DLL_loadlib"], [31, 3, 1, "", "CPLEX"], [31, 1, 1, "", "CPLEX_CMD"], [31, 1, 1, "", "CPLEX_PY"], [31, 3, 1, "", "FSCIP"], [31, 1, 1, "", "FSCIP_CMD"], [31, 3, 1, "", "GLPK"], [31, 1, 1, "", "GLPK_CMD"], [31, 1, 1, "", "GUROBI"], [31, 1, 1, "", "GUROBI_CMD"], [31, 1, 1, "", "HiGHS"], [31, 1, 1, "", "HiGHS_CMD"], [31, 1, 1, "", "LpSolver"], [31, 1, 1, "", "LpSolver_CMD"], [31, 1, 1, "", "MIPCL_CMD"], [31, 1, 1, "", "MOSEK"], [31, 1, 1, "", "PULP_CBC_CMD"], [31, 1, 1, "", "PYGLPK"], [31, 3, 1, "", "Parser"], [31, 5, 1, "", "PulpSolverError"], [31, 3, 1, "", "SCIP"], [31, 1, 1, "", "SCIP_CMD"], [31, 1, 1, "", "SCIP_PY"], [31, 1, 1, "", "XPRESS"], [31, 3, 1, "", "XPRESS_CMD"], [31, 1, 1, "", "XPRESS_PY"], [31, 1, 1, "", "YAPOSIB"], [31, 4, 1, "", "byref"], [31, 4, 1, "", "clock"], [31, 4, 1, "", "configSolvers"], [31, 4, 1, "", "coptstr"], [31, 4, 1, "", "ctypesArrayFill"], [31, 4, 1, "", "getSolver"], [31, 4, 1, "", "getSolverFromDict"], [31, 4, 1, "", "getSolverFromJson"], [31, 4, 1, "", "get_solver"], [31, 4, 1, "", "get_solver_from_dict"], [31, 4, 1, "", "get_solver_from_json"], [31, 4, 1, "", "initialize"], [31, 4, 1, "", "listSolvers"], [31, 4, 1, "", "list_solvers"], [31, 4, 1, "", "mktemp"], [31, 4, 1, "", "setConfigInformation"], [31, 4, 1, "", "to_string"], [31, 4, 1, "", "uuid4"]], "pulp.apis.CHOCO_CMD": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"]], "pulp.apis.COINMP_DLL": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "name"]], "pulp.apis.COIN_CMD": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "copy"], [31, 2, 1, "", "defaultPath"], [31, 2, 1, "", "getOptions"], [31, 2, 1, "", "get_status"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol_LP"], [31, 2, 1, "", "readsol_MPS"], [31, 2, 1, "", "solve_CBC"], [31, 2, 1, "", "writesol"]], "pulp.apis.COPT": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "name"]], "pulp.apis.COPT_CMD": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"], [31, 2, 1, "", "writemst"]], "pulp.apis.COPT_DLL": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "err"], [31, 3, 1, "", "name"]], "pulp.apis.CPLEX_CMD": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 2, 1, "", "getOptions"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"], [31, 2, 1, "", "writesol"]], "pulp.apis.CPLEX_PY": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "err"], [31, 3, 1, "", "name"]], "pulp.apis.FSCIP_CMD": [[31, 3, 1, "", "FSCIP_STATUSES"], [31, 3, 1, "", "NO_SOLUTION_STATUSES"], [31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "parse_objective"], [31, 2, 1, "", "parse_status"], [31, 2, 1, "", "parse_variable"], [31, 2, 1, "", "readsol"]], "pulp.apis.GLPK_CMD": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"]], "pulp.apis.GUROBI": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "env"], [31, 3, 1, "", "name"]], "pulp.apis.GUROBI_CMD": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 2, 1, "", "getOptions"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"], [31, 2, 1, "", "writesol"]], "pulp.apis.HiGHS": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "name"]], "pulp.apis.HiGHS_CMD": [[31, 3, 1, "", "SOLUTION_STYLE"], [31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"]], "pulp.apis.LpSolver": [[31, 2, 1, "", "actualResolve"], [31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "copy"], [31, 2, 1, "", "getCplexStyleArrays"], [31, 3, 1, "", "name"], [31, 2, 1, "", "solve"], [31, 2, 1, "", "toDict"], [31, 2, 1, "", "toJson"], [31, 2, 1, "", "to_dict"], [31, 2, 1, "", "to_json"]], "pulp.apis.LpSolver_CMD": [[31, 2, 1, "", "copy"], [31, 2, 1, "", "create_tmp_files"], [31, 2, 1, "", "defaultPath"], [31, 2, 1, "", "delete_tmp_files"], [31, 2, 1, "", "executable"], [31, 2, 1, "", "executableExtension"], [31, 3, 1, "", "name"], [31, 2, 1, "", "setTmpDir"], [31, 2, 1, "", "silent_remove"]], "pulp.apis.MIPCL_CMD": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"]], "pulp.apis.MOSEK": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "name"]], "pulp.apis.PULP_CBC_CMD": [[31, 3, 1, "", "name"], [31, 3, 1, "", "pulp_cbc_path"]], "pulp.apis.PYGLPK": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "name"]], "pulp.apis.SCIP_CMD": [[31, 3, 1, "", "NO_SOLUTION_STATUSES"], [31, 3, 1, "", "SCIP_STATUSES"], [31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "readsol"]], "pulp.apis.SCIP_PY": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "name"]], "pulp.apis.XPRESS": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "defaultPath"], [31, 3, 1, "", "name"], [31, 2, 1, "", "quote_path"], [31, 2, 1, "", "readsol"], [31, 2, 1, "", "writeslxsol"]], "pulp.apis.XPRESS_PY": [[31, 2, 1, "", "actualResolve"], [31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 2, 1, "", "buildSolverModel"], [31, 2, 1, "", "callSolver"], [31, 2, 1, "", "findSolutionValues"], [31, 2, 1, "", "getAttribute"], [31, 3, 1, "", "name"]], "pulp.apis.YAPOSIB": [[31, 2, 1, "", "actualSolve"], [31, 2, 1, "", "available"], [31, 3, 1, "", "name"]], "pulp.constants": [[28, 6, 1, "", "LpConstraintEQ"], [28, 6, 1, "", "LpConstraintGE"], [28, 6, 1, "", "LpConstraintLE"], [28, 6, 1, "", "LpConstraintSenses"], [28, 6, 1, "", "LpContinuous"], [28, 6, 1, "", "LpMaximize"], [28, 6, 1, "", "LpMinimize"], [28, 6, 1, "", "LpSenses"], [28, 6, 1, "", "LpSolution"], [28, 6, 1, "", "LpStatus"], [28, 6, 1, "", "LpStatusInfeasible"], [28, 6, 1, "", "LpStatusNotSolved"], [28, 6, 1, "", "LpStatusOptimal"], [28, 6, 1, "", "LpStatusUnbounded"], [28, 6, 1, "", "LpStatusUndefined"], [28, 5, 1, "", "PulpError"], [28, 4, 1, "", "isiterable"]], "pulp.constants.PulpError": [[28, 3, 1, "", "args"], [28, 2, 1, "", "with_traceback"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:attribute", "4": "py:function", "5": "py:exception", "6": "py:data"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "function", "Python function"], "5": ["py", "exception", "Python exception"], "6": ["py", "data", "Python data"]}, "titleterms": {"A": [0, 1, 2, 3, 4], "blend": 0, "problem": [0, 1, 2, 3, 4, 10, 13, 22], "descript": [0, 2, 3, 22], "simplifi": 0, "formul": [0, 2, 3, 22], "identifi": [0, 2, 3], "decis": [0, 2, 3], "variabl": [0, 2, 3, 9, 12, 13, 30], "object": [0, 2, 3], "function": [0, 2, 3, 9, 17], "The": [0, 17, 22, 30], "constraint": [0, 2, 3, 11, 30], "solut": [0, 2, 3, 22], "full": 0, "set": 1, "partit": 1, "sudoku": 2, "an": [2, 9], "lp": 2, "extra": [2, 6], "expert": 2, "transport": 3, "pulp": [3, 6, 7, 9, 12, 15, 18, 20, 25, 28, 29, 30, 31], "model": [3, 12, 22], "extens": 3, "valid": 3, "storag": 3, "bui": 3, "In": 3, "present": [3, 22], "analysi": [3, 22], "ongo": 3, "monitor": 3, "two": 4, "stage": 4, "product": 4, "plan": 4, "case": 5, "studi": 5, "how": [6, 7, 9, 10, 12, 13], "add": 6, "new": 6, "solver": [6, 9, 13, 31], "exampl": [6, 12, 13, 18], "inherit": 6, "base": 6, "class": [6, 17, 30], "avail": 6, "method": 6, "actualsolv": 6, "defaultpath": 6, "make": [6, 7], "includ": 6, "test": [6, 7, 20], "suit": 6, "ad": 6, "offici": [6, 9], "api": [6, 9, 13, 31], "contribut": 7, "fork": 7, "clone": 7, "project": 7, "instal": [7, 9, 18, 20], "from": [7, 20], "sourc": [7, 20], "run": 7, "creat": 7, "appli": 7, "black": 7, "linter": 7, "formatt": 7, "build": [7, 18], "document": [7, 18, 29], "pull": 7, "request": 7, "develop": 8, "guid": [8, 14], "configur": 9, "check": 9, "which": 9, "ha": 9, "access": 9, "what": 9, "i": 9, "environ": 9, "type": [9, 12, 17], "integr": 9, "path": 9, "addit": 9, "per": 9, "cplex": 9, "gurobi": 9, "where": 9, "cmd": 9, "write": 9, "temporari": 9, "file": 9, "us": 9, "cplex_pi": 9, "specif": 9, "import": [9, 12, 17], "export": [9, 12], "debug": 10, "most": 10, "error": 10, "dure": 10, "solv": [10, 22], "give": 10, "feedback": 10, "ask": 10, "help": 10, "while": [10, 17], "try": 10, "execut": 10, "cbc": 10, "ex": 10, "infeas": 10, "jupyt": 10, "notebook": 10, "anaconda": 10, "conda": 10, "issu": 10, "elast": 11, "consider": 12, "1": 12, "json": 12, "mp": 12, "2": 12, "group": 12, "caveat": 12, "panda": 12, "numpi": [12, 25], "data": [12, 23], "warm": 13, "start": 13, "support": 13, "fill": 13, "valu": 13, "activ": 13, "mip": 13, "fix": 13, "whole": 13, "user": 14, "optim": [15, 22], "author": 15, "ampli": [16, 23], "basic": 17, "python": 17, "code": 17, "loop": 17, "statement": 17, "arrai": 17, "list": [17, 27], "tupl": [17, 27], "dictionari": [17, 27], "syntax": 17, "note": 17, "comprehens": 17, "other": 17, "languag": 17, "featur": 17, "comment": 17, "main": 19, "topic": 19, "home": 20, "pip": 20, "pypi": 20, "window": 20, "linux": 20, "your": 20, "optimis": [21, 22], "concept": 21, "linear": 21, "program": [21, 22], "integ": 21, "process": 22, "get": 22, "mathemat": 22, "perform": 22, "some": 22, "post": 22, "ampl": 23, "manipul": 23, "plugin": 24, "pulp_lparrai": 25, "x": 25, "match": 25, "made": 25, "heaven": 25, "orlog": 26, "OR": 26, "log": 26, "parser": 26, "pytup": 27, "smart": 27, "constant": 28, "intern": 29, "todo": 30, "lpproblem": 30, "express": 30, "combin": 30, "permut": 30, "interfac": 31}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"A Blending Problem": [[0, "a-blending-problem"]], "Problem Description": [[0, "problem-description"], [2, "problem-description"], [3, "problem-description"]], "Simplified Formulation": [[0, "simplified-formulation"]], "Identify the Decision Variables": [[0, "identify-the-decision-variables"], [2, "identify-the-decision-variables"], [3, "identify-the-decision-variables"]], "Formulate the Objective Function": [[0, "formulate-the-objective-function"], [2, "formulate-the-objective-function"], [3, "formulate-the-objective-function"]], "The Constraints": [[0, "the-constraints"]], "Solution to Simplified Problem": [[0, "solution-to-simplified-problem"]], "Full Formulation": [[0, "full-formulation"]], "Solution to Full Problem": [[0, "solution-to-full-problem"]], "A Set Partitioning Problem": [[1, "a-set-partitioning-problem"]], "A Sudoku Problem formulated as an LP": [[2, "a-sudoku-problem-formulated-as-an-lp"]], "Formulation": [[2, "formulation"], [3, "formulation"]], "Formulate the Constraints": [[2, "formulate-the-constraints"], [3, "formulate-the-constraints"]], "Solution": [[2, "solution"]], "Extra for Experts": [[2, "extra-for-experts"]], "A Transportation Problem": [[3, "a-transportation-problem"]], "PuLP Model": [[3, "pulp-model"]], "Extensions": [[3, "extensions"]], "Validation": [[3, "validation"]], "Storage and \u201cBuying In\u201d": [[3, "storage-and-buying-in"]], "Presentation of Solution and Analysis": [[3, "presentation-of-solution-and-analysis"]], "Ongoing Monitoring": [[3, "ongoing-monitoring"]], "A Two Stage Production Planning Problem": [[4, "a-two-stage-production-planning-problem"]], "Case Studies": [[5, "case-studies"]], "How to add a new solver to PuLP": [[6, "how-to-add-a-new-solver-to-pulp"]], "Example": [[6, "example"]], "Inheriting base classes": [[6, "inheriting-base-classes"]], "available method": [[6, "available-method"]], "actualSolve method": [[6, "actualsolve-method"]], "defaultPath method": [[6, "defaultpath-method"]], "Making the solver available to PuLP": [[6, "making-the-solver-available-to-pulp"]], "Including the solver in tests suite": [[6, "including-the-solver-in-tests-suite"]], "Extra: adding a official solver API": [[6, "extra-adding-a-official-solver-api"]], "How to contribute to PuLP": [[7, "how-to-contribute-to-pulp"]], "Forking PuLP": [[7, "forking-pulp"]], "Cloning the project": [[7, "cloning-the-project"]], "Installing from source": [[7, "installing-from-source"]], "Running tests": [[7, "running-tests"]], "Creating a test": [[7, "creating-a-test"]], "Applying the black linter / formatter": [[7, "applying-the-black-linter-formatter"]], "Building the documentation": [[7, "building-the-documentation"], [18, "building-the-documentation"]], "Making a Pull Request": [[7, "making-a-pull-request"]], "Developer Guides": [[8, "developer-guides"]], "How to configure a solver in PuLP": [[9, "how-to-configure-a-solver-in-pulp"]], "Checking which solvers PuLP has access to": [[9, "checking-which-solvers-pulp-has-access-to"]], "What is an environment variable": [[9, "what-is-an-environment-variable"]], "Types of PuLP integrations (API) to solvers": [[9, "types-of-pulp-integrations-api-to-solvers"]], "Configuring the path to the solver": [[9, "configuring-the-path-to-the-solver"]], "Additional environment variables per solver": [[9, "additional-environment-variables-per-solver"]], "CPLEX": [[9, "cplex"]], "GUROBI": [[9, "gurobi"]], "Configuring where the CMD solvers write their temporary files": [[9, "configuring-where-the-cmd-solvers-write-their-temporary-files"]], "Using the official solver API": [[9, "using-the-official-solver-api"]], "Installing CPLEX_PY": [[9, "installing-cplex-py"]], "Installing GUROBI": [[9, "installing-gurobi"]], "Using solver-specific functionality": [[9, "using-solver-specific-functionality"]], "Importing and exporting a solver": [[9, "importing-and-exporting-a-solver"]], "How to debug most errors during solving": [[10, "how-to-debug-most-errors-during-solving"]], "Giving feedback and asking for help": [[10, "giving-feedback-and-asking-for-help"]], "Error while trying to execute cbc.exe": [[10, "error-while-trying-to-execute-cbc-exe"]], "Infeasible problems": [[10, "infeasible-problems"]], "Jupyter notebooks / anaconda / conda issues": [[10, "jupyter-notebooks-anaconda-conda-issues"]], "Elastic Constraints": [[11, "elastic-constraints"]], "How to import and export models in PuLP": [[12, "how-to-import-and-export-models-in-pulp"]], "Considerations": [[12, "considerations"]], "Example 1: json": [[12, "example-1-json"]], "Example 1: mps": [[12, "example-1-mps"]], "Example 2: json": [[12, "example-2-json"]], "Grouping variables": [[12, "grouping-variables"]], "Caveats with json and pandas / numpy data types": [[12, "caveats-with-json-and-pandas-numpy-data-types"]], "How to warm-start a solver": [[13, "how-to-warm-start-a-solver"]], "Supported solver APIs": [[13, "supported-solver-apis"]], "Example problem": [[13, "example-problem"]], "Filling a variable with a value": [[13, "filling-a-variable-with-a-value"]], "Activating MIP start": [[13, "activating-mip-start"]], "Fixing a variable": [[13, "fixing-a-variable"]], "Whole Example": [[13, "whole-example"]], "User Guides": [[14, "user-guides"]], "Optimization with PuLP": [[15, "optimization-with-pulp"]], "Authors": [[15, "authors"]], "Amply": [[16, "amply"]], "Basic Python Coding": [[17, "basic-python-coding"]], "Loops in Python": [[17, "loops-in-python"]], "for Loop": [[17, "for-loop"]], "while Loop": [[17, "while-loop"]], "The if statement": [[17, "the-if-statement"]], "Array types in python": [[17, "array-types-in-python"]], "Lists": [[17, "lists"]], "Tuples": [[17, "tuples"]], "Dictionaries": [[17, "dictionaries"]], "List/Tuple/Dictionary Syntax Note": [[17, "list-tuple-dictionary-syntax-note"]], "List Comprehensions": [[17, "list-comprehensions"]], "Other important language features": [[17, "other-important-language-features"]], "Commenting in Python": [[17, "commenting-in-python"]], "Import Statement": [[17, "import-statement"]], "Functions": [[17, "functions"]], "Classes": [[17, "classes"]], "pulp": [[18, "pulp"]], "Installation": [[18, "installation"], [20, "id1"]], "Examples": [[18, "examples"]], "Documentation": [[18, "documentation"]], "Main Topics": [[19, "main-topics"]], "Installing PuLP at Home": [[20, "installing-pulp-at-home"]], "Pip and pypi installation": [[20, "pip-and-pypi-installation"]], "Windows installation from source": [[20, "windows-installation-from-source"]], "Linux Installation": [[20, "linux-installation"]], "Testing your PuLP installation": [[20, "testing-your-pulp-installation"]], "Optimisation Concepts": [[21, "optimisation-concepts"]], "Linear Programing": [[21, "linear-programing"]], "Integer Programing": [[21, "integer-programing"]], "The Optimisation Process": [[22, "the-optimisation-process"]], "The Modeling Process": [[22, "the-modeling-process"]], "Getting the Problem Description": [[22, "getting-the-problem-description"]], "Formulating the mathematical program": [[22, "formulating-the-mathematical-program"]], "Solving the mathematical program": [[22, "solving-the-mathematical-program"]], "Performing some post-optimal analysis": [[22, "performing-some-post-optimal-analysis"]], "Presenting the solution and analysis": [[22, "presenting-the-solution-and-analysis"]], "amply: AMPL data manipulation": [[23, "amply-ampl-data-manipulation"]], "Plugins": [[24, "plugins"]], "PuLP_LPARRAY: PuLP x NumPy, a match made in heaven": [[25, "pulp-lparray-pulp-x-numpy-a-match-made-in-heaven"]], "orloge: OR logs parser": [[26, "orloge-or-logs-parser"]], "pytups: smart dictionaries and tuple lists": [[27, "pytups-smart-dictionaries-and-tuple-lists"]], "pulp.constants": [[28, "module-pulp.constants"]], "PuLP Internal Documentation": [[29, "pulp-internal-documentation"]], "pulp: Pulp classes": [[30, "module-pulp"]], "Todo": [[30, "id1"]], "The LpProblem Class": [[30, "the-lpproblem-class"]], "Variables and Expressions": [[30, "variables-and-expressions"]], "Constraints": [[30, "constraints"]], "Combinations and Permutations": [[30, "combinations-and-permutations"]], "pulp.apis Interface to Solvers": [[31, "module-pulp.apis"]]}, "indexentries": {"lpconstrainteq (in module pulp.constants)": [[28, "pulp.constants.LpConstraintEQ"]], "lpconstraintge (in module pulp.constants)": [[28, "pulp.constants.LpConstraintGE"]], "lpconstraintle (in module pulp.constants)": [[28, "pulp.constants.LpConstraintLE"]], "lpconstraintsenses (in module pulp.constants)": [[28, "pulp.constants.LpConstraintSenses"]], "lpcontinuous (in module pulp.constants)": [[28, "pulp.constants.LpContinuous"]], "lpmaximize (in module pulp.constants)": [[28, "pulp.constants.LpMaximize"]], "lpminimize (in module pulp.constants)": [[28, "pulp.constants.LpMinimize"]], "lpsenses (in module pulp.constants)": [[28, "pulp.constants.LpSenses"]], "lpsolution (in module pulp.constants)": [[28, "pulp.constants.LpSolution"]], "lpstatus (in module pulp.constants)": [[28, "pulp.constants.LpStatus"]], "lpstatusinfeasible (in module pulp.constants)": [[28, "pulp.constants.LpStatusInfeasible"]], "lpstatusnotsolved (in module pulp.constants)": [[28, "pulp.constants.LpStatusNotSolved"]], "lpstatusoptimal (in module pulp.constants)": [[28, "pulp.constants.LpStatusOptimal"]], "lpstatusunbounded (in module pulp.constants)": [[28, "pulp.constants.LpStatusUnbounded"]], "lpstatusundefined (in module pulp.constants)": [[28, "pulp.constants.LpStatusUndefined"]], "pulperror": [[28, "pulp.constants.PulpError"]], "args (pulp.constants.pulperror attribute)": [[28, "pulp.constants.PulpError.args"]], "isiterable() (in module pulp.constants)": [[28, "pulp.constants.isiterable"]], "module": [[28, "module-pulp.constants"], [30, "module-pulp"], [31, "module-pulp.apis"]], "pulp.constants": [[28, "module-pulp.constants"]], "with_traceback() (pulp.constants.pulperror method)": [[28, "pulp.constants.PulpError.with_traceback"]], "fixedelasticsubproblem (class in pulp)": [[30, "pulp.FixedElasticSubProblem"]], "lpaffineexpression (class in pulp)": [[30, "pulp.LpAffineExpression"]], "lpconstraint (class in pulp)": [[30, "pulp.LpConstraint"]], "lpelement (class in pulp)": [[30, "pulp.LpElement"]], "lpproblem (class in pulp)": [[30, "pulp.LpProblem"]], "lpvariable (class in pulp)": [[30, "pulp.LpVariable"]], "addvariabletoconstraints() (pulp.lpvariable method)": [[30, "pulp.LpVariable.addVariableToConstraints"]], "allcombinations() (in module pulp)": [[30, "pulp.allcombinations"]], "allpermutations() (in module pulp)": [[30, "pulp.allpermutations"]], "altername() (pulp.fixedelasticsubproblem method)": [[30, "pulp.FixedElasticSubProblem.alterName"]], "ascplexlpaffineexpression() (pulp.lpaffineexpression method)": [[30, "pulp.LpAffineExpression.asCplexLpAffineExpression"]], "ascplexlpconstraint() (pulp.lpconstraint method)": [[30, "pulp.LpConstraint.asCplexLpConstraint"]], "ascplexvariablesonly() (pulp.lpaffineexpression method)": [[30, "pulp.LpAffineExpression.asCplexVariablesOnly"]], "changerhs() (pulp.lpconstraint method)": [[30, "pulp.LpConstraint.changeRHS"]], "combination() (in module pulp)": [[30, "pulp.combination"]], "constraints (pulp.lpproblem attribute)": [[30, "pulp.LpProblem.constraints"]], "copy() (pulp.lpaffineexpression method)": [[30, "pulp.LpAffineExpression.copy"]], "copy() (pulp.lpconstraint method)": [[30, "pulp.LpConstraint.copy"]], "deelasticize() (pulp.fixedelasticsubproblem method)": [[30, "pulp.FixedElasticSubProblem.deElasticize"]], "dicts() (pulp.lpvariable class method)": [[30, "pulp.LpVariable.dicts"]], "finddifferencefromrhs() (pulp.fixedelasticsubproblem method)": [[30, "pulp.FixedElasticSubProblem.findDifferenceFromRHS"]], "findlhsvalue() (pulp.fixedelasticsubproblem method)": [[30, "pulp.FixedElasticSubProblem.findLHSValue"]], "fixvalue() (pulp.lpvariable method)": [[30, "pulp.LpVariable.fixValue"]], "fromdict() (pulp.lpconstraint class method)": [[30, "pulp.LpConstraint.fromDict"]], "fromdict() (pulp.lpvariable class method)": [[30, "pulp.LpVariable.fromDict"]], "fromjson() (pulp.lpproblem class method)": [[30, "pulp.LpProblem.fromJson"]], "from_dict() (pulp.lpconstraint class method)": [[30, "pulp.LpConstraint.from_dict"]], "from_dict() (pulp.lpvariable class method)": [[30, "pulp.LpVariable.from_dict"]], "isfixed() (pulp.lpvariable method)": [[30, "pulp.LpVariable.isFixed"]], "isviolated() (pulp.fixedelasticsubproblem method)": [[30, "pulp.FixedElasticSubProblem.isViolated"]], "lpsum() (in module pulp)": [[30, "pulp.lpSum"]], "makeelasticsubproblem() (pulp.lpconstraint method)": [[30, "pulp.LpConstraint.makeElasticSubProblem"]], "objective (pulp.lpproblem attribute)": [[30, "pulp.LpProblem.objective"]], "permutation() (in module pulp)": [[30, "pulp.permutation"]], "pulp": [[30, "module-pulp"]], "reelasticize() (pulp.fixedelasticsubproblem method)": [[30, "pulp.FixedElasticSubProblem.reElasticize"]], "roundsolution() (pulp.lpproblem method)": [[30, "pulp.LpProblem.roundSolution"]], "setinitialvalue() (pulp.lpvariable method)": [[30, "pulp.LpVariable.setInitialValue"]], "setobjective() (pulp.lpproblem method)": [[30, "pulp.LpProblem.setObjective"]], "solve() (pulp.lpproblem method)": [[30, "pulp.LpProblem.solve"]], "sorted_keys() (pulp.lpaffineexpression method)": [[30, "pulp.LpAffineExpression.sorted_keys"]], "status (pulp.lpproblem attribute)": [[30, "pulp.LpProblem.status"]], "todict() (pulp.lpaffineexpression method)": [[30, "pulp.LpAffineExpression.toDict"]], "todict() (pulp.lpconstraint method)": [[30, "pulp.LpConstraint.toDict"]], "todict() (pulp.lpvariable method)": [[30, "pulp.LpVariable.toDict"]], "tojson() (pulp.lpproblem method)": [[30, "pulp.LpProblem.toJson"]], "to_dict() (pulp.lpaffineexpression method)": [[30, "pulp.LpAffineExpression.to_dict"]], "to_dict() (pulp.lpvariable method)": [[30, "pulp.LpVariable.to_dict"]], "value() (in module pulp)": [[30, "pulp.value"]], "variables() (pulp.lpproblem method)": [[30, "pulp.LpProblem.variables"]], "writelp() (pulp.lpproblem method)": [[30, "pulp.LpProblem.writeLP"]], "writemps() (pulp.lpproblem method)": [[30, "pulp.LpProblem.writeMPS"]], "choco_cmd (class in pulp.apis)": [[31, "pulp.apis.CHOCO_CMD"]], "coin (in module pulp.apis)": [[31, "pulp.apis.COIN"]], "coinmp_dll (class in pulp.apis)": [[31, "pulp.apis.COINMP_DLL"]], "coinmp_dll_load_dll() (in module pulp.apis)": [[31, "pulp.apis.COINMP_DLL_load_dll"]], "coin_cmd (class in pulp.apis)": [[31, "pulp.apis.COIN_CMD"]], "copt (class in pulp.apis)": [[31, "pulp.apis.COPT"]], "copt_cmd (class in pulp.apis)": [[31, "pulp.apis.COPT_CMD"]], "copt_dll (class in pulp.apis)": [[31, "pulp.apis.COPT_DLL"]], "copt_dll_loadlib() (in module pulp.apis)": [[31, "pulp.apis.COPT_DLL_loadlib"]], "cplex (in module pulp.apis)": [[31, "pulp.apis.CPLEX"]], "cplex_cmd (class in pulp.apis)": [[31, "pulp.apis.CPLEX_CMD"]], "cplex_py (class in pulp.apis)": [[31, "pulp.apis.CPLEX_PY"]], "fscip (in module pulp.apis)": [[31, "pulp.apis.FSCIP"]], "fscip_cmd (class in pulp.apis)": [[31, "pulp.apis.FSCIP_CMD"]], "fscip_statuses (pulp.apis.fscip_cmd attribute)": [[31, "pulp.apis.FSCIP_CMD.FSCIP_STATUSES"]], "glpk (in module pulp.apis)": [[31, "pulp.apis.GLPK"]], "glpk_cmd (class in pulp.apis)": [[31, "pulp.apis.GLPK_CMD"]], "gurobi (class in pulp.apis)": [[31, "pulp.apis.GUROBI"]], "gurobi_cmd (class in pulp.apis)": [[31, "pulp.apis.GUROBI_CMD"]], "highs (class in pulp.apis)": [[31, "pulp.apis.HiGHS"]], "highs_cmd (class in pulp.apis)": [[31, "pulp.apis.HiGHS_CMD"]], "lpsolver (class in pulp.apis)": [[31, "pulp.apis.LpSolver"]], "lpsolver_cmd (class in pulp.apis)": [[31, "pulp.apis.LpSolver_CMD"]], "mipcl_cmd (class in pulp.apis)": [[31, "pulp.apis.MIPCL_CMD"]], "mosek (class in pulp.apis)": [[31, "pulp.apis.MOSEK"]], "no_solution_statuses (pulp.apis.fscip_cmd attribute)": [[31, "pulp.apis.FSCIP_CMD.NO_SOLUTION_STATUSES"]], "no_solution_statuses (pulp.apis.scip_cmd attribute)": [[31, "pulp.apis.SCIP_CMD.NO_SOLUTION_STATUSES"]], "pulp_cbc_cmd (class in pulp.apis)": [[31, "pulp.apis.PULP_CBC_CMD"]], "pyglpk (class in pulp.apis)": [[31, "pulp.apis.PYGLPK"]], "parser (in module pulp.apis)": [[31, "pulp.apis.Parser"]], "pulpsolvererror": [[31, "pulp.apis.PulpSolverError"]], "scip (in module pulp.apis)": [[31, "pulp.apis.SCIP"]], "scip_cmd (class in pulp.apis)": [[31, "pulp.apis.SCIP_CMD"]], "scip_py (class in pulp.apis)": [[31, "pulp.apis.SCIP_PY"]], "scip_statuses (pulp.apis.scip_cmd attribute)": [[31, "pulp.apis.SCIP_CMD.SCIP_STATUSES"]], "solution_style (pulp.apis.highs_cmd attribute)": [[31, "pulp.apis.HiGHS_CMD.SOLUTION_STYLE"]], "xpress (class in pulp.apis)": [[31, "pulp.apis.XPRESS"]], "xpress_cmd (in module pulp.apis)": [[31, "pulp.apis.XPRESS_CMD"]], "xpress_py (class in pulp.apis)": [[31, "pulp.apis.XPRESS_PY"]], "yaposib (class in pulp.apis)": [[31, "pulp.apis.YAPOSIB"]], "actualresolve() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.actualResolve"]], "actualresolve() (pulp.apis.xpress_py method)": [[31, "pulp.apis.XPRESS_PY.actualResolve"]], "actualsolve() (pulp.apis.choco_cmd method)": [[31, "pulp.apis.CHOCO_CMD.actualSolve"]], "actualsolve() (pulp.apis.coinmp_dll method)": [[31, "pulp.apis.COINMP_DLL.actualSolve"]], "actualsolve() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.actualSolve"]], "actualsolve() (pulp.apis.copt method)": [[31, "pulp.apis.COPT.actualSolve"]], "actualsolve() (pulp.apis.copt_cmd method)": [[31, "pulp.apis.COPT_CMD.actualSolve"]], "actualsolve() (pulp.apis.copt_dll method)": [[31, "pulp.apis.COPT_DLL.actualSolve"]], "actualsolve() (pulp.apis.cplex_cmd method)": [[31, "pulp.apis.CPLEX_CMD.actualSolve"]], "actualsolve() (pulp.apis.cplex_py method)": [[31, "pulp.apis.CPLEX_PY.actualSolve"]], "actualsolve() (pulp.apis.fscip_cmd method)": [[31, "pulp.apis.FSCIP_CMD.actualSolve"]], "actualsolve() (pulp.apis.glpk_cmd method)": [[31, "pulp.apis.GLPK_CMD.actualSolve"]], "actualsolve() (pulp.apis.gurobi method)": [[31, "pulp.apis.GUROBI.actualSolve"]], "actualsolve() (pulp.apis.gurobi_cmd method)": [[31, "pulp.apis.GUROBI_CMD.actualSolve"]], "actualsolve() (pulp.apis.highs method)": [[31, "pulp.apis.HiGHS.actualSolve"]], "actualsolve() (pulp.apis.highs_cmd method)": [[31, "pulp.apis.HiGHS_CMD.actualSolve"]], "actualsolve() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.actualSolve"]], "actualsolve() (pulp.apis.mipcl_cmd method)": [[31, "pulp.apis.MIPCL_CMD.actualSolve"]], "actualsolve() (pulp.apis.mosek method)": [[31, "pulp.apis.MOSEK.actualSolve"]], "actualsolve() (pulp.apis.pyglpk method)": [[31, "pulp.apis.PYGLPK.actualSolve"]], "actualsolve() (pulp.apis.scip_cmd method)": [[31, "pulp.apis.SCIP_CMD.actualSolve"]], "actualsolve() (pulp.apis.scip_py method)": [[31, "pulp.apis.SCIP_PY.actualSolve"]], "actualsolve() (pulp.apis.xpress method)": [[31, "pulp.apis.XPRESS.actualSolve"]], "actualsolve() (pulp.apis.xpress_py method)": [[31, "pulp.apis.XPRESS_PY.actualSolve"]], "actualsolve() (pulp.apis.yaposib method)": [[31, "pulp.apis.YAPOSIB.actualSolve"]], "available() (pulp.apis.choco_cmd method)": [[31, "pulp.apis.CHOCO_CMD.available"]], "available() (pulp.apis.coinmp_dll class method)": [[31, "pulp.apis.COINMP_DLL.available"]], "available() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.available"]], "available() (pulp.apis.copt method)": [[31, "pulp.apis.COPT.available"]], "available() (pulp.apis.copt_cmd method)": [[31, "pulp.apis.COPT_CMD.available"]], "available() (pulp.apis.copt_dll method)": [[31, "pulp.apis.COPT_DLL.available"]], "available() (pulp.apis.cplex_cmd method)": [[31, "pulp.apis.CPLEX_CMD.available"]], "available() (pulp.apis.cplex_py method)": [[31, "pulp.apis.CPLEX_PY.available"]], "available() (pulp.apis.fscip_cmd method)": [[31, "pulp.apis.FSCIP_CMD.available"]], "available() (pulp.apis.glpk_cmd method)": [[31, "pulp.apis.GLPK_CMD.available"]], "available() (pulp.apis.gurobi method)": [[31, "pulp.apis.GUROBI.available"]], "available() (pulp.apis.gurobi_cmd method)": [[31, "pulp.apis.GUROBI_CMD.available"]], "available() (pulp.apis.highs method)": [[31, "pulp.apis.HiGHS.available"]], "available() (pulp.apis.highs_cmd method)": [[31, "pulp.apis.HiGHS_CMD.available"]], "available() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.available"]], "available() (pulp.apis.mipcl_cmd method)": [[31, "pulp.apis.MIPCL_CMD.available"]], "available() (pulp.apis.mosek method)": [[31, "pulp.apis.MOSEK.available"]], "available() (pulp.apis.pyglpk method)": [[31, "pulp.apis.PYGLPK.available"]], "available() (pulp.apis.scip_cmd method)": [[31, "pulp.apis.SCIP_CMD.available"]], "available() (pulp.apis.scip_py method)": [[31, "pulp.apis.SCIP_PY.available"]], "available() (pulp.apis.xpress method)": [[31, "pulp.apis.XPRESS.available"]], "available() (pulp.apis.xpress_py method)": [[31, "pulp.apis.XPRESS_PY.available"]], "available() (pulp.apis.yaposib method)": [[31, "pulp.apis.YAPOSIB.available"]], "buildsolvermodel() (pulp.apis.xpress_py method)": [[31, "pulp.apis.XPRESS_PY.buildSolverModel"]], "byref() (in module pulp.apis)": [[31, "pulp.apis.byref"]], "callsolver() (pulp.apis.xpress_py method)": [[31, "pulp.apis.XPRESS_PY.callSolver"]], "clock() (in module pulp.apis)": [[31, "pulp.apis.clock"]], "configsolvers() (in module pulp.apis)": [[31, "pulp.apis.configSolvers"]], "coptstr() (in module pulp.apis)": [[31, "pulp.apis.coptstr"]], "copy() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.copy"]], "copy() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.copy"]], "copy() (pulp.apis.lpsolver_cmd method)": [[31, "pulp.apis.LpSolver_CMD.copy"]], "create_tmp_files() (pulp.apis.lpsolver_cmd method)": [[31, "pulp.apis.LpSolver_CMD.create_tmp_files"]], "ctypesarrayfill() (in module pulp.apis)": [[31, "pulp.apis.ctypesArrayFill"]], "defaultpath() (pulp.apis.choco_cmd method)": [[31, "pulp.apis.CHOCO_CMD.defaultPath"]], "defaultpath() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.defaultPath"]], "defaultpath() (pulp.apis.copt_cmd method)": [[31, "pulp.apis.COPT_CMD.defaultPath"]], "defaultpath() (pulp.apis.cplex_cmd method)": [[31, "pulp.apis.CPLEX_CMD.defaultPath"]], "defaultpath() (pulp.apis.fscip_cmd method)": [[31, "pulp.apis.FSCIP_CMD.defaultPath"]], "defaultpath() (pulp.apis.glpk_cmd method)": [[31, "pulp.apis.GLPK_CMD.defaultPath"]], "defaultpath() (pulp.apis.gurobi_cmd method)": [[31, "pulp.apis.GUROBI_CMD.defaultPath"]], "defaultpath() (pulp.apis.highs_cmd method)": [[31, "pulp.apis.HiGHS_CMD.defaultPath"]], "defaultpath() (pulp.apis.lpsolver_cmd method)": [[31, "pulp.apis.LpSolver_CMD.defaultPath"]], "defaultpath() (pulp.apis.mipcl_cmd method)": [[31, "pulp.apis.MIPCL_CMD.defaultPath"]], "defaultpath() (pulp.apis.scip_cmd method)": [[31, "pulp.apis.SCIP_CMD.defaultPath"]], "defaultpath() (pulp.apis.xpress method)": [[31, "pulp.apis.XPRESS.defaultPath"]], "delete_tmp_files() (pulp.apis.lpsolver_cmd method)": [[31, "pulp.apis.LpSolver_CMD.delete_tmp_files"]], "env (pulp.apis.gurobi attribute)": [[31, "pulp.apis.GUROBI.env"]], "err (pulp.apis.copt_dll attribute)": [[31, "pulp.apis.COPT_DLL.err"]], "err (pulp.apis.cplex_py attribute)": [[31, "pulp.apis.CPLEX_PY.err"]], "executable() (pulp.apis.lpsolver_cmd static method)": [[31, "pulp.apis.LpSolver_CMD.executable"]], "executableextension() (pulp.apis.lpsolver_cmd static method)": [[31, "pulp.apis.LpSolver_CMD.executableExtension"]], "findsolutionvalues() (pulp.apis.xpress_py method)": [[31, "pulp.apis.XPRESS_PY.findSolutionValues"]], "getattribute() (pulp.apis.xpress_py method)": [[31, "pulp.apis.XPRESS_PY.getAttribute"]], "getcplexstylearrays() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.getCplexStyleArrays"]], "getoptions() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.getOptions"]], "getoptions() (pulp.apis.cplex_cmd method)": [[31, "pulp.apis.CPLEX_CMD.getOptions"]], "getoptions() (pulp.apis.gurobi_cmd method)": [[31, "pulp.apis.GUROBI_CMD.getOptions"]], "getsolver() (in module pulp.apis)": [[31, "pulp.apis.getSolver"]], "getsolverfromdict() (in module pulp.apis)": [[31, "pulp.apis.getSolverFromDict"]], "getsolverfromjson() (in module pulp.apis)": [[31, "pulp.apis.getSolverFromJson"]], "get_solver() (in module pulp.apis)": [[31, "pulp.apis.get_solver"]], "get_solver_from_dict() (in module pulp.apis)": [[31, "pulp.apis.get_solver_from_dict"]], "get_solver_from_json() (in module pulp.apis)": [[31, "pulp.apis.get_solver_from_json"]], "get_status() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.get_status"]], "initialize() (in module pulp.apis)": [[31, "pulp.apis.initialize"]], "listsolvers() (in module pulp.apis)": [[31, "pulp.apis.listSolvers"]], "list_solvers() (in module pulp.apis)": [[31, "pulp.apis.list_solvers"]], "mktemp() (in module pulp.apis)": [[31, "pulp.apis.mktemp"]], "name (pulp.apis.choco_cmd attribute)": [[31, "pulp.apis.CHOCO_CMD.name"]], "name (pulp.apis.coinmp_dll attribute)": [[31, "pulp.apis.COINMP_DLL.name"]], "name (pulp.apis.coin_cmd attribute)": [[31, "pulp.apis.COIN_CMD.name"]], "name (pulp.apis.copt attribute)": [[31, "pulp.apis.COPT.name"]], "name (pulp.apis.copt_cmd attribute)": [[31, "pulp.apis.COPT_CMD.name"]], "name (pulp.apis.copt_dll attribute)": [[31, "pulp.apis.COPT_DLL.name"]], "name (pulp.apis.cplex_cmd attribute)": [[31, "pulp.apis.CPLEX_CMD.name"]], "name (pulp.apis.cplex_py attribute)": [[31, "pulp.apis.CPLEX_PY.name"]], "name (pulp.apis.fscip_cmd attribute)": [[31, "pulp.apis.FSCIP_CMD.name"]], "name (pulp.apis.glpk_cmd attribute)": [[31, "pulp.apis.GLPK_CMD.name"]], "name (pulp.apis.gurobi attribute)": [[31, "pulp.apis.GUROBI.name"]], "name (pulp.apis.gurobi_cmd attribute)": [[31, "pulp.apis.GUROBI_CMD.name"]], "name (pulp.apis.highs attribute)": [[31, "pulp.apis.HiGHS.name"]], "name (pulp.apis.highs_cmd attribute)": [[31, "pulp.apis.HiGHS_CMD.name"]], "name (pulp.apis.lpsolver attribute)": [[31, "pulp.apis.LpSolver.name"]], "name (pulp.apis.lpsolver_cmd attribute)": [[31, "pulp.apis.LpSolver_CMD.name"]], "name (pulp.apis.mipcl_cmd attribute)": [[31, "pulp.apis.MIPCL_CMD.name"]], "name (pulp.apis.mosek attribute)": [[31, "pulp.apis.MOSEK.name"]], "name (pulp.apis.pulp_cbc_cmd attribute)": [[31, "pulp.apis.PULP_CBC_CMD.name"]], "name (pulp.apis.pyglpk attribute)": [[31, "pulp.apis.PYGLPK.name"]], "name (pulp.apis.scip_cmd attribute)": [[31, "pulp.apis.SCIP_CMD.name"]], "name (pulp.apis.scip_py attribute)": [[31, "pulp.apis.SCIP_PY.name"]], "name (pulp.apis.xpress attribute)": [[31, "pulp.apis.XPRESS.name"]], "name (pulp.apis.xpress_py attribute)": [[31, "pulp.apis.XPRESS_PY.name"]], "name (pulp.apis.yaposib attribute)": [[31, "pulp.apis.YAPOSIB.name"]], "parse_objective() (pulp.apis.fscip_cmd static method)": [[31, "pulp.apis.FSCIP_CMD.parse_objective"]], "parse_status() (pulp.apis.fscip_cmd static method)": [[31, "pulp.apis.FSCIP_CMD.parse_status"]], "parse_variable() (pulp.apis.fscip_cmd static method)": [[31, "pulp.apis.FSCIP_CMD.parse_variable"]], "pulp.apis": [[31, "module-pulp.apis"]], "pulp_cbc_path (pulp.apis.pulp_cbc_cmd attribute)": [[31, "pulp.apis.PULP_CBC_CMD.pulp_cbc_path"]], "quote_path() (pulp.apis.xpress static method)": [[31, "pulp.apis.XPRESS.quote_path"]], "readsol() (pulp.apis.choco_cmd static method)": [[31, "pulp.apis.CHOCO_CMD.readsol"]], "readsol() (pulp.apis.copt_cmd method)": [[31, "pulp.apis.COPT_CMD.readsol"]], "readsol() (pulp.apis.cplex_cmd method)": [[31, "pulp.apis.CPLEX_CMD.readsol"]], "readsol() (pulp.apis.fscip_cmd static method)": [[31, "pulp.apis.FSCIP_CMD.readsol"]], "readsol() (pulp.apis.glpk_cmd method)": [[31, "pulp.apis.GLPK_CMD.readsol"]], "readsol() (pulp.apis.gurobi_cmd method)": [[31, "pulp.apis.GUROBI_CMD.readsol"]], "readsol() (pulp.apis.highs_cmd static method)": [[31, "pulp.apis.HiGHS_CMD.readsol"]], "readsol() (pulp.apis.mipcl_cmd static method)": [[31, "pulp.apis.MIPCL_CMD.readsol"]], "readsol() (pulp.apis.scip_cmd static method)": [[31, "pulp.apis.SCIP_CMD.readsol"]], "readsol() (pulp.apis.xpress static method)": [[31, "pulp.apis.XPRESS.readsol"]], "readsol_lp() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.readsol_LP"]], "readsol_mps() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.readsol_MPS"]], "setconfiginformation() (in module pulp.apis)": [[31, "pulp.apis.setConfigInformation"]], "settmpdir() (pulp.apis.lpsolver_cmd method)": [[31, "pulp.apis.LpSolver_CMD.setTmpDir"]], "silent_remove() (pulp.apis.lpsolver_cmd method)": [[31, "pulp.apis.LpSolver_CMD.silent_remove"]], "solve() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.solve"]], "solve_cbc() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.solve_CBC"]], "todict() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.toDict"]], "tojson() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.toJson"]], "to_dict() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.to_dict"]], "to_json() (pulp.apis.lpsolver method)": [[31, "pulp.apis.LpSolver.to_json"]], "to_string() (in module pulp.apis)": [[31, "pulp.apis.to_string"]], "uuid4() (in module pulp.apis)": [[31, "pulp.apis.uuid4"]], "writemst() (pulp.apis.copt_cmd method)": [[31, "pulp.apis.COPT_CMD.writemst"]], "writeslxsol() (pulp.apis.xpress method)": [[31, "pulp.apis.XPRESS.writeslxsol"]], "writesol() (pulp.apis.coin_cmd method)": [[31, "pulp.apis.COIN_CMD.writesol"]], "writesol() (pulp.apis.cplex_cmd method)": [[31, "pulp.apis.CPLEX_CMD.writesol"]], "writesol() (pulp.apis.gurobi_cmd method)": [[31, "pulp.apis.GUROBI_CMD.writesol"]]}}) \ No newline at end of file diff --git a/technical/solvers.html b/technical/solvers.html index 1e292618..74cb59dd 100644 --- a/technical/solvers.html +++ b/technical/solvers.html @@ -430,7 +430,7 @@
-class pulp.apis.COIN_CMD(mip=True, msg=True, timeLimit=None, fracGap=None, maxSeconds=None, gapRel=None, gapAbs=None, presolve=None, cuts=None, strong=None, options=None, warmStart=False, keepFiles=False, path=None, threads=None, logPath=None, timeMode='elapsed', mip_start=False)
+class pulp.apis.COIN_CMD(mip=True, msg=True, timeLimit=None, fracGap=None, maxSeconds=None, gapRel=None, gapAbs=None, presolve=None, cuts=None, strong=None, options=None, warmStart=False, keepFiles=False, path=None, threads=None, logPath=None, timeMode='elapsed', mip_start=False, maxNodes=None)

Bases: LpSolver_CMD

The COIN CLP/CBC LP solver now only uses cbc

@@ -455,6 +455,7 @@
  • maxSeconds (float) – deprecated for timeLimit

  • timeMode (str) – “elapsed”: count wall-time to timeLimit; “cpu”: count cpu-time

  • mip_start (bool) – deprecated for warmStart

  • +
  • maxNodes (int) – max number of nodes during branching. Stops the solving when reached.

  • @@ -1379,6 +1380,7 @@
  • maxSeconds (float) – deprecated for timeLimit

  • timeMode (str) – “elapsed”: count wall-time to timeLimit; “cpu”: count cpu-time

  • mip_start (bool) – deprecated for warmStart

  • +
  • maxNodes (int) – max number of nodes during branching. Stops the solving when reached.