最近我对算法非常着迷,最近我实现了一种蚁群优化算法来解决TSP问题(非常有趣),现在我正在寻找其他“问题”需要解决。我想要实现一种算法来解决满足百分比要求并且低于任意限制的问题。
例如:
用户输入:
1)限制量 -即可用于花费的能量数量。
2)染色体类型 -即蓝色(亚型-靛蓝等),红色(亚型-栗色等),黄色(亚型-浅黄色等) -每个主属性如蓝色都有一个“池”,其中包含不同的子类型,如靛蓝色,浅蓝色,海蓝色等。 -每个颜色的子类型都有不同的成本。
3)理想解法所需类型的百分比(可以引入+/-%以允许更多变化)。 -即 10% 红色, 30% 蓝色, 60% 黄色。
输出:
1)可能的最终解决方案,满足两个要求,即成本低于,并接近要求的成本,同时满足超类型的百分比要求。
例如。
这是一个超级简单的例子,现实中它肯定会更加复杂。
用户指定成本应如下 95 <= 成本 <= 105。
用户选择 25% 蓝色,25% 黄色,50% 红色。 带有+/-5%偏差
每种颜色的可用池:
蓝色: 靛蓝:成本=25; 海蓝色:成本=30; 藏青色:成本=75;
黄色: 浅黄色:成本=20; 深黄色:成本=30; 超级深黄色(lol):成本=75;
红色: 栗色:成本=20; 血红色:成本=45; 鲜艳的红色:成本=55;
然后算法将运行并返回不同的组合。
组合1:靛蓝、深黄色、血红色:成本=100,蓝色=25%,黄色=30%,红色=55%。
组合2:海蓝色、浅黄色、血红色:成本=105,蓝色=约30%,黄色=约20%,红色=约50%
组合3:以此类推。
编辑:第二次编辑
输出将由不同组合的集合组成。
例如,一种解决方案可能由以下组合组成:
一种解决方案可以用以下方式表示:
组合1:成本=20;50% 蓝色,25% 黄色,25% 红色;
组合2:成本=30;10% 蓝色,50% 黄色,40% 红色;
组合3:成本=50;25%蓝色,25%黄色,50%红色;
解决方案:=(组合1,组合2,组合3)总成本=100,由x%蓝色,y%黄色,z%红色组成;
将解决方案与要求进行比较,如果接近,则保留,否则舍弃。
我的问题是,我知道遗传算法可以解决这个问题。但是ACO的实现是否也可行?例如,蓝色,黄色和红色将等于“位置”,然后它们的子类型将表示不同的“路线”。
只是想知道可能更有效的解决方案或完全不同的算法。我对这些东西还很陌生,只是在一周多前开始阅读相关内容。
编辑:第一个编辑
我想指定我想要5个好的独特解决方案(5是任意数量,可以是3,也可以是20)。
例如:
用户输入:
1)限制量 -即可用于花费的能量数量。
2)染色体类型 -即蓝色(亚型-靛蓝等),红色(亚型-栗色等),黄色(亚型-浅黄色等) -每个主属性如蓝色都有一个“池”,其中包含不同的子类型,如靛蓝色,浅蓝色,海蓝色等。 -每个颜色的子类型都有不同的成本。
3)理想解法所需类型的百分比(可以引入+/-%以允许更多变化)。 -即 10% 红色, 30% 蓝色, 60% 黄色。
输出:
1)可能的最终解决方案,满足两个要求,即成本低于,并接近要求的成本,同时满足超类型的百分比要求。
例如。
这是一个超级简单的例子,现实中它肯定会更加复杂。
用户指定成本应如下 95 <= 成本 <= 105。
用户选择 25% 蓝色,25% 黄色,50% 红色。 带有+/-5%偏差
每种颜色的可用池:
蓝色: 靛蓝:成本=25; 海蓝色:成本=30; 藏青色:成本=75;
黄色: 浅黄色:成本=20; 深黄色:成本=30; 超级深黄色(lol):成本=75;
红色: 栗色:成本=20; 血红色:成本=45; 鲜艳的红色:成本=55;
然后算法将运行并返回不同的组合。
组合1:靛蓝、深黄色、血红色:成本=100,蓝色=25%,黄色=30%,红色=55%。
组合2:海蓝色、浅黄色、血红色:成本=105,蓝色=约30%,黄色=约20%,红色=约50%
组合3:以此类推。
编辑:第二次编辑
输出将由不同组合的集合组成。
例如,一种解决方案可能由以下组合组成:
一种解决方案可以用以下方式表示:
组合1:成本=20;50% 蓝色,25% 黄色,25% 红色;
组合2:成本=30;10% 蓝色,50% 黄色,40% 红色;
组合3:成本=50;25%蓝色,25%黄色,50%红色;
解决方案:=(组合1,组合2,组合3)总成本=100,由x%蓝色,y%黄色,z%红色组成;
将解决方案与要求进行比较,如果接近,则保留,否则舍弃。
我的问题是,我知道遗传算法可以解决这个问题。但是ACO的实现是否也可行?例如,蓝色,黄色和红色将等于“位置”,然后它们的子类型将表示不同的“路线”。
只是想知道可能更有效的解决方案或完全不同的算法。我对这些东西还很陌生,只是在一周多前开始阅读相关内容。
编辑:第一个编辑
我想指定我想要5个好的独特解决方案(5是任意数量,可以是3,也可以是20)。