OptiCL 项目使用教程
1. 项目的目录结构及介绍
OptiCL 项目的目录结构如下:
OptiCL/
├── notebooks/
│ ├── WFP/
│ │ └── The Palatable Diet Problem.ipynb
│ ├── Pipeline/
│ │ ├── Model_embedding.ipynb
│ │ ├── Model_Verification_Regression.ipynb
│ │ └── Model_Verification_Classification.ipynb
├── opticl/
├── .gitignore
├── LICENSE
├── README.md
├── pyproject.toml
├── setup.cfg
目录结构介绍:
- notebooks/: 包含项目的示例 Jupyter Notebook 文件,展示了 OptiCL 的使用方法和案例研究。
- WFP/: 包含与世界粮食计划署(WFP)相关的案例研究。
- Pipeline/: 包含一般管道概述和模型验证的 Notebook 文件。
- opticl/: 包含 OptiCL 的核心代码和功能实现。
- .gitignore: Git 忽略文件,指定哪些文件和目录不应被版本控制。
- LICENSE: 项目的开源许可证文件,OptiCL 使用 MIT 许可证。
- README.md: 项目的介绍文件,包含项目的基本信息、使用方法和贡献指南。
- pyproject.toml: Python 项目的配置文件,定义了项目的构建系统和依赖项。
- setup.cfg: 项目的安装配置文件,定义了项目的元数据和安装选项。
2. 项目的启动文件介绍
OptiCL 项目没有明确的“启动文件”,因为它是一个 Python 包,通常通过导入模块来使用。不过,项目中的 notebooks/
目录下的 Jupyter Notebook 文件可以作为启动点,帮助用户了解和使用 OptiCL 的功能。
主要启动文件:
- notebooks/WFP/The Palatable Diet Problem.ipynb: 展示了如何使用 OptiCL 进行食品篮优化,适用于世界粮食计划署的案例研究。
- notebooks/Pipeline/Model_embedding.ipynb: 提供了 OptiCL 管道的概述,展示了如何训练和嵌入模型。
- notebooks/Pipeline/Model_Verification_Regression.ipynb 和 notebooks/Pipeline/Model_Verification_Classification.ipynb: 展示了如何验证模型的嵌入,并比较 scikit-learn 和 MIO 的预测结果。
3. 项目的配置文件介绍
pyproject.toml
pyproject.toml
是 Python 项目的配置文件,定义了项目的构建系统和依赖项。以下是文件的主要内容:
[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "OptiCL"
version = "0.1.0"
description = "An end-to-end framework for mixed-integer optimization with data-driven learned constraints"
authors = [
{ name="Donato Maragno" },
{ name="Holly Wiberg" }
]
license = { file="LICENSE" }
readme = "README.md"
requires-python = ">=3.6"
dependencies = [
"numpy",
"scikit-learn",
"pyomo",
"gurobi"
]
setup.cfg
setup.cfg
是项目的安装配置文件,定义了项目的元数据和安装选项。以下是文件的主要内容:
[metadata]
name = OptiCL
version = 0.1.0
description = An end-to-end framework for mixed-integer optimization with data-driven learned constraints
long_description = file: README.md
long_description_content_type = text/markdown
author = Donato Maragno, Holly Wiberg
author_email = d.maragno@uva.nl, hwiberg@mit.edu
license = MIT
license_files = LICENSE
[options]
packages = find:
install_requires =
numpy
scikit-learn
pyomo
gurobi
[options.package_data]
* = *.py, *.md, *.toml, *.cfg
通过这些配置文件,用户可以了解项目的依赖项、许可证信息以及如何安装和使用 OptiCL。