CN114091717A - 一种选址方法和装置 - Google Patents

一种选址方法和装置 Download PDF

Info

Publication number
CN114091717A
CN114091717A CN202110032161.9A CN202110032161A CN114091717A CN 114091717 A CN114091717 A CN 114091717A CN 202110032161 A CN202110032161 A CN 202110032161A CN 114091717 A CN114091717 A CN 114091717A
Authority
CN
China
Prior art keywords
candidate point
current
point information
demand
solution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110032161.9A
Other languages
English (en)
Inventor
杜博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Zhenshi Information Technology Co Ltd
Original Assignee
Beijing Jingdong Zhenshi Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Zhenshi Information Technology Co Ltd filed Critical Beijing Jingdong Zhenshi Information Technology Co Ltd
Priority to CN202110032161.9A priority Critical patent/CN114091717A/zh
Publication of CN114091717A publication Critical patent/CN114091717A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/043Optimisation of two dimensional placement, e.g. cutting of clothes or wood
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Quality & Reliability (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Development Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种选址方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取候选点信息、需求点信息和目标候选点数量;根据所述候选点信息、所述需求点信息和所述目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点。该实施方式能够缩短选址时间。

Description

一种选址方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种选址方法和装置。
背景技术
设施选址,指的是在给定区域内选择若干设施,以服务给定需求点。通过设施选址,可以确定仓库、分拣中心和信号基站及公共设施等的位置。
现有技术通过求解器,在若干候选点中确定目标候选点及其对应的需求点。但是,求解器具有一定的规模限制,当候选点和需求点的数量较多时,其计算需要花费较长的时间。
发明内容
有鉴于此,本发明实施例提供一种选址方法和装置,能够缩短选址时间。
第一方面,本发明实施例提供了一种选址方法,包括:
获取候选点信息、需求点信息和目标候选点数量;
根据所述候选点信息、所述需求点信息和所述目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点。
可选地,
所述根据所述候选点信息、所述需求点信息和所述目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点,包括:
并行执行:根据所述目标候选点数量,确定初始解;确定初始邻域;将所述初始解作为当前解、所述初始邻域作为当前邻域执行:根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解;确定所述当前解是否优于存储的历史最优解,如果是,将所述当前解作为更新后的所述历史最优解;将所述当前邻域更新为其初始值,执行所示根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解;
确定是否满足终止条件,如果是,根据所述历史最优解,确定所述目标候选点及其对应的需求点。
可选地,
进一步包括:
如果所述当前解不优于所述历史最优解,则确定所述当前邻域内所述当前解的更新次数是否小于所述当前邻域,如果是,则执行所述根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解。
可选地,
进一步包括:
如果所述当前邻域内所述当前解的更新次数不小于所述当前邻域,则确定所述当前邻域是否等于预设的邻域阈值,如果否,将所述当前邻域加1,并执行所述根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解。
可选地,
进一步包括:
如果所述当前邻域等于所述邻域阈值,将所述历史最优解作为更新后的所述当前解,将所述当前邻域更新为其初始值,并执行所述根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解。
可选地,
所述根据所述目标候选点数量,确定初始解,包括:
确定所述目标函数的初始值;
遍历未在所述初始解中的候选点,将使所述目标函数的值增长最小的候选点添加到初始解中;
确定所述初始解中的候选点的数量是否达到所述数量阈值,如果是,终止当前流程,否则,执行所述遍历未在所述初始解中的候选点,将使目标函数值增长最小的候选点添加到初始解中。
可选地,
所述根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解,包括:
根据所述候选点信息和所述当前解,确定未在所述当前解中的候选点;
根据所述候选点信息、所述需求点信息、预设的目标函数和未在所述当前解中的候选点,更新所述当前解。
可选地,
进一步包括:
获取成本信息;
所述根据所述候选点信息、所述需求点信息、预设的目标函数和未在所述当前解中的候选点,更新所述当前解,包括:
根据任一未在所述当前解中的候选点替换所述当前解中的候选点,得到若干选址方案;
根据所述候选点信息、所述需求信息、所述成本信息以及预设的目标函数,计算各个所述选址方案的目标函数值;
根据各个所述选址方案的目标函数值,更新所述当前解。
可选地,
进一步包括:
获取约束条件;
所述根据所述候选点信息、所述需求点信息和所述目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点,包括:
根据所述候选点信息、所述需求点信息、所述约束条件和所述目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点。
可选地,
进一步包括:获取成本信息和约束条件;
所述确定所述当前解是否优于存储的历史最优解,包括:
确定所述当前解是否满足所述约束条件,如果是,根据所述候选点信息、所述需求点信息和所述成本信息,计算所述当前解的成本;
确定所述当前解的成本是否小于所述历史最优解的成本。
可选地,
所述约束条件包括:各个所述需求点的需求量均被满足、每个所述需求点对应一个候选点、每个所述候选点对应的需求量之和不超过容量上限、每个所述候选点对应的需求量之和不低于容量下限、所述候选点到对应的需求点的距离不超过其覆盖半径中任意一项或多项。
可选地,
所述候选点信息,包括:候选点位置。
可选地,
所述需求点信息,包括:需求点位置及需求量。
第二方面,本发明实施例提供了一种选址装置,包括:
获取模块,配置为获取候选点信息、需求点信息和目标候选点数量;
搜索模块,配置为根据所述候选点信息、所述需求点信息和所述目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点。
第三方面,本发明实施例提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述任一实施例所述的方法。
第四方面,本发明实施例提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述任一实施例所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:本发明实施例通过变邻域搜索能够搜索更大的解空间,进而得到质量更高的选址方案。同时,本发明实施例使用异步的并行方式进行搜索,能够更大化利用硬件计算资源,在更短时间内输出较优的选址方案。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明的一个实施例提供的一种选址方法的流程图;
图2是本发明的另一个实施例提供的一种选址方法的流程图;
图3是本发明的又一个实施例提供的一种选址方法的流程图;
图4是本发明的再一个实施例提供的一种选址方法的流程图;
图5是本发明的一个实施例提供的另一种选址方法的流程图;
图6是本发明的一个实施例提供的一种选址装置的示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
现有技术一般通过求解器确定选址方案,例如,CPLEX、Gurobi等求解器。但是,当候选点和需求点的数量较多时,这些求解器的求解过程需要花费较长时间,甚至最终结果存在无法收敛的情况,导致求解失败。
鉴于此,如图1所示,本发明实施例提供了一种选址方法,包括:
步骤101:获取候选点信息、需求点信息和目标候选点数量。
在选址过程中,需要在若干候选点中选择出目标候选点,在目标候选点中设置设施,以服务目标候选点对应的需求点。例如,要建立5个仓库,为50个配送点提供服务,现有10个候选点,本发明实施例的目的在于,从这10个候选点中选择出5个目标候选点来建立仓库。
候选点信息可以包括:候选点位置、候选点标识等。需求点信息可以包括:需求点位置及需求量、需求点标识等。
如果一个候选点对应一个设施,则该目标候选点数据即为要建立设施的数量。
步骤102:根据候选点信息、需求点信息和目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点。
在本发明实施例中,在获取候选点信息、需求点信息和目标候选点数量之后,可以通过多个进程并行执行变邻域搜索,以扩大搜索范围。
本发明实施例通过变邻域搜索能够搜索更大的解空间,进而得到质量更高的选址方案。同时,本发明实施例使用异步的并行方式进行搜索,能够更大化利用硬件计算资源,在更短时间内输出较优的选址方案。
在本发明实施例中,多个进程分别执行变邻域搜索,通过各个进程的搜索结果,得到目标候选点及其对应的需求点。
如图2所示,本发明实施例提供了一种选址方法,包括:
步骤201:获取候选点信息、需求点信息和目标候选点数量。
步骤202:根据目标候选点数量,确定初始解。
在本发明实施例中,每个进程执行的变邻域搜索过程,可以包括步骤202-步骤205,不同进程通过不同的变邻域搜索对历史最优解进行优化,当各个进程的搜索过程结束时,得到的最优搜索结果即为历史最优解。
本发明实施例至少提供了两种确定初始解的方法。
方法一、根据目标候选点数量,随机从若干候选点中选择候选点,得到初始解。
例如,目标候选点数量为3,候选点包括A、B、C、D、E、F,随机选择A、B、C作为初始解中的候选点。
方法二、采用Greedy Adding算法生成初始解。
具体过程包括:
A1:确定目标函数的初始值。
maxf(X,Y)=∑i∈Ij∈Jcijxij (1)
其中,maxf(X,Y)用于表征目标函数的值;cij用于表征候选点j服务需求点i的成本;xij用于表征需求点i是否由候选点j的设施来满足,如果需求点i由候选点j的设施来满足,则xij等于1,否则xij等于0;I用于表征需求点集合;J用于表征候选点集合。
目标函数的初始值为0,此时,初始解中不包含候选点,xij均为0。
A2:遍历未在初始解中的候选点,将使目标函数的值增长最小的候选点添加到初始解中。
使目标函数的值增长最小,也就是说,目标函数以成本最低为优化目标。
A3:确定初始解中的候选点的数量是否达到数量阈值,如果是,终止当前流程,否则,继续执行A2,直到初始解中候选点的数量等于目标候选点数量。
以目标函数为优化目标,通过遍历过程得到初始解。
采用Greedy Adding算法生成初始解,能够提高获得更好解的概率,提高搜索结果的质量。
在实际应用场景中,不同进程可以采用上述方法中任意一种确定初始解。例如,进程1采用方法2生成初始解,进程2-进程10采用方法1生成初始解。
步骤203:确定初始邻域;将初始解作为当前解、初始邻域作为当前邻域执行步骤204。
在本发明实施例中,邻域范围为[1,p],初始邻域为1,最大邻域为p,其中,p用于表征目标候选点数量。在不同应用场景中,初始邻域以及邻域范围可能存在区别。例如,初始邻域为2,最大邻域为p-1。邻域范围能够体现变邻域搜索的范围,在实际应用场景中,需要根据搜索时间和解的质量等因素确定邻域范围。
步骤204:根据候选点信息、需求点信息、预设的目标函数,更新当前解。
在本发明实施例中,以成本最低为优化目标,因此,该步骤中的目标函数可以为式(1)。在实际应用场景中,还可以以距离最近为优化目标,也就是说,目标函数不局限于上述一种形式,其他形式此处不再赘述。
例如,(A、B、D)对应的目标函数值小于(A、B、C)对应的目标函数值,则将(A、B、D)作为更新后的当前解。
步骤205:当当前解优于存储的历史最优解时,将当前解作为更新后的历史最优解,将当前邻域更新为其初始值,执行步骤204。
不同进程均可以对历史最优解进行优化,以使历史最优解是各个进程得到的解中最优的解。当前邻域的初始值即为初始邻域,例如,邻域范围为[1,6],当前邻域为4,如果当前解优于历史最优解,则当前邻域更新为1,即以更新后的当前解逐渐扩大搜索的邻域范围。
在本发明实施例中,可以根据成本高低、距离远近确定当前解是否优于历史最优解。
其中,目标候选点及其对应的需求点由更新后的历史最优解确定,历史最优解中的候选点即为目标候选点。在实际应用场景中,还可以对各个进程的变邻域搜索过程设定终止条件,当满足终止条件时,搜索过程停止。例如,在将当前邻域更新为其初始值,执行步骤204之前,还可以包括:确定是否满足终止条件,如果是,终止当前流程,否则,将当前邻域更新为其初始值,执行步骤204。
在本发明实施例中,可以将搜索时间作为终止条件,例如,如果变邻域搜索的时间达到设定时间阈值,则终止变邻域搜索。在实际应用场景中,可以为不同的进程设定统一的时间阈值,也可以分别为不同的进程设定不同的时间阈值。此外,还可以根据当前解的更新次数确定是否终止。
如图3所示,本发明实施例提供了一种选址方法,包括:
步骤301:获取候选点信息、需求点信息和目标候选点数量。
步骤302:根据目标候选点数量,确定初始解。
步骤303:确定初始邻域;将初始解作为当前解、初始邻域作为当前邻域执行步骤304。
步骤304:根据候选点信息、需求点信息、预设的目标函数,更新当前解。
步骤305:确定当前解是否优于存储的历史最优解,如果是,执行步骤306,否则,执行步骤307。
步骤306:将当前解作为更新后的历史最优解,将当前邻域更新为其初始值,执行步骤304。
步骤307:确定当前邻域内当前解的更新次数是否小于当前邻域,如果是,则执行步骤304,否则,执行步骤308。
步骤308:确定当前邻域是否等于预设的邻域阈值,如果是,执行步骤309,否则,执行步骤310。
步骤309:将历史最优解作为更新后的当前解,将当前邻域更新为其初始值,并执行步骤304。
不同进程间异沟通历史最优解,如果在一个进程中,无法搜索得到更优的解,则以历史最优解作为更新后的当前解。
步骤310:将当前邻域加1,并执行步骤304。
各个进程可以分别通过步骤302-步骤310对历史最优解进行优化,当各个进程的搜索过程均停止时,得到的历史最优解中的候选点即为目标候选点。根据候选点信息和需求点信息,可以确定目标候选点对应的需求点。具体过程将在后续的实施例中进行说明。
在本发明的一个实施例中,根据候选点信息、需求点信息、预设的目标函数,更新当前解,包括:
根据候选点信息和当前解,确定未在当前解中的候选点;
根据候选点信息、需求点信息、预设的目标函数和未在当前解中的候选点,更新当前解。
本发明实施例通过未在当前解中的候选点对当前解进行扰动,以提高获得更优解的概率。具体地,本发明实施例可以采用随机的方式进行扰动,即根据任一未在当前解中的候选点替换当前解中的候选点。
在本发明的一个实施例中,该方法还包括:
获取成本信息;
根据候选点信息、需求点信息、预设的目标函数和未在当前解中的候选点,更新当前解,包括:
根据任一未在当前解中的候选点替换当前解中的候选点,得到若干选址方案;
根据候选点信息、需求信息、成本信息以及预设的目标函数,计算各个选址方案的目标函数值;
根据各个选址方案的目标函数值,更新当前解。
成本信息可以包括:单位需求量单位距离花费的成本。通过成本信息可以计算候选点j服务需求点i的成本,进而得到目标函数的值。
本发明实施例可以通过成本信息,选择成本最低的选址方案,并基于成本最低的选址方案更新当前解。例如,当前解为(A、B、C),选址方案分别为(D、B、C)、(A、D、C)、(A、B、D),选址方案对应的目标函数值分别为10、5、15,则将(A、D、C)更新为当前解。
本实际应用场景中,还可以用多个未在当前解中的候选点替换当前解中的候选点,也就是说,并不局限于本发明实施例提供的一种随机扰动方式。
在实际应用场景中,设施可能存在容量、覆盖半径等约束,鉴于此,在本发明的一个实施例中,该方法还包括:
获取约束条件;
根据候选点信息、需求点信息和目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点,包括:
根据候选点信息、需求点信息、约束条件和目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点。
本发明实施例在执行并行变邻域搜索的过程中,考虑了约束条件的影响,避免得到不可行的历史最优解,提高搜索结果的质量。
在本发明的一个实施例中,该方法还包括:获取成本信息和约束条件;
确定当前解是否优于存储的历史最优解,包括:
确定当前解是否满足约束条件,如果是,根据候选点信息、需求点信息和成本信息,计算当前解的成本;
确定当前解的成本是否小于历史最优解的成本。
本发明实施例在判断当前解是否优于历史最优解的过程中,通过约束条件确定当前解的可行性,通过成本信息确定当前解的成本,将两者结合,能够保证得到的历史最优解的成本更低,且为可行解,提高历史最优解的质量。
在本发明的一个实施例中,约束条件包括:各个需求点的需求量均被满足、每个需求点对应一个候选点、每个候选点对应的需求量之和不超过容量上限、每个候选点对应的需求量之和不低于容量下限、候选点到对应的需求点的距离不超过其覆盖半径中任意一项或多项。
在本发明实施例中,考虑到产能、场地等因素的限制,需要限制每个候选点对应的需求量上限。考虑到候选点耗费的成本,每个候选点需要服务一定的需求量才有存在的价值,因此,需要限制每个候选点对应的需求量下限。考虑到服务水平等因素,候选点不应距离需求点过远,所以需要限制所有需求点都在设施的覆盖半径之内。
为了对便于描述,候选点到对应的需求点的距离不超过其覆盖半径称为覆盖半径约束;每个候选点对应的需求量之和不超过容量上限称为容量上限约束;每个候选点对应的需求量之和不低于容量下限称为容量下限约束。
在本发明的一个实施例中,确定当前解是否满足约束条件,包括:
B1:如果存在覆盖半径约束,则根据候选点的覆盖半径,确定当前解中候选点是否能覆盖各个需求点,如果是,执行B2,否则,确定当前解不满足约束条件;
B2:确定每个需求点对应的成本最低的候选点;
B3:如果存在容量上限约束,则针对当前解中每个候选点:按照候选点服务需求点的成本由低到高、候选点与需求点的距离由近及远的顺序,为候选点分配需求点,直到达到候选点的容量上限;
B4:如果存在容量下限约束,确定是否存在未达到容量下限的候选点,如果是,对于未达到容量下限的候选点:按照距离由近及远的顺序,为其分配需求点,如果最终仍然存在未达到容量下限的设施,则确定当前解不满足约束条件;
B5:针对未被分配的需求点:按照距离由近及远的顺序选择未超过容量上限的候选点,如果存在需求点无法分配,则确定当前解不满足约束条件。
通过B1-B5可以确定当前解是否满足约束条件,如果是,则根据由B1-B5得到的分配关系,计算当前解的成本。通过分配关系可以确定目标候选点对应的需求点。
在实际应用场景中,设定的约束条件可能存在多种情况,例如,不存在覆盖半径约束,此时,可以直接执行B2,以确定当前解是否满足约束条件。其他情况本发明实施例不再赘述。
如图4所示,本发明实施例提供了一种选址方法,包括:
步骤401:获取候选点信息、需求点信息、成本信息、约束条件和目标候选点数量。
参考图5,本发明实施例提供的选址方法可以通过主进程和多个子进程实现。
主进程获取候选点信息、需求点信息、成本信息、约束条件和目标候选点数量,并将这些信息提供给多个子进程,以使子进程根据这些信息执行并行变邻域搜索。主进程中保存历史最优解,子进程在进行变邻域搜索的过程中,可以从主进程中获取历史最优解。每个子进程均可以执行步骤402-步骤415,实现对主进程中历史最优解的优化。
步骤402:根据目标候选点数量,确定初始解。
步骤403:确定初始邻域;将初始解作为当前解、初始邻域作为当前邻域执行步骤404。
步骤404:根据候选点信息和当前解,确定未在当前解中的候选点。
步骤405:根据任一未在当前解中的候选点替换当前解中的候选点,得到若干选址方案。
本发明实施例通过未在当前解中的候选点,对当前解进行随机扰动。在随机扰动之后,通过局部搜索,寻求比历史最优解更好的解。
步骤406:根据候选点信息、需求信息、成本信息以及预设的目标函数,计算各个选址方案的目标函数值。
步骤407:根据各个选址方案的目标函数值,更新当前解。
步骤408:确定当前解是否满足约束条件,如果是,执行步骤409,否则,执行步骤412。
步骤409:根据候选点信息、需求点信息和成本信息,计算当前解的成本。
步骤410:确定当前解的成本是否小于历史最优解的成本,如果是,执行步骤411,否则,执行步骤412。
在本发明实施例中,可以根据候选点信息、需求点信息和约束信息,确定目标候选点及其对应的需求点。历史最优解中的候选点即为目标候选点。
步骤411:将当前解作为更新后的历史最优解,将当前邻域更新为其初始值,执行步骤404。
步骤412:确定当前邻域内当前解的更新次数是否小于当前邻域,如果是,则执行步骤404,否则,执行步骤413。
步骤413:确定当前邻域是否等于预设的邻域阈值,如果是,执行步骤414,否则,执行步骤415。
步骤414:将历史最优解作为更新后的当前解,将当前邻域更新为其初始值,并执行步骤404。
步骤415:将当前邻域加1,并执行步骤404。
在本发明实施例中,由于每个进程中的随机扰动过程可能不同,生成的初始解也可能不同,因此,多进程变邻域搜索能够实现更大的搜索范围,得到质量更高的历史最优解,同时,提高搜索效率。
随机扰动迭代一次的时间复杂度为O(p),当前邻域越大,随机产生的当前解由于历史最优解的可能性越大;
局部搜索迭代一次的时间复杂度为O(n(m-p)),n为需求点数量,m为候选点数量,p为目标候选点数量。实践中发现,采用“得到更好的解即停止,并更新当前解”的策略比遍历找到邻域内最好的解更为高效。
当前解x的k邻域内,包含的解的数量是:
Figure BDA0002892916610000131
式(2)表示从当前解的p个候选点中移除k个,并从(m-p)个候选点中选出k个加入到当前解中。在变邻域搜索过程中,并不整体搜索该临域,而是采取“随机扰动”,并对1(x)进行局部搜索。
本发明实施例采用多个进程,以共享内存(shared-memory)的形式执行变邻域搜索。相比于普通的变邻域搜索方法,本发明实施例可以在相同时间内搜索更大的邻域范围:每个进程内的变邻域搜索相对独立,可以从不同的初始解开始搜索;当一个进程的达到邻域范围限制(k=p)时,从所有其它进程中同步到历史最优解,且每个进程的随机数生成器不同,随机扰动方向不一致,使算法尽可能搜索到更大的邻域范围。
本发明实施例基于40个算例,对不同进程数的变邻域搜索进行测试,测试结果如表1所示。
表1
算法 获得最好解时间 平均GAP(%)
VNS(1进程) 330.89 0.040%
VNS(2进程) 300.48 0.020%
VNS(8进程) 343.45 0.012%
其中,VNS用于表示变邻域搜索。“获得最好解时间”表示在1800s内得到算法最好的解时的时间,“平均GAP(%)”表示算法得到的最好解与该问题最优解的差距。通过表1可以看出,VNS(2进程)在更短的平均时间内得到了质量更高的解,VNS(8进程)得到最好解的时间最长,但是解的质量也更高,证明多进程搜索的方式可以搜索到更广的解空间。
测试包含40个算例,使用VNS(8进程)平均得到最好解的时间为1398秒。求解器得到最好解的GAP为7.33%,40个算例中有3个算例得到了比求解器更好的解。
如图6所示,本发明实施例提供了一种选址装置,包括:
获取模块601,配置为获取候选点信息、需求点信息和目标候选点数量;
搜索模块602,配置为根据所述候选点信息、所述需求点信息和所述目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点。
在本发明的一个实施例中,搜索模块602,配置为并行执行:根据所述目标候选点数量,确定初始解;确定初始邻域;将所述初始解作为当前解、所述初始邻域作为当前邻域执行:根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解;确定所述当前解是否优于存储的历史最优解,如果是,将所述当前解作为更新后的所述历史最优解;将所述当前邻域更新为其初始值,执行所述根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解;
其中,所述目标候选点及其对应的需求点由更新后的所述历史最优解确定。
在本发明的一个实施例中,搜索模块602,配置为如果所述当前解不优于所述历史最优解,则确定所述当前邻域内所述当前解的更新次数是否小于所述当前邻域,如果是,则执行所述根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解。
在本发明的一个实施例中,搜索模块602,配置为如果所述当前邻域内所述当前解的更新次数不小于所述当前邻域,则确定所述当前邻域是否等于预设的邻域阈值,如果否,将所述当前邻域加1,并执行所述根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解。
在本发明的一个实施例中,搜索模块602,配置为如果所述当前邻域等于所述邻域阈值,将所述历史最优解作为更新后的所述当前解,将所述当前邻域更新为其初始值,并执行所述根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解。
在本发明的一个实施例中,搜索模块602,配置为确定所述目标函数的初始值;遍历未在所述初始解中的候选点,将使所述目标函数的值增长最小的候选点添加到初始解中;确定所述初始解中的候选点的数量是否达到所述数量阈值,如果是,终止当前流程,否则,执行所述遍历未在所述初始解中的候选点,将使目标函数值增长最小的候选点添加到初始解中。
在本发明的一个实施例中,搜索模块602,配置为根据所述候选点信息和所述当前解,确定未在所述当前解中的候选点;根据所述候选点信息、所述需求点信息、预设的目标函数和未在所述当前解中的候选点,更新所述当前解。
在本发明的一个实施例中,获取模块601,配置为获取成本信息;
搜索模块602,配置为根据任一未在所述当前解中的候选点替换所述当前解中的候选点,得到若干选址方案;根据所述候选点信息、所述需求信息、所述成本信息以及预设的目标函数,计算各个所述选址方案的目标函数值;根据各个所述选址方案的目标函数值,更新所述当前解。
在本发明的一个实施例中,获取模块601,配置为获取约束条件;
搜索模块602,配置为根据所述候选点信息、所述需求点信息、所述约束条件和所述目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点。
在本发明的一个实施例中,获取模块601,配置为获取成本信息和约束条件;
搜索模块602,配置为确定所述当前解是否满足所述约束条件,如果是,根据所述候选点信息、所述需求点信息和所述成本信息,计算所述当前解的成本;确定所述当前解的成本是否小于所述历史最优解的成本。
在本发明的一个实施例中,所述约束条件包括:各个所述需求点的需求量均被满足、每个所述需求点对应一个候选点、每个所述候选点对应的需求量之和不超过容量上限、每个所述候选点对应的需求量之和不低于容量下限、所述候选点到对应的需求点的距离不超过其覆盖半径中任意一项或多项。
在本发明的一个实施例中,所述候选点信息,包括:候选点位置。
在本发明的一个实施例中,所述需求点信息,包括:需求点位置及需求量。
本发明实施例提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述任一实施例所述的方法。
本发明实施例提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述任一实施例所述的方法。
图7示出了可以应用本发明实施例的选址方法或选址装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的选址方法一般由服务器705执行,相应地,选址装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括发送模块、获取模块、确定模块和第一处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,发送模块还可以被描述为“向所连接的服务端发送图片获取请求的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
获取候选点信息、需求点信息和目标候选点数量;
根据所述候选点信息、所述需求点信息和所述目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点。
根据本发明实施例的技术方案,本发明实施例通过变邻域搜索能够搜索更大的解空间,进而得到质量更高的选址方案。同时,本发明实施例使用异步的并行方式进行搜索,能够更大化利用硬件计算资源,在更短时间内输出较优的选址方案。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (15)

1.一种选址方法,其特征在于,包括:
获取候选点信息、需求点信息和目标候选点数量;
根据所述候选点信息、所述需求点信息和所述目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点。
2.如权利要求1所述的方法,其特征在于,
所述根据所述候选点信息、所述需求点信息和所述目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点,包括:
并行执行:根据所述目标候选点数量,确定初始解;确定初始邻域;将所述初始解作为当前解、所述初始邻域作为当前邻域执行:根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解;确定所述当前解是否优于存储的历史最优解,如果是,将所述当前解作为更新后的所述历史最优解;将所述当前邻域更新为其初始值,执行所述根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解;
其中,所述目标候选点及其对应的需求点由更新后的所述历史最优解确定。
3.如权利要求2所述的方法,其特征在于,进一步包括:
如果所述当前解不优于所述历史最优解,则确定所述当前邻域内所述当前解的更新次数是否小于所述当前邻域,如果是,则执行所述根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解。
4.如权利要求3所述的方法,其特征在于,进一步包括:
如果所述当前邻域内所述当前解的更新次数不小于所述当前邻域,则确定所述当前邻域是否等于预设的邻域阈值,如果否,将所述当前邻域加1,并执行所述根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解。
5.如权利要求4所述的方法,其特征在于,进一步包括:
如果所述当前邻域等于所述邻域阈值,将所述历史最优解作为更新后的所述当前解,将所述当前邻域更新为其初始值,并执行所述根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解。
6.如权利要求2所述的方法,其特征在于,
所述根据所述目标候选点数量,确定初始解,包括:
确定所述目标函数的初始值;
遍历未在所述初始解中的候选点,将使所述目标函数的值增长最小的候选点添加到初始解中;
确定所述初始解中的候选点的数量是否达到所述数量阈值,如果是,终止当前流程,否则,执行所述遍历未在所述初始解中的候选点,将使目标函数值增长最小的候选点添加到初始解中。
7.如权利要求2所述的方法,其特征在于,
所述根据所述候选点信息、所述需求点信息、预设的目标函数,更新所述当前解,包括:
根据所述候选点信息和所述当前解,确定未在所述当前解中的候选点;
根据所述候选点信息、所述需求点信息、预设的目标函数和未在所述当前解中的候选点,更新所述当前解。
8.如权利要求7所述的方法,其特征在于,进一步包括:
获取成本信息;
所述根据所述候选点信息、所述需求点信息、预设的目标函数和未在所述当前解中的候选点,更新所述当前解,包括:
根据任一未在所述当前解中的候选点替换所述当前解中的候选点,得到若干选址方案;
根据所述候选点信息、所述需求信息、所述成本信息以及预设的目标函数,计算各个所述选址方案的目标函数值;
根据各个所述选址方案的目标函数值,更新所述当前解。
9.如权利要求1所述的方法,其特征在于,进一步包括:
获取约束条件;
所述根据所述候选点信息、所述需求点信息和所述目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点,包括:
根据所述候选点信息、所述需求点信息、所述约束条件和所述目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点。
10.如权利要求2所述的方法,其特征在于,进一步包括:获取成本信息和约束条件;
所述确定所述当前解是否优于存储的历史最优解,包括:
确定所述当前解是否满足所述约束条件,如果是,根据所述候选点信息、所述需求点信息和所述成本信息,计算所述当前解的成本;
确定所述当前解的成本是否小于所述历史最优解的成本。
11.如权利要求9所述的方法,其特征在于,
所述约束条件包括:各个所述需求点的需求量均被满足、每个所述需求点对应一个候选点、每个所述候选点对应的需求量之和不超过容量上限、每个所述候选点对应的需求量之和不低于容量下限、所述候选点到对应的需求点的距离不超过其覆盖半径中任意一项或多项。
12.如权利要求1-11中任一所述的方法,其特征在于,
所述候选点信息,包括:候选点位置;
和/或,
所述需求点信息,包括:需求点位置及需求量。
13.一种选址装置,其特征在于,包括:
获取模块,配置为获取候选点信息、需求点信息和目标候选点数量;
搜索模块,配置为根据所述候选点信息、所述需求点信息和所述目标候选点数量并行变邻域搜索,得到目标候选点及其对应的需求点。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-12中任一所述的方法。
15.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-12中任一所述的方法。
CN202110032161.9A 2021-01-11 2021-01-11 一种选址方法和装置 Pending CN114091717A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110032161.9A CN114091717A (zh) 2021-01-11 2021-01-11 一种选址方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110032161.9A CN114091717A (zh) 2021-01-11 2021-01-11 一种选址方法和装置

Publications (1)

Publication Number Publication Date
CN114091717A true CN114091717A (zh) 2022-02-25

Family

ID=80295914

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110032161.9A Pending CN114091717A (zh) 2021-01-11 2021-01-11 一种选址方法和装置

Country Status (1)

Country Link
CN (1) CN114091717A (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102855328A (zh) * 2012-09-18 2013-01-02 浪潮(北京)电子信息产业有限公司 一种并行变邻域搜索方法
CN103366021A (zh) * 2013-08-07 2013-10-23 浪潮(北京)电子信息产业有限公司 一种云计算平台上的变邻域搜索方法及系统
CN107451393A (zh) * 2017-06-29 2017-12-08 山东师范大学 基于随机变邻域搜索算法的护士排班方法和装置
CN107633358A (zh) * 2017-09-14 2018-01-26 北京京东尚科信息技术有限公司 设施选址及分配的方法和装置
US20190079975A1 (en) * 2017-09-11 2019-03-14 Hefei University Of Technology Scheduling method and system based on hybrid variable neighborhood search and gravitational search algorithm
US20190080244A1 (en) * 2017-09-11 2019-03-14 Hefei University Of Technology Scheduling method and system based on improved variable neighborhood search and differential evolution algorithm
CN109583650A (zh) * 2018-11-30 2019-04-05 浙江工商大学 一种电动车换电站选址和物流配送联合调度的方法
CN110580606A (zh) * 2019-09-12 2019-12-17 东方钢铁电子商务有限公司 铁路运输数据的匹配方法
CN111144568A (zh) * 2019-12-19 2020-05-12 华南理工大学 一种多目标城市物流配送路径规划方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102855328A (zh) * 2012-09-18 2013-01-02 浪潮(北京)电子信息产业有限公司 一种并行变邻域搜索方法
CN103366021A (zh) * 2013-08-07 2013-10-23 浪潮(北京)电子信息产业有限公司 一种云计算平台上的变邻域搜索方法及系统
CN107451393A (zh) * 2017-06-29 2017-12-08 山东师范大学 基于随机变邻域搜索算法的护士排班方法和装置
US20190079975A1 (en) * 2017-09-11 2019-03-14 Hefei University Of Technology Scheduling method and system based on hybrid variable neighborhood search and gravitational search algorithm
US20190080244A1 (en) * 2017-09-11 2019-03-14 Hefei University Of Technology Scheduling method and system based on improved variable neighborhood search and differential evolution algorithm
CN107633358A (zh) * 2017-09-14 2018-01-26 北京京东尚科信息技术有限公司 设施选址及分配的方法和装置
CN109583650A (zh) * 2018-11-30 2019-04-05 浙江工商大学 一种电动车换电站选址和物流配送联合调度的方法
CN110580606A (zh) * 2019-09-12 2019-12-17 东方钢铁电子商务有限公司 铁路运输数据的匹配方法
CN111144568A (zh) * 2019-12-19 2020-05-12 华南理工大学 一种多目标城市物流配送路径规划方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郗蒙浩等: "自然灾害学报", 15 June 2019, pages: 123 - 129 *

Similar Documents

Publication Publication Date Title
CN108734559B (zh) 一种订单处理方法和装置
CN111044062B (zh) 路径规划、推荐方法和装置
CN107633358B (zh) 设施选址及分配的方法和装置
CN110321252B (zh) 一种技能服务资源调度的方法和装置
CN110601978B (zh) 流量分发控制方法和装置
CN111274341A (zh) 一种网点选址方法和装置
CN112053105A (zh) 划分服务区域的方法和装置
CN113128743B (zh) 一种拣货路径规划方法和装置
CN109885593A (zh) 用于处理信息的方法和装置
CN115423030A (zh) 一种设备识别的方法和装置
CN111401684A (zh) 一种任务处理的方法和装置
CN113361739B (zh) 一种生成拣货路径的方法和装置
CN113762864B (zh) 一种物流站点的选址方法和装置
CN110930101A (zh) 确定订单的配送时间的方法、装置、电子设备和可读介质
CN114091717A (zh) 一种选址方法和装置
CN113256192B (zh) 一种仓储物品规划方法和装置
CN112926907B (zh) 一种仓库库存布局方法和装置
CN112749822B (zh) 一种生成路线的方法和装置
CN113538080A (zh) 一种任务单拆分方法和装置
CN112668949A (zh) 拣货的方法和装置
CN111199437A (zh) 一种数据处理方法和装置
CN113672791B (zh) 一种确定搜索结果顺序的方法和装置
CN110244902A (zh) 数据路由的方法和装置
CN110120958B (zh) 一种基于众包模式的任务推送方法和装置
CN113760521B (zh) 一种虚拟资源的分配方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination