数学建模 线性规划(LP)

简介: 数学建模 线性规划(LP)

线性规划(LP)

案例

案例1

线性规划1.png

数学求解过程

线性规划2.png

一般线性规划问题标准型

线性规划3.png

Matlab标准

线性规划4.png

matlab linprog函数

线性规划6.png

Lingo 求解规划问题

lingo1.png

!Lingo 中“<"表示“<=";
!Lingo默认所有变量非负,要取消该限制,用@free(x);

线性规划案例(优化算法-线性规划.md)

  1. min最小值
    mathproblem1.png
  2. max最大值
    mathproblem2.png
    mathproblem3.png
%  线性规划(LP) Linear Programming
%{
   
   

调用格式:其中,c和x为n维列向量;b为m维列向量;A为mXn矩阵。
[x,fval,exitflag,output,lambda]=linprog(c,A,b,Aeq,beq,LB,UB,x0,options)
    其中,
    x返回最优解;fval返回目标函数值;
    A和b对应不等式约束Ax<b;
    Aeq和beq对应等式约束Ax=b;
    LB和UB分别是变量x的下界和上界;
    x0为x的初始值;options为控制参数。

    如果没有不等式约束条件则A,b = []
    如果没有等式约束条件则Aeq,beq = []
    exitflag返回算法停止的原因:
    1表示成功找到最优解,0表示达到最大选代次数,不能继续寻找最优解,<0表示优化失败
    -2未找到可行解,-3问题没有定义边界,-4 NaN存在导致算法退出,-5原始对偶问题没有可行解,-7算法搜索方向存在问题;
%}

%线性规划案例1(题目见--优化算法-线性规划.md)

c = [2,3,1];
A = [1,4,2;3,2,0];
b= [8,6];

[x,fval]=linprog(c,-A,-b,[],[],zeros(3,1)) 
%Aeq,beq = []没有等式约束条件
% -A,-b 的原因是 不等式是大于号  应该转换成标准形式小于号

c1 = -[2,1,-1]; %求解最大值需要改成  -[]
A1 = [1,4,-1;2,-2,1];
b1 = [4,12]
A1eq = [1,1,2];
b1eq = [6];  

[x1,fval1]=linprog(c1,A1,b1,A1eq,b1eq,zeros(3,1)) 

%x返回最优解;fval返回目标函数值;

c2 = [2,3,-5]; %求解最大值需要改成  -[] 或者输出 '-c'
A2 = [2,-5,1]; %不等式大于号  应该转换成标准形式小于号
b2 = [10];       %不等式大于号  应该转换成标准形式小于号
A2eq = [1,1,1]; 
b2eq = [7];  

[x2,fval2]=linprog(-c2,-A2,-b2,A2eq,b2eq,zeros(3,1)) %-fval2才是最大值
目录
相关文章
|
人工智能
【Mixup】探索数据增强技术:深入了解Mixup操作
【Mixup】探索数据增强技术:深入了解Mixup操作
1546 0
|
机器学习/深度学习 资源调度 数据可视化
UCB Data100:数据科学的原理和技巧:第十六章到第十八章
UCB Data100:数据科学的原理和技巧:第十六章到第十八章
423 0
|
人工智能 算法 决策智能
OR-tools求解器使用介绍(一)
OR-tools求解器使用介绍(一)
1916 0
|
机器学习/深度学习 Python
堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能
本文深入探讨了堆叠集成策略的原理、实现方法及Python应用。堆叠通过多层模型组合,先用不同基础模型生成预测,再用元学习器整合这些预测,提升模型性能。文章详细介绍了堆叠的实现步骤,包括数据准备、基础模型训练、新训练集构建及元学习器训练,并讨论了其优缺点。
961 3
|
9月前
|
人工智能 边缘计算 5G
边缘智能体:轻量化部署与离线运行
作为一名深耕AI技术多年的博主摘星,我深刻感受到边缘计算与人工智能融合所带来的技术革命。在云计算主导的时代,我们习惯了将复杂的AI推理任务交给强大的云端服务器处理,但随着物联网设备的爆发式增长、5G网络的普及以及对实时性要求的不断提升,边缘智能体(Edge Intelligent Agents)正成为AI技术发展的新趋势。边缘智能体不仅要求在资源受限的边缘设备上高效运行,还需要具备离线推理能力,这对传统的AI部署模式提出了全新的挑战。在我多年的实践中,我发现边缘智能体的核心价值在于将智能决策能力下沉到数据产生的源头,通过模型压缩、量化优化、离线推理等技术手段,实现低延迟、高可靠、隐私保护的智能
1032 0
|
机器学习/深度学习 人工智能 运维
深度学习在流量监控中的革命性应用
深度学习在流量监控中的革命性应用
491 40
|
机器学习/深度学习 存储 人工智能
新一代数据库技术:融合人工智能与分布式系统的未来前景
传统数据库技术在应对大规模数据处理和智能化需求方面逐渐显露出瓶颈。本文探讨了新一代数据库技术的发展趋势,重点关注了人工智能与分布式系统的融合,以及其在未来数据管理和分析中的潜在优势。通过深度学习和自动化技术,新型数据库系统能够实现更高效的数据处理和智能化决策,为企业带来更灵活、可靠的数据解决方案。
|
开发工具 数据安全/隐私保护 git
解决方案:Github Support for password authentication was removed on August 13, 2021.
解决方案:Github Support for password authentication was removed on August 13, 2021.
1315 1
解决方案:Github Support for password authentication was removed on August 13, 2021.
|
传感器 数据采集 监控
Java串口编程入门
Java串口编程入门
|
Java 测试技术 数据库
Java一分钟之-Mockito:模拟对象测试
【6月更文挑战第4天】Mockito是Java单元测试中的模拟框架,用于创建和配置模拟对象以隔离测试代码。核心概念包括:模拟对象、预期行为(定义方法调用响应)、验证(检查方法调用)和捕获参数。常见问题包括过度模拟、忽略未使用的模拟调用、不恰当配置和误用Mockito注解。解决方案包括正确选择模拟对象、验证所有交互、仔细配置模拟行为及在测试类中正确使用Mockito注解。提供的代码示例展示了如何使用Mockito模拟和验证方法调用,以实现独立且准确的测试。学习和避免这些易错点可提升测试效率和代码质量。
710 0
Java一分钟之-Mockito:模拟对象测试