IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> gurobi学习笔记1OR-Tools约束规划(1) -> 正文阅读

[人工智能]gurobi学习笔记1OR-Tools约束规划(1)

OR-tools中常见函数说明

#导入OR-Tools中的CP-SAT求解器中的cp_model模块
from ortools.sat.python import cp_model

ortools.sat.python:导入or-tools CP-SAT求解器
CP-SAT求解器:使用SAT (satisfiability)方法的约束规划求解器,是原始约束规划求解器 (CP Solver)的高级版。
SAT (satisfiability)方法:在计算机科学中,布尔可满足性问题(有时称为命题可满足性问题,缩写为SATISFIABILITY或SAT)是确定是否存在满足给定布尔公式的解释的问题。它询问给定布尔公式的变量是否可以一致地用值TRUE或FALSE替换,公式计算结果为TRUE。如果是这种情况,公式称*为可满足。

拓展

约束规划

  1. 约束优化或约束规划(Constraint programming, CP)是指从一组非常大的候选集合中找出可行的解决方案。
    CP是基于可行性(寻找一个可行的解决方案)而不是最优化(寻找一个最优的解决方案),关注点是约束和变量而不是目标函数。甚至CP问题可能没有目标函数(典型的CP问题如员工调度)

  2. OR-Tools为约束编程提供了两个求解器:
    CP-SAT:SAT (satisfiability)方法的约束规划求解器是原始约束规划求解器 (CP Solver)的高级版。
    original-CP:原始约束规划求解器

 #定义CP约束规划模型类
  model = cp_model.CpModel()  

cp_model:约束规划,主要使用整型变量对优化问题进行建模

#定义变量
x1 = model.NewIntVar(0, 4, 'x1')
x2 = model.NewIntVar(0, 3, 'x2')
#这里的model为上文定义的model
  1. model.NewIntVar(lb, ub, name)
    整数变量(下限,上线,变量名)
  2. model.NewIntervalVar(start, size, end, name)
    区间变量(开始,步长,结束,变量名)
  3. model.NewBoolVar(name):
    0-1整数变量(变量名)
#添加约束
model.Add(x1+ 3*x2 <=8)
#添加目标函数
model.Maximize(2*x1 + 3* x2)
#创建求解器并求解
solver = cp_model.CpSolver()
solver.Solve(model)
#用solver解模型model
#打印结果
print("目标值为:",solver.ObjectiveValue())
print("x1=",solver.Value(x1))
print("x1=",solver.Value(x2))
完整代码
#导入OR-Tools中的CP-SAT求解器中的cp_model模块
from ortools.sat.python import cp_model
# 定义CP约束规划模型类
model = cp_model.CpModel()
#定义变量
x1 = model.NewIntVar(0, 4, 'x1')#这里的model为上文定义的model
x2 = model.NewIntVar(0, 3, 'x2')
#添加约束
model.Add(x1+ 3*x2 <=8)
#添加目标函数
model.Maximize(2*x1 + 3* x2)
#创建求解器并求解
solver = cp_model.CpSolver()
solver.Solve(model)  #用solver解模型model
#打印结果
print("目标值为:",solver.ObjectiveValue())
print("x1=",solver.Value(x1))
print("x1=",solver.Value(x2))
  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:28:52  更:2021-12-24 18:30:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 3:41:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码