matlab实现蒙特卡洛方法求解线性规划问题
2018-02-01 22:27
651 查看
蒙特卡洛法:
某些问题而言,利用穷举法,会导致计算量过大。蒙特卡洛就是随机生成很多解,然后不断寻找更好的解。到了一定次数,结果就会很接近。
具体问题:
目标函数写成Max
条件:条件<=0(代码里面假设有四个)
代码:
首先根据目标和条件给定函数mengte()
function [f,g]=mengte(x);
f=目标函数
g=[条件1
条件2
条件3
条件4
]
然后,再写出关于蒙特卡洛的具体程序M
p0=0;
for i=1:10^6
x=99*rand(5,1)
%5行1列的随机数,由于x的范围在1~99,所以乘99
x1=floor(x0);x2=ceil(x0);
%floor向下求整,ceil向上求整,符合整数要求
[f,g]=mengte[x1];
if sum(g<=0)==4
%满足规划要求条件
if p0<f
x0=x1;p0=f; %如果有更好地结果,进行替换
end
end
[f,g]=mengte[x2];
if sum(g<=0)==4
if p0<f
x0=x1;p0=f
end
end
end
x0,p0
end
程序参考:《数模大全》司守奎
某些问题而言,利用穷举法,会导致计算量过大。蒙特卡洛就是随机生成很多解,然后不断寻找更好的解。到了一定次数,结果就会很接近。
具体问题:
目标函数写成Max
条件:条件<=0(代码里面假设有四个)
代码:
首先根据目标和条件给定函数mengte()
function [f,g]=mengte(x);
f=目标函数
g=[条件1
条件2
条件3
条件4
]
然后,再写出关于蒙特卡洛的具体程序M
p0=0;
for i=1:10^6
x=99*rand(5,1)
%5行1列的随机数,由于x的范围在1~99,所以乘99
x1=floor(x0);x2=ceil(x0);
%floor向下求整,ceil向上求整,符合整数要求
[f,g]=mengte[x1];
if sum(g<=0)==4
%满足规划要求条件
if p0<f
x0=x1;p0=f; %如果有更好地结果,进行替换
end
end
[f,g]=mengte[x2];
if sum(g<=0)==4
if p0<f
x0=x1;p0=f
end
end
end
x0,p0
end
程序参考:《数模大全》司守奎
相关文章推荐
- 一种高效率的排序方法-归并排序的实现(主要解决matlab中多维数组排序的问题)
- 单纯形法 simplex method 求解线性规划问题的通用方法.单纯形是美国数学家G.B.丹齐克于1947年首先提出来的.它的理论根据是:线性规划问题的可行域是 n维向量空间Rn中的多
- C语言 数据结构中求解迷宫问题实现方法
- 用递归法:设计算法求解汉诺塔问题,并编程实现。 (1) Hanoi(汉诺)塔问题分析 这是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:古代有一个梵塔,塔内有3个座 A,B,C
- PHP实现基于回溯法求解迷宫问题的方法详解
- MATLAB求解线性规划(含整数规划和0-1规划)问题
- 多目标线性规划求解方法及matlab实现
- MATLAB实现多分类问题,使用libsvm,1-vs-rest和1-vs-1两种方法代码
- MATLAB求解线性规划(含整数规划和0-1规划)问题
- 多目标线性规划求解方法及matlab实现
- PHP实现求解最长公共子串问题的方法
- SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对二元函数优化求解——Jason niu
- 线性规划问题的matlab求解
- matlab求解非线性约束+线性规划+超定欠定普通方程组等优化问题
- 用非递归方法实现 求解字符串组合的问题 JAVA代码
- MatLab建模学习笔记7——线性规划问题求解
- 单纯形算法求解线性规划问题(依据《算法导论》实现)
- Rational Krylov Method(克雷洛夫法)求解特征值问题matlab代码示例(和Arnoldi方法比较)
- Python实现求解括号匹配问题的方法
- 【高级算法】单纯形法求解线性规划问题(C++实现)