基于自动匹配时间算法的时序数据在甘特图中的应用

时间:2022-05-04 02:34:42

基于自动匹配时间算法的时序数据在甘特图中的应用

摘要:甘特图在项目管理涉及到显示任务工期、进度、流程等方面时能够做到简洁直观。然而在同一页面上实时输入数据实时显示甘特图时会遇到显示图形时间段不确定的问题。本文讨论提出一种自动匹配时间算法,通过保存的时间序列数据实时显示在甘特图上,保证所需的数据能够准确的在页面上显示,不会出现图形偏差和时间轴不确定的问题,在多个任务同时显示上有其优势性。

关键词:甘特图;时间序列数据;自动匹配时间算法

中图分类号:TF345文献标识码:A文章编号:1007-9599 (2011) 06-0000-02

Application of Time Series Data Based on Automatic Matching Time Algorithm in the Gantt Chart

Zhang Yun1,Guo Ge2

(1.Beijing Technology and Business University,College of Computer and Information Engineering,Beijing100048,China;2.College of Arts,North China University of Technology,Beijing100048,China)

Abstract:Gantt Chart in project management tasks related to the display duration,schedule,and other aspects of the process can be simple and intuitive.However,in real-time input data on the same page real-time display of the Gantt chart display graphics time encountered the problem of uncertainty.This article discusses an automatic matching time algorithm,time-series data by saving real-time display in the Gantt chart to ensure that the required data can be accurately displayed on the page,the timeline will not be bias and uncertainty graphics problem displayed simultaneously in multiple tasks have the advantage.

Keywords:Gantt chart;Time series data;Automatic matching-time algorithm

时间序列数据(time series data)。从概念看,是指数据的内容与时间有关,并存在着一定的排列关系。时间序列数据在现实生活中是大量存在,例如:最基本的文本数据,直观的图像数据,加密数据等,都可看作是时间序列数据。

甘特图(Gantt chart)又叫条状图(Bar chart)。它以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间。甘特图由于直观简洁。利于理解,在中小型项目中有着很广泛的运用。

在特殊图形演示时间的不确定性上,往往会遇到同一项目多任务、多个项目同一任务,单一用户多任务等同时显示的问题。他们的共同特点是同一页面上显示的内容较多,且不容易确定这些任务显示时的位置,使页面显示造成误差,给人们在进行人机交互时带来一些麻烦。本文讨论的重点是:将时间序列数据的时间数据单元分离出来,只关心其数据显示部分,在多任务显示到甘特图中提出一种自动匹配时间算法,能够避免甘特图显示多任务数据的误差,在输入实时数据时,甘特图也能够根据保存的内容及时画出图形,并且完全保证图形的准确,方便用户操作。

一、自动匹配时间算法

定义数据向量Vi=(Ti,Pi),其中T为第i个数据的时间值,P为第i个数据的信息,将向量V中的时间值转换成数值变量。若存在i,使得S=((ViCVmin)/Vmin)0{i=0,1,2…n},则Vi=Vmax。

在甘特图中实现算法的主要思想是:将某批次任务的开始时间设为TaskStart[i],将服务器端任意一个TaskStart[i]数据定义为TaskStart[min]。然后通过For循环,从服务器端依次取出TaskStart[i]的数据与TaskStart[min]进行相减运算,如果运算的结果为负,则证明还有比TaskStart[min]更早的起始时间,那么就将该次任务的起始时间定为TaskStart[min]写回服务器端,如此循环得出整个图形的最小起始时间,即最终的TaskStart[min];确定图形最大结束时间的步骤与确定最小起始时间的步骤类似,关键在于从服务器端取出每个任务批次的结束时间为TaskFinish[i]后,与定义的最大结束时间TaskFinish[max]进行相减运算时,如果结果为正才将该次任务定为最大结束时间TaskFinish[max]。由TaskStart[min]到TaskFinish[max]的持续时间就是整个甘特图横轴的持续时间,如图1。

实现过程中需要从数据库取得多批次数据,利用循环算法得出所要显示的批次总数,再通过自动匹配时间算法计算出甘特图的起始时间和结束时间,最后从服务器端获取相关数据完成甘特图展现。

二、甘特图功能

完成甘特图的展现可以分成以下几个部分:

(一)能够根据不同项目的不同时间序列数据显示甘特图。通过对服务器端数据库进行操作,来调用已经存储的数据,选择不同时间序列数据进行显示。

(二)能够实现一个项目中不同批次时间序列数据的显示。单个项目,单个批次的甘特图不存在难以确定起始时间、结束时间的问题,只有在一个项目中有多个任务的情况下,才有可能出现如何确定甘特图起始时间和结束时间的情况。获取项目不同批次的时间序列数据后,通过函数计算确定批次的总和。

(三)能够根据时间的变化显示不同效果的甘特图。通过.NET技术中的编辑,修改等操作,管理者能够根据实际需要改变甘特图中的内容(包括时间,工期,任务类型,人员分配等),制定出符合工作需要的各项任务,并完成甘特图的显示。

三、解决方案

(一)设计。由于甘特图显示的内容是根据服务器端的时间序列数据来确定,因此在界面设计时需要考虑界面的大小以达到多批次图形共同显示。运用自动匹配时间算法对横轴进行设计,纵轴为多批次的数据,这样可能造成整个图形都不能在屏幕下显示完全,所以采用滚动条的方式处理。在界面布局上使用两个Div。第一个Div中包含着两个Table表,分别用于为自动匹配算法找到甘特图中时间轴的起始时间和结束时间,并能够以星期为单位显示一周7天的情况。第二个Div则是用于控制甘特图的显示。页面设计中也可以添加CSS样式和JS样式来控制整体页面设计。

(二)实现。运用自动匹配时间算法确定甘特图的横轴坐标,由服务器端获取数据完成甘特图的表现。甘特图绘制流程为:

1.明确项目牵涉到的各项活动以及所依赖的任务。

2.根据项目的活动和任务创建甘特图草图。将所有的项目按照开始时间、工期标注到甘特图上。

3.确定活动任务的执行人员及适时按需调整工时。

4.确定项目活动依赖关系及时序进度。

5.根据任务的工时和时序进度计算出各项活动任务的工作量,完成显示。

用户可以通过修改各任务批次的开始和结束时间来获得数据,由自动匹配时间算法进行计算,自动的完成整个甘特图的显示,如图2。

四、结论

本文讨论了时间序列数据在甘特图中的表现得一种方法。数据的批次和数量是由服务器端所存储的数据来决定,在利用甘特图来完成任务不同批次的时间显示时,可以根据任务的需要,在客户端改变各个批次的起始时间和结束时间,进而控制该批次任务所要持续的时间来及时的安排工作。通过将时间序列数据时间单元分离,取出所需要在甘特图中显示的数据,分离掉甘特图所不关心的数据。

参考文献:

[1]贾澎涛,何华灿,刘丽,孙涛.时间序列数据挖掘综述[J].计算机应用研究,2007,11

[2]王俊,杨涛.基于JSP技术的项目甘特图设计与实现[J].现代制造工程,2008,2

[3]刘江,王军.AJAX技术在实现Web甘特图中的应用[J].计算机与信息技术,2009,3

[作者简介]张蕴(1985-),男,天津人,硕士,研究方向:计算机应用技术。

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

上一篇:基于802.11DCF协作MAC的冲突分解算法 下一篇:将作业渗透进教学进行学习方法的指导