24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1349  |  回复: 16

lddlala

铜虫 (初入文坛)

[求助] 悬赏求助一个模型优化问题

我的钱也不多,除去零钱只有这么多了,上面催的紧,非常急需答案,虫友包含啊!希望提示越细越好,只要是对我有帮助的,就送了!
对优化问题刚刚涉及,有一个问题求助一下用什么算法建模比较合适:
现在假设有5个状态,5个状态之间可以相互转换,状态转换需要能量与时间。现在需要5个状态都走一遍,但是要找一个能量最小,时间相对较少的路径。
例如:状态1到2转换:能量3;时间1
          状态2到1转换:能量4;时间2
          状态1到4转换;能量2;时间4;
      。。。。。。
如果枚举的话,有5!=120中路径,这个不可能慢慢计算。所以我开始想了是不是用图论构成个有向图,求解最短路径,但是好像最短路径算法是从一个点到一个点的,我这个1状态,2状态,3状态,4状态,5状态都有可能是起始点,同理,任何一个状态也有可能是终点,而且必须5个状态都走一遍,所以好像也有些不合适;

我也想过是否用用旅行商问题的解决方案,但是旅行商问题是从起点终点是一个点,即为环路,我这个不能是环路。好像要修改,但是由于刚刚研究几天,又不知道怎么修改。

而且,对于智能算法,遗传算法,粒子群算法等也刚知道个皮毛,实在不知道怎么对应参数怎么下手,怎么求最优解,尤其是两个最优解,所以只能求助各位了!

希望牛人出现啊!能有建设性的意见,金币就全归你了!拜谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

filion

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
lddlala: 金币+15, ★★★很有帮助, 多谢指导。我钱不多,还要给别的同学意思意思,就先赠予这么多吧! 2012-07-27 23:56:33
个人觉得,你这个问题是:图遍历问题+背包问题

背包算法也是在固定背包容量、甚至最小背包容量的情况下,求背包能装的最大价值。
在你这个方案里,每一条边的价值应该是:时间/能量=能耗。你应该以能耗为评价指标,而不是分开以时间、能量。能耗越小,就自然是时间越短、能量越少

但你这个应该是一个变种的背包问题:把你的每条边,当作一个商品,看将哪些边选进你的方案(背包),总消耗最小。当然,同时要满足,每个边都出现最多一次、每个点都出现最少一次。

背包问题的求解,应该比较成熟的。
2楼2012-07-26 08:45:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lddlala

铜虫 (初入文坛)

引用回帖:
2楼: Originally posted by filion at 2012-07-26 08:45:41
个人觉得,你这个问题是:图遍历问题+背包问题

背包算法也是在固定背包容量、甚至最小背包容量的情况下,求背包能装的最大价值。
在你这个方案里,每一条边的价值应该是:时间/能量=能耗。你应该以能耗为评价指 ...

牛人啊,很有启发!稍后就酬谢!

但是我这个每条边的价值其实是不能相除的,所以可能还要再复杂一些。

看还有没有高人还有其他看法,坐等一下!

3楼2012-07-26 12:01:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chentianyu1

木虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
是用电脑算吗?120种不是已经很少了么,为啥还要再减少呢?
4楼2012-07-26 12:38:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lddlala

铜虫 (初入文坛)

引用回帖:
4楼: Originally posted by chentianyu1 at 2012-07-26 12:38:59
是用电脑算吗?120种不是已经很少了么,为啥还要再减少呢?

我只是举个例子是5个状态,也有可能是6个,7个,8个。。。,所以到后面就很多,枚举就很慢了。这样才想找智能算法建模,解决。
5楼2012-07-26 12:47:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chentianyu1

木虫 (小有名气)

【答案】应助回帖

引用回帖:
5楼: Originally posted by lddlala at 2012-07-26 12:47:38
我只是举个例子是5个状态,也有可能是6个,7个,8个。。。,所以到后面就很多,枚举就很慢了。这样才想找智能算法建模,解决。...

可以考虑把状态作为节点,转换过程作为有向边,求解这个图的最小树形图。
边的权值是一个实数,其整数部分代表能量,小数部分代表时间,这样就满足了能量最小,时间相对较少的要求。
6楼2012-07-26 16:38:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chentianyu1

木虫 (小有名气)

【答案】应助回帖


lddlala: 金币+1, 有帮助, 多谢关注! 2012-07-27 23:57:01
引用回帖:
6楼: Originally posted by chentianyu1 at 2012-07-26 16:38:24
可以考虑把状态作为节点,转换过程作为有向边,求解这个图的最小树形图。
边的权值是一个实数,其整数部分代表能量,小数部分代表时间,这样就满足了能量最小,时间相对较少的要求。...

搞错了,不是最小树形图.......
7楼2012-07-26 16:39:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

coolslj

金虫 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
lddlala: 金币+1, 多谢关注! 2012-07-27 23:57:29
这是一个组合优化问题。
既然是应付“上面”,最容易实现的是穷举法。如果状态数少,它可以得到最优解。但是,穷举法的缺点是当状态数多时,计算量指数增长。此时,需要楼主认真研究具体应用问题,也就是“能量和时间是如何定义的?”。然后,寻找到启发式的解法,求大规模问题的次优解。
8楼2012-07-26 17:50:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

filion

金虫 (正式写手)

引用回帖:
4楼: Originally posted by chentianyu1 at 2012-07-26 12:38:59
是用电脑算吗?120种不是已经很少了么,为啥还要再减少呢?

如果这个问题的时间复杂度是O(n!),差不多等于n的n次方,这个复杂度挺高的了。

当然,我没有分析过是不是O(n!)
9楼2012-07-26 18:24:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

filion

金虫 (正式写手)

引用回帖:
3楼: Originally posted by lddlala at 2012-07-26 12:01:28
牛人啊,很有启发!稍后就酬谢!

但是我这个每条边的价值其实是不能相除的,所以可能还要再复杂一些。

看还有没有高人还有其他看法,坐等一下!

...

我还考虑: 你希望是能量少、时间少,那么其实应该是能量乘以时间最少才对,不应该用除,应该用乘
10楼2012-07-26 18:35:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lddlala 的主题更新
信息提示
请填处理意见