信息搜寻理论 - Information Foraging in Information Access Environments

部分公式未显示请参考原文

信息搜寻环境中的信息搜寻

P. Pirolli 和 S.K. Card

Peter Pirolli,Stuart K. Card(1995).Information Foraging in Information Access Environments.
Conference: Human Factors in Computing Systems, CHI '95 Conference Proceedings, Denver, Colorado, USA, May 7-11, 1995

摘要

信息搜寻理论是一种分析人类活动的方法,涉及信息搜寻技术。该理论源于生物学和人类学中的最优觅食理论,该理论分析了食物觅食策略的适应性价值。信息搜寻理论分析了在人机交互任务中获得的信息价值与执行活动的成本之间的权衡。该理论在涉及发散 / 聚集界面的信息查找任务中的应用得到了说明,该界面向用户提供了一个可导航的、自动计算的、以集群层次结构排列的文档集合内容的概述。

关键词:信息搜寻理论,信息获取

引言

近年来,公众对信息获取和通信技术的兴趣呈爆炸性增长。伴随着这种迅速增长的兴奋,电子信息来源,如因特网上的信息来源的迅速增长,进一步加剧了为信息工作者和消费者提供有效和高效工具的需要。对于人机交互的研究人员和开发人员来说,这增加了对模型和分析技术的需求,这些技术允许我们确定特定信息访问、操作和表示技术所增加的价值,并揭示可能产生进一步增强的设计元素。

为了激励先前的交互信息系统的设计,我们求助于认知科学的机制和信息科学的一般原理。我们认为,在一个信息丰富的世界里,真正要解决的设计问题与其说是如何收集更多的信息,不如说是如何优化用户的时间,我们运用这些原则试图增加单位时间内获得的相关信息。但是,对于信息系统的任务分析、设计开发和评估,还需要一个更加成熟的理论。

在本文中,我们提出了一种称为信息搜寻理论的方法的框架。这种方法考虑了在执行任务的信息生态环境中人类系统设计的适应性。通常,这涉及到理解人类系统设计参数的某些空间所提供的活动的变化,以及理解这些变化如何权衡所获得的信息的价值与执行活动的成本。信息搜寻理论是对计算机交互理论的信息处理方法的补充,如 Goms 家族强调行为的更大的时间尺度、外部信息承载环境的成本结构和人类适应。

考虑 Newell 所概述的活动的时间尺度。我们感兴趣的各种信息寻求和感觉制造活动从认知活动带的中间(大约 100 毫秒 - 10 秒),跨越理性活动带(几分钟到几小时),也许进入社交活动带(几天到几个月)。通常,认知的信息处理模型已经解决了认知带上的行为,基本的认知机制和过程(例如,在人类处理器模型中总结的那些机制和过程) 在形成该粒度下观察到的行为方面发挥了很大的作用。随着活动时间尺度的增加,“将会有一种转向描述一个系统…… 而不考虑内部处理以何种方式完成行动与目标的联系”(Newell,p150)。这种解释假定行为是由理性原则支配的,并且在很大程度上是由任务环境的约束和负担能力决定的。人们不是假定经典的规范理性,而是假定行为的基本原理是其适应外部生态的适应性。这就是生态立场(如 Bechtel) 对认识的本质。这是生态学立场(Neisser,Bechtel)对认知的本质。GOMS 等信息处理模型提供了认知如何运作的机械论解释,而生态学模型则根据认知发生的生态环境,解释了认知为什么会以这种方式运作。马尔和安德森近期内在认知科学中提出了这种综合的解释框架。

信息搜寻任务

信息搜寻指的是与评估、寻找和处理信息源相关的活动。这种搜索将是自适应的,因为它最佳地利用了关于预期信息价值以及访问和提取相关信息的预期成本的知识。我们使用 “搜寻” 一词,既是为了让人联想到生物为了维持生计而搜寻的隐喻,也是为了表明与生物学和人类学中更为技术化的最优觅食理论的联系。

动物通过进化来适应它们的行为和结构,以在其环境生存和繁殖。基本上,动物适应,除其他原因外,增加他们的能量摄入率。为了做到这一点,他们发展了不同的方法:狼在寻找猎物,而蜘蛛却在织网,让猎物自己靠近。人类寻找信息也采取不同的策略,有时候与动物觅食者的策略惊人地相似。狼 - 猎物策略与经典的信息检索有一些相似之处,而蜘蛛网策略则类似于信息过滤。当寻找食物的差异很大时,人类狩猎 - 觅食者会成群狩猎。他们接受较低的预期平均值,以尽量减少几天不进食的可能性。同样,我们在实地观察到,专业的市场分析师已经形成了一种交叉参考信息的道德规范,基本上是群体信息搜寻,以减少错过重要文献的可能性。

最优觅食理论是一个在生物学中发展起来的理论,用于理解适应的机会和力量。我们相信这个理论的要素可以帮助理解人类现有的适应性,以获得和理解信息。它还可以帮助任务分析,以了解如何创建新的交互式信息系统设计。

最优模型一般包括以下三个主要部分。

  • 一种决策假设,它确定要分析代理人所面临的哪些问题。这可能涉及在遇到给定类型的信息项时是否对其进行追踪的决策、处理信息项集合所花费的时间、导航中要进行的移动的选择、在不确定性下策略的选择或资源共享的程度。
  • 货币假设,确定如何评估选择。生态学分析中的一般假设是,如果 x 满足某些存在准则,则某个特征 x 将存在于其他特征之上。存在标准有两个部分:(a)货币,(b)选择原则。人类学和生物学中的最优觅食模型通常假设能量是一种货币。信息搜寻理论将信息价值假设为货币。选择原则包括最大化、最小化和稳定性。
  • 约束假设,限制和定义决策和货币变量之间的关系。这些将包括任务结构、接口技术以及用户群的能力和知识所产生的限制。

我们假设信息搜寻通常是嵌入在一些其他任务背景中的任务,其价值和成本结构因此相对于嵌入任务而定义,并且通常随时间动态变化。信息的价值和特定来源的相关性不是信息承载表示的内在属性(例如文档),但是只能相对于嵌入任务环境来评估。

通常,嵌入任务是一些结构不良的问题,需要额外的知识来更好地定义目标、可行的行动过程、启发式等。这些任务可能包括选择一所好的研究生院、制定退休后的财务计划、制定成功的商业战略或写一篇可接收的科学论文。处理的结构和最终的解决方案在很大程度上反映了用于构建问题空间的特定知识。因此,外部信息的价值通常在于对嵌入任务的结果的改进。

最优模型的使用不应被视为这样的假设,即人类行为是经典理性的,具有完美的信息和无限的计算资源。关于人类的一个更成功的假设是,他们表现出有限理性或基于满意做出选择。然而,满意通常可以表征为局部优化(例如,爬山),其中包括资源限制和不完全信息约束。最优模型并不意味着动物或信息搜寻者一定会发展到接受简单的最优。相反,它们描述了生态位的可能性,即如果不受其他力量的阻碍(例如,另一种适应的后果),而可能的有利适应。对我们来说,这些模型有助于补充安德森所称的信息获取的理性层次理论。

实例概述

我们给出搜寻分析的几个实例,以说明可以解决的一些问题和见解的范围。我们的覆盖范围必须是有限的,因此我们使用来自特定系统的三个相对具体和详细的分析。在分析发散 / 聚集文档浏览器的背景下,我们介绍了两个简单的模型,信息块模型和信息饮食模型,它们直接借用了最优觅食理论。这些 “传统” 模型源自霍林圆盘方程,该方程指出,货币摄入率 R 是货币净收入 U(生物系统中的能量; 在我们的例子中是信息价值),除以搜索 Ts 和利用 Th 所花费的总时间:

(1)

净收益 U 是总货币摄入量(觅食总量)Uf 减去觅食所消耗的货币 Cf 或 U = Uf-Cf。可以看出,广泛适用的随机假设近似于霍林圆盘方程。

如果我们假设信息工作者或消费者遇到的信息项是时间的线性函数,则在搜索时遇到的项的总数可以表示为_λTs_,其中_λ_是单位时间遇到项的比率。货币的平均吸收率为,处理物品的平均成本为,和。如果 s 是每单位时间搜索成本,那么搜索的总成本将是 sTs。将这些代入公式 1,我们得到

(2)

信息块模型和信息饮食模型被公式化为等式 2 的变体。我们在图示的背景下讨论了这些模型的解析最优解。我们还开发了一个更全面的动态模型,其中包括信息块模型和信息饮食模型作为子组件。使用动态规划,我们说明如何可以确定使用动态规划技术的最优人类系统战略。

示例 1:信息块中的搜寻

用户与有价值或相关信息的接触通常在空间和时间上具有块状结构。信息项通常被分组到集合中,例如库、数据库和通讯服务。生物学的类比是,一个生物的生态系统可能有各种不同特征的食物块,生物必须决定如何最好地分配它的觅食时间。这种情况下的模型被称为块模型。本文讨论了一个基于发散 / 聚集文本数据库浏览器的信息块模型。

发散 / 聚集接口

图 1 提供了一个典型的发散 / 聚集接口视图。此浏览范例的重点是向用户呈现一种自动计算的文档集合内容概览,并提供一种在不同粒度级别浏览此概览的方法。这是通过组织收集到一个集群的层次结构。从概念上讲, 一个集合可能是集群, 例如, 分为 B = 10 组相关的文档。每个集群由一个单独的区域如图 1 所示。对于每个聚类,向用户呈现出现在聚类中的文档的文本内容中的典型词,以及三个最典型的文档的标题。用户可以通过点击并选择每个聚类上方的按钮来收集这些聚类的某个子集,然后通过选择图 1 中显示屏顶部的分散 / 收集按钮来要求系统将该子集分散到另一个 B 子组中。聚类是基于文本内容表示的文档间相似度计算的一种形式。发散 / 聚集浏览和聚类采用了可以在恒定交互时间内发生的方法。

块分析

我们可以把发散 / 聚集的簇看作信息块。在集群块中搜寻对应于选择一个集群,在可滚动窗口中显示属于该集群的文档标题,扫描 / 滚动列出的标题,并为每个标题决定它是否与手头的查询相关。如果判断标题相关,则通过选择、剪切并将其粘贴到查询记录窗口来处理该标题。相关和不相关的文档将在显示窗口中随机混杂。

这种简单的活动循环可以用累积增益函数 gi(t) 来表征,它表明在 i 型簇 - 块中,随着时间的推移,t 获得了多少信息价值。在我们的实证研究中,我们使用特定的任务指令,表明信息价值只是收集的相关剂量的数量。一个簇中相关文档的比例是该簇的精度 P:

(3)

其中是相关文档的数量,是集群中文档的总数。在扫描 / 滚动列表时,λP 遇到相关项目的比率为:

(4)

其中 是扫描和判断标题相关性所花费的时间。如果处理相关项目的时间为 th = 0,那么我们得到:

(5)

然而,当处理费用是不可忽略的,

(6)

图 1 用于在大型文档集合中导航的发散 / 聚集接口

在这种情况下,只是 t 的线性函数。图 2 中的函数定性地说明了这一点。接下来,我们将说明一个搜寻模型如何通过引入一个接口方法来显示集群标题,该方法按照文档内容与用户查询的相似性排序,而不是按照等式 6 所捕获的无序表示方式。这种方法目前在发散 / 聚集中是不可用的,但根据我们的分析,它肯定是可行的和可取的。这个搜索模型明确地说明了信息增益的总体速率将如何改变,以及用户在每个集群中的搜索时间将如何减少。

如果集群中的文档标题按照它们与查询的相关性概率排序,那么增益函数将定性地转移到收益递减曲线,如图 2 中的。也就是说,在扫描文件标题显示的最初部分时,会遇到更多的相关文件,但随着继续扫描,这种遇到率会降低。简单的块搜寻模型确定了整个最大信息率和在块中停止搜寻的最佳时间。在这些传统的块模型中,每一个具有增益函数的 i 型块,都额外地由在长时间觅食过程中遇到这种斑块增益函数的速率来表征。例如,在使用发散 / 聚集接口的足够长的工作运行中,人们可能能够通过它们的期望增益函数来分类遇到的簇,并且额外地将期望遇到具有增益函数的簇的速率与每个簇类型 i 相关联。优化问题是确定使货币摄取率 R 最大化的贴片驻留时间 (tJ,t2,…,tN) 的最优向量

(7)

Chamov 的边际值定理指出,通过选择块停留时间,货币摄取的长期速率是最大的,使得离开每个块时货币增益的边际值(瞬时速率)等于生态中所有块的长期平均速率。更严格地说,的速率最大化的全向量,必须满足

(7)

Chamov 表明,该定理意味着停留时间随着信息生态的总增益率的提高而减少,当瞬时增益率等于所有被搜寻块的总增益率时,最佳块停留时间出现。

图 2 显示了 Chamov 边际值定理的图形表示,它出现在许多关于最优觅食理论的讨论中。图 2 描述了只有一种贴片增益函数的情况下的基本关系。块之间的旅行时间(块相遇率的倒数)在横坐标上绘制,从原点开始,向左移动。为了确定总的最大增益率,我们画一条与增益函数相切的线,并在原点的左边穿过 1/λ。切点还提供了最佳的最大觅食时间。用图 2 进行图形化推理,可以看出,如果进一步改进向用户展示的相关文档的排序方法,那么将增益函数改为, 并且(保持切线锚定在 1/λ),收益率提高到 Rc,而在一个簇 - 块中的最佳搜寻时间降低到。如果有足够的有关数量和功能的信息,就可以准确地预测界面变化对最佳用户性能的影响。然而,使用刚才说明的图形推理也可以作出有用的定性预测。

图 2 信息簇块中的最优觅食

gA(t) 是当前的信息增益函数,gB(t) 和 gC(t) 通过相关性来说明排序的效果。

我们怀疑,在大多数任务中,从外部集合中获取与某个嵌入任务相关的信息的速度随着时间的推移而减少(或有限)。例如,在相关文档之间存在一些冗余的情况下,就会发生这种情况。因此,斑块模型分析应具有广泛的适用性。

示例 2:信息饮食

选择追逐哪些集群的问题可以被视为类似于捕食者所面临的问题,他们必须选择最优的猎物组合来追逐相遇时的猎物。在最优觅食理论中,这种选择的模型通常被称为猎物选择或食物选择模型。在我们的例子中,我们有一个确定最优信息饮食的问题。

在 Stephen 和 Krebs 中讨论了猎物选择模型的解析公式和解,但在这里我们集中讨论了三个一般结果:(a) 按盈利能力排序,(b) 零一规则,© 包含与遭遇率无关。假设被选入饮食的项目可以根据其盈利能力进行分类,盈利能力是预期的净收益除以处理该项目所需的时间。在本文中,集群利润将与选择最优饮食成正比,项目应该根据其利润进行排序。从最有利可图的项目开始,只有当排名较低的项目的盈利能力大于或等于所有排名较高的项目的平均增益率时,才将其纳入饮食中。包括盈利能力低于平均收益率的项目,所有排名较高的项目只能降低平均收益率。这是失去机会原则的一个例子:通过处理饮食中排名较低的项目,一个人失去了追求排名较高的项目的机会。零一结果简单地说,最优饮食将是一个给定盈利水平的项目被选择全或无的饮食。包含与遭遇率结果的独立性表明,饮食中排名较低的项目的包含完全取决于它们的盈利能力,而不取决于它们被遭遇的速度。用一个日常类比:如果阅读垃圾邮件被归类为盈利能力太低的项目(因为有更好的事情要追求),那么无论收到的垃圾邮件的数量或比率如何,都应该做出在遇到垃圾邮件时忽略它的决定。

示例 3:动态搜寻模型

信息块模型和信息饮食模型是静态最优模型的例子,它们没有考虑到随着时间的推移而发生的人类系统状态的变化。此外,上述分析集中在与发散 / 聚集的整体相互作用的局部子成分上。它忽略了这样一个事实,即用户在集群层次结构中导航,大概是选择要追求的最佳文档子集群。我们现在阐述一个更完整的分析,其特征是一个动态最优模型。

任务

为了我们的模型开发,我们分析了一个版本的发散 / 聚集,该版本在 Nist Tipster 语料库上运行。这包含了从华尔街日报、美联社新闻通讯社、能源部技术摘要、联邦登记册和 Ziff-Davis 出版的计算机文章中收集的 100 多万份文件。这是一个被信息检索界广泛使用的测试语料库。使用 Tipster 的一个原因是,根据专家的判断,有一组信息检索任务(查询)已经定义了相关和不相关的 Tipster 文档的相关列表。如果不是任务成功的客观衡量标准,这至少为我们提供了一个比较绩效的共同标准。

研究对象、测量方法和过程

为了测量使用发散 / 聚集接口的基本成本,我们要求四个研究对象在一个小时内为尽可能多的 TREC 查询检索尽可能多的相关文档。研究对象是施乐 Xerox PARC 的研究人员(包括两位作者),他们使用发散 / 聚集 - Tipster 的时间分别为 96 小时、20 小时、10 小时和 2 小时。本研究的目的是获得与各种发散 / 聚集浏览操作相关的时间成本的测量。受试者的录像带被分析成相关事件,并将时间编码到最近的一秒钟。另外,我们对系统响应时间进行了单独的实验。相关的时间费用列于表 1。

动态规划

动态规划也被用来开发最优觅食模型。假设一个状态变量 x,人们可以定义一个评估函数,它指定在某个任务截止时间 t 的状态值。在我们的任务中,这是在任务结束时收集的相关文档的数量。状态改变运算符,它从当前状态 xt 产生一个新状态 xt+1,还可以用执行该运算符所需的时间来表示。最终适应值在本文情况下,在任务结束时可以收集到的文档数,对于任何时间的任何状态 x,0<t<T,可以递归地定义为:

(7)

也就是说,假设最优选择(或最优策略)将从 t+1 的状态遵循,在时间 t 做出最优选择。

对于分散 / 聚集的动态规划模型

我们开发了状态变量 x 的多维近似表示。我们定义了一组访问器函数,返回状态变量 x 的相关组件:

其中 “集群历史” 表示用户通过迭代收集然后分散集群在集群层次结构中导航的路径。

一个合理的平均初试状态 x() 为:

接下来,我们定义一组运算符,它指定人类系统交互状态的可能变化,以及一组相关的时间成本函数 CK(x),它指定执行这些操作需要多长时间。

显示一个集群,扫描和判断标题,以及收集相关标题所涉及的一组活动,当应用于状态 xn 时,操作员可以捕获这些活动,它产生一个新的状态 xn+1

在给定时间 t,在截止日期到达之前还有 T-t 时间的情况下,从显示的群集标题中收集的相关文档的数量将是 (a) 所有相关群集标题,如果有足够的剩余时间来遍历整个群集,或者 (b) 在剩余时间中可以收集的尽可能多的相关文档,如等式 6 所示:

相关的时间成本函数为

图 3 发散 / 聚集导航中的期望增益和最优算子选择

除非操作者的时间成本使人类系统交互超过了截止时间 T,否则交互将返回到集群层次结构中的上位集群,并且适当地更新所收集文档、剩余相关文档和所收集子集群的数量,历史记录也是如此。

仍然需要指定用于在发散 / 聚集群集层次结构中导航的运算符。在层次结构中的每个群集上,都有一组 10 个子群集,这些子群集可以被收集并重新分配。在聚类层次结构中每个节点的 29-2 个可能的集合中,对信息饮食的分析表明,只考虑九种可能性就可以找到最优集合。集群可以通过它们的盈利能力λP 来进行排序,我们可以考虑聚集前 1, 前 2,… 前 9 个集群来找到最优的 “集群饮食”(在下面,出于实际的原因,我们只考虑了前 3 个)。

用于选择最高精度 i=1,2,…9 簇的运算符由运算符定义,

如果一个集群被分成 B 个子集群(例如在本文中,b=10),那么通过将 i 个子集群聚集在一起而收集到的文档数量在平均情况下是,

将在新聚集的集群中找到的相关剂量剂的数量将是:

其中是 i 个子集群聚集的累积集群相关性分布,是已经搜索过的相关文档的数量。假设,当聚类按其精度λP 从最高到最低排列时,聚类中的相关文档按指数分布,该精度 XP 以可分配给一个聚类的最大文档数为界。我们在计算中使用了指数 exp(-.8 * 簇秩)。

收集操作的成本为

图 3 给出了发散 / 聚集导航状态空间中状态的期望值和最佳运算符选择策略的摘要。图 3 中的每个点表示从(11)中指定的初始状态可以通过迭代应用上面指定的发散 / 聚集操作符达到的状态:从一个集群 ()、分散 - 聚集一个()、两个() 或三个集群 () 中显示 - 扫描 - 选择相关文档。例如,图 3a-3c 中最左边的点描绘了初始状态,该点右边的四个状态点是通过应用四个运算符生成的(图 3a-3c 中的每个状态点类似地与右边的四个点相关联,直到截止时间)。

图 3a 给出了对于每个分散 / 聚集状态,在任务截止日期到来之前,最优期望获得的文档数。每个状态被绘制成一个盒子,它的填充程度与该状态下集群的精度λp 成正比。随着可用时间的减少和精度的降低而减小,如方程 6 所示。

图 3b 给出了在每个发散 / 聚集状态下已经收集到的文件数量 Q(x),作为时间的函数。状态精度如图 3a 所示。开始收集文档需要大约任务时间的一半。图 3c 绘制(忽略精度)Q(x)(图 3b) 和(图 3a) 之和,这是方程 9 中定义的每个状态 x 的适应度 F(x,t)。

图 3d 显示了在决定开始收集文档之前遇到的每个状态的最佳操作员选择策略,作为状态精度和时间的函数。圆圈表示最优算子为的状态。和针对分散聚集群集,圆大小与所选群集的最佳数量成比例。点代表最佳操作员选择开始显示、扫描和选择文档的状态在任务开始时,当有时间和聚类精度较低时,分散聚类是最优的;在较晚或较高精度时,显示选择是最优的。最优选择簇数随总体状态精度的增加而增加,且精度随时间的延长而增加。

结论

Stephen 和 Krebs 在他们关于搜寻理论的书的前言中这样说:

这本书分析了搜寻行为,就像工程师研究一个新的机器一样。工程师可能会问,除了其他问题,关于机器的用途:它是用来测量时间,风速,还是所得税? 对于工程师来说,这是一个很有价值的问题,因为机器是带着一个目的制造的,任何对机器的描述都应该提到它的目的…

生物学家也会问关于目的的问题,关于事物的用途与工程师不同,生物学家认为设计或目的是自然选择的产物,而不是有意识的创造者的产物。(Stephens&Krebs, 第 IX 页)

本文试图扭转上述为行为生态学服务而发展起来的类比开发理论,以分析信息生态和交互信息系统的设计。希望这条线的研究将给我们一套新的工具,以帮助这些系统的设计。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
细菌觅食算法(Bacteria Foraging Optimization,BFO)是一种模拟生物细菌在觅食过程中释放化学物质进行信息交流和寻找食物的行为方式,用于解决优化问题。该算法的主要步骤包括初始化细菌群体、计算每个细菌的适应度、更新细菌位置和适应度,并进行化学信息素的释放和传播。 以下是基于MATLAB实现细菌觅食算法的示例代码: ```matlab % Bacteria Foraging Optimization Algorithm % Author: Zhengrong Xiang % Date: 2018-05-16 clear all; clc; % Parameters initialization N_bac = 50; % Number of bacteria N_cha = 4; % Number of chemotactic steps N_rea = 2; % Number of reproduction steps N_eli = 1; % Number of elimination-dispersal events N_dim = 2; % Number of dimensions N_org = 3; % Number of chemotactic and reproduction attractant/release parameters N_steps = N_cha + N_rea; % Total number of steps % Initialization of the bacterial population X_min = [-5,-5]; % Lower bound of the search space X_max = [5,5]; % Upper bound of the search space X_bac = repmat(X_min,N_bac,1) + repmat((X_max - X_min),N_bac,1) .* rand(N_bac,N_dim); J_bac = zeros(N_bac,1); % Fitness value of the bacteria J_best = inf; % Best fitness value X_best = zeros(1,N_dim); % Best solution % Initialization of the chemotactic and reproduction attractant/release parameters A = repmat([0.1,0.2,0.3],N_bac,1); % Attractant C = repmat([0.1,0.2,0.3],N_bac,1); % Repellent S = repmat([0.1,0.2,0.3],N_bac,1); % Orientation % Main loop for i = 1:N_steps % Chemotaxis for j = 1:N_bac % Compute the fitness value of the bacteria J_bac(j) = sum(X_bac(j,:).^2); % Update the bacteria position X_bac(j,:) = X_bac(j,:) + S(j,:) .* randn(1,N_dim); % Check the boundary conditions X_bac(j,:) = max(X_bac(j,:),X_min); X_bac(j,:) = min(X_bac(j,:),X_max); end % Update the chemotactic and reproduction attractant/release parameters if i <= N_cha A = A + 0.2 .* randn(N_bac,N_org); C = C + 0.2 .* randn(N_bac,N_org); else A = A - 0.2 .* randn(N_bac,N_org); C = C - 0.2 .* randn(N_bac,N_org); end A = max(A,0); C = max(C,0); % Reproduction for j = 1:N_bac % Compute the fitness value of the bacteria J_bac(j) = sum(X_bac(j,:).^2); % Compute the attractant and repellent of the bacteria D_a = sum((repmat(X_bac(j,:),N_bac,1) - X_bac).^2 .* repmat(A(j,:),N_bac,1),2); D_c = sum((repmat(X_bac(j,:),N_bac,1) - X_bac).^2 .* repmat(C(j,:),N_bac,1),2); % Compute the probability of reproduction P_r = 1 ./ (1 + exp(-0.2.*(D_a - D_c))); % Update the bacteria position X_bac(j,:) = X_bac(j,:) + S(j,:) .* randn(1,N_dim); % Check the boundary conditions X_bac(j,:) = max(X_bac(j,:),X_min); X_bac(j,:) = min(X_bac(j,:),X_max); end % Elimination-dispersal if mod(i,N_steps/N_eli) == 0 % Compute the fitness value of the bacteria for j = 1:N_bac J_bac(j) = sum(X_bac(j,:).^2); end % Sort the bacteria in ascending order of fitness value [J_bac,idx] = sort(J_bac); X_bac = X_bac(idx,:); % Disperse the least fit bacteria X_bac(1,:) = X_min + rand(1,N_dim) .* (X_max - X_min); % Reset the chemotactic and reproduction attractant/release parameters of the dispersed bacteria A(1,:) = A(idx(1),:) + 0.2 .* randn(1,N_org); C(1,:) = C(idx(1),:) + 0.2 .* randn(1,N_org); end % Update the best solution [J_min,idx_min] = min(J_bac); if J_min < J_best J_best = J_min; X_best = X_bac(idx_min,:); end end % Results display disp(['Best solution: ',num2str(X_best)]); disp(['Best fitness value: ',num2str(J_best)]); ``` 在上述示例代码中,参数的初始化包括细菌数量、化学趋药和排斥剂的数量、化学信息素的释放和传播次数等。细菌群体的初始化采用随机的方式,同时也初始化了化学趋药和排斥剂的参数。算法的主循环包括三个过程:化学趋向、繁殖和淘汰。在每个迭代步骤中,细菌的位置和化学信息素都进行更新。最后,根据适应度值,得到最优解和最优解对应的适应度值。 需要注意的是,细菌觅食算法的性能高度依赖于参数的设置和算法的实现。因此,在实际应用中,需要根据问题的特点和求解目标进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值