高性能的闭环OJ系统设计和实现文献综述

 2022-08-13 09:08

一、文献综述

(一)国内外研究现状

中国在编程系列竞赛的普及程度上走在了世界前列,近几年来的IOI金牌,上交、浙大在ACM/ICPC World Finals 上的世界冠军都彰显着中国青少年的编程实力。大大小小的比赛覆盖了从小学到社会的方方面面的人们,在平台上也对应着有如计蒜客、洛谷、各大高校OJ、力扣和牛客网等如雨后春笋般的涌出。

在ACM/ICPC模式的系列竞赛规模浩大的网络赛当中,参加的队伍数量经常达到成千上万,一场比赛下来的判题数量更是十万起步,国内如HDUOJ,计蒜客、牛客网都已经能够平稳的支撑这些大型比赛的判题,保障比赛顺利进行,基本不会出现系统宕机、评测堆积等情况,受广大参赛者的好评。但是这些系统,他们解决了这一系列竞赛当中最核心的问题(判题),却忽视了其它的一些需求。

根据笔者的亲身体验,发现如上述三个国内较为知名的平台,也仅支持传题,而不支持出题。而HDUOJ更是只能接受单组样例的评测,这意味这很多出题人在将题目上传到HDUOJ的时候,都需要将测试数据进行合并,这一步骤的增加也是提高了比赛期间出问题的概率,在今年CCPC(中国大学生程序设计竞赛)网络赛举办期间,就有两道题目出现问题,如果能够增加校验环节,我相信能够减少出问题的概率。

上述几个国内平台中,像HDUOJ、计蒜客这些平台的社区支持并不太好,没有形成信息的积淀。而像牛客网、力扣等平台在面向企业招聘这一块业务的社区发展较好,对于每道题设有题解区和讨论区,基本上思考了许久之后去翻看一下题解区的题解,就能解开疑惑。大大提高了用户的学习效率,特别是力扣,编辑器的使用体验十分良好,对于代码块和数学公式的支持特别好,而牛客网在这一块略微差了一点。

在俄罗斯,有着国际上注册用户数量最多的在线判题系统Codeforces,有着运作稳定的社区,有出题辅助平台Polygon,截止本文撰写时,Polygon上已有15万余题目,Codeforces已经举办比赛近千场,评测量达到一亿余次。但是因为该平台于2010年就开始运作,里面的几个模块还是略微有不足的地方。第一个就是出题辅助平台Polygon的题面编写,需要使用LaTeX语法编写题面,支持同时输出pdf和html,也正因为如此,它支持的仅仅是LaTeX语法的一个很小的子集,使得很多时候需要输出一场比赛的题面的时候,需要出题人自己在本地用LaTeX重新整合一遍,其次在平台上也不支持脚本代码的在线编辑。在社区方面,对于Markdown的支持也不是特别好,不支持图片粘贴上传和实时渲染。最后最重要的一点是,这个平台是不开源的,这意味着用户要想对它改进基本上只能通过提建议的方式,或者想要在校内搭建这么一个平台用于训练、出题、办赛是不可能的事情。而该平台的服务区又处于国外,从国内访问相对会慢一点,所以使用Polygon进行规范化的出题在国内其实并不是很普及。

而杭州师范大学基于华中科技大学HUSTOJ自研的HZNUOJ在使用了其判题核心的情况下,重写了用户交互界面,近年来发展良好,在2019年举办了第十二届程序设计校赛,并且邀请了浙江省内的高中生和本科生。截止2020年,面向大一新生连续办了三届程序设计基础新生赛,在今年更是邀请了校外的百余支队伍同我校的大一新生同场竞技。比赛过程平稳,没有出现宕机现象,判题速率较高,没有出现大批量堆积的情况。

  1. 研究主要成果

目前国内各大高校都有自己的OJ,譬如浙江大学的ZOJ,杭州电子科技大学的HDUOJ,北京大学的POJ,华东师范大学的EOJ,浙江大学的ZOJ,除了EOJ和ZOJ近期升级过较新之外,其它OJ都比较老旧,很多新兴的需求都没有实现,于是有很多企业参与了竞赛平台的搭建。

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。