Update 0.3 docs

docs
Alinson S. Xavier 2 years ago
parent 739eb2d56a
commit 13930b491e
Signed by: isoron
GPG Key ID: 0DA8E4B9E1109DCA

@ -33,6 +33,7 @@
] ]
}, },
{ {
"attachments": {},
"cell_type": "markdown", "cell_type": "markdown",
"id": "02f0a927", "id": "02f0a927",
"metadata": {}, "metadata": {},
@ -44,53 +45,17 @@
"- Python version, compatible with the Pyomo and Gurobipy modeling languages,\n", "- Python version, compatible with the Pyomo and Gurobipy modeling languages,\n",
"- Julia version, compatible with the JuMP modeling language.\n", "- Julia version, compatible with the JuMP modeling language.\n",
"\n", "\n",
"In this tutorial, we will demonstrate how to use and install the Python/Gurobipy version of the package. The first step is to install Python 3.8+ in your computer. See the [official Python website for more instructions](https://www.python.org/downloads/). After Python is installed, we proceed to install MIPLearn using `pip`:" "In this tutorial, we will demonstrate how to use and install the Python/Gurobipy version of the package. The first step is to install Python 3.8+ in your computer. See the [official Python website for more instructions](https://www.python.org/downloads/). After Python is installed, we proceed to install MIPLearn using `pip`:\n",
] "\n",
}, "```\n",
{ "$ pip install MIPLearn==0.3\n",
"cell_type": "code", "```\n",
"execution_count": 1, "\n",
"id": "cd8a69c1", "In addition to MIPLearn itself, we will also install Gurobi 10.0, a state-of-the-art commercial MILP solver. This step also install a demo license for Gurobi, which should able to solve the small optimization problems in this tutorial. A license is required for solving larger-scale problems.\n",
"metadata": { "\n",
"ExecuteTime": { "```\n",
"end_time": "2023-06-06T20:18:02.381829278Z", "$ pip install 'gurobipy>=10,<10.1'\n",
"start_time": "2023-06-06T20:18:02.381532300Z" "```"
}
},
"outputs": [],
"source": [
"# !pip install MIPLearn==0.3.0"
]
},
{
"cell_type": "markdown",
"id": "e8274543",
"metadata": {},
"source": [
"In addition to MIPLearn itself, we will also install Gurobi 10.0, a state-of-the-art commercial MILP solver. This step also install a demo license for Gurobi, which should able to solve the small optimization problems in this tutorial. A license is required for solving larger-scale problems."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "dcc8756c",
"metadata": {
"ExecuteTime": {
"end_time": "2023-06-06T20:18:15.537811992Z",
"start_time": "2023-06-06T20:18:13.449177860Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: gurobipy<10.1,>=10 in /home/axavier/Software/anaconda3/envs/miplearn/lib/python3.8/site-packages (10.0.1)\n"
]
}
],
"source": [
"!pip install 'gurobipy>=10,<10.1'"
] ]
}, },
{ {
@ -214,6 +179,7 @@
"from miplearn.io import read_pkl_gz\n", "from miplearn.io import read_pkl_gz\n",
"from miplearn.solvers.gurobi import GurobiModel\n", "from miplearn.solvers.gurobi import GurobiModel\n",
"\n", "\n",
"\n",
"def build_uc_model(data: Union[str, UnitCommitmentData]) -> GurobiModel:\n", "def build_uc_model(data: Union[str, UnitCommitmentData]) -> GurobiModel:\n",
" if isinstance(data, str):\n", " if isinstance(data, str):\n",
" data = read_pkl_gz(data)\n", " data = read_pkl_gz(data)\n",
@ -223,9 +189,7 @@
" x = model._x = model.addVars(n, vtype=GRB.BINARY, name=\"x\")\n", " x = model._x = model.addVars(n, vtype=GRB.BINARY, name=\"x\")\n",
" y = model._y = model.addVars(n, name=\"y\")\n", " y = model._y = model.addVars(n, name=\"y\")\n",
" model.setObjective(\n", " model.setObjective(\n",
" quicksum(\n", " quicksum(data.cfix[i] * x[i] + data.cvar[i] * y[i] for i in range(n))\n",
" data.cfix[i] * x[i] + data.cvar[i] * y[i] for i in range(n)\n",
" )\n",
" )\n", " )\n",
" model.addConstrs(y[i] <= data.pmax[i] * x[i] for i in range(n))\n", " model.addConstrs(y[i] <= data.pmax[i] * x[i] for i in range(n))\n",
" model.addConstrs(y[i] >= data.pmin[i] * x[i] for i in range(n))\n", " model.addConstrs(y[i] >= data.pmin[i] * x[i] for i in range(n))\n",
@ -588,7 +552,7 @@
"\n", "\n",
"solver_ml = LearningSolver(components=[comp])\n", "solver_ml = LearningSolver(components=[comp])\n",
"solver_ml.fit(train_data)\n", "solver_ml.fit(train_data)\n",
"solver_ml.optimize(test_data[0], build_uc_model);" "solver_ml.optimize(test_data[0], build_uc_model)"
] ]
}, },
{ {
@ -690,7 +654,7 @@
"source": [ "source": [
"solver_baseline = LearningSolver(components=[])\n", "solver_baseline = LearningSolver(components=[])\n",
"solver_baseline.fit(train_data)\n", "solver_baseline.fit(train_data)\n",
"solver_baseline.optimize(test_data[0], build_uc_model);" "solver_baseline.optimize(test_data[0], build_uc_model)"
] ]
}, },
{ {

@ -33,6 +33,7 @@
] ]
}, },
{ {
"attachments": {},
"cell_type": "markdown", "cell_type": "markdown",
"id": "02f0a927", "id": "02f0a927",
"metadata": {}, "metadata": {},
@ -44,53 +45,17 @@
"- Python version, compatible with the Pyomo and Gurobipy modeling languages,\n", "- Python version, compatible with the Pyomo and Gurobipy modeling languages,\n",
"- Julia version, compatible with the JuMP modeling language.\n", "- Julia version, compatible with the JuMP modeling language.\n",
"\n", "\n",
"In this tutorial, we will demonstrate how to use and install the Python/Pyomo version of the package. The first step is to install Python 3.8+ in your computer. See the [official Python website for more instructions](https://www.python.org/downloads/). After Python is installed, we proceed to install MIPLearn using `pip`:" "In this tutorial, we will demonstrate how to use and install the Python/Pyomo version of the package. The first step is to install Python 3.8+ in your computer. See the [official Python website for more instructions](https://www.python.org/downloads/). After Python is installed, we proceed to install MIPLearn using `pip`:\n",
] "\n",
}, "```\n",
{ "$ pip install MIPLearn==0.3\n",
"cell_type": "code", "```\n",
"execution_count": 1, "\n",
"id": "cd8a69c1", "In addition to MIPLearn itself, we will also install Gurobi 10.0, a state-of-the-art commercial MILP solver. This step also install a demo license for Gurobi, which should able to solve the small optimization problems in this tutorial. A license is required for solving larger-scale problems.\n",
"metadata": { "\n",
"ExecuteTime": { "```\n",
"end_time": "2023-06-06T19:57:33.202580815Z", "$ pip install 'gurobipy>=10,<10.1'\n",
"start_time": "2023-06-06T19:57:33.198341886Z" "```"
}
},
"outputs": [],
"source": [
"# !pip install MIPLearn==0.3.0"
]
},
{
"cell_type": "markdown",
"id": "e8274543",
"metadata": {},
"source": [
"In addition to MIPLearn itself, we will also install Gurobi 10.0, a state-of-the-art commercial MILP solver. This step also install a demo license for Gurobi, which should able to solve the small optimization problems in this tutorial. A license is required for solving larger-scale problems."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "dcc8756c",
"metadata": {
"ExecuteTime": {
"end_time": "2023-06-06T19:57:35.756831801Z",
"start_time": "2023-06-06T19:57:33.201767088Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: gurobipy<10.1,>=10 in /home/axavier/Software/anaconda3/envs/miplearn/lib/python3.8/site-packages (10.0.1)\n"
]
}
],
"source": [
"!pip install 'gurobipy>=10,<10.1'"
] ]
}, },
{ {
@ -600,7 +565,7 @@
"\n", "\n",
"solver_ml = LearningSolver(components=[comp])\n", "solver_ml = LearningSolver(components=[comp])\n",
"solver_ml.fit(train_data)\n", "solver_ml.fit(train_data)\n",
"solver_ml.optimize(test_data[0], build_uc_model);" "solver_ml.optimize(test_data[0], build_uc_model)"
] ]
}, },
{ {
@ -706,7 +671,7 @@
"source": [ "source": [
"solver_baseline = LearningSolver(components=[])\n", "solver_baseline = LearningSolver(components=[])\n",
"solver_baseline.fit(train_data)\n", "solver_baseline.fit(train_data)\n",
"solver_baseline.optimize(test_data[0], build_uc_model);" "solver_baseline.optimize(test_data[0], build_uc_model)"
] ]
}, },
{ {

@ -115,7 +115,7 @@
</li> </li>
<li class="toctree-l1"> <li class="toctree-l1">
<a class="reference internal" href="../../guide/solvers/"> <a class="reference internal" href="../../guide/solvers/">
8. Solvers 8. Learning Solver
</a> </a>
</li> </li>
</ul> </ul>

@ -115,7 +115,7 @@
</li> </li>
<li class="toctree-l1"> <li class="toctree-l1">
<a class="reference internal" href="../../guide/solvers/"> <a class="reference internal" href="../../guide/solvers/">
8. Solvers 8. Learning Solver
</a> </a>
</li> </li>
</ul> </ul>

@ -114,7 +114,7 @@
</li> </li>
<li class="toctree-l1"> <li class="toctree-l1">
<a class="reference internal" href="../../guide/solvers/"> <a class="reference internal" href="../../guide/solvers/">
8. Solvers 8. Learning Solver
</a> </a>
</li> </li>
</ul> </ul>

@ -37,7 +37,7 @@
<link rel="index" title="Index" href="../../genindex/" /> <link rel="index" title="Index" href="../../genindex/" />
<link rel="search" title="Search" href="../../search/" /> <link rel="search" title="Search" href="../../search/" />
<link rel="next" title="10. Collectors &amp; Extractors" href="../collectors/" /> <link rel="next" title="10. Collectors &amp; Extractors" href="../collectors/" />
<link rel="prev" title="8. Solvers" href="../../guide/solvers/" /> <link rel="prev" title="8. Learning Solver" href="../../guide/solvers/" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="docsearch:language" content="en" /> <meta name="docsearch:language" content="en" />
@ -115,7 +115,7 @@
</li> </li>
<li class="toctree-l1"> <li class="toctree-l1">
<a class="reference internal" href="../../guide/solvers/"> <a class="reference internal" href="../../guide/solvers/">
8. Solvers 8. Learning Solver
</a> </a>
</li> </li>
</ul> </ul>
@ -560,7 +560,7 @@ commitment polytope. J Comb Optim 36, 1024-1058 (2018).
<div class='prev-next-bottom'> <div class='prev-next-bottom'>
<a class='left-prev' id="prev-link" href="../../guide/solvers/" title="previous page"><span class="section-number">8. </span>Solvers</a> <a class='left-prev' id="prev-link" href="../../guide/solvers/" title="previous page"><span class="section-number">8. </span>Learning Solver</a>
<a class='right-next' id="next-link" href="../collectors/" title="next page"><span class="section-number">10. </span>Collectors &amp; Extractors</a> <a class='right-next' id="next-link" href="../collectors/" title="next page"><span class="section-number">10. </span>Collectors &amp; Extractors</a>
</div> </div>

@ -115,7 +115,7 @@
</li> </li>
<li class="toctree-l1"> <li class="toctree-l1">
<a class="reference internal" href="../../guide/solvers/"> <a class="reference internal" href="../../guide/solvers/">
8. Solvers 8. Learning Solver
</a> </a>
</li> </li>
</ul> </ul>

@ -24,6 +24,14 @@
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/sphinx-book-theme.acff12b8f9c144ce68a297486a2fa670.css" type="text/css" /> <link rel="stylesheet" href="../_static/sphinx-book-theme.acff12b8f9c144ce68a297486a2fa670.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css" /> <link rel="stylesheet" type="text/css" href="../_static/custom.css" />
<link rel="preload" as="script" href="../_static/js/index.1c5a1a01449ed65a7b51.js"> <link rel="preload" as="script" href="../_static/js/index.1c5a1a01449ed65a7b51.js">

@ -25,6 +25,10 @@
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/sphinx-book-theme.acff12b8f9c144ce68a297486a2fa670.css" type="text/css" /> <link rel="stylesheet" href="../../_static/sphinx-book-theme.acff12b8f9c144ce68a297486a2fa670.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../../_static/nbsphinx-code-cells.css" /> <link rel="stylesheet" type="text/css" href="../../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../../_static/custom.css" /> <link rel="stylesheet" type="text/css" href="../../_static/custom.css" />
<link rel="preload" as="script" href="../../_static/js/index.1c5a1a01449ed65a7b51.js"> <link rel="preload" as="script" href="../../_static/js/index.1c5a1a01449ed65a7b51.js">

@ -24,6 +24,11 @@
<link rel="stylesheet" href="_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/sphinx-book-theme.acff12b8f9c144ce68a297486a2fa670.css" type="text/css" /> <link rel="stylesheet" href="_static/sphinx-book-theme.acff12b8f9c144ce68a297486a2fa670.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="_static/custom.css" /> <link rel="stylesheet" type="text/css" href="_static/custom.css" />
<link rel="preload" as="script" href="_static/js/index.1c5a1a01449ed65a7b51.js"> <link rel="preload" as="script" href="_static/js/index.1c5a1a01449ed65a7b51.js">

@ -24,6 +24,14 @@
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/sphinx-book-theme.acff12b8f9c144ce68a297486a2fa670.css" type="text/css" /> <link rel="stylesheet" href="../_static/sphinx-book-theme.acff12b8f9c144ce68a297486a2fa670.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css" /> <link rel="stylesheet" type="text/css" href="../_static/custom.css" />
<link rel="preload" as="script" href="../_static/js/index.1c5a1a01449ed65a7b51.js"> <link rel="preload" as="script" href="../_static/js/index.1c5a1a01449ed65a7b51.js">

@ -24,6 +24,14 @@
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/sphinx-book-theme.acff12b8f9c144ce68a297486a2fa670.css" type="text/css" /> <link rel="stylesheet" href="../_static/sphinx-book-theme.acff12b8f9c144ce68a297486a2fa670.css" type="text/css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/nbsphinx-code-cells.css" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css" /> <link rel="stylesheet" type="text/css" href="../_static/custom.css" />
<link rel="preload" as="script" href="../_static/js/index.1c5a1a01449ed65a7b51.js"> <link rel="preload" as="script" href="../_static/js/index.1c5a1a01449ed65a7b51.js">

File diff suppressed because one or more lines are too long

@ -33,6 +33,7 @@
] ]
}, },
{ {
"attachments": {},
"cell_type": "markdown", "cell_type": "markdown",
"id": "02f0a927", "id": "02f0a927",
"metadata": {}, "metadata": {},
@ -44,53 +45,17 @@
"- Python version, compatible with the Pyomo and Gurobipy modeling languages,\n", "- Python version, compatible with the Pyomo and Gurobipy modeling languages,\n",
"- Julia version, compatible with the JuMP modeling language.\n", "- Julia version, compatible with the JuMP modeling language.\n",
"\n", "\n",
"In this tutorial, we will demonstrate how to use and install the Python/Gurobipy version of the package. The first step is to install Python 3.8+ in your computer. See the [official Python website for more instructions](https://www.python.org/downloads/). After Python is installed, we proceed to install MIPLearn using `pip`:" "In this tutorial, we will demonstrate how to use and install the Python/Gurobipy version of the package. The first step is to install Python 3.8+ in your computer. See the [official Python website for more instructions](https://www.python.org/downloads/). After Python is installed, we proceed to install MIPLearn using `pip`:\n",
] "\n",
}, "```\n",
{ "$ pip install MIPLearn==0.3\n",
"cell_type": "code", "```\n",
"execution_count": 1, "\n",
"id": "cd8a69c1", "In addition to MIPLearn itself, we will also install Gurobi 10.0, a state-of-the-art commercial MILP solver. This step also install a demo license for Gurobi, which should able to solve the small optimization problems in this tutorial. A license is required for solving larger-scale problems.\n",
"metadata": { "\n",
"ExecuteTime": { "```\n",
"end_time": "2023-06-06T20:18:02.381829278Z", "$ pip install 'gurobipy>=10,<10.1'\n",
"start_time": "2023-06-06T20:18:02.381532300Z" "```"
}
},
"outputs": [],
"source": [
"# !pip install MIPLearn==0.3.0"
]
},
{
"cell_type": "markdown",
"id": "e8274543",
"metadata": {},
"source": [
"In addition to MIPLearn itself, we will also install Gurobi 10.0, a state-of-the-art commercial MILP solver. This step also install a demo license for Gurobi, which should able to solve the small optimization problems in this tutorial. A license is required for solving larger-scale problems."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "dcc8756c",
"metadata": {
"ExecuteTime": {
"end_time": "2023-06-06T20:18:15.537811992Z",
"start_time": "2023-06-06T20:18:13.449177860Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: gurobipy<10.1,>=10 in /home/axavier/Software/anaconda3/envs/miplearn/lib/python3.8/site-packages (10.0.1)\n"
]
}
],
"source": [
"!pip install 'gurobipy>=10,<10.1'"
] ]
}, },
{ {
@ -214,6 +179,7 @@
"from miplearn.io import read_pkl_gz\n", "from miplearn.io import read_pkl_gz\n",
"from miplearn.solvers.gurobi import GurobiModel\n", "from miplearn.solvers.gurobi import GurobiModel\n",
"\n", "\n",
"\n",
"def build_uc_model(data: Union[str, UnitCommitmentData]) -> GurobiModel:\n", "def build_uc_model(data: Union[str, UnitCommitmentData]) -> GurobiModel:\n",
" if isinstance(data, str):\n", " if isinstance(data, str):\n",
" data = read_pkl_gz(data)\n", " data = read_pkl_gz(data)\n",
@ -223,9 +189,7 @@
" x = model._x = model.addVars(n, vtype=GRB.BINARY, name=\"x\")\n", " x = model._x = model.addVars(n, vtype=GRB.BINARY, name=\"x\")\n",
" y = model._y = model.addVars(n, name=\"y\")\n", " y = model._y = model.addVars(n, name=\"y\")\n",
" model.setObjective(\n", " model.setObjective(\n",
" quicksum(\n", " quicksum(data.cfix[i] * x[i] + data.cvar[i] * y[i] for i in range(n))\n",
" data.cfix[i] * x[i] + data.cvar[i] * y[i] for i in range(n)\n",
" )\n",
" )\n", " )\n",
" model.addConstrs(y[i] <= data.pmax[i] * x[i] for i in range(n))\n", " model.addConstrs(y[i] <= data.pmax[i] * x[i] for i in range(n))\n",
" model.addConstrs(y[i] >= data.pmin[i] * x[i] for i in range(n))\n", " model.addConstrs(y[i] >= data.pmin[i] * x[i] for i in range(n))\n",
@ -588,7 +552,7 @@
"\n", "\n",
"solver_ml = LearningSolver(components=[comp])\n", "solver_ml = LearningSolver(components=[comp])\n",
"solver_ml.fit(train_data)\n", "solver_ml.fit(train_data)\n",
"solver_ml.optimize(test_data[0], build_uc_model);" "solver_ml.optimize(test_data[0], build_uc_model)"
] ]
}, },
{ {
@ -690,7 +654,7 @@
"source": [ "source": [
"solver_baseline = LearningSolver(components=[])\n", "solver_baseline = LearningSolver(components=[])\n",
"solver_baseline.fit(train_data)\n", "solver_baseline.fit(train_data)\n",
"solver_baseline.optimize(test_data[0], build_uc_model);" "solver_baseline.optimize(test_data[0], build_uc_model)"
] ]
}, },
{ {

@ -123,7 +123,7 @@
</li> </li>
<li class="toctree-l1"> <li class="toctree-l1">
<a class="reference internal" href="../../guide/solvers/"> <a class="reference internal" href="../../guide/solvers/">
8. Solvers 8. Learning Solver
</a> </a>
</li> </li>
</ul> </ul>
@ -294,31 +294,13 @@
<li><p>Julia version, compatible with the JuMP modeling language.</p></li> <li><p>Julia version, compatible with the JuMP modeling language.</p></li>
</ul> </ul>
<p>In this tutorial, we will demonstrate how to use and install the Python/Gurobipy version of the package. The first step is to install Python 3.8+ in your computer. See the <a class="reference external" href="https://www.python.org/downloads/">official Python website for more instructions</a>. After Python is installed, we proceed to install MIPLearn using <code class="docutils literal notranslate"><span class="pre">pip</span></code>:</p> <p>In this tutorial, we will demonstrate how to use and install the Python/Gurobipy version of the package. The first step is to install Python 3.8+ in your computer. See the <a class="reference external" href="https://www.python.org/downloads/">official Python website for more instructions</a>. After Python is installed, we proceed to install MIPLearn using <code class="docutils literal notranslate"><span class="pre">pip</span></code>:</p>
<div class="nbinput nblast docutils container"> <div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ pip install MIPLearn==0.3
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[1]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="c1"># !pip install MIPLearn==0.3.0</span>
</pre></div> </pre></div>
</div> </div>
</div>
<p>In addition to MIPLearn itself, we will also install Gurobi 10.0, a state-of-the-art commercial MILP solver. This step also install a demo license for Gurobi, which should able to solve the small optimization problems in this tutorial. A license is required for solving larger-scale problems.</p> <p>In addition to MIPLearn itself, we will also install Gurobi 10.0, a state-of-the-art commercial MILP solver. This step also install a demo license for Gurobi, which should able to solve the small optimization problems in this tutorial. A license is required for solving larger-scale problems.</p>
<div class="nbinput docutils container"> <div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ pip install &#39;gurobipy&gt;=10,&lt;10.1&#39;
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[2]:
</pre></div> </pre></div>
</div> </div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="o">!</span>pip install <span class="s1">&#39;gurobipy&gt;=10,&lt;10.1&#39;</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
Requirement already satisfied: gurobipy&lt;10.1,&gt;=10 in /home/axavier/Software/anaconda3/envs/miplearn/lib/python3.8/site-packages (10.0.1)
</pre></div></div>
</div>
<div class="admonition note"> <div class="admonition note">
<p class="admonition-title">Note</p> <p class="admonition-title">Note</p>
<p>In the code above, we install specific version of all packages to ensure that this tutorial keeps running in the future, even when newer (and possibly incompatible) versions of the packages are released. This is usually a recommended practice for all Python projects.</p> <p>In the code above, we install specific version of all packages to ensure that this tutorial keeps running in the future, even when newer (and possibly incompatible) versions of the packages are released. This is usually a recommended practice for all Python projects.</p>
@ -375,6 +357,7 @@ Requirement already satisfied: gurobipy&lt;10.1,&gt;=10 in /home/axavier/Softwar
<span class="kn">from</span> <span class="nn">miplearn.io</span> <span class="kn">import</span> <span class="n">read_pkl_gz</span> <span class="kn">from</span> <span class="nn">miplearn.io</span> <span class="kn">import</span> <span class="n">read_pkl_gz</span>
<span class="kn">from</span> <span class="nn">miplearn.solvers.gurobi</span> <span class="kn">import</span> <span class="n">GurobiModel</span> <span class="kn">from</span> <span class="nn">miplearn.solvers.gurobi</span> <span class="kn">import</span> <span class="n">GurobiModel</span>
<span class="k">def</span> <span class="nf">build_uc_model</span><span class="p">(</span><span class="n">data</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">UnitCommitmentData</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">GurobiModel</span><span class="p">:</span> <span class="k">def</span> <span class="nf">build_uc_model</span><span class="p">(</span><span class="n">data</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">UnitCommitmentData</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">GurobiModel</span><span class="p">:</span>
<span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
<span class="n">data</span> <span class="o">=</span> <span class="n">read_pkl_gz</span><span class="p">(</span><span class="n">data</span><span class="p">)</span> <span class="n">data</span> <span class="o">=</span> <span class="n">read_pkl_gz</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
@ -384,9 +367,7 @@ Requirement already satisfied: gurobipy&lt;10.1,&gt;=10 in /home/axavier/Softwar
<span class="n">x</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">_x</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">addVars</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">vtype</span><span class="o">=</span><span class="n">GRB</span><span class="o">.</span><span class="n">BINARY</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;x&quot;</span><span class="p">)</span> <span class="n">x</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">_x</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">addVars</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">vtype</span><span class="o">=</span><span class="n">GRB</span><span class="o">.</span><span class="n">BINARY</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;x&quot;</span><span class="p">)</span>
<span class="n">y</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">_y</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">addVars</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;y&quot;</span><span class="p">)</span> <span class="n">y</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">_y</span> <span class="o">=</span> <span class="n">model</span><span class="o">.</span><span class="n">addVars</span><span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="n">name</span><span class="o">=</span><span class="s2">&quot;y&quot;</span><span class="p">)</span>
<span class="n">model</span><span class="o">.</span><span class="n">setObjective</span><span class="p">(</span> <span class="n">model</span><span class="o">.</span><span class="n">setObjective</span><span class="p">(</span>
<span class="n">quicksum</span><span class="p">(</span> <span class="n">quicksum</span><span class="p">(</span><span class="n">data</span><span class="o">.</span><span class="n">cfix</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="n">data</span><span class="o">.</span><span class="n">cvar</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*</span> <span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">))</span>
<span class="n">data</span><span class="o">.</span><span class="n">cfix</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+</span> <span class="n">data</span><span class="o">.</span><span class="n">cvar</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*</span> <span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">)</span>
<span class="p">)</span>
<span class="p">)</span> <span class="p">)</span>
<span class="n">model</span><span class="o">.</span><span class="n">addConstrs</span><span class="p">(</span><span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">&lt;=</span> <span class="n">data</span><span class="o">.</span><span class="n">pmax</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">))</span> <span class="n">model</span><span class="o">.</span><span class="n">addConstrs</span><span class="p">(</span><span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">&lt;=</span> <span class="n">data</span><span class="o">.</span><span class="n">pmax</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">))</span>
<span class="n">model</span><span class="o">.</span><span class="n">addConstrs</span><span class="p">(</span><span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="n">data</span><span class="o">.</span><span class="n">pmin</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">))</span> <span class="n">model</span><span class="o">.</span><span class="n">addConstrs</span><span class="p">(</span><span class="n">y</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">&gt;=</span> <span class="n">data</span><span class="o">.</span><span class="n">pmin</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">*</span> <span class="n">x</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">))</span>
@ -576,7 +557,7 @@ machines. The code below generates the files <code class="docutils literal notra
<span class="n">solver_ml</span> <span class="o">=</span> <span class="n">LearningSolver</span><span class="p">(</span><span class="n">components</span><span class="o">=</span><span class="p">[</span><span class="n">comp</span><span class="p">])</span> <span class="n">solver_ml</span> <span class="o">=</span> <span class="n">LearningSolver</span><span class="p">(</span><span class="n">components</span><span class="o">=</span><span class="p">[</span><span class="n">comp</span><span class="p">])</span>
<span class="n">solver_ml</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">train_data</span><span class="p">)</span> <span class="n">solver_ml</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">train_data</span><span class="p">)</span>
<span class="n">solver_ml</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">test_data</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">build_uc_model</span><span class="p">);</span> <span class="n">solver_ml</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">test_data</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">build_uc_model</span><span class="p">)</span>
</pre></div> </pre></div>
</div> </div>
</div> </div>
@ -658,7 +639,7 @@ Best objective 8.291459497797e+09, best bound 8.290645029670e+09, gap 0.0098%
</div> </div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="n">solver_baseline</span> <span class="o">=</span> <span class="n">LearningSolver</span><span class="p">(</span><span class="n">components</span><span class="o">=</span><span class="p">[])</span> <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="n">solver_baseline</span> <span class="o">=</span> <span class="n">LearningSolver</span><span class="p">(</span><span class="n">components</span><span class="o">=</span><span class="p">[])</span>
<span class="n">solver_baseline</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">train_data</span><span class="p">)</span> <span class="n">solver_baseline</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">train_data</span><span class="p">)</span>
<span class="n">solver_baseline</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">test_data</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">build_uc_model</span><span class="p">);</span> <span class="n">solver_baseline</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">test_data</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">build_uc_model</span><span class="p">)</span>
</pre></div> </pre></div>
</div> </div>
</div> </div>

@ -124,7 +124,7 @@
</li> </li>
<li class="toctree-l1"> <li class="toctree-l1">
<a class="reference internal" href="../../guide/solvers/"> <a class="reference internal" href="../../guide/solvers/">
8. Solvers 8. Learning Solver
</a> </a>
</li> </li>
</ul> </ul>

@ -33,6 +33,7 @@
] ]
}, },
{ {
"attachments": {},
"cell_type": "markdown", "cell_type": "markdown",
"id": "02f0a927", "id": "02f0a927",
"metadata": {}, "metadata": {},
@ -44,53 +45,17 @@
"- Python version, compatible with the Pyomo and Gurobipy modeling languages,\n", "- Python version, compatible with the Pyomo and Gurobipy modeling languages,\n",
"- Julia version, compatible with the JuMP modeling language.\n", "- Julia version, compatible with the JuMP modeling language.\n",
"\n", "\n",
"In this tutorial, we will demonstrate how to use and install the Python/Pyomo version of the package. The first step is to install Python 3.8+ in your computer. See the [official Python website for more instructions](https://www.python.org/downloads/). After Python is installed, we proceed to install MIPLearn using `pip`:" "In this tutorial, we will demonstrate how to use and install the Python/Pyomo version of the package. The first step is to install Python 3.8+ in your computer. See the [official Python website for more instructions](https://www.python.org/downloads/). After Python is installed, we proceed to install MIPLearn using `pip`:\n",
] "\n",
}, "```\n",
{ "$ pip install MIPLearn==0.3\n",
"cell_type": "code", "```\n",
"execution_count": 1, "\n",
"id": "cd8a69c1", "In addition to MIPLearn itself, we will also install Gurobi 10.0, a state-of-the-art commercial MILP solver. This step also install a demo license for Gurobi, which should able to solve the small optimization problems in this tutorial. A license is required for solving larger-scale problems.\n",
"metadata": { "\n",
"ExecuteTime": { "```\n",
"end_time": "2023-06-06T19:57:33.202580815Z", "$ pip install 'gurobipy>=10,<10.1'\n",
"start_time": "2023-06-06T19:57:33.198341886Z" "```"
}
},
"outputs": [],
"source": [
"# !pip install MIPLearn==0.3.0"
]
},
{
"cell_type": "markdown",
"id": "e8274543",
"metadata": {},
"source": [
"In addition to MIPLearn itself, we will also install Gurobi 10.0, a state-of-the-art commercial MILP solver. This step also install a demo license for Gurobi, which should able to solve the small optimization problems in this tutorial. A license is required for solving larger-scale problems."
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "dcc8756c",
"metadata": {
"ExecuteTime": {
"end_time": "2023-06-06T19:57:35.756831801Z",
"start_time": "2023-06-06T19:57:33.201767088Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: gurobipy<10.1,>=10 in /home/axavier/Software/anaconda3/envs/miplearn/lib/python3.8/site-packages (10.0.1)\n"
]
}
],
"source": [
"!pip install 'gurobipy>=10,<10.1'"
] ]
}, },
{ {
@ -600,7 +565,7 @@
"\n", "\n",
"solver_ml = LearningSolver(components=[comp])\n", "solver_ml = LearningSolver(components=[comp])\n",
"solver_ml.fit(train_data)\n", "solver_ml.fit(train_data)\n",
"solver_ml.optimize(test_data[0], build_uc_model);" "solver_ml.optimize(test_data[0], build_uc_model)"
] ]
}, },
{ {
@ -706,7 +671,7 @@
"source": [ "source": [
"solver_baseline = LearningSolver(components=[])\n", "solver_baseline = LearningSolver(components=[])\n",
"solver_baseline.fit(train_data)\n", "solver_baseline.fit(train_data)\n",
"solver_baseline.optimize(test_data[0], build_uc_model);" "solver_baseline.optimize(test_data[0], build_uc_model)"
] ]
}, },
{ {

@ -125,7 +125,7 @@
</li> </li>
<li class="toctree-l1"> <li class="toctree-l1">
<a class="reference internal" href="../../guide/solvers/"> <a class="reference internal" href="../../guide/solvers/">
8. Solvers 8. Learning Solver
</a> </a>
</li> </li>
</ul> </ul>
@ -296,31 +296,13 @@
<li><p>Julia version, compatible with the JuMP modeling language.</p></li> <li><p>Julia version, compatible with the JuMP modeling language.</p></li>
</ul> </ul>
<p>In this tutorial, we will demonstrate how to use and install the Python/Pyomo version of the package. The first step is to install Python 3.8+ in your computer. See the <a class="reference external" href="https://www.python.org/downloads/">official Python website for more instructions</a>. After Python is installed, we proceed to install MIPLearn using <code class="docutils literal notranslate"><span class="pre">pip</span></code>:</p> <p>In this tutorial, we will demonstrate how to use and install the Python/Pyomo version of the package. The first step is to install Python 3.8+ in your computer. See the <a class="reference external" href="https://www.python.org/downloads/">official Python website for more instructions</a>. After Python is installed, we proceed to install MIPLearn using <code class="docutils literal notranslate"><span class="pre">pip</span></code>:</p>
<div class="nbinput nblast docutils container"> <div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ pip install MIPLearn==0.3
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[1]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="c1"># !pip install MIPLearn==0.3.0</span>
</pre></div> </pre></div>
</div> </div>
</div>
<p>In addition to MIPLearn itself, we will also install Gurobi 10.0, a state-of-the-art commercial MILP solver. This step also install a demo license for Gurobi, which should able to solve the small optimization problems in this tutorial. A license is required for solving larger-scale problems.</p> <p>In addition to MIPLearn itself, we will also install Gurobi 10.0, a state-of-the-art commercial MILP solver. This step also install a demo license for Gurobi, which should able to solve the small optimization problems in this tutorial. A license is required for solving larger-scale problems.</p>
<div class="nbinput docutils container"> <div class="highlight-none notranslate"><div class="highlight"><pre><span></span>$ pip install &#39;gurobipy&gt;=10,&lt;10.1&#39;
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[2]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="o">!</span>pip install <span class="s1">&#39;gurobipy&gt;=10,&lt;10.1&#39;</span>
</pre></div> </pre></div>
</div> </div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
Requirement already satisfied: gurobipy&lt;10.1,&gt;=10 in /home/axavier/Software/anaconda3/envs/miplearn/lib/python3.8/site-packages (10.0.1)
</pre></div></div>
</div>
<div class="admonition note"> <div class="admonition note">
<p class="admonition-title">Note</p> <p class="admonition-title">Note</p>
<p>In the code above, we install specific version of all packages to ensure that this tutorial keeps running in the future, even when newer (and possibly incompatible) versions of the packages are released. This is usually a recommended practice for all Python projects.</p> <p>In the code above, we install specific version of all packages to ensure that this tutorial keeps running in the future, even when newer (and possibly incompatible) versions of the packages are released. This is usually a recommended practice for all Python projects.</p>
@ -586,7 +568,7 @@ machines. The code below generates the files <code class="docutils literal notra
<span class="n">solver_ml</span> <span class="o">=</span> <span class="n">LearningSolver</span><span class="p">(</span><span class="n">components</span><span class="o">=</span><span class="p">[</span><span class="n">comp</span><span class="p">])</span> <span class="n">solver_ml</span> <span class="o">=</span> <span class="n">LearningSolver</span><span class="p">(</span><span class="n">components</span><span class="o">=</span><span class="p">[</span><span class="n">comp</span><span class="p">])</span>
<span class="n">solver_ml</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">train_data</span><span class="p">)</span> <span class="n">solver_ml</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">train_data</span><span class="p">)</span>
<span class="n">solver_ml</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">test_data</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">build_uc_model</span><span class="p">);</span> <span class="n">solver_ml</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">test_data</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">build_uc_model</span><span class="p">)</span>
</pre></div> </pre></div>
</div> </div>
</div> </div>
@ -672,7 +654,7 @@ WARNING: Cannot get duals for MIP.
</div> </div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="n">solver_baseline</span> <span class="o">=</span> <span class="n">LearningSolver</span><span class="p">(</span><span class="n">components</span><span class="o">=</span><span class="p">[])</span> <div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre><span></span><span class="n">solver_baseline</span> <span class="o">=</span> <span class="n">LearningSolver</span><span class="p">(</span><span class="n">components</span><span class="o">=</span><span class="p">[])</span>
<span class="n">solver_baseline</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">train_data</span><span class="p">)</span> <span class="n">solver_baseline</span><span class="o">.</span><span class="n">fit</span><span class="p">(</span><span class="n">train_data</span><span class="p">)</span>
<span class="n">solver_baseline</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">test_data</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">build_uc_model</span><span class="p">);</span> <span class="n">solver_baseline</span><span class="o">.</span><span class="n">optimize</span><span class="p">(</span><span class="n">test_data</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">build_uc_model</span><span class="p">)</span>
</pre></div> </pre></div>
</div> </div>
</div> </div>

Loading…
Cancel
Save