CN112883035A - 一种面向方面的算法可视化方法及系统 - Google Patents

一种面向方面的算法可视化方法及系统 Download PDF

Info

Publication number
CN112883035A
CN112883035A CN202110242023.3A CN202110242023A CN112883035A CN 112883035 A CN112883035 A CN 112883035A CN 202110242023 A CN202110242023 A CN 202110242023A CN 112883035 A CN112883035 A CN 112883035A
Authority
CN
China
Prior art keywords
algorithm
layer
view
context
generated
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.)
Granted
Application number
CN202110242023.3A
Other languages
English (en)
Other versions
CN112883035B (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.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
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 Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202110242023.3A priority Critical patent/CN112883035B/zh
Publication of CN112883035A publication Critical patent/CN112883035A/zh
Application granted granted Critical
Publication of CN112883035B publication Critical patent/CN112883035B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • G06F16/287Visualization; Browsing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种面向方面的算法可视化方法及系统,涉及算法可视化领域,所述方法包括以下步骤:在算法层选择待演示的算法;对算法进行数据初始化;执行算法,将生成的上下文信息及其位置索引保存至上下文层;在演示层中划分不同算法的显示区域,将每个显示区域的当前视图索引与上下文层中保存的位置索引进行匹配,获取对应的上下文信息,根据预设的视图生成方法,在演示层中生成视图;判断算法是否执行完毕,若否,则将新生成的上下文信息继续保存至上下文层,进行上下文信息的更新,同时更新演示层中生成的视图,若是,则算法层输出算法最终的运行结果。本发明通过算法层、上下文层、演示层的配合,实现不同算法的同步对比。

Description

一种面向方面的算法可视化方法及系统
技术领域
本发明涉及算法可视化领域,更具体地,涉及一种面向方面的算法可视化方法及系统。
背景技术
算法可视化是软件可视化领域的一个分支,利用动画的方式演示算法的运行。目前的算法可视化实现方法分为两大类,一是基于事件驱动,即在一个具体的算法代码中加入可视化语句,目前应用最多,但容易导致代码混乱、可重用性低;二是面向方面编程,可在一定程度上解决代码混乱和可重用性的问题,但是并未能同步显示伪代码,且不具有交互性,而且由于上下文层的设计局限,不能同步显示两种不同算法。
另外,目前的研究主要服务于市场,面向教学领域的研究甚少。Ladislav等人发表的文章《Algorithm Animations for Teaching and Learning the Main Ideas of BasicSortings》中,使用纸牌的方式演示动画,使学习者可手动移动两张纸牌,增加了交互性,但存在数据少、演示方式单一、未能同步显示同一算法、无法随时修改数据等问题;并且,目前的研究都主要集中在排序算法,很少涉及到其他算法。
发明内容
本发明为解决现有技术中面向方面编程无法对不同算法进行同步对比等问题,提供一种面向方面的算法可视化方法及系统。
本发明的首要目的是为解决上述技术问题,本发明的技术方案如下:
一种面向方面的算法可视化方法,包括以下步骤:
S1、在算法层选择待演示的算法;
S2、对算法进行数据初始化;
S3、执行算法,将生成的上下文信息及其位置索引保存至上下文层;
S4、在演示层中划分不同算法的显示区域,将每个显示区域的当前视图索引与上下文层中保存的位置索引进行匹配,获取对应的上下文信息,根据预设的视图生成方法,在演示层中生成视图;
S5、判断算法是否执行完毕,若否,则将新生成的上下文信息继续保存至上下文层,进行上下文信息的更新,同时更新演示层中生成的视图,若是,则算法层输出算法最终的运行结果。
作为本发明的改进,在所述步骤S1中,选择一种或两种待演示的算法;当选择两种待演示的算法时,所述待演示的算法为同一类型的算法。
作为本发明的改进,在所述步骤S3中,当待演示的算法为一种时,在演示层中同步显示该算法正在执行的伪代码。
作为本发明的改进,通过加粗和变色的方式对正在执行的伪代码进行突出显示。
作为本发明的改进,在所述步骤S2中,算法的初始数据由手动输入或根据算法本身随机生成。
作为本发明的改进,在所述步骤S3中,生成的上下文信息采用二维数组的形式保存至上下文层。
作为本发明的改进,在所述步骤S4中,对预设的视图生成方法进行扩充,具体为:加入数据结构、离散数学和图论中所有基础算法的视图生成方式。
作为本发明的改进,在所述步骤S5中,更新演示层中生成的视图,具体为:
S5.1、预设视图刷新的时间间隔;
S5.2、当到达预设的时间间隔时,检查每个显示区域的当前视图索引与上下文层中最新的位置索引是否一致,若是,则无需更新视图,若否,则将当前视图索引更新至与上下文层中最新的位置索引一致,根据更新后的当前视图索引找到新生成的上下文信息,并根据预设的视图生成方法,更新演示层中生成的视图。
作为本发明的改进,通过暂停位置索引的更新,进行视图的暂停操作;通过前翻位置索引,进行视图的后退操作;通过后翻位置索引,进行视图的前进操作。
一种面向方面的算法可视化系统,包括算法层、上下文层、演示层,所述算法层输出端与所述上下文层输入端连接,所述上下文层输出端与所述演示层输入端连接,其中:
所述算法层用于存储算法、进行算法的数据初始化、执行算法和输出算法最终的运行结果;
所述上下文层用于保存和更新执行算法时生成的上下文信息及其位置索引;
所述演示层用于划分不同算法的显示区域,每个显示区域的当前视图索引与上下文层中保存的位置索引匹配后获取对应的上下文信息,并根据预设的视图生成方法生成视图。
与现有技术相比,本发明技术方案的有益效果是:
本发明通过算法层、上下文层、演示层的配合,在演示层中划分不同算法的显示区域,并在每个显示区域中生成反映对应算法执行过程的视图,实现不同算法的同步对比。
附图说明
图1为本发明所述方法流程示意图;
图2为本发明所述系统结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
实施例1
如图1所示,一种面向方面的算法可视化方法,包括以下步骤:
S1、在算法层选择待演示的算法;
S2、对算法进行数据初始化;
S3、执行算法,将生成的上下文信息及其位置索引保存至上下文层;
S4、在演示层中划分不同算法的显示区域,将每个显示区域的当前视图索引与上下文层中保存的位置索引进行匹配,获取对应的上下文信息,根据预设的视图生成方法,在演示层中生成视图;
S5、判断算法是否执行完毕,若否,则将新生成的上下文信息继续保存至上下文层,进行上下文信息的更新,同时更新演示层中生成的视图,若是,则算法层输出算法最终的运行结果。
在上述技术方案中,通过算法层、上下文层、演示层的配合,在演示层中划分两种(或扩展至多种)算法的显示区域,并在不同的显示区域中生成反映不同算法执行过程的视图,实现不同算法的同步对比。
优选地,在所述步骤S1中,选择一种或两种待演示的算法;当选择两种待演示的算法时,所述待演示的算法为同一类型的算法。
在上述技术方案中,本实施选用最小生成树的Kruskal算法和Prime算法进行演示,此两种算法为同一类型的算法。
优选地,在所述步骤S3中,当待演示的算法为一种时,在演示层中同步显示该算法正在执行的伪代码。
在上述技术方案中,当待演示的算法为两种时,不会显示伪代码,一方面是屏幕范围有限,另一方面是为了避免初学者产生混乱。
优选地,通过加粗和变色的方式对正在执行的伪代码进行突出显示。
在上述技术方案中,根据保存的上下文信息,重点突出当前执行的伪代码语句,利于学习者加强对算法基本原理的理解。
优选地,在所述步骤S2中,算法的初始数据由手动输入或根据算法本身随机生成。
在上述技术方案中,对于初始数据,比如加权连通图的结点和权重信心,学习者可手动输入,然后送入代码中执行。
优选地,在所述步骤S3中,生成的上下文信息采用二维数组的形式保存至上下文层。
在上述技术方案中,扩充了上下文层,原来的上下文层只能包含一个具体算法执行过程中的上下文信息,扩充后,采用二维数据的形式保存生成的上下文信息,每一维数组用以保存一种算法生成的上下文信息,上下文信息包括算法每一次执行后数据的变化情况。
优选地,在所述步骤S4中,对预设的视图生成方法进行扩充,具体为:加入数据结构、离散数学和图论中所有基础算法的视图生成方式。
在上述技术方案中,传统的算法可视化工作,大多局限于排序算法,这对于学习者来说远远不够,加入这些领域的基础算法的视图生成方式后,方便学习者的学习。
优选地,在所述步骤S5中,更新演示层中生成的视图,具体为:
S5.1、预设视图刷新的时间间隔;
S5.2、当到达预设的时间间隔时,检查每个显示区域的当前视图索引与上下文层中最新的位置索引是否一致,若是,则无需更新视图,若否,则将当前视图索引更新至与上下文层中最新的位置索引一致,根据更新后的当前视图索引找到新生成的上下文信息,并根据预设的视图生成方法,更新演示层中生成的视图。
在上述技术方案中,通过设定固定的刷新时间,本实施例中为100ms,检查上下文信息是否更新,然后根据上下文信息刷新视图,实现算法的同步可视化。
优选地,通过暂停位置索引的更新,进行视图的暂停操作;通过前翻位置索引,进行视图的后退操作;通过后翻位置索引,进行视图的前进操作。
在上述技术方案中,通过增加视图的暂停、前进和后退功能,极大提高了交互性,方便学习者手动调整动画,增加学习积极性。
实施例2
如图2所示,一种面向方面的算法可视化系统,包括算法层、上下文层、演示层,所述算法层输出端与所述上下文层输入端连接,所述上下文层输出端与所述演示层输入端连接,其中:
所述算法层用于存储算法、进行算法的数据初始化、执行算法和输出算法最终的运行结果;
所述上下文层用于保存和更新执行算法时生成的上下文信息及其位置索引;
所述演示层用于划分不同算法的显示区域,每个显示区域的当前视图索引与上下文层中保存的位置索引匹配后获取对应的上下文信息,并根据预设的视图生成方法生成视图。
在上述技术方案中,采用了面向方面的设计思想,整体实现方式为:算法层-上下文层-演示层,算法层与演示层分开,互相独立,由上下文层进行连接,避免了算法代码冗余和可重用性低的问题。
综上,本发明扩充了上下文层,克服了以往只能保存一种算法执行过程中的上下文信息的缺陷,并在演示层中划分不同的显示区域,实现了不同算法的同步演示,可方便学习者更好地理解不同算法之间的区别;实现了算法执行过程中,伪代码的同步显示和更新,加强对算法基本原理的理解;实现了对视图的暂停、前进、后退,并增加了学习者可修改算法初始数据的功能,极大提升交互性;且通过扩充视图生成方法,使可视化领域扩展至数据结构、离散数学乃至图论的各种基础算法,而不仅仅局限于排序算法。
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (10)

1.一种面向方面的算法可视化方法,其特征在于,包括以下步骤:
S1、在算法层选择待演示的算法;
S2、对算法进行数据初始化;
S3、执行算法,将生成的上下文信息及其位置索引保存至上下文层;
S4、在演示层中划分不同算法的显示区域,将每个显示区域的当前视图索引与上下文层中保存的位置索引进行匹配,获取对应的上下文信息,根据预设的视图生成方法,在演示层中生成视图;
S5、判断算法是否执行完毕,若否,则将新生成的上下文信息继续保存至上下文层,进行上下文信息的更新,同时更新演示层中生成的视图,若是,则算法层输出算法最终的运行结果。
2.根据权利要求1所述的一种面向方面的算法可视化方法,其特征在于,在所述步骤S1中,选择一种或两种待演示的算法;当选择两种待演示的算法时,所述待演示的算法为同一类型的算法。
3.根据权利要求2所述的一种面向方面的算法可视化方法,其特征在于,在所述步骤S3中,当待演示的算法为一种时,在演示层中同步显示该算法正在执行的伪代码。
4.根据权利要求3所述的一种面向方面的算法可视化方法,其特征在于,通过加粗和变色的方式对正在执行的伪代码进行突出显示。
5.根据权利要求1所述的一种面向方面的算法可视化方法,其特征在于,在所述步骤S2中,算法的初始数据由手动输入或根据算法本身随机生成。
6.根据权利要求1所述的一种面向方面的算法可视化方法,其特征在于,在所述步骤S3中,生成的上下文信息采用二维数组的形式保存至上下文层。
7.根据权利要求1所述的一种面向方面的算法可视化方法,其特征在于,在所述步骤S4中,对预设的视图生成方法进行扩充,具体为:加入数据结构、离散数学和图论中所有基础算法的视图生成方式。
8.根据权利要求1所述的一种面向方面的算法可视化方法,其特征在于,在所述步骤S5中,更新演示层中生成的视图,具体为:
S5.1、预设视图刷新的时间间隔;
S5.2、当到达预设的时间间隔时,检查每个显示区域的当前视图索引与上下文层中最新的位置索引是否一致,若是,则无需更新视图,若否,则将当前视图索引更新至与上下文层中最新的位置索引一致,根据更新后的当前视图索引找到新生成的上下文信息,并根据预设的视图生成方法,更新演示层中生成的视图。
9.根据权利要求8所述的一种面向方面的算法可视化方法,其特征在于,通过暂停位置索引的更新,进行视图的暂停操作;通过前翻位置索引,进行视图的后退操作;通过后翻位置索引,进行视图的前进操作。
10.一种面向方面的算法可视化系统,包括算法层、上下文层、演示层,所述算法层输出端与所述上下文层输入端连接,所述上下文层输出端与所述演示层输入端连接,其中:
所述算法层用于存储算法、进行算法的数据初始化、执行算法和输出算法最终的运行结果;
所述上下文层用于保存和更新执行算法时生成的上下文信息及其位置索引;
所述演示层用于划分不同算法的显示区域,每个显示区域的当前视图索引与上下文层中保存的位置索引匹配后获取对应的上下文信息,并根据预设的视图生成方法生成视图。
CN202110242023.3A 2021-03-04 2021-03-04 一种面向方面的算法可视化方法及系统 Active CN112883035B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110242023.3A CN112883035B (zh) 2021-03-04 2021-03-04 一种面向方面的算法可视化方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110242023.3A CN112883035B (zh) 2021-03-04 2021-03-04 一种面向方面的算法可视化方法及系统

Publications (2)

Publication Number Publication Date
CN112883035A true CN112883035A (zh) 2021-06-01
CN112883035B CN112883035B (zh) 2023-05-19

Family

ID=76055455

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110242023.3A Active CN112883035B (zh) 2021-03-04 2021-03-04 一种面向方面的算法可视化方法及系统

Country Status (1)

Country Link
CN (1) CN112883035B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100199257A1 (en) * 2009-01-31 2010-08-05 Ted James Biggerstaff Automated Partitioning of a Computation for Parallel or Other High Capability Architecture
US20150205496A1 (en) * 2012-08-14 2015-07-23 Koninklijke Philips N.V. Method and system for visualization of algorithmic guidelines
US20200034265A1 (en) * 2018-07-25 2020-01-30 King Fahd University Of Petroleum And Minerals Reverse engineering method, system and computer program thereof
US20200272992A1 (en) * 2017-09-26 2020-08-27 Portfolio Planner Aps Multiple project visualization tool
CN112133146A (zh) * 2020-10-14 2020-12-25 天津之以科技有限公司 一种算法练习代码执行可视化系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100199257A1 (en) * 2009-01-31 2010-08-05 Ted James Biggerstaff Automated Partitioning of a Computation for Parallel or Other High Capability Architecture
US20150205496A1 (en) * 2012-08-14 2015-07-23 Koninklijke Philips N.V. Method and system for visualization of algorithmic guidelines
US20200272992A1 (en) * 2017-09-26 2020-08-27 Portfolio Planner Aps Multiple project visualization tool
US20200034265A1 (en) * 2018-07-25 2020-01-30 King Fahd University Of Petroleum And Minerals Reverse engineering method, system and computer program thereof
CN112133146A (zh) * 2020-10-14 2020-12-25 天津之以科技有限公司 一种算法练习代码执行可视化系统

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
SPENCER KILLEN等: "Marble MLFQ: An Educational Visualization Tool for the Multilevel Feedback Queue Algorithm", 《2017 8TH IEEE ANNUAL INFORMATION TECHNOLOGY,ELECTRONICS AND MOBILE COMMUNICATION CONFERENCE (IEMCON)》 *
YUAN HUANG等: "Towards automatically generating block comments for code snippets", 《INFORMATION AND SOFTWARE TECHNOLOGY》 *
吴涛: "模型驱动算法演示中的程序上下文模型研究与实现", 《万方中国学位论文全文数据库》 *
周晓聪等: "事件驱动算法演示技术的面向方面实现", 《计算机科学》 *
沈翼之等: "算法可视化技术及其实现", 《计算机辅助工程》 *
陈新: "面向方面算法演示工具交互性研究与开发", 《现代计算机》 *

Also Published As

Publication number Publication date
CN112883035B (zh) 2023-05-19

Similar Documents

Publication Publication Date Title
Stone Applications of virtual environments: An overview
CN107103810A (zh) 情境式编程教学方法
CN109191590B (zh) 一种用于制作虚拟现实应用的处理系统及处理方法
US9665966B2 (en) Simulation object connections
Agnello et al. Virtual reality for historical architecture
Malina Digital image: Digital cinema: The work of art in the age of post-mechanical reproduction
CN112883035A (zh) 一种面向方面的算法可视化方法及系统
KR100297564B1 (ko) 정보처리장치
WO2015146517A1 (ja) 画像表示システム
CN111739132B (zh) 一种基于局部控制器的全身骨骼运动效果修改方法
Keskin et al. Designing AI-assisted interactive map displays to explore spatial information
US8314813B1 (en) Object trees for multiprocessor systems
CN111063009B (zh) 一种汉字书写动画演示方法及装置
JP2000215193A (ja) 最適化問題を解決する処理装置および方法
Cristina et al. 3D mobile prototype for basic algorithms learning
Hempe et al. Taking the step from edutainment to eRobotics-A novel approach for an active render-framework to face the challenges of modern, multi-domain VR simulation systems
Leathrum et al. Software skills required by m&s graduates for des development
Feng et al. A framework for simulating axon guidance
US7782322B2 (en) Plane shape creation system, plane shape creation method and program recording medium
Mu et al. Interface And Interaction: The Symbolic Design for Bridge Conning System
Budakova et al. Smart Shopping Cart Learning Agents
Yang et al. An interactive computer framework for learning genetics
Viruchpintu et al. Real-time 3D plant structure modeling by L-system with actual measurement parameters
Christenson The generative function of the occlusion map: Square spirals and the structure of visibility
Stouffs et al. EXPERIENTIAL INFLUENCES ON COMPUTATIONAL ASSOCIATION IN DESIGN

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