【算法】Pulp-优化的概念(二)

一、线性规划

最简单的数学程序是一个线性程序。为了让你的数学程序成为一个线性程序,你需要以下条件:
1、决策变量必须是实数变量;
2、目标必须是一个线性表达式;
3、约束必须是线性表达式。

线性表达式是以下形式的表达式:
image.png

其中 ai a i b b 是已知的常数,xi是变量。解这样的规划问题称为线性规划。线性规划是通过经过修正的单纯形法(也称为原始单形法)、对偶单纯形法或内部点法进行的。一些像cplex这样的解决方案允许您指定使用哪个方法,但是我们不会在这里进一步详细讨论。

二、整数规划

整数规划与线性规划有一个重要的区别,整数规划中的一些决策变量可能只需要整数值。由于大多数整数规划包含连续变量和整数变量的混合,所以它们通常被称为混合整数规划。虽然与线性规划的变化看上去是很小的,但对解决方案过程的影响是巨大的。整数规划可能是非常难解决的问题,但目前有很多研究找到了解决整数程序的“好”方法。整数规划可以使用分支和绑定(branch-and-bound)的过程来解决。
注意,对于任何合理大小的MIPs,随着整数变量的数量增加,解决方案时间将呈指数增长。

Windows 7上安装pulp和glpk步骤: 亲测环境: Windows 6.1.7601 Service Pack 1 Build 7601 x64 Python 2.7.11 PuLP 1.6.8 GLPK 4.34 安装步骤: 1、下载PuLP安装包:前提是,已安装python2.6以及2.6以上版本,在网页(https://pythonhosted.org/PuLP/main/installing_pulp_at_home.html)上点击PuLP zipfile下载pulp包,当然,也可以在我的资源里下载 2、安装PuLP:将zipfile解压缩,并在命令行窗口中,进入解压缩的目录,然后输入命令:setup.py install 3、下载glpk安装包:在网页(https://sourceforge.net/projects/gnuwin32/files/glpk/4.34/)上,下载glpk-4.34-setup.exe(也可以在我的资源里下载),然后双击默认安装 4、按照以上步骤,安装完以后,写一个.py的脚本并运行,脚本内容: from pulp import * pulp.pulpTestAll() 然后,会看到以下类似输出结果: D:\002-Task_150524\117-17data_thesis\004-code\testPulp.py Testing zero subtraction Testing inconsistant lp solution Testing continuous LP solution Testing maximize continuous LP solution Testing unbounded continuous LP solution Testing Long Names Testing repeated Names Testing zero constraint Testing zero objective Testing LpVariable (not LpAffineExpression) objective Testing Long lines in LP Testing LpAffineExpression divide Testing MIP solution Testing MIP solution with floats in objective Testing MIP relaxation Testing feasibility problem (no objective) Testing an infeasible problem Testing an integer infeasible problem Testing column based modelling Testing dual variables and slacks reporting Testing fractional constraints Testing elastic constraints (no change) Testing elastic constraints (freebound) Testing elastic constraints (penalty unchanged) Testing elastic constraints (penalty unbounded) * Solver pulp.solvers.PULP_CBC_CMD passed. Solver pulp.solvers.CPLEX_DLL unavailable Solver pulp.solvers.CPLEX_CMD unavailable Solver pulp.solvers.CPLEX_PY unavailable Solver pulp.solvers.COIN_CMD unavailable Solver pulp.solvers.COINMP_DLL unavailable Testing zero subtraction Testing inconsistant lp solut
PULP-platform是一个开源的RISC-V处理器平台,其中包括了PULP项目和ARA项目。PULP项目是一个完整的开源RISC-V处理器,而ARA项目是一个开源的RISC-V向量加速器。这两个项目都非常活跃,并且有详细的文档和指南来帮助用户进行编译和使用。如果你想在PULP-platform上编译软件,你可以按照https://github.com/pulp-platform/ara#software的步骤在apps目录下进行编译。如果你想编译RTL模拟器,你可以按照https://github.com/pulp-platform/ara#rtl-simulation的步骤在hardware目录下进行编译。请注意,如果你没有安装ModelSim,你需要使用Verilator来编译RTL模拟器。如果你想使用gtkwave来查看波形,你需要单独安装它,并在hardware目录下进行清理操作,然后从make verilator开始,每一步都要加上trace=1选项。\[1\]另外,如果你在PULP文件夹下操作,你可以按照以下步骤来构建RTL模拟平台:首先下载questasim,并设置环境变量export PATH=PATH:<questasim的位置>/bin。然后执行./update-ips命令,接着执行source setup/vsim.sh命令,最后进入sim目录并执行make clean lib build opt命令。\[2\]总的来说,PULP-platform是一个非常完整和认真的开源RISC-V处理器平台,虽然配置过程可能会有一些挑战,但有详细的文档和社区支持可以帮助你解决问题。\[3\] #### 引用[.reference_title] - *1* *3* [学习riscv-vector加速器(1):搭建pulp-platform/ara的测试环境](https://blog.csdn.net/a675619772/article/details/123354721)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [pulp platform搭建流程](https://blog.csdn.net/ziang87/article/details/103914385)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值