i4h / php-mip
一个用于创建和输出混合整数规划的 PHP 类
dev-master
2017-02-07 14:43 UTC
This package is not auto-updated.
Last update: 2024-09-23 14:46:58 UTC
README
PhpMIP 是一个表示线性混合整数规划的 PHP 类。
它包含一个写入 IBM CPLEX LP 文件格式的写入器,以及一个基础写入器和接口,这应该有助于添加您自己的写入器类。
安装
可以通过 composer 将此包安装到您的项目中
$ php composer.phar require i4h/php-mip "*"
用法
请参阅示例目录中的两个 MIP 示例。
工作流程遵循通用建模语言
- 创建集合
- 创建变量
- 创建约束
- 定义目标函数
以下代码来自 example/trivial.php
$mip = new \vendor\i4h\PhpMIP\MIP();
/* Variable x */
$mip->addVariable("x", \vendor\i4h\PhpMIP\MIPvariable::TYPE_CONTINUOUS);
$mip->setVariableLB("x", 0);
/* Variable y */
$mip->addVariable("y", \vendor\i4h\PhpMIP\MIPvariable::TYPE_CONTINUOUS);
$mip->setVariableLB("y", 0);
/* Objective (default coefficient is 1) */
$mip->addObjectiveCoefficient("x");
$mip->addObjectiveCoefficient("y");
/* Constraint x + y <= 1 */
$vars = [
['name'=>'x', 'coefficient'=>1],
['name'=>'y', 'coefficient'=>1],
];
$mip->addConstraintLE($vars, 1);
/* Use Lp writer to write to a file */
$writer = new \vendor\i4h\PhpMIP\LpWriter();
$writer->setOutFile("/path/to/outfile.lp");
$writer->write(create);
上述代码将创建一个包含以下内容的 lp 文件
Minimize
obj: 1 x + 1 y
Subject To
1 x + 1 y <= 1
Bounds
end