CN112070829B - 任务图像中任务节点位置的确定方法、装置及电子设备 - Google Patents

任务图像中任务节点位置的确定方法、装置及电子设备 Download PDF

Info

Publication number
CN112070829B
CN112070829B CN202010933865.9A CN202010933865A CN112070829B CN 112070829 B CN112070829 B CN 112070829B CN 202010933865 A CN202010933865 A CN 202010933865A CN 112070829 B CN112070829 B CN 112070829B
Authority
CN
China
Prior art keywords
task
node
image
nodes
track
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.)
Active
Application number
CN202010933865.9A
Other languages
English (en)
Other versions
CN112070829A (zh
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.)
Hangzhou Hikvision System Technology Co Ltd
Original Assignee
Hangzhou Hikvision System 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 Hangzhou Hikvision System Technology Co Ltd filed Critical Hangzhou Hikvision System Technology Co Ltd
Priority to CN202010933865.9A priority Critical patent/CN112070829B/zh
Publication of CN112070829A publication Critical patent/CN112070829A/zh
Application granted granted Critical
Publication of CN112070829B publication Critical patent/CN112070829B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

本发明实施例提供了一种任务图像中任务节点位置的确定方法、装置及电子设备,其中,方法包括:确定按序执行的任务节点组成的各任务执行轨迹;按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置。布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在中心轴两侧依次布局其他各任务执行轨迹。无需经过复杂的节点迭代和排序过程,在确定出按序执行的任务节点组成的各任务执行轨迹后,按照设定好的布局方式,可以计算出各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置,确定任务图像中任务节点位置的复杂度明显降低。

Description

任务图像中任务节点位置的确定方法、装置及电子设备
技术领域
本发明涉及计算机技术领域,特别是涉及一种任务图像中任务节点位置的确定方法、装置及电子设备。
背景技术
在多任务执行的场景下,多个任务之间具有一定的执行顺序,为了获知多个任务的执行顺序,掌握整个任务执行的逻辑和执行情况,用户希望能够通过对任务图像进行观察,直接从任务图像中得知多个任务的执行顺序。任务图像是一种有向无环图,该图中的节点代表各个任务、边代表任务的执行顺序。
在传统的任务图像生成方法中,通常采用baryCenter算法,该算法首先对各任务进行层级分配,生成多层级的有向无环图,把多层级的有向无环图分成一个个的双层图,两层两层的进行排序。针对某一层,这一层每个节点都会根据其关联的上一层节点的位置分配一个权重,然后这一层的节点会根据这个权重进行排序。在排序之后,按照从上层到下层、从右向左的顺序不断进行迭代计算,以改进上述排序结果,直到找到一个满足的解时停止迭代,得到最终的排序结果。根据排序结果,确定节点的层号和层内序号,然后在有向无环图中,采用在垂直方向或者水平方向按序号递增的方式分别分配各节点的纵坐标和横坐标,生成任务图像。
可见,上述算法中,确定任务图像中任务节点位置的过程非常复杂,导致生成任务图像的速度很慢。因此,降低确定任务图像中任务节点位置的复杂度,成为提高任务图像显示效率的关键。
发明内容
本发明实施例的目的在于提供一种任务图像中任务节点位置的确定方法、装置及电子设备,以降低确定任务图像中任务节点位置的复杂度。具体技术方案如下:
第一方面,本发明实施例提供了一种任务图像中任务节点位置的确定方法,该方法包括:
确定按序执行的任务节点组成的各任务执行轨迹;
按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置;其中,布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在中心轴两侧依次布局其他各任务执行轨迹。
可选的,确定按序执行的任务节点组成的各任务执行轨迹的步骤,包括:
遍历用于表征执行顺序的任务数据,生成二维数组,其中,二维数组的每一行用于按照执行顺序记录组成一条任务执行轨迹的各任务节点的节点标识,各任务节点的节点标识按照执行顺序排列;
基于二维数组的各行数据,确定按序执行的任务节点组成的各任务执行轨迹。
可选的,遍历用于表征执行顺序的任务数据,生成二维数组的步骤,包括:
遍历用于表征执行顺序的任务数据,若任务数据中先后执行的两个任务节点的节点标识在二维数组中均未记录过,则将该先后执行的两个任务节点的节点标识记录至二维数组中新的一行;
遍历用于表征执行顺序的任务数据,针对二维数组中的任一行,执行如下步骤:
若该行记录的末位节点标识是任务数据中先后执行的两个任务节点中起始节点的节点标识,则将该两个任务节点中终止节点的节点标识添加至该行的位节点标识的后一位;
若该行记录的首位节点标识是任务数据中先后执行的两个任务节点中终止节点的节点标识,则将该两个任务节点中起始节点的节点标识添加至该行的首位节点标识的前一位;
若该行记录的一中间节点标识是任务数据中先后执行的两个任务节点中起始节点的节点标识、且任务数据中包括该起始节点的至少两个终止节点,则将位于该中间节点标识之前的各节点标识、该中间节点标识和该起始节点的任一未记录过的终止节点的节点标识,按序记录至二维数组中新的一行。
可选的,按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置的步骤,包括:
针对任一任务节点,按照预设的布局方式,根据二维数组的总行数、特定行记录节点标识的总个数、特定行的行号以及该任务节点的节点标识在特定行中的列号,计算该任务节点在任务图像中的节点坐标,作为该任务节点在任务图像中的位置,其中,特定行是二维数组中记录该任务节点的节点标识的一行。
可选的,二维数组中各行按照记录的节点标识的数目升序或降序排列;
针对任一任务节点,按照预设的布局方式,根据二维数组的总行数、特定行记录节点标识的总个数、特定行的行号以及该任务节点的节点标识在特定行中的列号,计算该任务节点在任务图像中的节点坐标,作为该任务节点在所述任务图像中的位置的步骤,包括:
针对任一任务节点,根据特定行记录节点标识的总个数,计算分割段数目,其中,分割段数目为特定行记录节点标识的总个数减1,分割段表示任务图像中一条任务执行轨迹上两个相邻任务节点间的距离;
根据该任务节点的节点标识在特定行中的列号、预设的该任务节点对应分割段的分割比例及分割段数目,计算该任务节点在任务图像中的横坐标;
根据二维数组的总行数,计算轨迹布局段数目,其中,轨迹布局段数目为二维数组的总行数减1,轨迹布局段表示任务图像中相邻两条任务执行轨迹间的距离;
根据特定行的行号、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标;
将该任务节点在任务图像中的横坐标和纵坐标,作为该任务节点在任务图像中的位置。
可选的,二维数组的总行数为奇数;
根据特定行的行号、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标的步骤,包括:
若特定行的行号为0,则该任务节点在任务图像中的纵坐标为预设的中心轴纵坐标;
若特定行的行号为奇数,则根据特定行的行号、中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第一纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第一纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5-(1/(L-1))*(x/2+0.5)),其中,yp为该任务节点在任务图像中的纵坐标,1/n为特定行记录任务执行轨迹对应轨迹布局段的划分比例,y0为中心轴纵坐标,L-1为轨迹布局段数目,L为二维数组的总行数,x为特定行的行号;
若特定行的行号为偶数,则根据特定行的行号、中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第二纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第二纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5+(1/(L-1))*(x/2))。
可选的,二维数组的总行数为偶数;
根据特定行的行号、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标的步骤,包括:
若特定行的行号为奇数,则根据特定行的行号、预设的中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第三纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第三纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5-(1/(L-1))*(x/2-0.5)-0.5*1/(L-1)),其中,yp为该任务节点在任务图像中的纵坐标,1/n为特定行记录任务执行轨迹对应轨迹布局段的划分比例,y0为中心轴纵坐标,L-1为轨迹布局段数目,L为二维数组的总行数,x为特定行的行号;
若特定行的行号为偶数,则根据特定行的行号、中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第四纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第四纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5+(1/(L-1))*(x/2)+0.5*1/(L-1))。
可选的,该方法还包括:
若计算得到任一任务节点在任务图像中的节点坐标为多个,则仅保留基于中心轴计算得到的该任务节点在任务图像中的节点坐标,作为该任务节点在任务图像中的位置。
可选的,在按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置之后,该方法还包括:
根据各任务节点在任务图像中的位置,在任务图像中相应的设置所述各任务节点,并按照各任务执行轨迹中任务节点的执行顺序,对各任务节点进行有向连线;
显示任务图像。
第二方面,本发明实施例提供了一种任务图像中任务节点位置的确定装置,该装置包括:
轨迹确定模块,用于确定按序执行的任务节点组成的各任务执行轨迹;
计算模块,用于按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置;其中,布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在中心轴两侧依次布局其他各任务执行轨迹。
可选的,轨迹确定模块,具体用于:
遍历用于表征执行顺序的任务数据,生成二维数组,其中,二维数组的每一行用于按照执行顺序记录组成一条任务执行轨迹的各任务节点的节点标识,各任务节点的节点标识按照执行顺序排列;
基于二维数组的各行数据,确定按序执行的任务节点组成的各任务执行轨迹。
可选的,确定模块在用于遍历用于表征执行顺序的任务数据,生成二维数组时,具体用于:
遍历用于表征执行顺序的任务数据,若任务数据中先后执行的两个任务节点的节点标识在二维数组中均未记录过,则将该先后执行的两个任务节点的节点标识记录至二维数组中新的一行;
遍历用于表征执行顺序的任务数据,针对二维数组中的任一行,执行如下步骤:
若该行记录的末位节点标识是任务数据中先后执行的两个任务节点中起始节点的节点标识,则将该两个任务节点中终止节点的节点标识添加至该行的位节点标识的后一位;
若该行记录的首位节点标识是任务数据中先后执行的两个任务节点中终止节点的节点标识,则将该两个任务节点中起始节点的节点标识添加至该行的首位节点标识的前一位;
若该行记录的一中间节点标识是任务数据中先后执行的两个任务节点中起始节点的节点标识、且任务数据中包括该起始节点的至少两个终止节点,则将位于该中间节点标识之前的各节点标识、该中间节点标识和该起始节点的任一未记录过的终止节点的节点标识,按序记录至二维数组中新的一行。
可选的,计算模块,具体用于:
针对任一任务节点,按照预设的布局方式,根据二维数组的总行数、特定行记录节点标识的总个数、特定行的行号以及该任务节点的节点标识在特定行中的列号,计算该任务节点在任务图像中的节点坐标,作为该任务节点在任务图像中的位置,其中,特定行是二维数组中记录该任务节点的节点标识的一行。
可选的,二维数组中各行按照记录的节点标识的数目升序或降序排列;
计算模块,具体用于:
针对任一任务节点,根据特定行记录节点标识的总个数,计算分割段数目,其中,分割段数目为特定行记录节点标识的总个数减1,分割段表示任务图像中一条任务执行轨迹上两个相邻任务节点间的距离;
根据该任务节点的节点标识在特定行中的列号、预设的该任务节点对应分割段的分割比例及分割段数目,计算该任务节点在任务图像中的横坐标;
根据二维数组的总行数,计算轨迹布局段数目,其中,轨迹布局段数目为二维数组的总行数减1,轨迹布局段表示任务图像中相邻两条任务执行轨迹间的距离;
根据特定行的行号、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标;
将该任务节点在任务图像中的横坐标和纵坐标,作为该任务节点在任务图像中的位置。
可选的,二维数组的总行数为奇数;
计算模块在用于根据特定行的行号、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标时,具体用于:
若特定行的行号为0,则该任务节点在任务图像中的纵坐标为预设的中心轴纵坐标;
若特定行的行号为奇数,则根据特定行的行号、中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第一纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第一纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5-(1/(L-1))*(x/2+0.5)),其中,yp为该任务节点在任务图像中的纵坐标,1/n为特定行记录任务执行轨迹对应轨迹布局段的划分比例,y0为中心轴纵坐标,L-1为轨迹布局段数目,L为二维数组的总行数,x为特定行的行号;
若特定行的行号为偶数,则根据特定行的行号、中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第二纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第二纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5+(1/(L-1))*(x/2))。
可选的,二维数组的总行数为偶数;
计算模块在用于根据特定行的行号、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标时,具体用于:
若特定行的行号为奇数,则根据特定行的行号、预设的中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第三纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第三纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5-(1/(L-1))*(x/2-0.5)-0.5*1/(L-1)),其中,yp为该任务节点在任务图像中的纵坐标,1/n为特定行记录任务执行轨迹对应轨迹布局段的划分比例,y0为中心轴纵坐标,L-1为轨迹布局段数目,L为二维数组的总行数,x为特定行的行号;
若特定行的行号为偶数,则根据特定行的行号、中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第四纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第四纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5+(1/(L-1))*(x/2)+0.5*1/(L-1))。
可选的,计算模块,还用于:
若计算得到任一任务节点在任务图像中的节点坐标为多个,则仅保留基于中心轴计算得到的该任务节点在任务图像中的节点坐标,作为该任务节点在任务图像中的位置。
可选的,该装置还包括:
设置模块,用于根据各任务节点在任务图像中的位置,在任务图像中相应的设置所述各任务节点,并按照各任务执行轨迹中任务节点的执行顺序,对各任务节点进行有向连线;
显示模块,用于显示任务图像。
第三方面,本发明实施例提供了一种电子设备,包括处理器及存储器,其中,
存储器,用于存储能够被处理器执行的机器可执行指令;
处理器在执行机器可执行指令时,用于实现:确定按序执行的任务节点组成的各任务执行轨迹;按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置;其中,布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在中心轴两侧依次布局其他各任务执行轨迹。
可选的,电子设备还包括显示器;
处理器,还用于实现:根据各任务节点在任务图像中的位置,在任务图像中相应的设置各任务节点,并按照各任务执行轨迹中任务节点的执行顺序,对各任务节点进行有向连线;
显示器,用于显示任务图像。
第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质内存储有机器可执行指令,机器可执行指令在被处理器加载并执行时,实现本发明实施例第一方面所提供的方法。
本发明实施例提供一种任务图像中任务节点位置的确定方法、装置及电子设备,其中,任务图像显示方法包括:确定按序执行的任务节点组成的各任务执行轨迹;按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置。布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在中心轴两侧依次布局其他各任务执行轨迹。
可见,本发明实施例中,无需经过复杂的节点迭代和排序过程,在确定出按序执行的任务节点组成的各任务执行轨迹后,按照设定好的布局方式,可以计算出各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置,确定任务图像中任务节点位置的复杂度明显降低。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明一实施例的任务图像中任务节点位置的确定方法的流程示意图;
图2为本发明实施例的生成二维数组的流程示意图;
图3为本发明实施例的二维数据的格式示意图;
图4为本发明实施例的计算任务节点在任务图像中的纵坐标的流程示意图;
图5为本发明另一实施例的任务图像中任务节点位置的确定方法的流程示意图;
图6为本发明一示例的任务图像;
图7为本发明实施例的任务图像中任务节点位置的确定装置的结构示意图;
图8为本发明实施例的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了降低确定任务图像中任务节点位置的复杂度,本发明实施例提供了一种任务图像中任务节点位置的确定方法、装置及电子设备。下面,首先对本发明实施例所提供的任务图像中任务节点位置的确定方法进行介绍。该方法应用于电子设备,该电子设备可以为具有图像生成、数据运算、图像显示等功能的设备,例如,个人计算机、服务器、便携式智能移动设备等。本发明实施例所提供的任务图像中任务节点位置的确定方法可以被设置于电子设备中的软件、硬件电路和逻辑电路中的至少一种实现。
如图1所示,本发明实施例所提供的任务图像中任务节点位置的确定方法的一种流程,可以包括如下步骤。
S101,确定按序执行的任务节点组成的各任务执行轨迹。
S102,按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置。其中,布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在中心轴两侧依次布局其他各任务执行轨迹。
应用本发明实施例,通过确定按序执行的任务节点组成的各任务执行轨迹;按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置。布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在中心轴两侧依次布局其他各任务执行轨迹。无需经过复杂的节点迭代和排序过程,在确定出按序执行的任务节点组成的各任务执行轨迹后,按照设定好的布局方式,可以计算出各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置,确定任务图像中任务节点位置的复杂度明显降低。
在复杂的任务执行场景下,一个任务往往由多个子任务按照先后执行的顺序或者并列执行的方式实现,例如在工厂的安全生产中,需要进行检测、控制、报警等一系列的子任务,最终实现安全生产这一综合性的任务。为了使用户能够更为直观地观察任务执行逻辑,需要电子设备自动地基于任务执行逻辑绘制任务图像。任务图像是由节点的有穷非空集合和节点之间边的集合组成,通常表示为G(V,E),其中,G表示一张任务图像,V是任务图像G中节点的集合,E是任务图像G中边的集合。一般情况下,任务图像是有向无环图,即任务图像中,无法从某个节点出发经过若干条边回到该节点。
按序执行的任务节点通常表示为任务数据,任务数据也称为任务的图数据,是一种表征任务执行顺序的数据结构,一种实施方式中,任务数据至少包括先后执行的两个任务节点的节点标识,具体的表示方式如下:
[{source:’node1’;target:[‘node2’,’node3’,’node7’]}]
source是指一条边edge的起始节点、target是指一条边edge的终止节点,也就是说,上述示例的集合中,表征有3条边,这3条边分别为node1-node2、node1-node3、node1-node7。
确定各任务执行轨迹的方式通常是通过遍历任务数据得到的,例如,任务数据为:
[{source:’node1’,target:[‘node2’,’node3’,’node7’]};
{source:’node2’,target:[‘node4’,’node5’]};
{source:’node3’,target:[‘node5’]};
{source:’node4’,target:[‘node6’]};
{source:’node5’,target:[‘node6’]};
{source:’node7’,target:[‘node6’,’node8’]}]
通过遍历任务数据,可以确定共有5条任务执行轨迹,分别为:任务执行轨迹node1-node2-nogde4-node6、任务执行轨迹node1-node2-node5-node6、任务执行轨迹node1-node3-node5-node6、任务执行轨迹node1-node7-node6、任务执行轨迹node1-node7-node8。
在确定出各任务执行轨迹后,为了能够使最终显示的任务图像更美观,更便于用户观察,需要按照预设的布局方式,计算各任务节点在任务图像中的节点坐标。其中,布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在中心轴两侧依次布局其他各任务执行轨迹。并且,设定作为中心轴的任务执行轨迹的轨迹长度最长。也就是说,按照该布局方式设置各任务节点,并对各任务节点进行连线后,位于中心轴的任务执行轨迹最长,而中心轴两侧的任务执行轨迹依次递减,可以看出最终的任务图像呈近似于正太分布,对于用户来讲,任务图像更为直观。
在本发明实施例的一种实现方式中,可以以二维数组的方式记录各任务执行轨迹。可选的,S101具体可以为:遍历用于表征执行顺序的任务数据,生成二维数组,其中,二维数组的每一行用于按照执行顺序记录组成一条任务执行轨迹的各任务节点的节点标识,各任务节点的节点标识按照执行顺序排列;基于二维数组的各行数据,确定按序执行的任务节点组成的各任务执行轨迹。
如上述示例中,确定出有5条任务执行轨迹:node1-node2-nogde4-node6、node1-node2-node5-node6、node1-node3-node5-node6、node1-node7-node6和node1-node7-node8。则可以按照记录的节点标识的数目升序排列每一行,得到二维数组:
{[‘node1’,’node2’,’nogde4’,’node6’];[‘node1’,’node3’,’nogde5’,’node6’];
[‘node1’,’node2’,’nogde5’,’node6’];[‘node1’,’node7’,’node6’];
[‘node1’,’node7’,’node8’]}
或者,也可以按照记录的节点标识的数目降序排列每一行,得到二维数组:
{[‘node1’,’node7’,’node6’];[‘node1’,’node7’,’node8’];
[‘node1’,’node2’,’nogde4’,’node6’];[‘node1’,’node3’,’nogde5’,’node6’];
[‘node1’,’node2’,’nogde5’,’node6’]}
在得到上述二维数组后,即可基于二维数组,确定按序执行的任务节点组成的各任务执行轨迹。
在本发明实施例的一种实现方式中,S102具体可以为:针对任一任务节点,按照预设的布局方式,根据二维数组的总行数、特定行记录节点标识的总个数、特定行的行号以及该任务节点的节点标识在特定行中的列号,计算该任务节点在任务图像中的节点坐标,作为该任务节点在任务图像中的位置,其中,特定行是二维数组中记录该任务节点的节点标识的一行。
由于各任务节点在任务图像中按照预设的布局方式进行设置,并且二维数组间接地给出了任务节点的排布规律,因此针对于任一任务节点,根据该任务节点在二维数组中的行列位置,可以计算出该任务节点在任务图像中的节点坐标。具体的,针对任一任务节点,是按照预设的布局方式,根据二维数组的总行数、二维数组中记录该任务节点的节点标识的特定行记录节点标识的总个数、特定行的行号以及该任务节点的节点标识在特定行中的列号,计算该任务节点在任务图像中的节点坐标,作为该任务节点在任务图像中的位置。
在本发明实施例的一种实现方式中,遍历用于表征执行顺序的任务数据,生成二维数组的步骤具体可以通过如下步骤实现:遍历用于表征执行顺序的任务数据,若任务数据中先后执行的两个任务节点的节点标识在二维数组中均未记录过,则将该先后执行的两个任务节点的节点标识记录至二维数组中新的一行。
遍历用于表征执行顺序的任务数据,针对二维数组中的任一行,执行如下步骤:
第一步,若该行记录的末位节点标识是任务数据中先后执行的两个任务节点中起始节点的节点标识,则将该两个任务节点中终止节点的节点标识添加至该行的末位节点标识的后一位。
第二步,若该行记录的首位节点标识是任务数据中先后执行的两个任务节点中终止节点的节点标识,则将该两个任务节点中起始节点的节点标识添加至该行的首位节点标识的前一位。
第三步,若该行记录的一中间节点标识是任务数据中先后执行的两个任务节点中起始节点的节点标识、且任务数据中包括该起始节点的至少两个终止节点,则将位于该中间节点标识之前的各节点标识、该中间节点标识和该起始节点的任一未记录过的终止节点的节点标识,按序记录至二维数组中新的一行。
如上述示例,首先新建一个空白的二维数组,遍历用于表征执行顺序的任务数据,将未记录过的先后执行的两个任务节点的节点标识记录至二维数组中新的一行,由于初始时,二维数组中未记录任何任务节点的节点标识,则可任意选择先后执行的两个任务节点的节点标识记录至二维数组中第一行,例如,选择node2、node4的节点标识,记录至二维数组中第一行,然后对任务数据和二维数组同时进行遍历,发现第一行的末位节点标识’node4’是先后执行的两个任务节点{source:’node4’,targe:[‘node6’]}中起始节点的节点标识,则将终止节点node6的节点标识’node6’添加至第一行的末位节点标识的后一位;并且,第一行的首位节点标识’node2’是先后执行的两个任务节点{source:’node1’,targe:[‘node2’]}中终止节点的节点标识,则将起始节点node1的节点标识’node1’添加至第一行的首位节点标识的前一位,得到二维数组的第一行为[‘node1’,’node2’,’nogde4’,’node6’]。再通过遍历二维数组第一行,发现中间节点标识’node2’是先后执行的两个任务节点中起始节点的节点标识、且该起始节点的终止节点有两个node4和node5,则将位于该中间节点标识之前的各节点标识、该中间节点标识和该起始节点的任一未记录过的终止节点的节点标识,即’node1’、’node2’、’node5’,按序记录至二维数组中的第二行[‘node1’,’node2’,’nogde5’],再按照上述流程,遍历任务数据和二维数组的第二行,直至在遍历任务数据,确定所有任务节点的节点标识均已记录至二维数组后,按照记录的节点标识的数目升序或者降序排列二维数组中的每一行。
如图2所示,为二维数组的生成流程,可以包括如下步骤:
S201,新建二维数组tArr。该二维数组tArr初始为空白数组。
S202,遍历任务数据Graph,判断所有任务节点的节点标识是否均已记录至tArr中,如果是则执行S211,否则执行S203。
S203,遍历tArr。在每一个“任务数据的遍历循环中”遍历要生成的二维数组。
S204,判断R行中的最后一项节点标识是否为一个边edge的起始节点,如果是则执行S207,否则执行S205。
S205,判断R行中的第一项节点标识是否为一个edge的终止节点,如果是则执行S208,否则执行S206。
S206,判断R行中的中间任一项节点标识是否为一个edge的起始节点,且任务数据Graph中是否包括该edge的至少两个终止节点,如果是则执行S209,否则执行S210。
S207,将该edge的终止节点添加至R行的末位节点标识的后一位。
S208,将该edge的起始节点添加至R行的首位节点标识的前一位。
S209,将R行的这一中间项之前的各节点标识、该中间项节点标识加上该edge的任一未记录过的终止节点的节点标识,记录在tArr中新的一行。
S210,edge的起始节点的节点标识和终止节点的节点标识按先后顺序,记录在tArr中新的一行。
在得到tArr的每一行之后,按序排列tArr中的每一行。
最后得到的tArr的格式如图3所示,其中有些相邻行的长度可能相同。
为了保证以包含任务节点的数目最多的任务执行轨迹作为中心轴,近似于正态分布的方式进行布局,根据任务节点在二维数组中的行列号,计算任务节点在任务图像中的节点坐标(xp,yp)。
在本发明实施例的一种实现方式中,二维数组中各行按照记录的节点标识的数目升序或降序排列。相应的,针对任一任务节点,按照预设的布局方式,根据二维数组的总行数、特定行记录节点标识的总个数、特定行的行号以及该任务节点的节点标识在特定行中的列号,计算该任务节点在任务图像中的节点坐标,作为该任务节点在所述任务图像中的位置的步骤,具体可以通过如下步骤实现:
第一步,针对任一任务节点,根据特定行记录节点标识的总个数,计算分割段数目,其中,分割段数目为总个数减1,分割段表示任务图像中一条任务执行轨迹上两个相邻任务节点间的距离。
第二步,根据该任务节点的节点标识在特定行中的列号、预设的该任务节点对应分割段的分割比例及分割段数目,计算该任务节点在任务图像中的横坐标。
第三步,根据二维数组的总行数,计算轨迹布局段数目,其中,轨迹布局段数目为总行数减1,轨迹布局段表示任务图像中相邻两条任务执行轨迹间的距离。
第四步,根据特定行的行号、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标。
第五步,将该任务节点在任务图像中的横坐标和纵坐标,作为该任务节点在任务图像中的位置
其中,计算任务节点在任务图像中的横坐标xp时,将该任务节点在任务图像中所属任务执行轨迹进行分割,分割后得到的分割段数目等于该任务节点所在二维数组中特定行记录节点标识的总个数减1,假设该任务节点所在二维数组中特定行为第i行,则第i行记录节点标识的总个数为tArr[i].length,则分割段数目为tArr[i].length-1。在进行分割时,可以平均分割,也可以按照一定的比例进行分割,例如,总共要分割成5份,每一份的比例分别为10%、20%、30%、20%、20%。则可以根据该任务节点的节点标识在特定行中的列号、预设的该任务节点对应分割段的分割比例及分割段数目,计算该任务节点在任务图像中的横坐标。具体的,如果二维数组中各行按照记录的节点标识的数目升序排列,可以采用公式xp=(1/m)*x0*1/(tArr[i].length-1)计算该任务节点在任务图像中的横坐标xp,其中,1/m为预设的该任务节点对应分割段的分割比例,x0为该任务节点的节点标识在第i行中的列号,tArr[i].length-1为分割段数目。
计算任务节点在任务图像中的纵坐标yp时,将任务图像在y轴方向的长度进行划分,划分后得到的轨迹布局段数目等于二维数组的总行数减1,假设二维数组的总行数为L,则轨迹布局段数目为L-1。在进行划分时,可以平均划分,也可以按照一定的比例进行划分,例如,总共要划分成5份,每一份的比例分别为15%、30%、25%、20%、10%。则可以根据特定行的行号、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标。
以上实例为以y轴方向中心轴进行任务图像的布局,在实际应用时,也可以以x轴方向中心轴进行任务图像布局,具体的计算方式与上述示例相似,这里不再赘述。
在计算任务节点在任务图像中的纵坐标时,可以分为二维数组的总行数为奇数和偶数两种情况。具体的,在二维数组的总行数为奇数时,根据特定行的行号、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标的过程包括:
若特定行的行号为奇数,则根据特定行的行号、中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第一纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第一纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5-(1/(L-1))*(x/2+0.5)) (1)
其中,yp为该任务节点在任务图像中的纵坐标,1/n为特定行记录任务执行轨迹对应轨迹布局段的划分比例,y0为中心轴纵坐标,L-1为轨迹布局段数目,L为二维数组的总行数,x为特定行的行号。
若特定行的行号为偶数,则根据特定行的行号、中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第二纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第二纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5+(1/(L-1))*(x/2)) (2)
在二维数组的总行数为偶数时,根据特定行的行号、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标的过程包括:
若特定行的行号为奇数,则根据特定行的行号、预设的中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第三纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第三纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5-(1/(L-1))*(x/2-0.5)-0.5*1/(L-1)) (3)
若特定行的行号为偶数,则根据特定行的行号、中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第四纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第四纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5+(1/(L-1))*(x/2)+0.5*1/(L-1)) (4)
综上,计算任务节点在任务图像中的纵坐标的流程如图4所示,包括如下步骤。
S401,判断二维数据tArr的总行数是否为奇数,如果是则执行S402,否则执行S405。
S402,判断任务节点的节点标识所处特定行的行号是否为奇数,如果是则执行S403,否则执行S404。
S403,利用yp=(1/n)*2*y0*(0.5-(1/(L-1))*(x/2+0.5)),计算该任务节点在任务图像中的纵坐标。
S404,利用yp=(1/n)*2*y0*(0.5+(1/(L-1))*(x/2)),计算该任务节点在任务图像中的纵坐标。
S405,判断任务节点的节点标识所处特定行的行号是否为奇数,如果是则执行S406,否则执行S407。
S406,利用yp=(1/n)*2*y0*(0.5-(1/(L-1))*(x/2-0.5)-0.5*1/(L-1)),计算该任务节点在任务图像中的纵坐标。
S407,利用yp=(1/n)*2*y0*(0.5+(1/(L-1))*(x/2)+0.5*1/(L-1)),计算该任务节点在任务图像中的纵坐标。
按照上述计算方式,所有的奇数行都布局在中心轴的下方、所有的偶数行都布局在中心轴的上方,以中心轴进行正态分布。当然,这里仅示例性的将所有的奇数行都布局在中心轴的下方、所有的偶数行都布局在中心轴的上方,其他的布局方式也属于本发明实施例的保护范围,只要最后的图像效果满足以中心轴近似正态分布即可。
在本发明实施例的一种实现方式中,该方法还可以包括:若计算得到任一任务节点在任务图像中的节点坐标为多个,则仅保留基于中心轴计算得到的该任务节点在任务图像中的节点坐标,作为该任务节点在任务图像中的位置。
由于在实际场景下,不同的任务执行轨迹可能复用至少一个任务节点,则在计算节点坐标时,可能会出现一个任务节点对应计算出多个节点坐标的情况,为了避免这种情况,本发明实施例中,若计算得到任一任务节点在任务图像中的节点坐标为多个,则仅保留基于中心轴计算得到的该任务节点在任务图像中的节点坐标,作为该任务节点在任务图像中的位置。
基于图1所示实施例,如图5所示,本发明实施例所提供的任务图像中任务节点位置的确定方法的另一种流程,可以包括如下步骤。
S501,确定按序执行的任务节点组成的各任务执行轨迹。
S502,按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置。其中,布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在中心轴两侧依次布局其他各任务执行轨迹。
S503,根据各任务节点在任务图像中的位置,在任务图像中相应的设置各任务节点,并按照各任务执行轨迹中任务节点的执行顺序,对各任务节点进行有向连线。
S504,显示任务图像。
应用本发明实施例,通过确定按序执行的任务节点组成的各任务执行轨迹;按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置。布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在中心轴两侧依次布局其他各任务执行轨迹。无需经过复杂的节点迭代和排序过程,在确定出按序执行的任务节点组成的各任务执行轨迹后,按照设定好的布局方式,可以计算出各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置,确定任务图像中任务节点位置的复杂度明显降低。并且,最终生成的任务图像中,包含任务节点的数目最多的任务执行轨迹处于图像中心位置,按照包含任务节点的数目向两侧递减的方式,在两侧依次布局其他各任务执行轨迹,所生成的任务图像近似于正太分布图,更便于用户直观地观察。在计算得到各任务节点在任务图像中的节点坐标后,可根据各任务节点的节点坐标,在任务图像中设置各任务节点,并按照各任务执行轨迹中任务节点的执行顺序,对各任务节点进行有向连线,即绘制出了任务图像。将任务图像显示给用户,用户即可直观地观察到整个任务的执行顺序和执行逻辑。
为了便于理解,下面结合具体实例,对本发明实施例所提供的方法进行详细介绍。
以上述示例为例,遍历任务数据,得到的二维数组为:
{[‘node1’,’node2’,’nogde4’,’node6’];[‘node1’,’node3’,’nogde5’,’node6’];
[‘node1’,’node2’,’nogde5’,’node6’];[‘node1’,’node7’,’node6’];
[‘node1’,’node7’,’node8’]}
具体得到二维数组的流程见图2所示实施例,这里不再赘述。
将任务图像当做1:1的正方形,将各任务执行轨迹进行平均分割、将任务图像的y轴进行平均划分,利用公式xp=(1/m)*x0*1/(tArr[i].length-1)计算各任务节点的横坐标,以tArr第一行为例,每个节点的xp计算过程如下:
node1,[0,0]xp=0*1/(tArr[0].length-1)=0*1/(4-1)=0;
node2,[0,1]xp=1*1/(tArr[0].length-1)=1*1/(4-1)=0.33;
node4,[0,2]xp=2*1/(tArr[0].length-1)=2*1/(4-1)=0.66;
node6,[0,3]xp=3*1/(tArr[0].length-1)=3*1/(4-1)=1。
利用图4所示实施例计算各任务节点的纵坐标,以tArr为例:
第1行的元素的纵坐标为yp=1/2;
第2行的元素的纵坐标为:
yp=0.5-(1/(L-1))*(x/2+0.5)=0.5-(1/(5-1))*(1/2+0.5)=0.25;
第3行的元素的纵坐标为:
yp=0.5+(1/(L-1))*(x/2)=0.5+(1/(5-1))*(2/2)=0.75;
第4行的元素的纵坐标为:
yp=0.5-(1/(L-1))*(x/2+0.5)=0.5-(1/(5-1))*(3/2+0.5)=0;
第5行的元素的纵坐标为:
yp=0.5+(1/(L-1))*(x/2)=0.5+(1/(5-1))*(4/2)=1。
进而得到各任务节点的坐标为:node1(0,0.5)、node2(0.33,0.5)、node3(0.33,0.25)、node4(0.66,0.5)、node5(0.66,0.25)、node6(1,0.5)、node7(0.5,0)、node8(1,1)。在任务图像上分别基于计算出的节点坐标,设置各任务节点,再按照各任务执行轨迹中任务节点的执行顺序,对各任务节点进行有向连接,即得到图6所示的任务图像。
基于上述方法实施例,本发明实施例提供了一种任务图像中任务节点位置的确定装置,如图7所示,该装置可以包括:
轨迹确定模块710,用于确定按序执行的任务节点组成的各任务执行轨迹;
计算模块720,用于按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置;其中,布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在中心轴两侧依次布局其他各任务执行轨迹。
可选的,轨迹确定模块710,具体可以用于遍历用于表征执行顺序的任务数据,生成二维数组,其中,二维数组的每一行用于按照执行顺序记录组成一条任务执行轨迹的各任务节点的节点标识,各任务节点的节点标识按照执行顺序排列;基于二维数组的各行数据,确定按序执行的任务节点组成的各任务执行轨迹。
可选的,轨迹确定模块710在用于遍历用于表征执行顺序的任务数据,生成二维数组时,具体可以用于:遍历用于表征执行顺序的任务数据,若任务数据中先后执行的两个任务节点的节点标识在二维数组中均未记录过,则将该先后执行的两个任务节点的节点标识记录至二维数组中新的一行;遍历用于表征执行顺序的任务数据,针对二维数组中的任一行,执行如下步骤:若该行记录的末位节点标识是任务数据中先后执行的两个任务节点中起始节点的节点标识,则将该两个任务节点中终止节点的节点标识添加至该行的位节点标识的后一位;若该行记录的首位节点标识是任务数据中先后执行的两个任务节点中终止节点的节点标识,则将该两个任务节点中起始节点的节点标识添加至该行的首位节点标识的前一位;若该行记录的一中间节点标识是任务数据中先后执行的两个任务节点中起始节点的节点标识、且任务数据中包括该起始节点的至少两个终止节点,则将位于该中间节点标识之前的各节点标识、该中间节点标识和该起始节点的任一未记录过的终止节点的节点标识,按序记录至二维数组中新的一行。
可选的,计算模块720,具体可以用于:针对任一任务节点,按照预设的布局方式,根据二维数组的总行数、特定行记录节点标识的总个数、特定行的行号以及该任务节点的节点标识在特定行中的列号,计算该任务节点在任务图像中的节点坐标,作为该任务节点在任务图像中的位置,其中,特定行是二维数组中记录该任务节点的节点标识的一行。
可选的,二维数组中各行按照记录的节点标识的数目升序或降序排列;
计算模块720,具体可以用于:针对任一任务节点,根据特定行记录节点标识的总个数,计算分割段数目,其中,分割段数目为特定行记录节点标识的总个数减1,分割段表示任务图像中一条任务执行轨迹上两个相邻任务节点间的距离;根据该任务节点的节点标识在特定行中的列号、预设的该任务节点对应分割段的分割比例及分割段数目,计算该任务节点在任务图像中的横坐标;根据二维数组的总行数,计算轨迹布局段数目,其中,轨迹布局段数目为二维数组的总行数减1,轨迹布局段表示任务图像中相邻两条任务执行轨迹间的距离;根据特定行的行号、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标;将该任务节点在任务图像中的横坐标和纵坐标,作为该任务节点在任务图像中的位置。
可选的,二维数组的总行数为奇数;
计算模块720在用于根据特定行的行号、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标时,具体可以用于:
若特定行的行号为0,则该任务节点在任务图像中的纵坐标为预设的中心轴纵坐标;
若特定行的行号为奇数,则根据特定行的行号、中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第一纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第一纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5-(1/(L-1))*(x/2+0.5)),其中,yp为该任务节点在任务图像中的纵坐标,1/n为特定行记录任务执行轨迹对应轨迹布局段的划分比例,y0为中心轴纵坐标,L-1为轨迹布局段数目,L为二维数组的总行数,x为特定行的行号;
若特定行的行号为偶数,则根据特定行的行号、中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第二纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第二纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5+(1/(L-1))*(x/2))。
可选的,二维数组的总行数为偶数;
计算模块720在用于根据特定行的行号、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标时,具体可以用于:
若特定行的行号为奇数,则根据特定行的行号、预设的中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第三纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第三纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5-(1/(L-1))*(x/2-0.5)-0.5*1/(L-1)),其中,yp为该任务节点在任务图像中的纵坐标,1/n为特定行记录任务执行轨迹对应轨迹布局段的划分比例,y0为中心轴纵坐标,L-1为轨迹布局段数目,L为二维数组的总行数,x为特定行的行号;
若特定行的行号为偶数,则根据特定行的行号、中心轴纵坐标、轨迹布局段数目及预设的特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第四纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,第四纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5+(1/(L-1))*(x/2)+0.5*1/(L-1))。
可选的,计算模块720,还可以用于若计算得到任一任务节点在任务图像中的节点坐标为多个,则仅保留基于中心轴计算得到的该任务节点在任务图像中的节点坐标,作为该任务节点在任务图像中的位置。
可选的,该装置还可以包括:
设置模块,用于根据各任务节点在任务图像中的位置,在任务图像中相应的设置所述各任务节点,并按照各任务执行轨迹中任务节点的执行顺序,对各任务节点进行有向连线;
显示模块,用于显示任务图像。
应用本发明实施例,通过确定按序执行的任务节点组成的各任务执行轨迹;按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置。布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在中心轴两侧依次布局其他各任务执行轨迹。无需经过复杂的节点迭代和排序过程,在确定出按序执行的任务节点组成的各任务执行轨迹后,按照设定好的布局方式,可以计算出各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置,确定任务图像中任务节点位置的复杂度明显降低。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器801及存储器802,其中,
存储器802,用于存储能够被处理器801执行的机器可执行指令;
处理器801在执行机器可执行指令时,用于实现:确定按序执行的任务节点组成的各任务执行轨迹;按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置;其中,布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在中心轴两侧依次布局其他各任务执行轨迹。
可选的,电子设备还包括显示器;
处理器801,还用于实现:根据各任务节点在任务图像中的位置,在任务图像中相应的设置各任务节点,并按照各任务执行轨迹中任务节点的执行顺序,对各任务节点进行有向连线;
显示器,用于显示任务图像。
上述存储器可以包括RAM(Random Access Memory,随机存取存储器),也可以包括NVM(Non-volatile Memory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括CPU、NP(Network Processor,网络处理器)等;还可以是DSP(Digital Signal Processor,数字信号处理器)、ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
处理器801与存储器802之间可以通过有线连接或者无线连接的方式进行数据传输,并且电子设备与其他设备之间可以通过有线通信接口或者无线通信接口进行通信。图8所示的仅为通过总线进行数据传输的示例,不作为具体连接方式的限定。
本发明实施例中,处理器通过读取存储器中存储的机器可执行指令,并通过加载和执行机器可执行指令,能够实现:通过确定按序执行的任务节点组成的各任务执行轨迹;按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置。布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在中心轴两侧依次布局其他各任务执行轨迹。无需经过复杂的节点迭代和排序过程,在确定出按序执行的任务节点组成的各任务执行轨迹后,按照设定好的布局方式,可以计算出各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置,确定任务图像中任务节点位置的复杂度明显降低。
另外,本发明实施例提供了一种机器可读存储介质,机器可读存储介质内存储有机器可执行指令,机器可执行指令在被处理器加载并执行时,实现本发明实施例所提供的任务图像中任务节点位置的确定方法。
本发明实施例中,机器可读存储介质存储有在运行时执行本发明实施例所提供的任务图像中任务节点位置的确定方法的机器可执行指令,因此能够实现:通过确定按序执行的任务节点组成的各任务执行轨迹;按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置。布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在中心轴两侧依次布局其他各任务执行轨迹。无需经过复杂的节点迭代和排序过程,在确定出按序执行的任务节点组成的各任务执行轨迹后,按照设定好的布局方式,可以计算出各任务节点在任务图像中的节点坐标,作为各任务节点在任务图像中的位置,确定任务图像中任务节点位置的复杂度明显降低。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一任务图像中任务节点位置的确定方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、DSL(Digital Subscriber Line,数字用户线))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如DVD(DigitalVersatile Disc,数字多功能光盘))、或者半导体介质(例如SSD(Solid State Disk,固态硬盘))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于任务图像中任务节点位置的确定装置、电子设备、机器可读存储介质和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种任务图像中任务节点位置的确定方法,其特征在于,所述方法包括:
确定按序执行的任务节点组成的各任务执行轨迹;
按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为所述各任务节点在任务图像中的位置;其中,所述布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在所述中心轴两侧依次布局其他各任务执行轨迹,确定所述各任务执行轨迹的方式是通过遍历任务数据得到的;所述任务数据为按序执行的任务节点,所述各任务节点为所述任务图像对应的任务中的子任务。
2.根据权利要求1所述的方法,其特征在于,所述确定按序执行的任务节点组成的各任务执行轨迹的步骤,包括:
遍历用于表征执行顺序的任务数据,生成二维数组,其中,所述二维数组的每一行用于记录组成一条任务执行轨迹的各任务节点的节点标识,所述各任务节点的节点标识按照所述执行顺序排列;
基于所述二维数组的各行数据,确定按序执行的任务节点组成的各任务执行轨迹。
3.根据权利要求2所述的方法,其特征在于,所述遍历用于表征执行顺序的任务数据,生成二维数组的步骤,包括:
遍历用于表征执行顺序的任务数据,若所述任务数据中先后执行的两个任务节点的节点标识在二维数组中均未记录过,则将所述先后执行的两个任务节点的节点标识记录至所述二维数组中新的一行;
遍历用于表征执行顺序的任务数据,针对所述二维数组中的任一行,执行如下步骤:
若该行记录的末位节点标识是所述任务数据中先后执行的两个任务节点中起始节点的节点标识,则将该两个任务节点中终止节点的节点标识添加至该行的所述末位节点标识的后一位;
若该行记录的首位节点标识是所述任务数据中先后执行的两个任务节点中终止节点的节点标识,则将该两个任务节点中起始节点的节点标识添加至该行的所述首位节点标识的前一位;
若该行记录的一中间节点标识是所述任务数据中先后执行的两个任务节点中起始节点的节点标识、且所述任务数据中包括该起始节点的至少两个终止节点,则将位于该中间节点标识之前的各节点标识、该中间节点标识和该起始节点的任一未记录过的终止节点的节点标识,按序记录至所述二维数组中新的一行。
4.根据权利要求2所述的方法,其特征在于,所述按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为所述各任务节点在任务图像中的位置的步骤,包括:
针对任一任务节点,按照预设的布局方式,根据所述二维数组的总行数、特定行记录节点标识的总个数、所述特定行的行号以及该任务节点的节点标识在所述特定行中的列号,计算该任务节点在任务图像中的节点坐标,作为该任务节点在任务图像中的位置,其中,所述特定行是所述二维数组中记录该任务节点的节点标识的一行。
5.根据权利要求4所述的方法,其特征在于,所述二维数组中各行按照记录的节点标识的数目升序或降序排列;
所述针对任一任务节点,按照预设的布局方式,根据所述二维数组的总行数、特定行记录节点标识的总个数、所述特定行的行号以及该任务节点的节点标识在所述特定行中的列号,计算该任务节点在任务图像中的节点坐标,作为该任务节点在所述任务图像中的位置的步骤,包括:
针对任一任务节点,根据特定行记录节点标识的总个数,计算分割段数目,其中,所述分割段数目为所述总个数减1,分割段表示任务图像中一条任务执行轨迹上两个相邻任务节点间的距离;
根据该任务节点的节点标识在所述特定行中的列号、预设的该任务节点对应分割段的分割比例及所述分割段数目,计算该任务节点在任务图像中的横坐标;
根据所述二维数组的总行数,计算轨迹布局段数目,其中,所述轨迹布局段数目为所述总行数减1,轨迹布局段表示任务图像中相邻两条任务执行轨迹间的距离;
根据所述特定行的行号、所述轨迹布局段数目及预设的所述特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标;
将该任务节点在任务图像中的横坐标和纵坐标,作为该任务节点在任务图像中的位置。
6.根据权利要求5所述的方法,其特征在于,所述二维数组的总行数为奇数;
所述根据所述特定行的行号、所述轨迹布局段数目及预设的所述特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标的步骤,包括:
若所述特定行的行号为0,则该任务节点在任务图像中的纵坐标为预设的中心轴纵坐标;
若所述特定行的行号为奇数,则根据所述特定行的行号、所述中心轴纵坐标、所述轨迹布局段数目及预设的所述特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第一纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,所述第一纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5-(1/(L-1))*(x/2+0.5)),其中,yp为该任务节点在任务图像中的纵坐标,1/n为所述特定行记录任务执行轨迹对应轨迹布局段的划分比例,y0为所述中心轴纵坐标,L-1为所述轨迹布局段数目,L为所述二维数组的总行数,x为所述特定行的行号;
若所述特定行的行号为偶数,则根据所述特定行的行号、所述中心轴纵坐标、所述轨迹布局段数目及预设的所述特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第二纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,所述第二纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5+(1/(L-1))*(x/2))。
7.根据权利要求5所述的方法,其特征在于,所述二维数组的总行数为偶数;
所述根据所述特定行的行号、所述轨迹布局段数目及预设的所述特定行记录任务执行轨迹对应轨迹布局段的划分比例,计算该任务节点在任务图像中的纵坐标的步骤,包括:
若所述特定行的行号为奇数,则根据所述特定行的行号、预设的中心轴纵坐标、所述轨迹布局段数目及预设的所述特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第三纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,所述第三纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5-(1/(L-1))*(x/2-0.5)-0.5*1/(L-1)),其中,yp为该任务节点在任务图像中的纵坐标,1/n为所述特定行记录任务执行轨迹对应轨迹布局段的划分比例,y0为所述中心轴纵坐标,L-1为所述轨迹布局段数目,L为所述二维数组的总行数,x为所述特定行的行号;
若所述特定行的行号为偶数,则根据所述特定行的行号、所述中心轴纵坐标、所述轨迹布局段数目及预设的所述特定行记录任务执行轨迹对应轨迹布局段的划分比例,利用第四纵坐标计算公式,计算该任务节点在任务图像中的纵坐标,其中,所述第四纵坐标计算公式为:
yp=(1/n)*2*y0*(0.5+(1/(L-1))*(x/2)+0.5*1/(L-1))。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
若计算得到任一任务节点在任务图像中的节点坐标为多个,则仅保留基于所述中心轴计算得到的该任务节点在任务图像中的节点坐标,作为该任务节点在任务图像中的位置。
9.一种任务图像中任务节点位置的确定装置,其特征在于,所述装置包括:
轨迹确定模块,用于确定按序执行的任务节点组成的各任务执行轨迹;
计算模块,用于按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为所述各任务节点在任务图像中的位置;其中,所述布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在所述中心轴两侧依次布局其他各任务执行轨迹,确定所述各任务执行轨迹的方式是通过遍历任务数据得到的;所述任务数据为按序执行的任务节点,所述各任务节点为所述任务图像对应的任务中的子任务。
10.一种电子设备,其特征在于,包括处理器及存储器,其中,
所述存储器,用于存储能够被所述处理器执行的机器可执行指令;
所述处理器在执行所述机器可执行指令时,用于实现:确定按序执行的任务节点组成的各任务执行轨迹;按照预设的布局方式,计算各任务节点在任务图像中的节点坐标,作为所述各任务节点在任务图像中的位置;其中,所述布局方式为:以包含任务节点的数目最多的任务执行轨迹作为中心轴,按照包含任务节点的数目向两侧递减的方式,在所述中心轴两侧依次布局其他各任务执行轨迹,确定所述各任务执行轨迹的方式是通过遍历任务数据得到的;所述任务数据为按序执行的任务节点,所述各任务节点为所述任务图像对应的任务中的子任务。
CN202010933865.9A 2020-09-08 2020-09-08 任务图像中任务节点位置的确定方法、装置及电子设备 Active CN112070829B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010933865.9A CN112070829B (zh) 2020-09-08 2020-09-08 任务图像中任务节点位置的确定方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010933865.9A CN112070829B (zh) 2020-09-08 2020-09-08 任务图像中任务节点位置的确定方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN112070829A CN112070829A (zh) 2020-12-11
CN112070829B true CN112070829B (zh) 2024-03-05

Family

ID=73664278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010933865.9A Active CN112070829B (zh) 2020-09-08 2020-09-08 任务图像中任务节点位置的确定方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN112070829B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004023204A (ja) * 2002-06-13 2004-01-22 Toshiba Corp 無線リングシステムおよび孤立ノード装置の接続方法
CN103473388A (zh) * 2013-07-25 2013-12-25 深圳市华傲数据技术有限公司 实现流程图自动布局的系统及装置
CN110275929A (zh) * 2019-05-24 2019-09-24 长安大学 一种基于网格分割的候选路段筛选方法及网格分割方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004023204A (ja) * 2002-06-13 2004-01-22 Toshiba Corp 無線リングシステムおよび孤立ノード装置の接続方法
CN103473388A (zh) * 2013-07-25 2013-12-25 深圳市华傲数据技术有限公司 实现流程图自动布局的系统及装置
CN110275929A (zh) * 2019-05-24 2019-09-24 长安大学 一种基于网格分割的候选路段筛选方法及网格分割方法

Also Published As

Publication number Publication date
CN112070829A (zh) 2020-12-11

Similar Documents

Publication Publication Date Title
US10593110B2 (en) Method and device for computing a path in a game scene
CA2886429C (en) Method for partitioning, managing and displaying a collaboration space and interactive input system employing same
CN112764616B (zh) 一种电子墨水屏手写加速方法、装置、设备及存储介质
CN109542578A (zh) 一种列表界面的显示方法、装置、设备及存储介质
CN113010896B (zh) 确定异常对象的方法、装置、设备、介质和程序产品
CN110245135B (zh) 一种基于numa架构的大规模流式图数据更新方法
CN112583620B (zh) 网络拓扑图生成方法、装置、电子设备和存储介质
JP6183099B2 (ja) 入力支援装置、入力支援方法及び入力支援プログラム
KR102317013B1 (ko) 컴퓨팅 장치를 이용한 객체 관리 및 시각화
US9164777B2 (en) Determining the display of equal spacing guides between diagram shapes
JP2020098387A (ja) 因果関係表示システム及び方法
US20130222379A1 (en) Rendering system and method
CN112070829B (zh) 任务图像中任务节点位置的确定方法、装置及电子设备
CN113538623B (zh) 确定目标图像的方法、装置、电子设备及存储介质
CN113108806A (zh) 路径规划方法、装置、设备及介质
CN115564930A (zh) 一种虚拟相机碰撞检测方法及装置
CN113902755B (zh) 基于之字形的多层轮廓图案的激光填充方法及装置
CN105760375A (zh) 甘特图显示方法和系统
CN114690786A (zh) 一种移动机器的路径规划方法和装置
CN115906342A (zh) 管线支吊架布置方法、装置、计算机设备和存储介质
CN111160831A (zh) 密集仓储的任务生成方法、装置和电子设备
EP3828789A1 (en) Method and apparatus for planning path of unmanned device
CN112686476A (zh) 一种应用于地图的路径生成方法、系统、设备和存储介质
CN113486624B (zh) 实现pcb走线自动等间距的方法、装置及电子设备
CN115758645A (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
GR01 Patent grant
GR01 Patent grant