b***k 发帖数: 2673 | 1 ☆─────────────────────────────────────☆
iambear (iambear) 于 (Wed Sep 10 14:09:47 2008) 提到:
像那种linprog的example,就是把linprog中的目标距阵改成fmincon中的objective
function就好了,别的都一样的.那还要linprog干嘛呢,用linprog有什么好处么? 而且
感觉linprog算得很慢,是不是算法不同啊
☆─────────────────────────────────────☆
QL365 (QL) 于 (Wed Sep 10 14:28:37 2008) 提到:
fmincon will become very slow for high dimensional problem, where linear
programing is supposed to be able to solve for high dimensional problem (say
, in the scale of thousnads of var |
|
i*****r 发帖数: 1302 | 2 我知道啊,但这个u, v怎么欠到linprog中? linprog里面没办法写u=max(z,0)
。这 |
|
m*********s 发帖数: 368 | 3 比如你的调用是 a = linprog(.....)
改用[a, flag] = linprog(....)
应该就能把那些输出的东西变成 flag 而不实际输出 |
|
j******u 发帖数: 1968 | 4 我有一段code,执行起来要反复调用linprog这个函数,
结果每次都出来一个optimization terminated的东西,让程序非常非常慢
预计几十秒的东西要弄一个多小时,谁给个方法来把这个输出给disable掉? |
|
j******u 发帖数: 1968 | 5 【 以下文字转载自 Faculty 讨论区 】
发信人: junjichu (大清军机处-固山额真,军机章京), 信区: Faculty
标 题: 问一个matlab的问题
发信站: BBS 未名空间站 (Tue Dec 22 20:59:57 2009, 美东)
我有一段code,执行起来要反复调用linprog这个函数,
结果每次都出来一个optimization terminated的东西,让程序非常非常慢
预计几十秒的东西要弄一个多小时,谁给个方法来把这个输出给disable掉? |
|
o**n 发帖数: 1249 | 6 problem.f = ...
problem. .....
problem.option = optimset('display', 'off');
linprog(problem); |
|
l*****i 发帖数: 3929 | 7 linprog
quadprog
fmincon |
|
r*******g 发帖数: 1335 | 8 请教大虾
现有一个网络优化问题,输入的流很多,100000来个,网络较小。是个线性规划问题,
decision variable是每个流在每个link上的流量,decision variable是个矩阵。
现在不是找算法,是问用什么软件算方便。matlab里面的linprog的decision variable
能不能是一个矩阵?我看了下cplex,觉得这些东西的variable好象都不是矩阵而是向
量。
现在比较困惑,用什么比较方便。如果能有cvx那样的软件就好了,cvx可以直接写成
cvx_begin, cvx_end, variables, subject之类的。总之就是输入很直观。
我目前已经写好了针对问题的cvx程序,但是很慢,所以希望最好有只是针对linear
programming的软件就好。现在的困惑就是,约束条件太多,decision variable是
matrix,不知道怎么写代码,用哪个方便。
多谢。 |
|
r*******g 发帖数: 1335 | 9 请教大虾
现有一个网络优化问题,输入的流很多,100000来个,网络较小。是个线性规划问题,
decision variable是每个流在每个link上的流量,decision variable是个矩阵。
现在不是找算法,是问用什么软件算方便。matlab里面的linprog的decision variable
能不能是一个矩阵?我看了下cplex,觉得这些东西的variable好象都不是矩阵而是向
量。
现在比较困惑,用什么比较方便。如果能有cvx那样的软件就好了,cvx可以直接写成
cvx_begin, cvx_end, variables, subject之类的。总之就是输入很直观。
我目前已经写好了针对问题的cvx程序,但是很慢,所以希望最好有只是针对linear
programming的软件就好。现在的困惑就是,约束条件太多,decision variable是
matrix,不知道怎么写代码,用哪个方便。
多谢。 |
|
i******t 发帖数: 370 | 10 对阿,用cvx就好了,如果担心效率可以考虑mosek。
matlab的linprog, quadprog就是一陀s**t. |
|
B*********h 发帖数: 800 | 11 ☆─────────────────────────────────────☆
stonexu1984 (stonexu1984) 于 (Tue Apr 3 13:48:52 2007) 提到:
max 1/dC *Y(N)*x
s.t. e+[1/(1-a)*N]*sum[z(k))]<= v*C
z(k)>= u(k)-y(k)*x-e
z(k)>=0
u(k)>=y(k)*x
u(k)>=u(k-1)
u(0) = 0
x(min) <= x <= x(max)
就是这么样的东西,最后要求的是x,但是s.t.当中是z(k),似乎有两个LP在里面,matlab(
是linprog?)里如何定义那么多限制条件啊?
谢谢啦!
☆─────────────────────────────────────☆
Westwild (WestWild) 于 (Tue Apr 3 17:21:51 2007) 提到:
Quadprog?
Check it out.
matlab(
☆ |
|
i*****r 发帖数: 1302 | 12 比如说Aeq = [1,-1,-1,0], Beq=0.就是说x3=x1-x2
如果我要x3为正的时候放x3-->x3=max(x1-x2,0),为负的时候放x4-->x4=min(x1-x2,0)
怎么安排?
还有就是如果objective function里要加入绝对值有办法么? |
|
l*****i 发帖数: 3929 | 13 有技巧,就是变量替换:
任何一个变量z都可以写成u+v, 其中u=max(z,0)>=0,v=min(z,0)<=0, 那么|z|=u-v。这
样一来就没有绝对值符号了。 |
|
l*****i 发帖数: 3929 | 14 糊涂啊,z根本就不要出现啊,完全用u和v代替了啊
v |
|
i*****r 发帖数: 1302 | 15 那我这个例子里,就是除了x1,x2,再加u,v , 求[x1;x2;u;v]
Aeq = [1,-1,-1,0, Beq = [0
1,-1,0,-1] 0]
然后u的lb定义成0, v的ub定义成0?
|
|
|
c****y 发帖数: 3592 | 17 我明白你的意思,其实不用解什么方程直接给最好的满上就行了。问题要用Linprog的
方式列出来,就是看思路 |
|
c****y 发帖数: 3592 | 18 就是有别的constraint啊,我只是没有列出来罢了。不然还需要linprog干嘛呢 |
|
c****y 发帖数: 3592 | 19 都是用现有的package,比如说R,matlab的linprog之类,C++不知道有没有。还是自己
编个算法出来?如果自己写,那也太牛了吧,比mathwork的人还牛了 |
|