一、比赛简介
在人工智能的时代,Python语言变得日益流行。对于Python数据科学,顾名思义,就是通过Python进行数据的处理与分析。Python数据科学是从事AI所必须的技能,因此学习Python数据科学是非常有必要的。人工智能在过去几年发展迅速。面向人工智能的开发一方面是使用 Python 与人工智能开源框架进行快速开发,一方面各个主要云计算提供商也发布了人工智能服务,通过面向开发者有好的人工智能API可以快速搭建实用的人工智能应用。随着人工智能API服务、微服务、Serverless架构普及等将会有越来越多的人工智能应用通过API服务进行集成和交付。
本次算法编程挑战赛,以Python语言为基础,对涉及到的机器学习中的分类、回归和聚类等的相关算法与实例用到scikit-learn机器学习库在开源数据上进行算法测试和调节相关参数,以有趣的效果体会人工智能的魅力。
二、参赛范围
1. 参赛组别:小学组、初中组、高中组。
2. 参赛人数:组队为2-4人/队,也可以单人报名参加比赛。
3. 指导教师:限1人(可空缺)。
4. 每人限参加一个赛项、一个队伍。
三、竞赛环境
1.操作系统:Windows 7及以上电脑操作系统。
2.竞赛网络:参赛选手自备网络。
3. 参赛选手需清空软件端数据进行现场编程。
四、竞赛描述
小学组——贪吃蛇游戏
1、赛项说明
“贪吃蛇游戏”比赛为贪吃蛇吃果子,每回合都将调用玩家上传的编程代码,做出决策控制贪吃蛇进行运动,寻找出现的果子,贪吃蛇移动方向由编程代码控制。
此赛项游戏主界面为30*30的网格,贪吃蛇从(1,1)出发,寻找随机出现的果子,当贪吃蛇吃掉一个果子后,网格中会接着再出现一个果子,贪吃蛇身体长度随之加3,依次循环,舌头与果子位置重合则判定为吃掉果子,果子不会出现在蛇身体上,贪吃蛇可以穿墙,蛇头在自己蛇的身体(即序列重复)、或非法操作均判定为死亡。
果子随机出现是有规则的,将30*30的网格等分成四部分,分别记作第一象限、第二象限、第三象限、第四象限。随机出现的果子是按照规定的象限依次出现的(例、第一个果子出现在第一象限,第二个果子出现在第二象限....),果子出现在象限的规律为 (1234,1432, 1324, 1342)。
2、评分标准
每次比赛会出现16个果子,吃完16个果子则比赛停止,全部任务完成的参赛选手以贪吃蛇所走步长进行排名,步长最短者获胜。注意:当贪吃蛇未完成吃果子任务就死亡时,则按照吃果子由多到少进行排名,吃果子多的排名靠前。
初高中组——贪吃蛇对抗游戏
1、赛项说明
贪吃蛇对抗游戏为双人(或两组)对战,每回合都将调用玩家上传的博弈编程代码,做出决策控制贪吃蛇进行运动。
此赛项将python人工智能中的算法思想与传统的贪吃蛇小游戏相结合,使得在提高学生兴趣的情况下完成对当下最流行的人工智能的基本思想的初步认知。
参赛者在n*m的网格中通过事先编写好的程序操纵各自的贪吃蛇,参赛者只能控制蛇头的朝向(上、下、左、右)来控制蛇的下一步移动的方向。
蛇的初始位置固定,并以恒定速度前进;蛇会自动长大,前10回合每回合长度增加1,从第11回合开始,每2回合长度增加1。
可以参考阿尔法狗的思想,通过python人工智能的思想尽可能去从总体上去考虑,不仅仅需要进行前向预测来寻找空间最大的可能走法。还要尽可能去预测比赛对象的可能前进路径去做出相应的堵截。
比赛中不仅可以直接去考虑到战胜对方,也可以去考虑怎么让自己尽可能的存活更长的时间,从侧面取得胜利。
2、胜负评价
蛇头在网格外、障碍物、自己蛇的身体(即序列重复)、对方蛇的身体(即与对方序列有相同坐标),或非法操作均判定为死亡。任何一条蛇死亡时,游戏结束。若蛇同时死亡,判定为平局,否则先死的一方输,另一方赢。
其中n和m为随机参数,n为[10,16]间的整数,m为[10,12]间的整数,选手的程序应该对任意n,m均有效。
3. 计分标准
1)算法创新性 分数:20% 创新性算法>对经典算法进行改进>编码实现经典算法>直接调用已封装好的经典算法的类库。
2)时间复杂度 分数:20% 时间复杂度越小得分越高。
3)代码可读性 分数:20% 从编码规范、代码结构、代码注释等方面进行评价。
4)代码可维护性 分数:20% 从设计模式、代码复用、封装、抽象等方面进行评价。
5)答辩表现分数:20% 根据竞赛队伍现场答辩的表现给出综合评分。
五、其他事项
1. 比赛期间,规则中未尽事项由技术委员会决定。竞赛组委会授权技术委员会对比赛规则进行解释。
2. 本规则是实施裁判工作的依据。竞赛中如遇争议,技术委员会通过复查比赛录像做出最终裁决。涉及裁决的任何异议需由参赛选手在比赛期间向裁判长提出,组委会不接受领队或学生家长的投诉。
3. 本次大赛的最终解释权归主办方。
六、赛项样例