问题标签 [ant-colony]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ant - 如何解决 Omnet 中 Libar 库的错误?
我在用
OMNET++ 5.4.1
Libar 库版本 1.2
clang 版本 5.0.1 (tags/RELEASE_501/final)
目标:x86_64-w64-windows-gnu
我对 VANET 的 AntColony 优化路由的实现很感兴趣。导入 Libara 库后:https ://github.com/des-testbed/libara
错误: 0:58: 48 **** 为项目 ARA-Simulation 构建配置 clang-debug ****
使模式=调试所有
编译 src/core/AbstractARAClient.cpp
clang++.exe:错误:目标“x86_64-w64-windows-gnu”不支持选项“-fPIC”
make: *** [Makefile:309: out/clang++-debug/src/core/AbstractARAClient.o] 错误 1
我认为在 Libara 的 makefile 中有一个标志 -fpic 导致了这个问题。
编译器选项
CFLAGS += -std=c++11 -fPIC
帮我解决这个问题。提前致谢。
optimization - 蚁群算法的收敛
我使用蚁群优化来解决问题。在我的例子中,在每次迭代中,从 n 个节点生成 n 个蚂蚁(每次迭代每个节点一个蚂蚁)。我获得了验证问题条件的解决方案。但是,我没有实现收敛(例如,我有 30 次迭代,在第 8 或第 9 次迭代中获得了最佳解决方案)。我想知道是否在每次迭代中只使用一个蚂蚁是问题所在?另外,我想知道蚁群算法是否必须收敛到平衡状态?先感谢您。
python - python中调度问题的优化
我正在尝试学习调度并有以下用例:我有不同的部件需要在特定日期交付,它们也有不同的数量和不同的运行时间。仅考虑 1 台机器。交货日期是一个硬性限制,但我也想看看我是否可以优化每个产品的机器设置。因此,我有一张桌子,上面有用于零件的不同工具。当单元格为 0 时,不使用工具,当单元格为 1 时,使用工具。我总共有大约 50 个工具用于所有部件。不想只看交货日期,我还想看看如何缩短从 A 部分到 B 部分的更改之间的时间,以便我尽可能少地更改工具。
我能够在日期之后对我的数据进行排序,但不知道我应该从哪里开始优化,哪种算法可能更好,遗传算法还是蚁群优化?我还不能提供代码,也不想从这里得到一个完整的代码,但一个好的起点是我的兴趣。
r - 如何使用 R 中的“break”语句解决问题?
我正在 R 中构建一个简单的蚁群优化代码,但是我在编译一个函数以使用“break”语句为每个蚂蚁获取最佳路线时遇到问题。在我的循环中总是出现一个错误,说“需要 TRUE/FALSE 的地方缺少值”。这是代码
我期望在循环过程中,start_places[i,j+1]=k当r <= s的值时得到每只蚂蚁的最优路径,但实际输出是错误总是出现如下
c++ - 这里的向量数组发生了什么?
我正在通过 C++ 中的 ACO 实现来解决旅行推销员问题。但是,我发现到目前为止我构建的程序出现了分段错误。(注意:出于调试目的,我将算法限制为仅对菌落进行一次迭代)。
首先,我从一个文件中提取了总共 52 个城市,然后我将蚂蚁分配给每个城市,从它开始,每个城市都有相同数量的蚂蚁。
为了存储每对城市之间的距离,我使用了一个称为 Map(方阵)的双精度向量向量。但是,在执行过程中,这些向量似乎被删除了。在这种情况下,它发生在计算 55 号蚂蚁的路径时。我添加了一段代码只是为了突出显示它崩溃的确切位置:
在那里,函数 Map[0].size() 通常返回 52(就像 Map.size(),因为它应该是一个方阵),但在崩溃的迭代中,它返回看起来像一个内存地址的东西,并且当我尝试访问任何元素时,就会发生分段错误。
我检查了内存访问是否始终正确,并且在第 55 只蚂蚁之前,除了 Map 之外,我可以毫无问题地访问任何其他变量。我为轮盘赌方法尝试了不同的种子,但它总是在同一个地方崩溃。
我还改变了蚁群的数量。如果每个城市只有一只蚂蚁,则程序可以毫无问题地执行,但对于任何更高的数量,程序总是在第 55 只蚂蚁时崩溃。
您可以从 github 下载完整的 cpp 文件和读取的 .tsp 文件:
https://github.com/yitosmash/ACO
无论如何,我将在这里保留完整的功能:
parallel-processing - 如何验证算法蚁群优化与并行蚁群优化以降低维度
我正在使用蚁群算法进行降维,我将把它与蚁群算法进行比较,但是是并行的。我的问题是,我应该使用什么类型的数据库???并作为有效的这些算法???。请帮忙,它是在论文中呈现。
artificial-intelligence - 用于 TSP 优化的 Max Min Ant 系统
我已经实现了一个 Ant System 算法来解决 TSP,它获得的游览结果仅比最佳游览长约 5%(可接受)。现在我正在尝试实现类似的Max Min Ant System algorithm。
我实现的算法如下:
但是,算法停滞得太快(仅经过几次迭代),一旦停滞,最大信息素就变成了一个很小的数字(小于最小值)。
根据我在网上找到的信息,我正在使用一个信息素衰减率rho = 0.5
并初始化max
为一个大数,min
并
除此之外,最好的蚂蚁在他们的旅行中每条边缘沉积的信息素的实际数量由以下公式计算:
然而,这个值太小了,无法真正创建一个明显的最佳路径——例如,如果信息素从 5 开始,在第一次巡回之后它将衰减到 2.5,而最佳蚂蚁将在相关边缘放置大约 0.001 信息素. 即使我将存款乘以蚂蚁的数量,也需要大量的蚂蚁才能产生重大变化。
我的 MMAS 的结果比随机的要好,但比原版的 AS 差得多。MMAS 构建的行程大约是最佳行程的两倍。
谁能指出我对算法的错误(或建议改进)?
python - 如何简单地使用蚁群优化来找到函数的最小值?
我想使用蚁群优化来找到像 2x^2-5y^2 这样的函数的最小值。但我不知道如何使用蚁群来实现它。谁能给我一个简单的例子?
java - TSP 的蚁群优化没有得到最短路径
pandas - 如何在蚁群优化中绘制 ROC 曲线(基本蚂蚁矿工)
我正在使用基本蚂蚁矿工(蚁群优化算法)。我想找到 F 分数和 ROC 和 Auc 分数。在蚂蚁矿工代码中,我找到了假阳性率和真阳性率的值并应用了函数但没有得到结果。这是代码。