CN107851024A - 用于解空间分割的并行处理 - Google Patents

用于解空间分割的并行处理 Download PDF

Info

Publication number
CN107851024A
CN107851024A CN201680029888.9A CN201680029888A CN107851024A CN 107851024 A CN107851024 A CN 107851024A CN 201680029888 A CN201680029888 A CN 201680029888A CN 107851024 A CN107851024 A CN 107851024A
Authority
CN
China
Prior art keywords
solution
carrier
vehicle
optimization
gpu
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
CN201680029888.9A
Other languages
English (en)
Inventor
T·G·贝利
B·W·科莱蒂
E·C·韦特
A·C·金
B·A·甘地
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.)
Test Motors Ltd
Cox Automotive Inc
Original Assignee
Test Motors 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 Test Motors Ltd filed Critical Test Motors Ltd
Publication of CN107851024A publication Critical patent/CN107851024A/zh
Pending legal-status Critical Current

Links

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/047Optimisation of routes or paths, e.g. travelling salesman problem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • 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
    • G06Q10/083Shipping

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了利用群论技术实现监控中央处理单元(CPU)与一组图形处理单元(GPU)之间的数据交换的系统、设备、方法和计算机可读介质。所述CPU能够配置为利用禁忌搜索元启发式算法来探索解空间以确定优化问题的最优解。更具体地,所述CPU能够确定产生解空间的多个分区的解空间的分割,并且能够将每个分区分配给配置为计算计算结果的相应的GPU。然后,所述CPU能够基于根据接收自GPU的产生解空间的新分区的计算结果确定所述解空间的新的分割,并且能够将每个新分区分配给配置为基于其分配的新分区再次生成计算结果的相应的GPU。所述CPU能够继续基于GPU的计算结果确定新的分割直至满足停止标准并确定所述优化问题的及时、高质量的解。

Description

用于解空间分割的并行处理
相关申请的交叉引用
本申请要求于2015年5月15日提交的申请号为No.62/162,069的美国临时专利申请以及于2015年10月5日提交的申请号为No.62/237,425的美国临时专利申请的优先权,所述申请全文以引用方式并入本文。
背景技术
求解优化问题涉及从一组候选解中找到最优解。优化问题包括最小化问题,其中最优解是最小化受到一种或多种约束的目标函数的解,或者包括最大化问题,其中最优解是最大化一种或多种约束的目标函数的解。优化问题可涉及离散变量和/或连续变量。涉及离散变量的优化问题的一个示例是组合优化问题,其最优解可以为有限(或可能是可数无穷)集合中的离散元素(例如,整数、排列、图等)。涉及连续变量的优化问题的最优解可包括每个连续变量的值的序列。
附图说明
下文将参考附图对本发明进行详细说明。本文提供的附图仅出于说明目的,并且仅示出本发明的示例性实施例。本文提供的附图旨在利于理解本发明,而不应被视为限制本发明的广度、范围或适用性。在附图中,附图标记最左边的数字标识首次出现该附图标记的附图。相同的附图标记用于指示相似但不一定相同或同一部件。然而,不同的附图标记也可用于标识相似的部件。各实施方案可以利用除了附图中示出的元件或部件之外的元件或部件,并且一些元件和/或部件可以不出现在于各实施方案中。根据上下文,用于描述部件或元件的单数术语可包含复数的此类部件或元件,反之亦然。
图1示出了根据本发明一个或多个示例性实施例的示例性系统架构,该系统架构包括监控中央处理单元(CPU)和包含多个GPU线程的多核图形处理单元(GPU),其中每个GPU线程被配置为处理解空间的相应的片段部分;
图2示出了根据本发明一个或多个示例性实施例的监控CPU的示例性硬件架构和GPU的示例性硬件架构;
图3示出了根据本发明一个或多个示例性实施例的GPU的流多处理器的示例性配置;
图4示出了根据本发明一个或多个示例性实施例的GPU的线程处理阵列的示例性配置;
图5示出了根据本发明一个或多个示例性实施例的GPU的示例性配置;
图6为根据本发明一个或多个示例性实施例的用于执行群论禁忌搜索(GTTS)处理以确定表示优化问题的规划的最终解的例示性方法的过程流程图;
图7为根据本发明一个或多个示例性实施例的用于将解空间分割成多个单元、将每个单元分割成多个子单元并且将每个子单元提供给用于对每个子单元执行GTTS处理的相应的GPU的例示性方法的过程流程图;
图8示出了根据本发明一个实施例的用于多个承运人调度优化的示例性系统环境;
图9为根据本发明一个实施例的用于将车辆最优分配给承运人以进行调度的说明性方法的过程流程图;
图10为根据本发明一个实施例的用于选择最优车辆运输路线的说明性方法的过程流程图;
图11为示出了根据本发明一个实施例的用于优化一个或多个承运人提取和/或运送多个车辆的路线的说明性方法的流程图;
图12为根据本发明一个或多个示例性实施例的被配置为执行GTTS处理的说明性服务器的示意性框图。
具体实施方式
总揽
本发明涉及利用群论技术实现监控中央处理单元(CPU)与一组图形处理单元(GPU)之间的数据交换的系统、设备、方法和计算机可读介质等等。在某些示例性实施例中,CPU可被配置为利用禁忌搜索元启发式算法来探索解空间以确定优化问题的及时、高质量的解。更具体地,CPU可确定产生多个片段(在本文中也称为分区)的解空间的分割,并且可将每个分区分配给被配置为计算计算结果的相应的GPU线程。然后,CPU可基于根据接收自GPU线程的产生解空间的新分区的计算结果确定解空间的新的分割,并且可将每个新分区分配给被配置为基于其分配的新分区再次生成计算结果的相应的GPU线程。CPU可继续基于GPU线程的计算结果确定新的分割直至满足停止标准并且已确定优化问题的及时、高质量的解。在某些示例性实施例中,停止标准可以为在找不到优化问题的改进解的期间内的阈值数量的迭代(例如,新的分割的阈值数量)。然后在满足停止标准时可将优化问题的该及时、高质量的解确定为最优解。最佳解可以为满足停止标准时确定的所有解中最优化的解(例如,最大限度最小化或最大限度最大化一个或多个变量)。
本文所描述的主题的特定实施方案的实施可实现以下改进中的一者或多者。本发明提供利用一个或多个专门处理单元的并行处理来优化运送路线的准确而有效的方法。继而,提高优化速度,并降低负责优化的服务器和组件的计算压力。确保更快速的交付,从而改善用户体验;并降低与交付相关联的成本并增加收入。
能够使用例如根据本发明的示例性实施例的GTTS处理求解的示例性优化问题可以为n-城市、m-旅行商问题(TSP)。n-城市、m-TSP优化问题的及时、高质量的解可以是标识一队代理商在指定的时间窗口内旅行提取和卸下物品(例如,车辆)的最有利可图的路线(例如,总旅行距离最短)的解。更具体地,在n-城市、m-TSP优化问题中,可能要求m个代理商访问n个地点(例如,城市)以提取/运送车辆。车辆提取和运送可能发生在指定的时间窗口内,其中每个城市仅由一个代理商访问一次,并且每个代理商都有其指定的城市集。另外,可能要求每个代理商返回其最初开始其行程的城市。n-城市、m-TSP优化问题的解可以标识由哪个代理商访问哪个城市(以及访问顺序)。
对于n个城市和从城市i到城市j的有向距离dij,城际距离可以表示为非负数实数的0对角n×n矩阵D。尽管D通常为对称的,但是D也可以不对称,在这种情况下,对于城市i、j中的一对或多对,从城市i到城市j的有向距离dij可不同于从城市j到城市i的有向距离dji。每个代理商可以与子路径相关联,该子路径可以表示代理商访问其指定城市的顺序。所有代理商的子路径可统称为旅行。所有旅行的集合可以表示为Sn(关于n个符号的对称群)的元素。每个元素表示从n个符号到其自身的集合的双射函数,并且群运算(排列乘法)为函数组合。旅行的子路径可以为表示旅行的排列的不相交循环因素(DCF)。
例如,如果两个代理商访问城市1到城市7,则由排列p=(1,5)(2,6,3,7,4)∈S7表示的旅行包括由不相交循环因素(1,5)和(2,6,3,7,4)表示的子路径。在该示例中,第一代理商可访问城市1和城市5,而第二代理商可访问其余城市,其中每个代理商返回其出发的城市。另外,循环的路径长度可以为每个弧长的总和,并且旅行长度可以为组成旅行的子路径的路径长度的总和。例如,对于由排列p=(1,5)(2,6,3,7,4)表示的旅行,旅行长度可以为由DCF(1,5)表示的子路径的路径长度和由DCF(2,6,3,7,4)表示的子路径的路径长度的总和。由DCF(1,5)表示的子路径的路径长度可以为城市1和城市5之间的弧长(例如,从城市1到城市5的有向距离)与城市5和城市1之间的弧长的总和。另外,由DCF(2,6,3,7,4)表示的子路径的路径长度可以为弧长(2→6);(6→3);(3→7);(7→4);和(4→2)的总和。
在某些示例性实施例中,可使用群论方法通过公式p*W来概括n-城市、1-TSP问题,其中p=k个循环子路径的排列组成(例如,p的DCF)并且W=T U complement(mov(p))全循环的集合,其中T为p的子路径尾部的集合,*为排列组合,并且mov(p)为p的DCF中的符号集合。使用上述公式p*W来求解n-城市、1-TSP优化问题,能够创建不同的旅行以保留与期望的解相关联的特性。
更普遍地,优化问题诸如n-城市、m-TSP问题可表示为数学规划(MP)。MP为其中一个或多个目标函数在由一个或多个约束方程定义的区域中被优化的方程组。可采用各种类型的方法求解MP。精确方法被设计用于确定MP的全局最优解。然而,精确方法可能无法在与应用MP相关联的时间约束内确定全局最优解。也可采用启发式方法求解MP。启发式方法利用确定性和概率性方法(例如,准随机数生成)尝试在时间约束内获得MP的高质量解。然而,启发式方法可能无法获得此类高质量的解,因为它们利用的是无法保证高质量解的经验结果。可用于求解MP的另一种方法的示例为元启发式方法。元启发式方法利用启发式算法控制启发式算法的使用。元启发式方法的示例包括禁忌搜索、神经网络和遗传算法。群体理论是涉及群的性质的数学分支,它是一种代数结构。本发明的示例性实施例利用群论技术通过多个GPU线程实现禁忌搜索,所述多个GPU线程被配置为并行执行例如对解空间的相应分区的GTTS处理。在一个实施方式中,GPU可以使用GTTS处理来搜索它们各自分配的解空间部分。然而,也可单独使用或与GTTS组合使用其它合适的处理方法。在一个实施例中,GPU可使用模拟退火法来搜索它们各自分配的解空间部分。相似地,GPU可使用遗传算法来搜索它们各自分配的解空间部分。应当理解,上述搜索和处理方法是示例性处理方法,不应理解为是对本发明的限制。
MP可具有各种形式。例如,以矩阵形式表示的线性规划(LP)在Ax=b和x≥0的情况下优化cTx,其中b、c和x为列矩阵,A为具有秩n的n行矩阵A。所有矩阵条目都是实数,并且除x的条目以外,所有条目都是已知常数。网络规划是指A-矩阵为全幺模矩阵的LP。目标规划是指具有多线性目标函数的LP。目标规划使每个目标函数的累计绝对误差与用户指定的目标值最小化。
整数规划为具有附加约束条件x为整数向量的如上所定义的LP。当增加合适的约束条件时,整数规划可作为LP进行求解。组最小化问题将整数规划转换为单约束MP,其变量为时钟组元素。当(松弛LP模型的)最优基矩阵的史密斯正态形式具有大于1的孤立非零元素时,进行这种变换。混合整数规划为具有连续和整数变量的LP。非线性规划为具有非线性目标函数或约束条件的MP。凸规划是指可行域为凸集的MP。上述MP中的每个均不包括随机变量。另一方面,随机规划为包括随机变量的MP。动态规划为缺乏结构化形式的多级MP(包含或不含随机变量)。多级MP的每个阶段都处于有限数量的状态之中,并且当前状态影响下一阶段状态的选择。给定当前状态,其余阶段的最佳策略不受早期选择的影响。
能够使用例如根据本发明的示例性实施例的GTTS处理求解的优化问题包括例如包括连续变量的MP、包括离散变量的MP和包括离散变量和连续变量的MP(也成为混合MP)。此类MP的示例包括整数线性规划。更具体地,本发明的示例性实施例可以利用GTTS处理求解具有如下形式的MP:在的条件下优化{g1(x),...,gn(x)},其中S(可行域)为集合Ω(全域)的子集。继而,集合差Ω-S为不可行域。S可为一组变量(离散变量、连续变量或混合变量),并且在某些示例性实施例中可为其它集合的笛卡尔乘积,在这种情况下,x可以为多变量。求解此类优化问题涉及确定任何最优x或确定所有此类最优值。例如,整数规划可具有相对较小的最优解集合,而线性规划的最优解空间可以为多面体S上的所有最优顶点的凸组合。gk为目标函数,其优化方式由用户进行定义,例如找到所有关联的最优值x;在获得的gk的最优值中优化gk+1;或使每个目标函数与其用户指定的目标值之间的累计绝对误差最小化。如果能够在时间约束内实现,则可以通过精确方法获得最优解。另选地,可使用启发式算法,其继而将精确方法应用于易处理的较小的问题。
示例性系统运算和处理
图1示出了根据本发明一个或多个示例性实施例的示例性系统架构,该系统架构包括监控中央处理单元(CPU)102和包含多个GPU线程的多核图形处理单元(GPU)104,其中每个GPU线程被配置为处理解空间的相应的片段部分。应当理解,图1示出监控CPU102和多核GPU 104的示例性配置,包括另外和/或另选的硬件、固件和/或软件部件在内的其它配置也处于本发明的保护范围内。
监控CPU 102可包括预处理器108,该预处理器108被配置为接收输入数据和输入的约束条件106。输入数据106可包括与待求解的优化问题诸如n-城市、m-TSP问题相关的数据。例如,输入数据可包括城市数量、每对城市之间的城际距离以及被指定在城市之间旅行的代理商的数量。就n-城市、m-TSP问题而言,约束条件106可包括特定代理商必须访问的城市的标识、访问城市必须遵循的顺序等。
预处理器108可被配置为至少部分地基于输入数据/约束条件106选择表示优化问题的适当的MP。例如,预处理器108可从候选的MP类型中选择特定类型的MP表示优化问题。候选的MP类型可包括线性规划、整数规划、混合整数规划、非线性规划、凸规划、随机规划、动态规划等。例如,预处理器108可选择整数规划表示n-城市、m-TSP问题。
在选择一种类型的MP表示待求解的优化规划时,预处理器108可将所选类型的MP的标识发送至主程序模块112。预处理器108还可将初始变量集合发送至主程序模块112。主程序模块112可被配置为确定用于求解所选类型的规划的求解方法。例如,主程序模块112可确定利用精确方法还是禁忌搜索方法求解所选类型的MP。在其中待求解的优化问题为n-城市、m-TSP优化问题的本发明的示例性实施例中,假设主程序模块112选择禁忌搜索方法求解该优化问题。因此,在此类示例性实施例中,主程序模块112可初始化GTTS程序模块114以执行GTTS处理,从而在解空间和指定的时间约束内确定由所选类型的MP表示的问题的一个或多个解。最精英解(例如,在确定的解中最大限度最小化或最大化优化问题的一个或多个目标函数的解)可能是全局最优解,但是就其本身而论可能无法确认。
GTTS模块114可确定表示待求解的优化问题的所选类型的MP的初始解。在某些示例性实施例中,初始解可以为满足终止GTTS处理的停止/终止标准的精英解。例如,就n-城市、m-TSP优化问题而言,初始解可为表示n个城市之间的旅行的排列,其中排列包含一个或多个DCF,每个DCF表示n个城市的不相交子集之间的子路径。在其它示例性实施例中,初始解可以不是满足终止标准的精英解,在这种情况下,GTTS模块114可确定解空间的初始分割。GTTS模块114可操作地耦接至主存储器122。GTTS模块114可启动124对应于作为分割解空间的结果生成的每个解空间分割的各内核。所述内核可由多核GPU104的设备存储器126上的CPU102启动。每个内核可与多核GPU104中包含的GPU线程128(1)-128(N)集合中对应的GPU线程相关联。更具体地,每个内核可控制由GPU线程128(1)-128(N)集合中对应的GPU线程所执行的对应的解空间片段的处理。
每个GPU线程可生成一个或多个计算结果(例如,一个或多个精英解)以作为在对应的解空间片段上执行的处理的结果。然后,设备存储器126可将来自GPU线程128(1)-128(N)的计算结果130提供给主存储器122。然后,GTTS模块114可至少部分地基于计算结果130确定解空间的更新的分割。然后,主存储器122可将由新分割获得的新的解空间分区发送至设备存储器126,其继而将相应的新的解空间分区分配给GPU线程128(1)-128(N)集合中的每个GPU线程。每个GPU线程可探究其对应的新的解空间分区,并且生成一个或多个计算结果(例如,一个或多个精英解),所述一个或多个计算结果可以由设备存储器126提供给主存储器122。GTTS模块114可确定解空间的另外的分割,其可以由GPU线程128(1)-128(N)的集合进行并行迭代处理,直至满足终止标准并且精英解被选为优化问题的及时、高质量的解。在某些示例性实施例中,终止标准可以为与优化问题相关联的时间约束。例如,在经过预先确定的时间段后,当时获得的最优精英解可以被选为优化问题的最终解。在其它示例性实施例中,终止标准可以另外地或另选地由GTTS处理的迭代阈值数量(例如,解空间的分割阈值数量)进行定义。
在某些示例性实施例中,由GPU线程128(1)-128(N)集合生成的计算结果的至少一部分118可以由GTTS模块114发送给主程序模块112。主程序模块112可在一个或多个归档数据库120中存储计算结果118。存储于数据库120中的计算结果118可用于在对之前选择的初始解执行的GTTS处理未能生成任何补充精英解时,确定待选为GTTS处理的新初始解的精英解。另外,存储于数据库120中的计算结果118可用于确保相对于当前精英解执行的GTTS处理不循环回已经处理过的现有精英解。
更详细地参见由GTTS程序模块114执行的分割,该分割可将解空间Ω(例如,集合m中所有排列的群,其继而为集合m的对称群)划分入不相交子集,该不相交子集在本文中称为单元。由GPU线程128(1)-128(N)集合执行的GTTS处理可能无法全面探究任何给定的单元,因为单元尺寸(例如,对应于单元的不相交子集中的排列数量)可能很大。在某些示例性实施例中,可选择优化问题的初始解,并且可在包含该初始解的单元中初始化GTTS处理。当GTTS处理未能识别当前单元内的任何新的精英解时,GTTS处理可继续多元化探究解空间并且继续处理另一个单元。因而,单元在本文中也可以称为多元化单元。
如前文所述,初始解可确定Ω的初始分割。即,矩阵pD中的负条目(如下文所详述)可标识弧,其中一条弧产生的解优于初始解。pD的这一用途可扩展至分割Ω的操作。更具体地,所选择的对应于矩阵pD中的负条目的负弧可用于形成循环,该循环生成Ω的真子群H。继而,群作用HΩ可以将Ω划分入表示多元化单元的轨道。
GTTS处理可包括用于确保不再次探究之前探究的精英解的机制。具体地,GTTS处理可通过利用横切遍历T(在本文中也称为多元化遍历)来访问轨道。多元化遍历的元素可索引轨道(多元化单元),并且当T适当较小时,可存储指示轨道已被访问的数据。这样可确保反循环并且可避免哈希结构。尽管遍历大小和轨道大小在相反方向上移动,但是可以构造遍历而无需构造轨道。因此,群作用可以被选择为产生适当较短的遍历。例如,可以从pD中选择较少数量的负条目以减少构造的多元化单元的数量,从而减少遍历大小。
在某些示例性实施例中,将探究每个多元化单元分配给不同GPU线程在与优化问题相关联的时间约束内可能不可行,因为可能需要探究多元化单元。相反,GPU线程可用于探究单个多元化单元,其中由GTTS模块114控制沿多元化遍历的移动。探究单个多元化单元可包括禁用搜索的短期记忆(STM)阶段和强化阶段。STM阶段可包括探究多元化单元以确定精英解。当STM未能产生任何补充精英解时,GTTS处理可回到迄今为止确定的最精英解并且可引发与该最精英解相关的强化阶段。例如,GTTS处理可引发与该最精英解相关的新的STM阶段。当该新的STM阶段未能产生任何补充精英解时,GTTS处理可再次引发对最精英解的处理。如果该最精英解与之前选择的精英解相同,则GTTS处理可转而继续处理下一个最佳精英解。另选地,GTTS处理可引发与相应的多个精英解平行的多个新的STM阶段。
GPU线程上的处理负载的大部分可发生在GTTS处理的STM阶段。由于每个GPU线程可探究相同的多元化单元Λ,因此单元Λ可以被划分入更小的子单元,所述子单元中的每个通过对应的GPU线程在并行搜索中进行探测。可选择每个子单元的相应的初始解以启动关于每个子单元的GTTS处理。尽管Λ的任何等价关系都可以导致Λ的分割,但是某些分割相比于其它分割更有可能产生精英解和/或可以更轻松地进行处理。具体地,另一个群作用可用于构造遍历,该遍历可用于指引较小的子单元,同时避免循环。继而,每个遍历元素可启动被分配给对应的GPU线程的GTTS处理的STM阶段。由于每个GPU线程探究不同的不相交轨道,因此可以不要求GPU线程彼此通信。
更具体地,由于群作用HΩ产生多元化单元,因此任何H子群K都将产生具有分割Λ的轨道的群作用KΛ。只要H不具有素数阶,GTTS模块114即可将不同的H子群应用于多元化单元中的每个,以实现不同的分割,其中每个都可能更适合单元的初始解。为实现这点,可能需要H具有适当丰富的子群格,从中可以选择K。然而,这继而可能影响如何从pD中选择负弧以构建多元化单元。
图2示出根据本发明一个或多个示例性实施例的监控CPU102的示例性硬件架构和GPU104的示例性硬件架构。应当认识到,除图2中示出的示例性硬件架构以外,可包括另外的和/或另选的硬件、固件和/或软件组件的CPU102和GPU104的其它硬件架构也处于本公开的范围内。
监控CPU102可包括一组算术逻辑单元(ALU)202(1)-202(R)。监控CPU102还可包括高速缓存206。监控CPU102可经过优化以较小的延迟将数据存储于高速缓存206中和检索高速缓存206中的数据。监控CPU102还可包括控制单元204,该控制单元204可操作地耦接至ALU202(1)-202(R)组和高速缓存206。控制单元204可以被配置为管理各个ALU202(1)-202(R)的使用并且管理数据在高速缓存206中的存储和检索。
监控CPU102可操作地耦接至一种或多种存储器设备,诸如动态随机存取存储器(DRAM)208。CPU102可通过一条或多条总线218耦接至DRAM208,所述总线例如利用外围组件快速互连(PCI)高速串行计算机扩展总线标准的一条或多条总线。一条或多条总线218还可操作地将CPU102耦接至GPU104,支持CPU102和GPU104之间的数据交换。
GPU104可包括ALU212(1)-212(T)的集合。在某些示例性实施例中,GPU104的ALU212(1)-212(T)集合中ALU的数量可大于CPU102的ALU 202(1)-202(R)集合中ALU的数量,其可以使GPU104比CPU102执行更多的并行计算。具体地,GPU104在启动多处理线程和并行执行线程方面可以比CPU102更高效。GPU104还可包括高速缓存216、一个或多个存储器设备(例如,视频RAM(VRAM)210)以及可操作地耦接ALU 212(1)-212(T)的集合、VRAM210和高速缓存216的控制单元214。控制单元214可以被配置为管理各个ALU 202(1)-202(T)的使用并且管理数据在VRAM210和/或高速缓存216中的存储和检索。CPU102的高速缓存206可大于GPU104的高速缓存216,以使CPU102能够在执行任务之间快速切换。
在某些示例性实施例中,CPU102可用作GPU104的主处理器,而GPU104可用作CPU102的协处理器。可以将来自DRAM208的数据复制到VRAM210以由GPU104使用ALU212(1)-212(T)的集合执行计算。具体地,主处理器(例如,CPU102)可启动协处理器(例如,GPU104)上的内核,并且还可确定在GPU104上并行处理执行任务所需的线程的数量。在GPU104并行执行线程并且完成执行任务后,计算结果可存储在VRAM210中并且从VRAM210复制到DRAM208。CPU102可访问来自DRAM208的计算结果。
图3示出了根据本发明一个或多个示例性实施例的GPU104的流多处理器的示例性配置。在某些示例性实施例中,图3中示出的流多处理器可为图1示出的GPU线程128(1)-128(N)的集合的特定配置。然而,应当认识到,除图3中示出的配置以外,包括另外的和/或另选的硬件、固件和/或软件组件在内的流多处理器的其它配置也处于本发明的保护范围内。
如图3所示,流多处理器(SM)302可包括指令单元304,该指令单元304可操作地耦接至共享存储器306。SM302可包括一组流处理器(SP)308(1)-308(S),所述流处理器可操作地耦接至指令单元304。每个SP 308(1)-308(S)在本文中可互换地被称为核。指令单元304可在SP308(1)-308(S)之间发布指令集,其中每个SP执行单个线程指令。每个SP308(1)-308(S)可包括乘加算术单元,该乘加运算单元被配置为执行单精度浮点运算。另外,SM302可包括一组特殊的功能单元(SFU)310(1)-310(U),所述功能单元可以被配置为以较低的循环延迟执行更复杂的算术运算。
图4示出了根据本发明一个或多个示例性实施例的GPU104的线程处理阵列(TPC)的示例性配置。应当认识到,除图4中示出的配置以外,包括另外的和/或另选的硬件、固件和/或软件组件在内的TPC的其它配置也处于本发明的保护范围内。图5示出了根据本发明一个或多个示例性实施例的GPU104的示例性配置。应当认识到,除图5中示出的配置以外,包括另外的和/或另选的硬件、固件和/或软件组件在内的GPU104的其它配置也处于本发明的保护范围内。
如图4所示,一组SM302(1)-302(U)可一起包括线程处理阵列(TPC)402的至少一部分。SM302(1)-302(U)中的任一项可具有如图3所示的SM302的示例性配置。另外,如图5所示,示例性GPU架构可包括通过互连网络502可操作地耦接至高速缓存504(1)-504(X)的集合的TPC 402(1)-402(V)的集合。TPC402(1)-402(V)中的任一项可具有TPC 402的示例性配置。CPU102可将线程块分配给GPU104,其继而可以将每个线程块分配给TPC 402(1)-402(V)的集合中相应的TPC。然后,可以在对应的已分配线程块的TPC(例如,402(1))中的各个SM302(1)-302(U)之间分配每个线程块中相应的一个或多个线程。
应当认识到,如图3-5所示的示例性硬件架构和配置同样适用于除GPU104之外的其它类型的处理单元。例如,如图3-5所示的示例性硬件架构适用于被设计为执行加速计算的任何多处理器/加速器。
图6为根据本发明一个或多个示例性实施例的用于执行群论禁忌搜索(GTTS)处理以确定表示优化问题的规划的最终解的例示性方法600的工艺流程图。下文将结合图1对图6进行描述。
在块602,预处理器108可至少部分地基于一种或多种约束条件确定用于表示优化问题的MP的类型。例如,预处理器108可至少部分地基于输入数据/约束条件106确定MP的类型。具体地,预处理器108可从候选的MP类型中选择特定类型的MP表示优化问题。候选的MP类型可包括线性规划、整数规划、混合整数规划、非线性规划、凸规划、随机规划、动态规划等。例如,预处理器108可选择整数规划表示n-城市、m-TSP问题。
在块604处选择一种类型的MP表示待求解的优化规划时,预处理器108可将所选类型的MP的标识发送至主程序模块112。在块604处,预处理器108还可将初始变量集合发送至主程序模块112。主程序模块112可被配置为确定用于求解所选类型的规划的求解方法。例如,在块606处,主程序模块112可确定待用于求解所选类型的MP的禁忌搜索方法。更具体地,在块606处,主程序模块112可确定使用根据本发明的示例性实施例所述的GTTS处理可获得的规划的最终解。
在其中待求解的优化问题为n-城市、m-TSP优化问题的本公开的示例性实施例中,假设主程序模块112选择禁忌搜索方法求解该优化问题。因此,在此类示例性实施例中,主程序模块112可初始化GTTS程序模块114以执行GTTS处理,从而在解空间和指定的时间约束内确定由所选类型的MP表示的问题的一个或多个精英解。最精英解(例如,在确定的解中最大限度最小化或最大化优化问题的一个或多个目标函数的解)可以被选为优化问题的最终解,或者可以为全局最优解,但是就其本身而言可能无法确认。
在块608处,GTTS模块114可确定表示待求解的优化问题的所选类型的MP的初始解。更具体地,在块608处,GTTS模块114可将初始解确定为被选为表示待求解的优化问题的MP的当前解。在某些示例性实施例中,初始解可以为满足终止GTTS处理的终止标准的精英解。例如,就n-城市、m-TSP优化问题而言,初始解可为表示n个城市之间的旅行的排列,其中排列包含一个或多个DCF,每个DCF表示n个城市的不相交子集之间的子路径,并且其中旅行的长度被视为经过适当优化。另选地,如果不存在具有至少一条弧(在pD中具有负条目)的其它排列(例如,旅行),则初始解(例如,初始选择的排列)可以为最优解。
在其它示例性实施例中,初始解可以是并非满足终止标准的精英解,在这种情况下,GTTS模块114可确定解空间的初始分割,并且可以将每个解空间片段分配给待处理的相应的GPU线程128(1)-128(N)。在某些示例性实施例中,GTTS模块114可确定每个解空间片段的相应的初始解。在某些示例性实施例中,块608-618处的运算可对应于由关于特定解空间片段的特定GPU线程执行的处理。更具体地,块608-618处的运算可对应于根据本发明的示例性实施例所述的GTTS处理的STM阶段。
在块610处,GPU线程128可确定与当前解相关联的解的邻域。在GTTS处理的第一迭代过程中,初始解可为块610处引用的当前解。在某些示例性实施例中,可用于在块610处确定领域的移动方法可根据之前的移动方法的最近记录来确定。例如,某些移动可能会暂时受到限制,可使用期望的精英解的配置文件来指导移动方法等。在块610处,用于确定与当前解相关联的阶段领域的移动方法可基于一种或多种约束条件来选择,所述约束条件诸如保持当前解的循环结构的约束条件、保持当前解的特定子路径的约束条件等。
在块612处,GPU线程128可选择邻域的一位成员作为新的当前解。在某些示例性实施例中,最近搜索历史记录可影响在块612处所选择的新的当前解。另外,希望保留循环结构、保持指定的不相交子路径的相对位置等可影响新的当前解的选择。
在块614处,GPU线程128可更新精英解集合。例如,GPU线程128可包括该精英解集合中的新的当前解。然后,在块616处,GPU128可确定是否满足终止由GPU128执行的GTTS处理的终止标准。终止标准可包括例如是否满足时间约束条件、是否获得了满足优化阈值的精英解、是否执行了阈值迭代次数的GTTS处理等。响应于块616处的负确定结果,方法600可以从块610继续进行迭代。另一方面,响应于块618处的正确定结果,GPU线程128可至少部分地基于一个或多个选择参数选择精英解集合中特定的解作为表示优化问题的MP的最终解。例如,GPU线程128可选择在精英解集合中使MP的一个或多个目标函数最小化或最大化的精英解。
图7为根据本发明一个或多个示例性实施例的用于将解空间分割成多个单元、将每个单元分割成多个子单元并且将每个子单元提供给用于执行GTTS处理的相应的GPU线程的例示性方法700的过程流程图。图7在下文中将结合图1进行描述。
在块702处,GTTS模块114可以将解空间分割成多个单元。每个单元可以为解空间的不相交子集。例如,在块702处执行的分割可以将解空间Ω(例如,对称群)划分入不相交子集,这些不相交子集称为单元。如前文所述,初始解可确定Ω的初始分割。即,矩阵pD中的负条目(如下文所详述)可标识弧,其中一条弧产生的解优于初始解。pD的这一用途可扩展至分割Ω的操作。更具体地,所选择的对应于矩阵pD中的负条目的负弧可用于形成循环,该循环生成Ω的真子群H。继而,群作用HΩ可以将Ω划分入表示多元化单元的轨道。
GTTS处理可包括用于确保不再次探究之前探究的精英解的机制。具体地,在块处,GTTS模块113可确定横贯单元遍历。由GPU线程128执行的GTTS处理可通过利用横切遍历T(在本文中也称为多元化遍历)来访问轨道。多元化遍历的元素可索引轨道(多元化单元),并且当T适当较小时,可存储指示轨道已被访问的数据。这样可确保反循环并且可避免哈希结构。
在某些示例性实施例中,将探究每个多元化单元分配给不同GPU线程在与优化问题相关联的时间约束内可能不可行,因为可能需要探究多元化单元。相反,GPU线程可用于探究单个多元化单元,其中由GTTS模块114控制沿多元化遍历的移动。探究单个多元化单元可包括禁用搜索的短期记忆(STM)阶段和强化阶段。STM阶段可包括探究多元化单元以确定精英解。当STM未能产生任何补充精英解时,GTTS处理可回到迄今为止确定的最精英解并且可引发与该最精英解相关的强化阶段。例如,GTTS处理可引发与该最精英解相关的新的STM阶段。当该新的STM阶段未能产生任何补充精英解时,GTTS处理可再次引发对最精英解的处理。如果该最精英解与之前选择的精英解相同,则GTTS处理可转而继续处理下一个最佳精英解。另选地,GTTS处理可引发与相应的多个精英解平行的多个新的STM阶段。
GPU线程上的处理负载的大部分可发生在GTTS处理的STM阶段。由于每个GPU线程可探究相同的多元化单元,因此GTTS模块114可在块706处选择多个单元中的特定单元Λ,并且可在块708处将单元Λ分割成多个子单元。然后可以由对应的GPU线程探究每个子单元以作为并行搜索的一部分。具体地,在块710处,GTTS模块114可确定多个子单元中的每个的相应的初始解。然后,GTTS模块114可以将每个初始解提供给相应的GPU线程128以对对应的子单元执行GTTS处理。
在块714处,GTTS模块114可接收对应于每个子单元的相应的精英解。更具体地,GTTS模块114可接收来自每个GPU线程的计算结果,其中每个GPU线程可以至少部分地基于对其对应的子单元执行的GTTS处理确定了一个或多个精英解。在块716处,GTTS模块114可确定是否针对另一个单元的解空间进行多元化探究。响应于块716处的正确定结果,方法700可转到块706,其中可选择多个单元中的新单元以分割成对应的多个子单元。另一方面,响应于块716处的负确定结果,方法700可转到块718,其中GTTS模块114可选择每个相应的精英解作为由各个GPU执行的GTTS处理的新的初始解。
在块720处,GTTS模块114可确定是否满足终止GTTS处理的终止标准。响应于块720处的负确定结果,方法700可以从块712继续进行迭代。另一方面,响应于块720处的正确定结果,方法700可转到块722,其中GTTS模块114可选择特定的精英解作为表示优化问题的MP的最终解。在块722处选择的最终解可至少部分地基于一个或多个选择参数来选择。例如,在块722处选择的最终解可为从GTTS处理过程中识别的所有精英解中确定的最精英解。
为了进行例示性的说明,再次参见n-城市、m-TSP问题,求出的该问题的最终解为具有最短路径长度的乱序(例如,其中每个元素映射到除自身以外的其它元素的排列)。因此,鉴于初始解由排列p表示并且候选解由排列q表示,因此GTTS处理可通过确定q是否具有比p更短的路径长度来确定q是否为精英解。计算路径长度涉及许多加法,并且在如本文所述的GTTS处理期间进行多次加法运算时,计算量可能很大。
因此,在某些示例性实施例中,可以计算由路径长度(q)-路径长度(p)得出的路径长度差,因为当长度差为负时,排列q具有更短的路径长度。可计算该路径长度差,而无需计算p和q的各个路径长度差,因为公共弧的长度抵消了路径长度差,只剩下非公共弧。可将非公共弧确定为其尾部由mov(qp-1)=mov(pq-1)给出的那些弧。该等式成立,因为(qp-1)-1=pq-1并且排列及其逆移动相同的字母。在t→h中,t和h分别为弧的尾部和头部。对于n×n的0对角距矩阵D,p∈Sn的路径长度(tourlength)为其弧长的总和。
此语句的数学描述如下所示。在下面的数学描述中,kp为字母k的p图像。
因此,
这里,pD为第(i,j)个条目为Dij减去D(i,ip)的矩阵。继而,通过加上pD的条目(其中q描绘mov(q p-1))得到Δqp。需注意,pD的主对角线条目不一定为零,因为q并非乱序,并且不移动k∈mov(q p-1),然后
pD(k,kq)=D(k,kq)-D(k,kp)=D(k,k)-D(k,kp)=0-D(k,kp)=-D(k,kp)。
例如,在S5中,使p=(1,4)(2,5,3)且q=(2,3,4,1)。在该示例中,q并非乱序,因为元素5映射到其自身。
距离矩阵D p=(1,4)(2,5,3)的迹线pD由q=(2,3,4,1)描绘的pD
当p=(1,4)(2,5,3)和q=(2,3,4,1)时,mov(qp-1)=mov((1,3)(2,5))={1,2,3,5}。然后可计算q在{1,2,3,5}上的迹线以得到且其中每列给出上文示出的最后一个矩阵中的粗体条目的列/行位置。加上最后一个矩阵中的粗体条目,路径长度(q)-路径长度(p)=-53+23+66-70=-34。另选地,路径长度(q)=275,路径长度(p)=309,并且275-309=-34。
公式Δqp的效用取决于mov(qp-1)以及计算qp-1所需的处理能力/时间。随着mov(qp-1)增加,公式Δqp可能变得不太有用,最终可能相比于计算完整路径长度并未节省处理能力/时间。虽然通常可能是这种情况,但是本fm的示例性实施例可使用保留大部分p的方法将p变换成q。继而,许多公共弧在计算路径长度差时抵消,从而得到较小的mov(qp-1)。
可采用各种机制将一种排列变换为另一种排列。三种此类机制为左排列组合、右排列组合和共轭。假设m∈Sn,则排列p与排列m的其余排列组合可以表示为q=MP。由此,qp-1=(mp)p-1=m并且mov(qp-1)=mov(m)。在此类示例中,可能无需计算qp-1,因为它仅移动了m中的那些字母。在另一个示例中,排列p与排列m的右排列组合可表示为q=pm。由此,qp-1=(pm)p-1=m-p并且qp-1具有与m相同的字母,因为共轭保留了循环结构。需注意,如果t→h为p弧,则tp=H或等同地,t=h-p。由此,m-p中的字母为p弧的尾部,其头部为m中的字母。在另一个示例中,排列p与排列m的共轭可表示为q=pm。由此qp-1=pmp-1=(m-1pm)p-1=m-1(pmp-1)=m-1m-p,从而指示qp-1移动m中的字母至多两次。
将一种排列变换为另一种排列的第四种机制是将排列自乘。构建p的邻域的一种机制是构建<p>,即包含p的最小子群。例如,下表(其中()为同一性)示出不同排列p的<p>:
在表1的粗体行中,pm具有p’s循环结构,因为m与12=阶(p)互质。最后一个表是这种情况的一个特例,因为素数7与较小的数字互质。因此,如果保留循环结构,则这些互质的幂将实现这点。否则,pm的DCF具有分阶(p)的相同长度。所得的循环结构可使用模板(分开和合并其它排列的排列)进行变换以得到具有目标循环结构的排列。鉴于n次循环p,q∈Sn,px=q的解空间取决于由p生成的子群(例如,<p>)。
在某些示例性实施例中,如果要保留循环结构,则可以选择共轭作为GTTS处理的移动方法。更具体地,要从排列p移至具有与p相同的循环结构的排列q,可以寻找满足px=q的排列x。可以存在多个此类排列,因为解空间为centp(Sn中p的中心化子)和r(任何特定的解)的右陪集centpr。一种用于确定r的示例性方法可以为对齐(在2行矩阵中)DCF中给定的p和q,划定循环边界,然后查看作为标准式排列的所得的表格。例如,如果p=(4,2)(1,5,3)并且q=(2,4,1)(3,5):
由此,q=pr,即((4,2)(1,5,3))(4,3,1,2,5)=(2,4,1)(3,5)。
就n-城市1-TSP而言,centp=<p>。例如,在p=(3,1,2,6,5,4)且q=(6,1,3,5,2,4)的S6中,px=q的解空间为centpr:
由此,对于高于陪集的任何x,(3,1,2,6,5,4)x=(6,1,3,5,2,4)。
因此,从上述陪集中选择不同的排列x可导致GTTS处理的多元化。另一个含义是,可以开始对移动而非TSP旅行进行搜索。即,GPU线程可以代替探测centp的右陪集的任何遍历,而无需获得p的GPU线程探测共轭。当该搜索得到s作为最优遍历元素时,ps可以为p共轭类中的最优行程。搜索遍历的最佳方法可能并非已知的,但是Δqp的索引集和pD的形式可提出一种方法。
根据本发明的示例性实施例,遍历可以由S5中p=(1,2,3,4,5)的中心化子的右陪集组成。由于p在S5中为5次循环,因此它在S5中的中心化子为<p>,其阶数为5。根据拉格朗日定理,存在5!/5=4!=24个陪集。可构造陪集的任何遍历T,并且GTTS处理可以从旅行转换为遍历T。遍历T的元素具有不同的循环结构,可选择这些循环结构以移动最小数量的字母。pT k可为与第k个遍历元素相关联的旅行。更具体地,从该陪集中选择的任何元素都将得到相同的旅行,占用的存储空间小于旅行,并且存储空间不超过另一个陪集元素。
示例性承运人调度优化
在一个具体实施中,本文所述的方法、系统和运算可用于承运人调度优化。可以利用多承运人调度优化架构来确保一辆或多辆车(例如,轿车、卡车、货车、汽车、摩托车、越野车辆、船只、露营车(RV)、机械车辆等)在一种或多种车辆交易(例如,销售、采购、交易、制造、赠送、收回、租赁等)后被一个或多个承运人(例如,托运人、卡车司机、送货人等)以最佳的方式进行运送(例如,运输、搬运、提取、交付等)。在一些实施方案中,承运人可包括一队承运人,或者可包括单个和/或单独的承运人。在一个实施例中,每个承运人卡车能够运输或承运不同数量的车辆(1、3、5、10等)。
例如,如果第一辆车购自亚特兰大的一个卖方并且需要运到纽约的第一个买主那里,并且第二辆车购自亚特兰大的卖方并且需要运到波士顿的第二个买主那里,则可以利用多承运人调度优化架构来确定使用一个或多个承运人时每辆车的最佳运送路线。继续该示例,第一辆车和第二辆车可通过多承运人调度优化架构分配给第一承运人,以将第一辆车和第二辆车同时从亚特兰大运输到东北。第一承运人可以从亚特兰大提取第一辆车和第二辆车,开车到纽约,并且把第一辆车交给第一个买主,然后继续开车到波士顿,并且把第二辆车交给第二个买主。另选地,第一辆车和第二辆车可通过多承运人调度优化架构分配给第一承运人,以将第一辆车和第二辆车同时只从亚特兰大运输到纽约。在纽约,第一承运人可以将第一辆车交给纽约的第一个买主,然后可以在纽约卸下第二辆车,在那里第二辆车将由第二承运人提取。第二辆车可以由多承运人调度优化架构分配给第二承运人,以将第二辆车从纽约运输到波士顿,从而将第二辆车交给波士顿的第二买主。通过这种方式,可通过多承运人调度优化架构将一辆或多辆车分配给一个或多个承运人,以确保一辆或多辆车以最佳方式从相应的第一位置运送到相应的第二位置。
此外,如果承运人目前正计划从亚特兰大驱车前往波士顿并且计划在从亚特兰大到波士顿的途中在纽约停车以交付车辆,则该承运人可利用多承运人调度优化架构来识别纽约需要运送到波士顿的另一辆车。通过这种方式,承运人能够更高效地安排沿途的取货和/或交货。
图8示出了根据本发明一个实施例的用于多承运人调度优化的示例性系统环境800。系统环境800通常包括至少一个用户应用程序810,其可以由用户访问和/或控制。在一些实施方案中,系统环境800包括如图8所示的多个用户应用程序810,所述多个用户应用能够使多个用户利用多承运人调度优化架构。
在一些实施例中,用户通常包括承运人(例如,托运人、货车司机、司机、运输公司调度员等),但也可以包括卖方、买方、赠与人、被赠与人、交易者、拍卖人、收回人和/或车辆用户等。用户可以利用用户应用程序810通过提供一个或多个承运人目标和/或承运人约束条件来引发多承运人调度优化架构的运算。例如,用户可以将一个或多个承运人目标和/或承运人约束条件输入和/或上传至用户应用程序810中。另选地,承运人目标和/或承运人约束条件可接收自第三方,或者通过抓取(例如,自动从中检索信息)一个或多个社交媒体账户、电子邮件账户、一个或多个在线账户的用户偏好、承运人数据库等得到。
承运人目标和/或承运人约束条件可包括路线信息,诸如起始地、目的地、当前位置、开始日期和/或时间、结束日期和/或时间、操作活动区域(例如,州境)、避开位置等。另外,承运人目标和/或承运人约束条件可以涉及承运人类型,诸如卡车选择、卡车商标和/或型号、拖车商标和/或型号、卡车尺寸、拖车尺寸、最大车辆数量和/或承运人能够运输的最大重量(例如,承运能力)、承运人的最大有效载重、承运人可能的车辆装载配置、承运人的年限、承运人的汽油里程数、承运人的保险状态等。承运人目标和/或承运人约束条件还可包括对承运人的独特能力的特定约束,例如承运人被封闭、能够承运不可操作的车辆、能够承运特定类型的车辆(例如,摩托车、船和/或轿车)等。另外,如果承运人拥有用于多个车辆的多个槽位,则用户可以针对每个单独的槽位指定承运人约束条件。例如,承运人的第一槽位可以被配置为用于运输摩托车,而承运人的第二槽位可以被配置为用于运输船。另外,一个槽位可以被配置为运输不同类型的车辆。在一些实施方案中,可能需要特定的硬件(例如,绑带、改动设备等)才可改动用于运输第一辆车类型的第一辆车的槽位,从而在改动后,该槽位可用于运输第二车辆类型的第二辆车。因此,这一改动槽位的能力可以包含于承运人目标和/或承运人约束条件中。另外,承运人目标和/或承运人约束条件还可包括与运输部(DOT)有关的限制,诸如承运人因载重、卡车尺寸等不能在特定的道路上行驶。另外,承运人目标和/或承运人约束条件可包括与从一个地点到另一地点(例如,从一个国家到另一个国家等)相关的各种进口和/或出口条例。在一些实施方案中,用户应用810可能需要特定的承运人目标和/或约束条件,或者在其它实施方案中可以为任选的。
所述至少一个用户应用程序810通常与库存管理器120进行通信。例如,所述至少一个用户应用程序810可以将接收自用户的承运人目标和/或承运人约束条件提供给库存管理器820进行处理。
库存管理器820通常包括待运输的所有可用车辆的车辆记录。车辆记录通常包括与车辆相关的信息和/或属性,诸如内部识别码(ID)、车辆识别码(VIN)、车龄、商标、型号、外装、重量、尺寸、可操作状态、封闭状态、取货地址(例如,街道、城市、州、邮政编码等)、取货地区、送货地址(例如,街道、城市、州、邮政编码等)、交货地区、开始日期和/或时间等。与车辆相关联的信息和/或属性还可包括与参与车辆交易的一方(例如,托运人、买方、卖方等)相关联的信息,诸如订单(PO)号、账户信息、地址、运输和/或交货价格、区段价格(例如,沿某段路线(例如从亚特兰大到纽约的途中巴尔的摩和费城之间的路段)运输车辆的价格,或可通过另一种模式完成的运输的一部分的价格,例如通过火车或船只运输的部分的价格)。车辆的信息和/或属性还可包括车辆排队等候的时间、进度和/或在多承运人调度优化架构中的阶段。与一辆或多辆车相关联的信息和/或属性可以由参与车辆交易的一方提供,通过抓取与卖方相关联的车辆数据库、VIN解码数据库、批发拍卖数据库、车辆检验数据库、制造商、销售商、经销商、经纪人等和/或以各种其它方式提供。在一些实施方案中,与一辆或多辆车相关联的信息和/或属性从一个或多个数据库导入。
库存管理器820通常处理接收到的承运人目标和/或承运人约束条件以基于由用户提供的承运人目标和/或承运人约束条件(例如,接收自用户程序810)识别可由承运人运输的一辆或多辆车的一条或多条车辆记录。例如,库存管理器820可基于比较接收的承运人目标和/或承运人约束条件与包含于一辆或多辆车的一条或多条车辆记录中的信息和/或属性,对一辆或多辆车的一条或多条车辆记录进行筛选和/或排序。在一些实施方案中,库存管理器820可确定承运人目标和/或承运人约束条件与包含于一辆或多辆车的一条或多条车辆记录中的信息和/或属性至少部分匹配。确定承运人目标和/或承运人约束条件与信息和/或属性至少部分匹配可使得库存管理器820确定一辆或多辆车的一条或多条车辆记录适合(例如,可用于)由承运人运输。在一些实施方案中,库存管理器820可生成可以由承运人运输的所有车辆记录(例如,车辆)的列表。该列表可基于每个可用车辆记录的计算得分进行排序和/或排名,其中计算得分对应于运输每个可用车辆记录的收益、成本、价格等。在一些实施方案中,计算得分可以由库存管理器820基于确定承运人目标和/或承运人约束条件与每辆车的信息和/或属性、运输每辆车的价格、成本、利润等至少部分匹配来确定。另外,可以对车辆和/或区段的计算得分与对应于承运人接受和/或包含在一个或多个优化解集合中的可能性进行比较。
库存管理器820在基于承运人目标和/或承运人约束条件识别出可由承运人运输的一辆或多辆车的一条或多条车辆记录后,将确定的可由承运人运输的一辆或多辆车的一条或多条车辆记录传输至优化程序830进行处理。库存管理器820还可将承运人目标和/或承运人约束条件、包含于一辆或多辆车的一条或多条车辆记录中的信息和/或属性传输至优化程序830进行处理。在一些实施方案中,确定为可由承运人运输的一辆或多辆车的一条或多条车辆记录可通过一个或多个数据包的数据流、通过生成可下载文件、将文件上传到服务以及发送允许启动文件下载的链接等从库存管理器820传输至优化程序830。
优化程序830可处理接收自库存管理器820的信息以基于接收自库存管理器820的信息(例如,车辆记录、承运人目标和/或承运人约束条件、包含于一辆或多辆车的一条或多条车辆记录中的信息和/或属性等)生成承运人的车辆载重的一个或多个优化解集合。例如,优化程序830可基于共同的取货和/或交货地点、每个可用车辆的计算得分等将一辆或多辆车分组(例如,捆绑)到一起。优化程序830还可识别包含于一辆或多辆车的一条或多条车辆记录中的信息和/或属性的一个或多个匹配结果。另选地,优化程序830可基于估计的交付价格和/或路段价格来捆绑一辆或多辆车,从而最大化承运人利润量,最小化当承运人的载重低于最大载重量时的行驶距离、成本,最小化包含于优化解决方案集合中的一辆或多辆车的计划取货和/或交货地点与当前承运人地点和/或计划路线之间的距离,最大化调度和/或承运人每天的收入和/或每英里的收入,和/或包含于一个或多个优化解集合中的承运人运输车辆的时间量,和/或为承运人提供其它益处。通过这种方式,车辆可以被分组和/或捆绑在一起成为优化解集合,该集合提供了一条或多条运输所包括的车辆的最佳路线。针对承运人的一辆或多辆车载重的一个或多个优化解集合可包括承运人提取和/或交付(例如,运输)由库存管理器820识别为可以由承运人运输的一辆或多辆车的一条或多条路线。例如,所述一个或多个优化解集合可包含于特定地点和/或沿特定的承运人路线可提取和/或交付的车辆的列表。
例如,优化程序830可通过将与运输包含在优化解集合中的每辆车相关联的收入相加,然后减去与运输包含于优化解集合中的每辆车相关联的承运人成本,来确定优化解集合的总调度利润,其中与运输每辆车相关联的成本可通过行驶的总距离乘以承运人的每英里成本来确定。用于确定一辆或多辆车和/或车辆区段的调度利润的其它因素可包括路线长度、取货地点、交货地点、运输成本、承运人成本、独特的载重约束、许可/准许要求等。在确定运输车辆(例如,车辆区段)的利润和/或成本时,可以将权重分配给一个或多个变量和/或因素。然后,优化程序830可以比较针对用户(例如,承运人)生成的所有解集合确定的每个总调度利润来确定具有最高调度利润的优化解集合。
需注意,优化程序830不仅旨在最大化每个承运人的利润,而且旨在最大化与本文所述的系统环境800相关联的调度员的利润。例如,每辆车可以与卖方(或捐赠方、交易方、购买方等)和/或销售平台(例如,拍卖行和/或网站、在线市场等)分配的运输成本以及实际运输每辆车的承运人的相关成本相关联。优化程序830通常寻求最小化与承运人相关联的成本,同时最大化由卖方分配的运输成本。在一些实施方案中,这些成本可以是固定的,和/或基于各种条件诸如供应和需求、车辆的市场价值、年份、月份、周、天等、天气状况、承运人限制和/或承运人目标、车辆属性和/或信息等而动态变化。通过这种方式,优化程序830可集中于提供以调度员为中心的系统,该系统通过将待由一个或多个承运人运输的一辆或多辆车最优分配给最小数量的承运人来最大化调度利润。因此,系统环境800和本文所公开的实施方案不同于典型的以承运人为中心的系统,诸如交付服务优化系统。与将由一辆或多辆卡车优化交付的一组已知的包裹分配为可以由以承运人为中心的系统完成相反,本发明的系统环境800可集中于选择最优分配给一辆或多辆卡车(例如,承运人)的特定包裹(例如,车辆)以使利润最大化。
在生成时,一个或多个优化解集合可以从优化程序830传输至库存管理器820,其可以将一个或多个优化解集合传输至一个或多个用户应用程序810以展示给用户。然后,用户(例如,承运人)可使用一个或多个用户应用程序810查看一个或多个优化解集合和/或从一个或多个优化解集合中选择一个或多个解集合。在一些实施方案中,传输一个或多个优化解集合可包括生成警示(例如,振动、视觉警示、声音警示等)并且通过一个或多个用户应用程序810将消息(例如,电子邮件、文本消息等)中的警示传输至库存管理器820和/或用户。
用户还可以提供对一个或多个优化解集合的调整和/或修改。例如,用户可以对包含于一个或多个优化解集合中的一辆或多辆车进行添加、删除、移除、交换、交易等。在一些实施方案中,用户可发起请求,对包含于第一优化解集合中的一辆或多辆车与包含于第二优化解集合中的一辆或多辆车进行交易。还可以由一个或多个用户应用程序810为用户展示交易报价和/或建议添加、删除、交换的车辆。例如,可以向用户推荐选择/和/或添加至优化解集合中的一辆或多辆车。车辆建议可基于各种变量、信息和/或本文所公开的启发式算法,诸如承运人限制和/或承运人目标、车辆信息和/或车辆属性、利润、成本、距离、地点、特定地点的车辆密度等。在一些实施方案中,可以使用户能够接受来自另一个用户和/或承运人的一辆或多辆车的交易报价,并且可以使多个用户能够通过一个或多个用户应用程序810彼此通信,诸如通过即时消息系统彼此通信。通过这种方式,一个或多个优化解集合还根据用户(例如,承运人)的偏好和/或希望进行定制和/或优化,从而在运输包含于所选的优化解集合中的一辆或多辆车时提高效率并且最大化承运人的利润。
通常,当车辆包含于优化解集合中时,车辆唯一地包含于优化解集合中。例如,车辆的车辆记录可以仅包含于一个优化解集合中,其然后可由用户接受或拒绝。使车辆包含于优化解集合中通常包括从库存管理器820中移除包含于优化解集合中的该车辆的车辆记录,使得该车辆的车辆记录不再能够包含于第二优化解集合中。另选地,车辆的车辆记录可包含于一个或多个优化解集合中。
响应于用户选择一个或多个优化解集合,库存管理器820可以将与承运人相关联的信息(例如,承运人目标和/或承运人约束条件)分配至与所选的一个或多个优化解集合相关联的信息(例如,包含于一个或多个所选车辆的车辆记录中的信息和/或属性)。通过这种方式,包含于所选的一个或多个优化解集合中的车辆可以由库存管理器820分配给承运人进行运输。另选地,包含于一个或多个优化解集合中的未由用户选择的车辆的车辆资料可以传输至和/或返回库存管理器820中以由优化程序830进行处理和/或包含于另一个优化解集合中。
在上述过程中,信息(例如,承运人目标和/或承运人约束条件、包含于一辆或多辆车的一条或多条车辆记录中的信息和/或属性等)可以传输至和/或接收自一个或多个用户应用程序810、库存管理器820、优化程序830和/或归档数据库840。归档数据库840可连续更新和/或以预先确定的间隔更新以来自系统环境800的各个元素的信息。通过这种方式,存储于归档数据库840中的信息可用于各种后处理分析中。例如,归档数据库840可接收和/或存储一个或多个所选的的优化解集合以供用户随后调用。
图9为示出根据本发明一个实施方案的用于将车辆最优分配给承运人以进行调度的示例性方法的细节的示例性过程流程图900。图900开始于从与车辆交易相关联的托运人(例如,卖方、买主、交易商、经纪人等)接收车辆订单。在一些实施方案中,在一个或多个用户应用程序810中和/或从与促进车辆交易相关联的系统诸如拍卖网站、经销商网站、在线市场等接收订单。在一些实施方案中,接收订单包括接收与车辆和/或车辆交易相关联的信息诸如待包含于车辆的车辆记录中的信息和/或属性。接收订单通常包括使用车辆的信息和/或属性生成车辆的车辆记录。车辆记录可以由一个或多个用户应用程序810生成和/或传输至库存管理器820以由库存管理器820生成。
同样,车辆记录通常包括与车辆相关联的信息和/或属性。例如,车辆的车辆记录可包括内部识别码(ID)、车辆识别码(VIN)、车龄、商标、型号、重量、尺寸、改变库存重量和或尺寸的售后特征、可操作状态、封闭状态、取货地址(例如,街道、城市、州、邮政编码等)、取货地区、送货地址(例如,街道、城市、州、邮政编码等)、交货地区、开始日期和/或时间等。与车辆相关联并且包含于车辆记录中的信息和/或属性还可包括与参与车辆车辆交易的一方(例如,托运人、购买者、卖方、买主等)相关联的信息,诸如订单(PO)号、账户信息、地址、运输和/或交货价格、区段价格(例如,沿某段路线(例如,从亚特兰大到纽约的途中巴尔的摩和费城之间的路段)运输车辆的价格)、计算得分等。包含于车辆记录中的车辆的信息和/或属性还可包括车辆排队等候的时间、进度和/或在多承运人调度优化架构中的阶段。
一旦生成,在块810处,车辆的车辆记录可被置于分段队列中以进行验证。车辆的车辆记录通常由一个或多个用户应用程序810和/或库存管理器820进行选择和/或验证。在一些实施方案中,验证车辆的车辆记录包括基于对包含于车辆的车辆记录中的信息和/或属性与存储于归档数据库840中的信息和/或属性(和/或本文所公开的其它信息)的比较来确定包含于车辆的车辆记录中的信息和/或属性是有效的。如果包含于车辆的车辆记录中的信息和/或属性被确定为无效,则该车辆记录(例如,车辆)可能不适合包含于库存管理器820的车辆库存中,因此可以在块920处将其丢弃。车辆的车辆记录也可随时被取消。相反,如果包含于车辆的车辆记录中的信息和/或属性被确定为有效,则该车辆的车辆记录通过验证以包含于库存管理器820的车辆库存中。
在其验证时,在块930处,将车辆的车辆记录传输至库存管理器820以使该车辆的车辆记录包含于库存管理器820的车辆库存中。从库存管理器820的车辆库存中,可通过多种方式将车辆的车辆记录(例如,车辆)分配给特定的承运人。通常,将车辆分配给承运人包括至少部分地基于分析和/或比较包含于车辆的车辆记录中的信息和/或属性和/或承运人目标和/或承运人约束条件来确定该车辆可由承运人运输(例如,承运人能够在限定的约束条件下安全运输车辆)。
例如,库存管理器820可直接将库存管理器820的车辆库存中的车辆(例如,车辆的车辆记录)分配给承运人,以由该承运人运输车辆。通常,将车辆直接分配给承运人以响应于该承运人选择了包括该车辆的优化解集合(或路线的一个或多个区段等)。因而,在块940处,将车辆调度给承运人,以由该承运人运输车辆。在一些实施方案中,将车辆调度给承运人包括通过一个或多个用户应用程序810等将包含于车辆的车辆记录中的信息和/或属性传输给承运人和/或用户。
在第二个示例中,车辆可以由库存管理器820将其作为单个区段(例如,从车辆的取货地点到车辆的交货地点的单条路线)分配给在线市场,系统环境800与该在线市场进行通信。例如,在块950处,在线市场可包括可用的车辆和/或车辆区段的列表和/或队列,多个承运人可从中选择进行运输。在一些实施方案中,用户可以从在线市场列表中选择单个车辆(例如,单个区段)、多个车辆(例如,多个区段)、车辆(例如,区段)的优化解集合等。通过这种方式,多个承运人可以根据承运人偏好诸如区段距离、区段位置和/或地区、价格等从在线市场中选择多个车辆进行运输。如果承运人从列表中选择了车辆,则该车辆由库存管理器820分配给选择该车辆的承运人,并且在块940处调度该车辆。如果在车辆可用期间的预先确定的时间段内未选择该车辆,则该车辆可以从在线市场的列表中移除并且被重新导入和/或重新包含于库存管理器820的车辆库存中。
在第三个示例中,库存管理器820可以与优化程序830进行通信,和/或将车辆的车辆记录和/或包含于车辆的车辆记录中的信息和/或属性传输给优化程序830进行处理。通过这种方式并且在块960处,优化程序830在确定承运人载重和/或承运人路线的一个或多个优化解集合时可能将车辆记录(例如,车辆和/或车辆信息和/或属性)包含于承运人载重和/或承运人路线的一个或多个优化解集合中。所述一个或多个优化解集合可以显示给用户和/或承运人,该用户和/或承运人可通过一个或多个用户应用程序810接受或拒绝所述一个或多个优化解集合。如果包括车辆的优化解集合被拒绝,则在块930处,该车辆可以被重新导入和/或重新包含于库存管理器820的车辆库存中。在一些实施方案中,用户(例如,承运人)可以仅选择优化解集合的一部分。例如,用于可以选择所建议的最优路线的第一区段和第二区段,而拒绝该路线的第三区段。该第三区段及相关联的车辆可以在块930处被重新导入和/或重新包含于库存管理器820的车辆库存中(或与另一个承运人进行交易)。相反地,如果包括车辆的优化解集合被接受,则,在块840,将车辆调度给选择包括该车辆的优化解集合的用户和/或承运人。
通常,在块960处,当优化程序830包括一个或多个优化解集合中的车辆时,该车辆排他性地包含于所述一个或多个优化解集合中。例如,一旦车辆包含于一个可能的优化解集合中,则在包含该车辆的优化解集合被用户和/或承运人拒绝之前,该车辆可能无法包含于另一个优化解集合中,在包含该车辆的优化解集合被拒绝的情况下,车辆和/或车辆记录被重新导入和/或重新包含于库存管理器820的车辆库存中。另外,一旦在块950处用户和/或承运人从在线市场的列表中选择了车辆和/或在块940处调度给承运人,则另一个用户和/或另一个承运人将无法选择该车辆。通过这种方式,车辆可以不被误分配给多个用户和/或承运人。
然而,在一些实施方案中,一辆车可以被分配给多个优化解集合。为防止将一辆车分配给多个承运人进行运输的双重性,一辆车可以被分配给与首先选择包含该车辆的优化解集合的用户相关联的承运人。因此,优化程序830可监测、追踪、比较和/或存储与每个用户对每个优化解集合的选择相关联的一个或多个时间戳。
图10为根据本发明一个实施方案的使承运人能够选择最优车辆运输路线的示例性方法300的例示性细节的示例性过程流程图。该图从在块1005处用户(例如,承运人)访问一个或多个用户应用程序810开始。在一些实施方案中,用户可使用智能手机、平板电脑、可穿戴设备、台式计算机、笔记本计算机、便携式计算设备等访问一个或多个用户应用程序810。
在首次访问一个或多个用户应用程序810时,在块310处,一个或多个用户应用程序810可能要求和/或提示用户创建账户。在一些实施方案中,创建账户可包括在块1015处定义一个或多个承运人目标和/或承运人约束条件和/或如本文所述。
在随后访问一个或多个用户应用程序810时,在块320处,用户登录所创建的账户。一旦登录,可以向用户显示仪表板和/或登录页面,用户可从中选择各种待执行的动作和/或操作。例如,一个或多个用户应用程序810可以使用户在块1025处请求生成路线。例如,发出生成路线的请求可包括使用户能够定义初始约束条件,诸如承运人目标和/或约束条件(例如,期望的开始和/或结束位置、开始日期和/或时间等)、与承运人相关联的信息等。生成路线的请求可以由一个或多个用户应用程序810生成和/或接收并且传输至库存管理器820进行处理。生成路线还可包括生成一辆或多辆车区段、估计的路线行程时间、完成所生成的路线所需的燃料成本估算等。所生成的路线和/或相关联的信息可在报告、电子邮件、文本消息、一系列全球定位系统(GPS)坐标等中传输给用户。
库存管理器820可接收来自一个或多个用户应用程序810的生成路线。在接收到生成路线的请求并且在块1035处,库存管理器820可以将与生成路线的请求相关联的承运人添加到批处理管理器中。在一些实施例中,批处理管理器为库存管理器820的一部分,它被配置为可用于由多个承运人运输的所有车辆的车辆记录的协调聚合。例如,在块1040处,经过验证并且被置于库存管理器820中的所有车辆的车辆记录的库存可以由批处理管理器导入。
接下来,所导入的车辆的车辆记录可以从库存管理器820传输至优化程序830以进行处理。在接收到导入的可用车辆的车辆记录时,在块1045处,优化程序830可使用本文所述的方法(例如,算法)识别可由承运人运输的车辆的一条或多条车辆记录和/或车辆的区段。例如,优化程序830可基于用户在块1015和/或1030处定义的承运人目标和/或承运人约束条件来识别可由承运人运输的车辆的一条或多条车辆记录和/或车辆的区段。另选地,优化程序830可接收来自库存管理器820的列表,该列表中包括可包含于一个或多个优化解集合中的一辆或多辆车。然后,优化程序830可基于比较和/或匹配与每个可用车辆相关联的信息和/或属性(例如,包含于可用车辆列表中的车辆的一条或多条车辆记录中所包括的信息和/或属性)与承运人的承运人偏好(例如,承运人目标和/或承运人约束条件),识别可包含于承运人(例如,与用户相关联的承运人)的一个或多个优化解集合中的一辆或多辆车。然后,优化程序830可分析和/或比较所有符合条件的车辆以识别待包含于优化解集合中的一辆或多辆车。例如,优化程序830可确定待包含于优化解中的一辆或多辆车使承运人的总路线距离最短、使承运人的利润最大化、使承运人的燃料费用最小化、避免了特定的危险诸如天气和/或建筑物、使承运人在装载量低于预先确定的容量时行驶的里程数最小化、使一次或多次取货和/或交货之间的距离最小化、使承运人在一次或多次取货和/或交货期间装载和/或卸载一辆或多辆车所需的时间最小化、使承运人在装载和/或卸载时的潜在危害和/或伤害最小化等。通过这种方式,优化程序830可使用所识别的可由承运人运输的车辆的一条或多条车辆记录和/或车辆的区段生成一个或多个优化解集合。同样,一个或多个优化解集合可包括一辆或多辆车、车辆区段和/或运输所述一辆或多辆车的路线。
在一些实施方案中,包含于所述一个或多个所生成的优化解集合中的每个优化解集合中的每辆车是包含该车辆的优化解集合所独有的。因而,在块1050处,优化程序830和/或库存管理器830可以从可由承运人运输的车辆的车辆记录列表和/或库存中保留和/或移除已包含于优化解集合中的每辆车的车辆记录。通过这种方式,每辆车可以仅被指定、分配和/或包含在呈现给一个承运人的一个解集合中。
优化程序830可以将所述一个或多个所生成的优化解集合传输至库存管理器820,其可以基于包含于一个或多个优化解集合中的车辆更新可由承运人运输的车辆的车辆记录的库存清单和/或库存。另外,在块1050处,然后可以将一个或多个所生成的优化解集合传输至用户应用程序以呈现给用户和/或由用户选择。
如果用户拒绝和/或不希望选择一个或多个所生成的优化解集合中的一者或多者,和/或如果未在预先确定的时间段内选择优化解集合,诸如在块1055处,一个或多个用户应用程序810、库存管理器820和/或优化程序830可释放对包含于未选择的优化解集合中的车辆的车辆记录的任何排他性持有,并且包含于未选择的优化解集合中的车辆的车辆记录可以被重新导入和/或重新包含于可由承运人运输的车辆的车辆记录的库存中。另外,在块1030处,用户可以在一个或多个用户应用程序810的引导下输入新的和/或修改现有的初始约束条件(例如,承运人目标和/或承运人约束条件)。在其它实施方案中,并且在块1060处,用户可注销离开用户应用程序810。
在块1065处,用户可以接受和/或选择优化解集合(例如,建议的包括一辆或多辆车运输区段的路线),从而接受运输包含于所选的优化解集合中的车辆的责任。在1065和/或1070处,一个或多个用户应用程序810还可以使用户能够调整和/或修改所述一个或多个生成的优化解集合中的元素。例如,用户可以从优化解集合中删除一辆或多辆车、路段等。通过这种方式,用户还可优化他们的车辆运输路线。另选地,用户可接受和/或选择优化解集合而无需对优化解集合进行任何修改。同样,一个或多个用户应用程序810、库存管理器820和/或优化程序830可释放对包含于优化解集合中的由用户取消选择、移除、删除等的车辆的车辆记录的任何排他性持有,并且从优化解集合中删除的车辆的车辆记录可以被重新导入和/或重新包含于可由承运人运输的车辆的车辆记录的库存中。
在选择优化解集合时和在块1075处,库存管理器120可以将包含于所选的优化解集合中的每辆车分配给承运人。在一些实施方案中,将包含于所选的优化解集合中的每辆车分配给承运人包括将包含于所选的优化解集合中的每辆车调度给承运人。将包含于所选的优化解集合中的每辆车分配给承运人还包括将归档数据库830中包含于所选的优化解集合中的每辆车的信息和/或属性分配和/或关联到承运人的承运人目标和/或承运人约束条件和/或与所选的优化解集合相关联的信息诸如路线信息。将包含于所选的优化解集合中的每辆车分配给承运人还可能包括为承运人生成计划表和/或旅程,其中细化了路线、承运人目标和/或承运人约束条件、与包含于所选的优化解集合中的每辆车相关联的信息和/或属性等。
另外,可以由一个或多个用户应用程序810、库存管理器820生成合约协议以响应于将包含于所选的优化解集合中的每辆车分配给承运人。在一些实施方案中,用户选择和/或接受优化解集合可以将与生成路线请求相关联的用户和/或承运人自动输入承运人与托运人、供应商、买方、购买者、卖方之间的合约协议中。在块1060处,用户可继续注销离开一个或多个用户应用程序。
在一些实施方案中,优化程序830可以被配置为在生成优化解集合时,使运输一组车辆所需的承运人的数量最小化。例如,优化程序830可基于待包含于优化解集合中的一辆或多辆车的属性生成优化解集合,所述属性诸如车辆重量、车辆尺寸、托运人费用、起点位置和/或目的地、取货和/或交货时间窗口等。另选地或除此之外,优化程序830可基于一个或多个承运人的属性(例如,承运人目标和/或承运人约束条件)生成优化解集合,以运输包含于优化解集合中的车辆,诸如载重能力(例如,承运人体积和/或承运人重量)、途中各个点处一个或多个承运人的预先存在的载重、交付计划表、交付成本、当前位置、期望的目的地等。在一些实施方案中,优化程序830可利用启发式模型(例如,并行处理)同时和/或实时生成一个或多个优化解集合。例如,优化程序830可基于可用的车辆库存生成相当大的代表性数量的可能的优化解集合,然后可以智能搜索、排序这些代表性解集合以确定使一种或多种特定变量(例如,利润、距离、成本、时间、位置、车辆信息和/或属性、承运人约束条件和/或承运人目标等)最大化和/或最小化的一个或多个优化解集合。在搜索时,优化程序830可以对一种或多种变量加权以便更快速高效地识别一个或多个优化解集合。
优化程序830可以将各个车辆取货和/或交付区段生成和/或分配到路线集中。该路线集中的每条路线可定义对应于分区段的站点的序列(例如,包含于车辆的优化解集合中的车辆的取货和/或交付)。在一些实施方案中,路线可包括一辆或多辆车的单程运输或往返运输。另选地,路线可包括承运人的计划往返运输路线,其中一辆或多辆车沿计划的承运人路线在各个地点运输(例如,交付和/或取货)。随着路线和/或优化解集合被用户拒绝和/或修改,用户未选择的任何车辆和/或路线可以被重新导入和/或重新包含于可运输的车辆的库存中。通过这种方式,优化程序830可基于在一个或多个优化解集合中对车辆和/或路段的修改(例如,移除、添加等)重新优化一个或多个优化解集合,从而生成一个或多个新的优化解集合,该新的优化解集合中包括更新的车辆和/或路段的集合。
另外,一些实施例可包括优化程序830,该优化程序830确定用于运输包含于优化解集合中的一辆或多辆车的路线(例如,长路线、横越全国的路线等)。然后,优化程序830可之后确定可以分配给不同承运人的一条或多条子路线。另外,批发拍卖设施可用作取货和/或交货地点、中转场所等。通过这种方式,优化解集合的区段可包括提取和/或交付一辆或多辆车至拍卖设施,使得一辆或多辆车可以更轻松(例如,更有利可图地)由多个承运人运输。
在一些实施例中,由优化程序830生成一个或多个优化解集合可包括计算每条路线的价格和/或运输包含于一个或多个优化解集合中的每辆车的成本。在一些实施方案中,基于当前条件诸如天气、季节性迁移等的价格波动可包含在每条路线和/或区段的定价中。运输一辆车和/或一组车辆的价格可至少部分地基于车辆价格、承运人类型和/或库存、天气、承运人的驾驶记录、驾驶历史、路线历史、承运人沿特定路线行驶和/或到和/或从特定地点的频率、优选路线、保险,承运人的可靠性和/或评分等来确定。在一些实施方案中,可确定估计成本、估计保证金和/或选择优化解集合的节省量的预测并且向承运人显示每个车辆和/或路段的优化解集合。例如,优化程序830可至少部分地基于每个区段的决定价格确定包含于每个优化解集合中的每个区段的价格(例如,与运输每辆车相关联的价格),确定运输包含于每个优化解集合中的所有车辆的总价格。另选地,优化程序830在确定每个优化解集合的价格、利润和/或节省量时可以考虑其它因素。其他因素可包括天气信息、燃料经济性、承运人约束条件和/或承运人目标、车辆信息和/或属性等。在一些实施方案中,优化程序830可利用各种元素的权重来确定价格和/或生成一个或多个优化解集合。另外,优化程序830可计算运输各个车辆的价格和/或运输捆绑在优化解集合中的多辆车的价格。
在一些实施方案中,可在连续(例如,实时)数据流中接收来自各种来源的信息(例如,承运人目标和/或承运人约束条件、与车辆相关联的信息和/或属性、车辆记录、和/或车辆交易、天气信息、价格信息和/或市场信息、路线信息和/或区段信息等)。例如,天气信息可以接收自多个天气信息源,然后可以由本文所述的系统进行处理,以基于天气条件计算平均温度、计算估计降水量、确定与天气条件相关联的风险水平、计算估计价格和/或运输风险等。每条信息可以通过本文所述的系统进行加权,以便考虑对价格和/或安全运输车辆最重要的因素。例如,在冬季,在预计发生暴风雪期间,包括通过美国东北部的路线的区段可能定价更高,使得承运人在风险大大高于在阳光明媚的美国东南部地区运输车辆的风险的情况下获得回报。通过这种方式,可计算并提供给承运人更准确的成本、价格、时间等的估计,并且当系统接收和处理信息时,可以实时更新每个估计值和/或计算值。
另外,由优化程序830生成一个或多个优化解集合包括确定运输待包含于生成的优化解集合中的一辆或多辆车所需的承运人的最少数量,以此为基础生成优化解集合。由优化程序830生成一个或多个优化解集合还包括确定承运人和/或调度员的收入和/或效率的最大值,以此为基础生成优化解集合。
在一些实施例中,优化程序830可基于待由承运人运输的载重(例如,车辆)的几何尺寸和/或道路危险程度(例如,天气条件、道路类型等)来确定最优路线。在其它实施方案中,优化程序830可根据车辆大小、形状、类型、安全性、便利性和/或承运人装载和/或卸载车辆的速度等确定承运人的最优车辆装载量。例如,将第一辆车装载到第一部分承运人并且将第二辆车装载到第二部分承运人可能被确定是最优的。另选地或除此之外,优化程序830可确定使承运人在低于满载的情况下行驶里程数最小化的最优路线。
在一些实施例中,承运人将第一辆车从其当前位置运输至其目的地可能无利可图。然而,通过优化第一辆车与待运输的一个或多个其它车辆的分组和/或捆绑,运输第一辆车可能变得有利可图。通过这种方式,可能无利可图的车辆运输区段(例如,异常值)可以与一个或多个有利可图的车辆运输区段一起包括在优化解集合中,并且该优化解集合仍可以为有利可图的(例如,与异常值和一个或多个有利可图的区段相关联的利润平均值大于零)。
在一些实施例中,优化程序830可以利用多模态优化架构。利用多模态优化架构可包括利用多种运输模式优化一辆或多辆车的运输。例如,优化程序830可以确定运输车辆的最优方法包括第一承运人(例如,卡车1)在取货点提取车辆并且将该车辆运输至第一火车站,在该第一火车站处,该车辆可装载到火车的轨道车上以运输至第二火车站。火车可以将车辆运输至第二火车站,第二承运人从该第二火车站提取车辆。然后,第二承运人可以将车辆运输至目的地。通过这种方式,优化程序830在确定最优路线、解集合时可以利用多种运输模式。
在一些实施例中,优化程序可以在多模态优化架构中利用任何类型的地面运输(例如,轨道车、铁路、火车、电车、雪橇等)、水面和/或水上交通工具、飞机等。利用不同的运输方式可以比利用单一的运输方式更优化,因为每种不同的运输方式可能具有不同的计划表、旅行时间、路线等,以便使优化架构中的一种或多种变量最小化或最大化。例如,利用轨道车运输车辆可能对于承运人运输车辆更有效率,因为利用轨道车可以使由承运人行驶的里程数最小化,或者避免因额外的较短途的车辆运输造成的延误,可能需要较短途的车辆运输使长途运输对于承运人更经济。另外,不同运输方式的承运人可具有不同的承运人配置(例如,轨道车大于牵引式挂车)。另选地,如果目的地位于岛上或其它难以到达的、隔离的和/或偏远环境中,则可能需要利用多种运输方式。在一些实施方案中,多模态优化架构利用可以为呈现给用户(例如,承运人)以供选择的可选择选项。
图11为示出根据本发明一个实施例的用于优化一个或多个承运人提取和/或运送多个车辆的路线的示例性方法1110的细节的流程图。在块1110处,方法1100可包括接收承运人的一个或多个承运人约束条件,其中所述承运人被配置为运输一辆或多辆车。在块1120处,方法1100可包括接收与可由承运人运输的一辆或多辆车相关联的一种或多种车辆属性。在块1130处,方法1100可包括至少部分地基于一种或多种承运人约束条件和一种或多种车辆属性来确定一个或多个最优解集合,其中每个最优解集合包括可由承运人运输的一辆或多辆车中的至少一者。在块1140处,方法1100可包括提供一个或多个最优解集合以供用户选择。
本发明的示例性实施例提供了许多技术特征、技术效益和技术效果。例如,根据本发明的示例性实施例,可以利用多个处理器(例如,GPU)线程并行确定指定的解空间内的优化问题,从而减少获得及时、高质量的优化解所需的处理时间和处理负荷。另外,根据本发明的示例性实施例,使用群论技术对优化问题建模并且将解空间分割成分区,该分区可以通过相应的处理线程进行处理,从而提供一种方法,使精英解得到更有效的识别,最终以较短的处理时间确定及时、高质量的解。应当认识到,本发明的示例性实施例的技术特征和/或技术效果的上述实施例仅为说明性的而非穷举性的。
本发明的一种或多种例示性实施例如上文所述。上述实施例仅仅是本公开的范围的示例,并非旨在以任何方式进行限制。因此,本文所公开的实施方案的变型、修改和等同形式同样处于本发明的保护范围内。下文将参考附图详细描述本发明的上述实施方案及附加的和/或另选的实施方案。
例示性设备架构
图12为根据本发明一个或多个示例性实施例的被配置为执行GTTS处理的例示性服务器的示意性框图。在此例示性配置中,GTTS服务器1200可包括一个或多个处理器1202、一个或多个存储器设备1204(在本文中统称为存储器1004)、一个或多个输入/输出(“I/O”)接口1206、一个或多个网络接口1208和数据存储器1210。设备1200还可包括一条或多条总线1212,所述一条或多条总线1212功能性地耦接设备1200的各种部件。这些各种部件如下文所详述。
总线1212可包括系统总线、存储器总线、地址总线或消息总线中的至少一者,并且可允许在设备1200的各种部件之间进行信息交换(例如,数据(包括计算机可执行代码)、信令等)。总线1212可包括但不限于存储器总线或存储器控制器、外围总线、加速图形端口等等。总线1212可与任何合适的总线架构相关联,包括但不限于工业标准结构(ISA)、微通道架构(MCA)、增强ISA(EISA)、视频电子标准协会(VESA)架构、加速图形端口(AGP)架构、外围组件互连(PCI)架构、PCI-Express架构、个人计算机存储器卡国际联合会(PCMCIA)架构、通用串行总线(USB)架构等等。
设备1200的存储器1204可包括易失性存储器(在供电时保持其状态的存储器)诸如随机存取存储器(RAM)和/或非易失性存储器(即使在不供电时也保持其状态的存储器)诸如只读存储器(ROM)、闪存、铁电RAM(FRAM)等等。在某些示例性实施例中,易失性存储器可以比非易失性存储器更快速地读/写访问。然而,在某些其它示例性实施例中,某些类型的非易失性存储器(例如,FRAM)可以比某些类型的易失性存储器更快速地读/写访问。
在各种具体实施中,存储器1204可包括多种不同类型的存储器,诸如各种类型的静态随机存取存储器(SRAM)、各种类型的动态随机存取存储器(DRAM)、各种类型的不可改变的ROM和/或ROM的可写入变体,诸如电擦除可编程只读存储器(EEPROM)、闪存等等。存储器1204可包括主存储器以及各种形式的高速缓存存储器,诸如指令高速缓存、数据高速缓存、转译后备缓冲器(TLB)等等。另外,高速缓存存储器诸如数据高速缓存可以为多级高速缓存,该多级高速缓存被组织为一个或多个高速缓存级别的层次结构(L1、L2等)。
数据存储器1210可包括可移动存储器和/或不可移动存储器,包括但不限于磁存储器、光盘存储器、固态存储器和/或带存储器。数据存储器1210可提供计算机可执行指令及其它数据的非易失性存储。可移动和/或不可移动存储器1204和数据存储器1210为本文所用的计算机可读存储介质(CRSM)的示例。
数据存储器1210可存储计算机可执行代码、指令等,所述计算机可执行代码、指令可被加载到存储器1204中并可由处理器1202执行以使处理器1202执行或引发各种操作。另外,数据存储器1214可存储可被复制到存储器1204以供处理器1202在执行计算机可执行指令时使用的数据。此外,由处理器1202执行计算机可执行指令所生成的输出数据最初可存储于存储器1204中,并且可最终复制到数据存储1210以实现非易失性存储。
更具体地,数据存储器1210可存储一个或多个操作系统(O/S))1214;一个或多个数据库管理系统(DBMS)1216;以及一个或多个程序模块、应用模块等,诸如一个或多个空间分割模块1218和一个或多个GTTS处理模块1220。GTTS处理模块1220还可包括一个或多个子模块,诸如一个或多个TM模块1222、一个或多个强化模块1224以及一个或多个多元化模块1226。
解空间分割模块1218可包括计算机可执行指令、代码等,当所述计算机可执行指令、代码由一个或多个处理器1202执行时,引起分割解空间的操作,该操作生成可由GTTS处理模块(s)1220处理的解空间分区。在某些示例性实施例中,GTTS处理模块1220可包括计算机可执行指令、代码等,所述计算机可执行指令、代码在每个GPU线程128(1)-128(N)上执行以每个GPU线程探究相应的解空间分区以获得优化问题的精英解。STM模块1222可包括计算机可执行指令、代码等,当所述计算机可执行指令、代码由一个或多个处理器1202执行时,引起执行禁忌搜索的STM阶段的操作。STM阶段可包括探究多元化单元(例如,解空间片段)以确定精英解。强化模块1224可包括计算机可执行指令、代码等,当所述计算机可执行指令、代码由一个或多个处理器1202执行时,可引起执行禁忌搜索的强化阶段的操作。例如,当STM未能产生任何补充精英解时,GTTS处理模块1218可回到迄今为止确定的最精英解并且可利用强化模块1224引发与该最精英解相关的强化阶段。例如,该强化阶段可包括引发与该最精英解相关的新的STM阶段。多元化模块1226可包括计算机可执行指令、代码等,当所述计算机可执行指令、代码由一个或多个处理器1202执行时,引起对新的多元化单元进行多元化GTTS处理的操作。
数据存储器1210还可存储各种其它类型模块中的任一种。另外,存储于数据存储器1210中的任何程序模块都可包括一个或多个子模块。另外,存储于数据存储器1210中的任何数据都可加载到存储器1204中以供处理器1202在执行计算机可执行代码时使用。另外,可能存储于数据库中的任何数据都可通过DBMS1216进行访问并且加载到存储器1204中以供处理器1202在执行计算机可执行代码时使用。
处理器1202可以被配置为访问存储器1204并且执行其中加载的计算机可执行指令。例如,处理器1202可以被配置为执行服务器1200的各种程序模块的计算机可执行指令,以引起或促进根据本发明的一个或多个实施方案所述执行各种操作。处理器1202可包括任何合适的能够接受输入的数据、根据存储的计算机可执行指令处理输入数据并且生成输出数据的处理单元。处理器1202可包括任何类型的合适的处理单元,包括但不限于中央处理单元(例如,CPU 102)、图形处理单元(例如,GPU104)、微处理器、精简指令集计算机(RISC)微处理器、复杂指令集计算机(CISC)微处理器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、芯片系统(SoC)、数字信号处理器(DSP)等等。另外,处理器1202可具有任何合适的微结构设计,其包括任意数量的构件,诸如寄存器、多路复用器、算术逻辑单元、用于控制对高速缓存存储器的读/写操作的高速缓存控制器、分支预测器等。处理器1202的微结构设计能够支持各种指令集中的任一种。
现在参见被示为存储于数据存储器1210中的其它例示性部件,O/S1214可以从数据存储器1210加载到存储器1204中并且可提供在服务器1200上执行的其它应用软件与服务器1200的硬件资源之间的接口。更具体地,O/S1214可以包括用于计算机可执行指令集,所述计算机可执行指令集用于管理服务器1200的硬件资源,并且向其它应用程序提供公共服务(例如,管理各种应用程序之间的内存其分配)。O/S1214可包括现在已知的或将来可能开发的任何操作系统,包括但不限于任何服务器操作系统、任何大型机操作系统或任何其它专有或非专有的操作系统。
DBMS1216可加载到存储器1204中并且可支持访问、检索、存储和/或操作存储于存储器1204中的数据、存储于数据存储器1210中的数据和/或存储于一个或多个数据库(例如,归档数据库120)中的数据。DBMS1216可使用多种数据库模型(例如,关系模型、对象模型等)中的任一种并且可支持多种查询语言中的任一种。DBMS1216可访问以一种或多种数据模式表示并存储在任何合适的数据储存库中的数据,所述数据储存库包括但不限于数据库(例如,关系数据库、面向对象的数据库等)、文件系统、平面文件、存储在计算机网络的多于一个节点上的分布式数据库、对等网络数据库等。在其中服务器1200为移动设备的那些示例性实施例中,DBMS1216可为任何合适的轻型DBMS,其在移动设备上的性能经过优化。应当认识到,如本文所述用的术语“数据”可包括计算机可执行指令、代码等。
现在参见服务器1200的其它例示性部件,一个或多个输入/输出(I/O)接口1206可促进设备1000接收来自一个或多个I/O设备的输入信息以及从服务器1200到一个或多个I/O设备的输出信息。I/O设备可包括多种部件中的任一种,诸如具有触摸表面或触摸屏的显示器或显示屏;用于产生声音的音频输出设备,诸如扬声器;音频捕捉设备,诸如麦克风;图像和/或视频捕捉设备,诸如相机;触觉装置等等。这些部件中的任一种可集成到服务器1200中或者可以为单独的。I/O设备还可包括例如任何数量的外围设备诸如数据存储器设备、打印设备等等。
I/O接口1206还可包括用于外部外围设备连接的接口,诸如通用串行总线(USB)、FireWire、Thunderbolt、以太网端口或其它可连接到一个或多个网络的连接协议。I/O接口1206还可包括与一个或多个天线的连接,以经由无线局域网(WLAN)(诸如Wi-Fi)无线电、蓝牙和/或无线网络无线电(诸如能够与无线通信网络诸如长期演进(LTE)网络、WiMAX网络、3G网络等进行通信的无线电)连接至一个或多个网络。
服务器1200还可包括一个或多个网络接口1208,服务器1200可通过所述一个或多个网络接口与多种其它系统、平台、网络、设备等等进行通信。此类通信可以通过一种或多种网络来进行,所述网络包括但不限于任何一种或多种不同类型的通信网络,例如有线网络、公共网络(例如,因特网)、专用网络(例如,帧中继网络)、无线网络、蜂窝网络、电话网络(例如,公共交换电话网络)或任何其它合适的专用或公用分组交换或电路交换网络。另外,此类网络可具有与其相关联的任何合适的通信范围,并且可以包括例如全球网络(例如,因特网)、城域网(MAN)、广域网(WAN)、局域网(LAN)或个人局域网(PAN)。另外,此类网络可包括用于通过任何合适的类型的介质传输网络业务的通信链路及相关网络设备(例如,链路层交换机、路由器等),所述介质包括但不限于同轴电缆、双绞线(例如,双绞铜线)、光纤、混合光纤同轴(HFC)介质、微波介质、射频通信介质、卫星通信介质或它们的任何组合。
应当认识到,图12中示出的存储于数据存储器1210中的程序模块、应用程序、计算机可执行指令、代码等仅为例示性的而非穷举性的,描述为由任何特定模块支持的处理均可另选地分布在多个模块中或由不同的模块执行。另外,可提供各种应用程序接口模块、脚本、插件、应用编程接口(API)或本地托管于服务器1200上和/或托管于可通过一个或多个网络访问的其它计算设备上的任何其它合适的计算机可执行代码,以支持由图12中所示的程序模块、应用程序或计算机可执行代码提供的功能和/或附加或另外的功能。另外,功能可采用不同方式模块化,使得被描述为由图12中所示的程序模块的集合共同支持的处理可以由更少或更多数量的模块执行,或者可以至少部分地由另一个模块支持被描述为由任何特定模块支持的功能。另外,支持本文所述的功能的程序模块可以根据任何合适的计算模型(诸如,客户端-服务器模型、对等模型等等)形成可在任意数量的系统或设备上执行的一种或多种应用程序的一部分。另外,被描述为由图12中所示的任意程序模块支持的任何功能可至少部分地在任意数量的设备上的硬件和/或固件中实现。
还应当认识到,在不脱离本公开的范围的情况下,服务器1200可包括所描述或示出的那些硬件、软件或固件组件之外的另选的和/或另外的硬件、软件或固件组件。更具体地,应当认识到,被示出为形成服务器1200的一部分的软件、固件或硬件组件仅为例示性的,并且在各种实施方案中,其中一些组件可以不存在或可以提供另外的组件。虽然各种例示性程序模块已被示出或描述为存储于数据存储器1210中的软件模块,但是应当认识到,被描述为由程序模块支持的功能可以由硬件、软件或固件的任何组合实现。还应当认识到,在各种实施方案中,上述模块中的每个模块表示所支持的功能的逻辑划分。该逻辑划分是为了便于解释功能而示出的,可能并不表示用于实现功能的软件、硬件和/或固件的结构。因此,应当认识到,在各种实施方案中,被描述为由特定模块提供的功能可至少部分地由一种或多种其它模块提供。另外,在某些实施方案中,可以不存在一种或多种所示出的模块,而在其它实施方案中,可以存在未示出的附加模块,并且可支持所述的功能和/或附加功能中的至少一部分。此外,虽然某些模块可以被示出并且描述为另一个模块的子模块,但是在某些实施方案中,此类模块可以提供为独立模块或作为其它模块的子模块。
方法600-700中的一个或多个操作可以由服务器1200的一个或多个组件来执行,或更具体地,由此类服务器1200上运行的一个或多个程序模块来执行。然而,应当认识到,方法600-700中的任何操作可以至少部分地以分布式方式由一个或多个其它设备或系统来执行,或更具体地,由此类设备上运行的一个或多个程序模块、应用程序等来执行。另外,应当认识到,响应于作为应用程序、程序模块等的一部分而提供的计算机可执行指令的执行而执行的处理在本文中可互换地被描述为由应用程序或程序模块本身执行或由其上执行应用程序、程序模块等的设备执行。虽然600-700方法中的任一项的操作可以在例示性服务器1200的上下文中进行描述,但是应当认识到,此类操作可以结合许多其它系统配置来实现。
在图6-7的例示性方法中描述和示出的操作可按照本发明的各种示例性实施例中所期望的任何合适的顺序来进行或执行。另外,在某些示例性实施例中,至少一部分操作可以并行进行。另外,在某些示例性实施例中,可执行少于、多于或不同于如图6-7所示的那些操作。
尽管本文描述了具体实施方案,但是本领域中的普通技术人员将认识到,许多其它修改或另选的实施方案同样处于本发明的范围内。例如,结合特定设备或组件描述的功能和/或处理能力中的任一项可以由任何其它设备或部件来执行。另外,虽然已根据本发明的实施方案描述了各种例示性具体实施和架构,但是本领域中的普通技术人员将认识到,对本文所述的例示性具体实施和架构的许多其它修改也处于本发明的范围内。
上文参考根据示例性实施例所述的系统、方法、装置和/或计算机程序产品的框图和流程图描述了本公开的某些方面。应当理解,框图和流程图中的一个或多个块以及框图和流程图中的块的组合可分别通过执行计算机可执行程序指令来实现。同样,根据一些实施方案,框图和流程图中的一些块可能无需按示出的顺序执行,或者可以无需全部执行。另外,超出框图和流程图中的块所示的那些部件和/或操作以外的附加部件和/或操作可存在于某些实施方案中。
因此,框图和流程图中的块支持用于执行指定功能的装置的组合、用于执行指定功能的元件或步骤的组合以及用于执行指定功能的程序指令装置。还应当理解,框图和流程图中的每个块以及框图和流程图中的块的组合可以由执行特定功能、元件或步骤的专用硬件计算机系统或者专用硬件和计算机指令的组合来实现。
本文所述的程序模块、应用程序等可包括一个或多个软件组件,包括例如软件对象、方法、数据结构等。每个此类软件组件可包括计算机可执行指令,所述计算机可执行指令响应于执行而使本文所述的功能的至少一部分(例如,本文所述的例示性方法的一种或多种操作)被执行。
软件组件可以用各种编程语言中的任一种来编码。一种例示性编程语言可以为低级编程语言,诸如与特定硬件体系结构和/或操作系统平台相关联的汇编语言。包括汇编语言指令的软件组件可能需要在由硬件架构和/或平台执行之前由汇编程序转换为可执行的机器代码。
另一种示例性编程语言可以为更高级的编程语言,其可以跨多种架构移植。包括更高级编程语言的软件组件在执行之前可能需要由解释器或编译器转换为中间表示。
编程语言的其它示例包括但不限于宏语言、外壳或命令语言、作业控制语言、脚本语言、数据库查询或搜索语言、或报告编写语言。在一个或多个示例性实施例中,包含上述编程语言示例中的一者的指令的软件组件可直接由操作系统或其它软件组件执行,而无需首先转换成另一种形式。
软件组件可存储为文件或其它数据存储构造。具有相似类型或相关功能的软件组件可一起存储在诸如特定的目录、文件夹或库中。软件组件可为静态的(例如,预设的或固定的)或动态的(例如,在执行时创建或修改的)。
软件组件可通过各种机制调用其它软件组件或被其它软件组件调用。被调用或调用的软件组件可包括其它定制开发的应用软件、操作系统功能(例如,设备驱动程序、数据存储器(例如,文件管理)例程、其它常用例程和服务等)或第三方软件组件(例如,中间件、加密或其它安全软件、数据库管理软件、文件传输或其它网络通信软件、数学或统计软件、图像处理软件和格式转换软件)。
与特定解决方案或系统相关联的软件组件可驻留在单个平台上并且在单个平台上执行,或者可以跨多个平台分布。所述多个平台可与多于一家硬件供应商、底层芯片技术或操作系统相关联。此外,与特定解决方案或系统相关联的软件组件最初可以用一种或多种编程语言编写,但是可以调用由另一种编程语言编写的软件组件。
计算机可执行程序指令可以被加载到专用计算机或其它特定机器、处理器或其它可编程数据处理装置上以得到特定的机器,使得在计算机、处理器或其它可编程数据处理装置上执行指令,从而执行流程图中指定的一种或多种功能或操作。那些计算机程序指令也可存储在计算机可读存储介质(CRSM)中,该计算机可读存储介质在执行时可指示计算机或其它可编程数据处理装置以特定的方式运行,使得存储在计算机可读存储介质中的指令产生包括实现流程图中指定的一种或多种功能或操作的指令手段的制品。计算机程序指令也可以被加载到计算机或其它可编程数据处理装置上,以使得在计算机或其它可编程数据处理装置上执行一系列运算元素或步骤以产生由计算机实现的处理。
可存在于本文所述的任意设备中的其它类型的CRSM可包括但不限于:可编程随机存取存储器(PRAM)、SRAM、DRAM、RAM、ROM、电可擦除可编程只读存储器(EEPROM)、闪存或其它存储器技术、光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其它光存储器、磁带盒、磁带、磁盘存储器或其它磁存储设备或任何其它可用于存储信息并可被访问的介质。上述介质的任意组合也包括在CRSM的范围内。另选地,计算机可读通信介质(CRCM)可包括计算机可读指令、程序模块或在数据信号诸如载波或其它传输手段内传输的其它数据。然而,如本文所述,CRSM不包括CRCM。
尽管在语言上针对结构特征和/或方法步骤阐述了实施方案,但是应当理解,本发明不一定限于所述的具体特征或步骤。相反,本发明所公开的具体特征和步骤仅作为实现实施方案的例示性形式。除非另外特别说明,否则条件措词,诸如“能够”、“可”、“可能”或“可以”等在其所用的上下文中应当被理解为通常旨在表达某些实施方案可以包括而其它实施方案不包括某些特征、元素和/或步骤。因此,此类条件性措辞通常并非旨在以任意方式暗示对一个或多个实施方案而言这些特征、元素和/或步骤是必需的,或者按时一个或多个实施方案必然包含在有无用户输入或提示的情况下决定这些特征、元素和/或步骤是否包括在任何特定实施方案中或将由任何特定实施方案执行的逻辑。

Claims (20)

1.一种方法,包括:
确定与优化问题相关联的变量集合;
确定与所述优化问题相关联的函数,其中所述函数至少部分地基于所述变量集合进行优化;
确定所述优化问题的初始解,其中确定所述初始解包括确定所述变量集合的初始值集合,以及至少部分地基于所述初始值集合确定所述函数的初始值;
确定与所述初始解关联的解的邻域;
从所述解的邻域中选择第一解作为所述优化问题的当前解;
至少部分地基于所述当前解确定所述优化问题的一个或多个补充解,其中所述至少第一解由第一图形处理单元(GPU)确定并且至少第二解由不同于所述第一GPU的第二GPU确定,并且其中所述确定进一步包括为经由第一GPU的确定分配所述第一解,以及为经由第二GPU的确定分配所述第二解;
将所述一个或多个补充解包括在精英解集合中;并且
确定所述精英解集合中的第二解为所述优化问题的最终解,其中确定所述第二解为最终解包括:
确定所述变量集合的最终值集合,所述最终值集合与所述第二解关联;
至少部分地基于所述最终值集合确定所述函数的最终值;以及
确定所述函数的所述最终值优化了所述精英解集合中的每个解的所述函数。
2.根据权利要求1所述的方法,其中确定所述一个或多个补充解包括:
确定与所述第一解关联的解的第二邻域;
选择所述一个或多个补充解中的第一补充解作为新的当前解;并且
至少部分地基于所述第一补充解确定所述第二解。
3.根据权利要求2所述的方法,其中确定所述解的第二邻域包括确定所述解的第二邻域中的每个解保留了所述第一解的一种或多种特性。
4.根据权利要求3所述的方法,其中所述第一解表示为排列,并且其中所述第一解的所述一种或多种特性包括所述排列或所述排列的子路径的循环结构中的至少一者。
5.根据权利要求1所述的方法,进一步包括:
接收承运人的一个或多个承运人约束条件,其中所述承运人被配置为运输一个或多个车辆;
接收与可由所述承运人运输的一个或多个车辆关联的一种或多种车辆属性;
至少部分地基于所述一个或多个承运人约束条件确定一个或多个最优解集合,以及至少部分地基于确定所述函数的所述最终值优化了所述精英解集合中的每个解的所述函数来确定所述一种或多种车辆属性;以及
向用户设备提供所述一个或多个最优解集合。
6.根据权利要求5所述的方法,进一步包括:
接收来自用户设备的对所述最优解的改动,其中改动包括添加、删除、接受、交易、交换、拒绝和修改包含在所述一个或多个最优解集合中的所述一个或多个车辆中的至少一者。
7.根据权利要求5所述的方法,其中可由所述承运人运输的所述一个或多个车辆中的每者与优化路段关联,所述优化路段用于将每个相应车辆从取货地点运输至交货地点。
8.根据权利要求5所述的方法,进一步包括:
将所选择的最优解集合分配至所述承运人;
为所述承运人生成计划表以运输包括在所选择的最优解集合中的每个车辆;以及
提供用于调度包括在所选择的最优解集合中的每个车辆的指令,以由所述承运人按照所述计划表进行运输。
9.根据权利要求5所述的方法,其中所述一个或多个最优解集合通过无线网络经由在线市场列表提供给用户设备进行选择。
10.一种方法,包括:
将与优化问题关联的解空间分割成多个单元,其中每个单元包括所述解空间的相应的不相交子集;
选择所述多个单元中的第一单元;
将所述第一单元分割成多个子单元;
为所述多个子单元中的每者确定所述优化问题的相应的初始解;
为所述多个子单元中的每者启动相应的处理线程;以及
至少部分地并行执行每个相应的处理线程,其中执行每个相应的处理线程包括使用与所述多个子单元中所述对应的子单元关联的所述相应的初始解来确定相应的所述优化问题的精英解。
11.根据权利要求10所述的方法,进一步包括:
确定横贯单元遍历;
确定由每个相应的处理线程执行的处理应当使所述多个子单元中的所述第一单元与第二单元多样化;以及
至少部分地基于所述横贯单元遍历选择所述第二单元。
12.根据权利要求10所述的方法,进一步包括:
确定已执行阈值数量的处理迭代;以及
选择特定的精英解作为所述优化问题的最终解。
13.一种系统,包括:
中央处理单元(CPU);
图形处理单元(GPU),所述图形处理单元包括多个算术逻辑单元(ALU);
至少一个存储器,所述至少一个存储器存储计算机可执行指令;以及
一条或多条总线,所述一条或多条总线可操作地耦接所述CPU、GPU和至少一个存储器;
其中所述CPU被配置为经由所述一条或多条总线中的至少一条总线访问所述至少一个存储器并且执行计算机可执行指令以:
将与优化问题关联的解空间分割成多个单元,其中每个单元包括所述解空间的相应的不相交子集;并且
使所述GPU启动相应的GPU线程以处理所述多个单元中对应的单元,其中每个相应的GPU线程利用所述多个ALU中对应的ALU处理所述对应的单元以确定所述优化问题的相应的解。
14.根据权利要求13所述的系统,其中所述CPU被进一步配置为执行所述计算机可执行指令以:
启动所述至少一个存储器上的多个内核,其中每个内核与对应的相应GPU线程关联。
15.根据权利要求13所述的系统,其中所述多个单元为第一多个单元,并且其中所述CPU被进一步配置为执行所述计算机可执行指令以:
至少部分地基于由每个相应的GPU线程确定的所述优化问题的所述相应的解,将所述解空间分割成不同于所述第一多个单元的第二多个单元。
16.根据权利要求13所述的系统,其中所述指令进一步包括:
接收承运人的一个或多个承运人约束条件,其中所述承运人被配置为运输一个或多个车辆;
接收与可由所述承运人运输的一个或多个车辆关联的一种或多种车辆属性;
至少部分地基于所述一个或多个承运人约束条件确定一个或多个最优解集合,以及至少部分地基于所述多个单元的所述处理确定所述一种或多种车辆属性;以及
向用户设备提供所述一个或多个最优解集合。
17.根据权利要求16所述的系统,其中所述指令进一步包括:
接收来自用户设备的对所述最优解的改动,其中改动包括添加、删除、接受、交易、交换、拒绝和修改包含在所述一个或多个最优解集合中的所述一个或多个车辆中的至少一者。
18.根据权利要求16所述的方法,其中可由所述承运人运输的所述一个或多个车辆中的每者与优化路段关联,所述优化路段用于将每个相应车辆从取货地点运输至交货地点。
19.根据权利要求16所述的方法,其中所述指令进一步包括:
将所选择的最优解集合分配至所述承运人;
为所述承运人生成计划表以运输包括在所选择的最优解集合中的每个车辆;以及
提供用于调度包括在所选择的最优解集合中的每个车辆的指令,以由所述承运人按照所述计划表进行运输。
20.根据权利要求16所述的方法,其中所述一个或多个最优解集合通过无线网络经由在线市场列表提供给用户设备进行选择。
CN201680029888.9A 2015-05-15 2016-05-13 用于解空间分割的并行处理 Pending CN107851024A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562162069P 2015-05-15 2015-05-15
US62/162,069 2015-05-15
US201562237425P 2015-10-05 2015-10-05
US62/237,425 2015-10-05
PCT/US2016/032463 WO2016187043A1 (en) 2015-05-15 2016-05-13 Parallel processing for solution space partitions

Publications (1)

Publication Number Publication Date
CN107851024A true CN107851024A (zh) 2018-03-27

Family

ID=57277564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680029888.9A Pending CN107851024A (zh) 2015-05-15 2016-05-13 用于解空间分割的并行处理

Country Status (6)

Country Link
US (2) US20160335568A1 (zh)
EP (1) EP3295301A4 (zh)
CN (1) CN107851024A (zh)
AU (1) AU2016265691A1 (zh)
CA (1) CA2985643A1 (zh)
WO (1) WO2016187043A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108764740A (zh) * 2018-06-01 2018-11-06 上海西井信息科技有限公司 自动化码头的车队调度方法、系统、设备及存储介质
CN110390413A (zh) * 2018-04-17 2019-10-29 菜鸟智能物流控股有限公司 组合优化问题的处理方法和装置
CN113010316A (zh) * 2021-03-29 2021-06-22 华南理工大学 一种基于云计算的多目标群智能算法并行优化方法
CN115952944A (zh) * 2023-03-15 2023-04-11 南京邮电大学 一种考虑装卸约束的多车厢点对点取送货路径规划方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10395333B2 (en) * 2016-06-07 2019-08-27 Uber Technologies, Inc. Hierarchical selection process
US11157866B2 (en) * 2016-10-27 2021-10-26 International Business Machines Corporation Intelligent package delivery
CN107392358B (zh) * 2017-06-30 2021-07-23 上海汽车集团股份有限公司 一种车辆分配方法及装置
US10509654B2 (en) 2017-08-09 2019-12-17 Red Hat, Inc. Multi-threaded constraint satisfaction solver
CN107392402B (zh) * 2017-09-11 2018-08-31 合肥工业大学 基于改进禁忌搜索算法的生产运输协同调度方法及系统
US11373249B1 (en) 2017-09-27 2022-06-28 State Farm Mutual Automobile Insurance Company Automobile monitoring systems and methods for detecting damage and other conditions
CA3036879A1 (en) * 2018-03-16 2019-09-16 Feng Pan Integrated solution techniques for security constrained unit commitment problem
CN110837395B (zh) * 2018-08-17 2022-03-25 北京图森智途科技有限公司 多gpu并行训练的归一化处理方法、装置和系统
JP7063211B2 (ja) * 2018-09-19 2022-05-09 富士通株式会社 最適化問題演算プログラム、最適化問題演算方法および最適化問題演算装置
CN109800910B (zh) * 2019-01-10 2021-04-06 浙江工业大学 一种基于禁忌搜索的超启发式算法的车辆路径优化方法
EP3716162A1 (en) * 2019-03-29 2020-09-30 Bayerische Motoren Werke Aktiengesellschaft Neural-network-based dynamic matching
CN110909444B (zh) * 2019-10-15 2021-06-25 北京交通大学 一种高铁牵引供电调度仿真培训系统
JP7513868B2 (ja) * 2020-03-11 2024-07-10 富士通株式会社 情報処理システム、情報処理方法およびプログラム
JP2022125725A (ja) 2021-02-17 2022-08-29 富士通株式会社 情報処理システム、情報処理方法及びプログラム
JP7331883B2 (ja) * 2021-04-23 2023-08-23 株式会社ダイフク 物品搬送設備、経路設定方法、及び経路設定プログラム
CN115168281B (zh) * 2022-09-09 2023-01-03 之江实验室 一种基于禁忌搜索算法的神经网络片上映射方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117441A (zh) * 2010-11-29 2011-07-06 中山大学 基于离散粒子群优化算法的智能物流配送
CN102307357A (zh) * 2011-08-25 2012-01-04 中兴通讯股份有限公司 一种网络规划方法及系统
CN102798394A (zh) * 2011-05-26 2012-11-28 上海博泰悦臻电子设备制造有限公司 路径规划方法及系统
CN104156788A (zh) * 2014-08-20 2014-11-19 国家电网公司 一种基于禁忌搜索算法的配网资源抢修优化调度方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5122959A (en) 1988-10-28 1992-06-16 Automated Dispatch Services, Inc. Transportation dispatch and delivery tracking system
AU2001245384A1 (en) 2000-02-29 2001-09-12 United Parcel Service Of America, Inc. Delivery system and method for vehicles and the like
US20020143646A1 (en) 2000-10-27 2002-10-03 Boyden Adam Gilbert Method and system for a full-service electronic auction using a computer
GB0407260D0 (en) * 2004-03-31 2004-05-05 Ibm Accelerated solution of constraint satisfaction problems by partioning of the variable space
US7689528B2 (en) * 2004-07-09 2010-03-30 Fair Isaac Corporation Method and apparatus for a scalable algorithm for decision optimization
WO2006135784A2 (en) * 2005-06-09 2006-12-21 Emercent Solutions, Llc Systems and methods for facilitating product and service transactions
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US20080021756A1 (en) 2006-07-12 2008-01-24 Partha Kesavan Integrated supply chain business model and website for free auto rental
US20080077464A1 (en) 2006-09-22 2008-03-27 Sap Ag Vehicle scheduling and routing with trailers
US20080312885A1 (en) 2007-06-12 2008-12-18 Justsystems Evans Research, Inc. Hybrid method for simulation optimization
US8069446B2 (en) 2009-04-03 2011-11-29 Microsoft Corporation Parallel programming and execution systems and techniques
WO2011002451A1 (en) 2009-06-30 2011-01-06 Hewlett-Packard Development Company, L.P. Optimizing file block communications in a virtual distributed file system
US9026478B2 (en) * 2009-12-04 2015-05-05 The Mathworks, Inc. Framework for finding one or more solutions to a problem
US8489526B2 (en) 2010-11-24 2013-07-16 International Business Machines Corporation Controlling quarantining and biasing in cataclysms for optimization simulations
JP2015501057A (ja) 2011-12-22 2015-01-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 最適解の混合
US10740430B2 (en) 2012-11-27 2020-08-11 Autodesk, Inc. Analytics-driven global optimization strategy selection and refinement
US20140214373A1 (en) * 2013-01-30 2014-07-31 The Mathworks, Inc. Framework for solving trajectory optimization problems
US9902343B2 (en) 2013-07-31 2018-02-27 Driverdo Llc Digital vehicle tag and method of integration in vehicle allocation system
FI20135946L (fi) * 2013-09-23 2015-03-24 Procomp Solutions Oy Rinnakkainen ratkaisun muodostaminen
CN103617088B (zh) 2013-11-29 2018-07-24 深圳中微电科技有限公司 在不同类型线程中分配内核资源的方法、装置及其处理器
JP5954750B2 (ja) 2014-06-30 2016-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、情報処理方法、及びプログラム
CN104123178B (zh) 2014-07-25 2017-05-17 南京大学 基于图形处理器的并行化约束检测方法
CN107077642B (zh) 2014-08-22 2021-04-06 D-波系统公司 可用于量子计算的用于求解问题的系统和方法
US10282694B2 (en) 2015-02-18 2019-05-07 Cargo Chief Acquisition Inc. Partial load shipment consolidation and scheduling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117441A (zh) * 2010-11-29 2011-07-06 中山大学 基于离散粒子群优化算法的智能物流配送
CN102798394A (zh) * 2011-05-26 2012-11-28 上海博泰悦臻电子设备制造有限公司 路径规划方法及系统
CN102307357A (zh) * 2011-08-25 2012-01-04 中兴通讯股份有限公司 一种网络规划方法及系统
CN104156788A (zh) * 2014-08-20 2014-11-19 国家电网公司 一种基于禁忌搜索算法的配网资源抢修优化调度方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CÉSAR REGO 等: "《Metaheuristic Optimization via Memory and Evolution Tabu Search and Scatter Search》", 31 December 2005 *
JIANXUN TANG 等: "《Solution method for the location planning problem of logistics park witii variable Capacity》", 《COMPUTERS &OPERATIONS RESEARCH》 *
贺一: "《禁忌搜索及其并行化研究》", 《中国优秀博硕士学位论文全文数据库 (博士) 哲学与人文科学辑》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110390413A (zh) * 2018-04-17 2019-10-29 菜鸟智能物流控股有限公司 组合优化问题的处理方法和装置
CN110390413B (zh) * 2018-04-17 2024-04-16 菜鸟智能物流控股有限公司 组合优化问题的处理方法和装置
CN108764740A (zh) * 2018-06-01 2018-11-06 上海西井信息科技有限公司 自动化码头的车队调度方法、系统、设备及存储介质
CN113010316A (zh) * 2021-03-29 2021-06-22 华南理工大学 一种基于云计算的多目标群智能算法并行优化方法
CN113010316B (zh) * 2021-03-29 2023-03-21 华南理工大学 一种基于云计算的多目标群智能算法并行优化方法
CN115952944A (zh) * 2023-03-15 2023-04-11 南京邮电大学 一种考虑装卸约束的多车厢点对点取送货路径规划方法
CN115952944B (zh) * 2023-03-15 2023-08-15 南京邮电大学 一种考虑装卸约束的多车厢点对点取送货路径规划方法

Also Published As

Publication number Publication date
US11416787B2 (en) 2022-08-16
EP3295301A1 (en) 2018-03-21
AU2016265691A1 (en) 2017-12-21
CA2985643A1 (en) 2016-11-24
WO2016187043A1 (en) 2016-11-24
US20190295009A1 (en) 2019-09-26
EP3295301A4 (en) 2018-10-31
US20160335568A1 (en) 2016-11-17

Similar Documents

Publication Publication Date Title
CN107851024A (zh) 用于解空间分割的并行处理
Lin et al. Last-mile delivery: Optimal locker location under multinomial logit choice model
CN108604216A (zh) 用于解空间分区的并行处理
Khmeleva et al. Fuzzy-logic controlled genetic algorithm for the rail-freight crew-scheduling problem
Dkhil et al. Multi-objective optimization of the integrated problem of location assignment and straddle carrier scheduling in maritime container terminal at import
Yang et al. Multiple equipment integrated scheduling and storage space allocation in rail–water intermodal container terminals considering energy efficiency
Chen et al. Multiple yard cranes scheduling for loading operations in a container terminal
Papageorgiou et al. Recent progress using matheuristics for strategic maritime inventory routing
Küçükoğlu et al. A hybrid meta-heuristic algorithm for vehicle routing and packing problem with cross-docking
Cui Intelligent coordination distribution of the whole supply chain based on the internet of things
Makarova et al. Features of logistic terminal complexes functioning in the transition to the circular economy and digitalization
Yan et al. Integrated scheduling of rail-mounted gantry cranes, internal trucks and reach stackers in railway operation area of container terminal
Xu et al. Analysis on the location of green logistics park based on heuristic algorithm
Zhang et al. Hybrid evolutionary optimization for takeaway order selection and delivery path planning utilizing habit data
Chen et al. The paired many-to-many pickup and delivery problem: an application
Gao et al. Scheduling of yard truck considering loading and unloading simultaneously in an underground container logistics system
Wang et al. Rail mounted gantry crane scheduling in rail–truck transshipment terminal
Alizadeh et al. Dynamic p+ q maximal hub location problem for freight transportation planning with rational markets
Guan et al. Fleet routing and scheduling problem based on constraints of chance
Dong et al. Solving steel coil ship stowage-planning problem using hybrid differential evolution
Shi et al. Optimization of transport network in the Basin of Yangtze River with minimization of environmental emission and transport/investment costs
Aman et al. Determining optimal production plant location and vehicle route in upstream supply chain network for date sap processing industry
Tadaros et al. A variable neighborhood search approach for solving a real-world hierarchical multi-echelon vehicle routing problem involving HCT vehicles
Sangeeta Simultaneously pickup and delivery MDVRP with multi objective GA
Fereidoonian et al. A timely efficient and emissions-aware multiobjective truck-sharing integrated scheduling model in container terminals

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180327

WD01 Invention patent application deemed withdrawn after publication