- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试理解这篇论文并实时执行 improved ant colony optimization for robot navigation paper .当我尝试实现时,我有几个问题让我印象深刻:
作者介绍了负信息素沉积(在上述论文第 2 页第二栏中提到)。但是我不明白它是什么或在哪里使用!在论文中,它没有谈论它,也没有用谷歌搜索它。它是什么以及我们将在哪里使用它?我们已经在进行信息素沉积和蒸发。
在目标搜索算法(第 2 页)中,信息素沉积是在所有 Ant 移动到下一个位置以及进行蒸发之后完成的。那么,那个时候信息素的沉积就是通过遍历所有的 Ant ,更新它们当前所在位置的信息素浓度来进行的,不是吗?
在该目标搜索算法(第 2 页)中,作者谈到了检查是否满足终止条件
。那么,这是否意味着检查 Ant 是否已到达目标(即目的地位置)?如果是,则应终止执行。不是吗?
除此之外,我不明白他在第 2 页的目标搜索算法中的这三行是什么意思:
控制 Ant 离墙的距离
防止回溯
防止4方 block 循环
我已经包含了上述论文相关部分的截图:
如果您能解决我的上述问题,我将不胜感激。
编辑
由于没有回应,我在这里问了另一个问题:https://softwareengineering.stackexchange.com/questions/238639/ant-colony-optimization-movement-of-ants
最佳答案
The author introduced negative pheromone depositing(mentioned in page 2 second column of the above paper). But I didn't understood whatit is or where it is used! Inside the paper, it doesn't talk about itas well googled about it. What is it and where would we use it? We arealready doing pheromone deposition and evaporation.
仅浏览了您提供的论文,我无法告诉您他们究竟是如何实现负信息素的。有几种方法,可能最常见的通用方法是选择生成的最差路径,并为它们的所有图 block 赋予负信息素,而不是常规的正信息素。尽管在选择基于两种不同信息素的水平计算运动可能性的函数时仍然存在设计选择......
在给定的论文中,听起来他们采用了类似的方法并从相应的图 block 中减去信息素,而不是添加第二个负信息素。因此,他们不需要更改确定移动到相邻图 block 的可能性的函数。
In the goal seeking algorithm (in page 2), the Pheromone deposition is done after all the ants are moved to the next positionas well as after the evaporation is carried out. So, at that time, thedepositing of the pheromones is carried out by iterating through allthe ants and updating the pheromone concentration in their currentlocation, isn't it?
In that goal seeking algorithm (in page 2), the author talks about Check if termination criteria met. So, does that mean check whetherthe ant had reached the goal(ie. destination location)? If so, theexecution should be terminated. Isn't it?
移动所有 Ant ,直到它们全部到达目标 - 或者满足其他一些终止条件。例如。您可能决定只等到至少 90% 的 Ant 达到目标,或者您可能包括最大步数。
根据(5)蒸发每个瓷砖上的信息素。
现在考虑所有 Ant 到达目标所走的路径。根据给定的函数 (3) 或 (4) 将信息素添加到所有使用过的图 block 中,具体取决于您是否想要鼓励这条特定路径(例如,所有未达到目标的 Ant 都是负信息素的良好候选者)。
Apart from that, I didn't understood what he meant by these three lines in the goal seeking algorithm in page 2:
Control ant distance from wall
Prevent backtracking
Prevent 4 square looping
在选择要移动到的下一个图 block 时,它们会在一定程度上限制选择。他们想与所有墙壁保持最小距离,因此他们忽略直接相邻墙壁的选择(或与它们的其他距离,不知道为什么他们决定在算法的这一点上包含它......)。他们还禁止 Ant 只来回走动,因此禁止前一个方 block - 以及 4 方 block 循环(即由四个方 block 组成的循环)。
编辑 该算法的一种可能实现可以执行以下操作(我已经为您选择了停止标准和负信息素的选择)
initialize all cells pheromone levels to some constant > 0
repeat
set all ants to start location and erase their history
repeat
for every ant do
if this ant is at the goal skip it
make list of all neighbouring cells that are
1. not too close to a wall
2. not equal to the previous cell
3. not equal to the cell that was visited 3 moves before
calculate probability for all cells in this list
choose next cell according to these probabilities
update current position and history
end for
until 80% of all ants have reached the goal
evaporate pheromones
for every ant do
if it reached the goal
add pheromones to all cells in this ants history according to (3)
else
substract pheromones accoring to (4)
end for
until length of shortest path has not changed for M iterations
希望这能让事情变得更清楚一些。我会改变条件 2. 和 3. 在选择邻居时排除任何已经被这只 Ant 访问过的单元格——但它是个人偏好....
关于algorithm - 机器人导航论文的改进蚁群优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23574744/
我对编码还比较陌生,但并非完全没有经验。处理有关金融计算器的学校作业。如果你们中的任何人可以查看我的代码以了解不良做法/可能的改进等,那就太好了。 我确实添加了一个“动画”启动(有很多 printf
小目标Trick 论文链接: https://paperswithcode.com/paper/slicing-aided-hyper-inference-and-fine-tuning 代码链接:h
if (firstPositionCpc && (firstPosition > 0 && firstPositionCpc 0 && topOfPageCpc 0 && firstPageCpc
我有 2 个表:“packages”和“items”。 “packages”有以下列:pack_id | item_id “items”有以下列......:item_id |输入 一个包可以有多个
我目前有一个 Pandas Dataframe,我在其中执行列之间的比较。我发现一种情况,在进行比较时存在空列,由于某种原因比较返回 else 值。我添加了一个额外的语句来将其清理为空。看看我是否可以
我正在处理一个查询,通过首先舍入它们的主要日期时间键来连接一个数据库中的多个表。数据库包含来自 openhab 的性能数据,每个表只有一个名为 Time 的主日期时间行和一个名为 Value 的值行。
问候 我有一个程序创建一个类的多个实例,在所有实例上运行相同的长时间运行的 Update 方法并等待完成。我从 this question 开始关注 Kev 的方法将更新添加到 ThreadPool.
我想在下学期的类(class)中取得领先,所以我制作了这个基本版本的 Blackjack 来开始理解 C 的基础知识,我希望您有任何想法可以帮助我更好地理解 C 和其正常的编码实践。 C 中的很多东西
我有一个要求,比如: 给定一个数组,其中包含随机数。需要输出元素出现的次数,有自带解决方案: var myArr = [3,2,1,2,3,1,4,5,4,6,7,7,9,1,123,0,123];
这是我的数据库项目。 表user_ select id, name from user_; id | name ----+---------- 1 | bartek 2 | bartek
我已经完成了一个小批量脚本来调整(动态)一些图像的大小: for a in *.{png,PNG,jpg,JPG,jpeg,JPEG,bmp,BMP} ; do convert "$a" -resiz
是否有更 pythonic 的方法来执行以下代码?我想在一行中完成 parsed_rows 是一个可以返回大小为 3 或 None 的元组的函数。 parsed_rows = [ parse_row(
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improv
下面的代码完成了我想要的,但还有其他更像 python 风格的方式吗? 文件格式: key1:value1,key2:value2,... key21:value21,key22:value22,..
如果两个英文单词只包含相同的字母,则它们是相似的。例如,food 和 good 不相似,但 dog 和 good 相似。 (如果A与B相似,则A中的所有字母都包含在B中,B中的所有字母都包含在A中。)
我有以下结构来表示二叉树: typedef struct node *pnode; typedef struct node { int val; pnode left; pnode
我有一个区域,它由受约束的 delaunay 三角剖分表示。我正在解决在两点之间寻找路径的问题。我正在使用 Marcelo Kallmann 提供的论文作为解决此问题的引用点。然而,而不是使用 Kal
如果我需要检查文本(字符串)中是否存在单词 A 或单词 B,如果我这样做会有性能差异: if(text.contains(wordA) || text.contains(wordB)) 要使用一些正则
Adjust To 我有上面这个简单的页面,上面有一个标签和一个文本框。我想在文本框中输入文本。 对我有帮助的 XPATH 是 //*[contains(tex
以下伪代码的elisp代码 if "the emacs version is less than 23.1.x" do something else something-else 写成 (if
我是一名优秀的程序员,十分优秀!