2022嵌入式算法大赛题目解析+baseline思路
Posted tacit-lxs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022嵌入式算法大赛题目解析+baseline思路相关的知识,希望对你有一定的参考价值。
2022嵌入式算法大赛
1 .题目解析
工厂
可以将其看作是万能制造厂,只要将制造物品的材料传送进去,它就能为你制造出你想要的东西。比如,汽车,手机、电脑。
构成:
- 传送带:传送带分两种,一种是主传送带,另一种环回传送带。他们是方向始终是向前的,这一点很重要。
- 窗口:窗口只与一个车间相连。每个窗口有对1-2种类型仪器做预加工的能力。
- 车间:车间可以连接多个窗口,这也就说明车间和窗口是一对多的关系。
- 车间区域:一个车间有多个车间区域。每个车间区域只能提供一种型号的能源,一个车间区域可以安装无限台仪器。
- 仪器:仪器的类型有三种。仪器都是唯一的,且只能安装到一个车间区域,仪器的使用需要对应的能源。
流水图
-
流水线
说简单点,就是给你一堆材料,你需要先后用那些仪器对其进行加工。仪器使用顺序构成一条执行线路,称为流水线。而仪器和仪器之间有两种关系。
-
依赖关系
两个仪器必须按先后顺序加工。
-
协同关系
两个仪器可以一起加工,也可以按先后顺序加工。
-
-
流水图
不同的流水线,就构成了流水图。
-
核心流水线
一条使用仪器的指定的路径。
任务
我们需要将不同的仪器部署到不同的车间区域,要使得该工厂能够执行每一条流水线,然后还要为核心流水线设计一个窗口匹配方案。就是给出在制造材料从入口到出口的过程中进入的窗口,并且这些窗口所连车间的仪器正好包括核心流水线上使用的仪器,即,访问窗口的顺序正好对应仪器的使用顺序。
2. 解题思路
- 去环化
这样的好处是,我们可以串行的遍历窗口。可以将其看作一条时间线。具体而言可以用一个数组表示,其下标index可以表示在某一时刻,传送到了第几个窗口,值则表示对应的编号。
比如,上图中的例子
a = [0,1,0,1,2,3,3,4,4]
a[4]:表示0时刻,传送带把材料送到了第4个窗口,对应的编号为2。
- 拓扑排序消除依赖
根据拓扑排序,我们就可以得到每个仪器的使用的先后顺序。我们就可以按照这个顺序去一个一个的部署仪器。最简单的做法就是贪心的选取车间区域。
因为仪器的使用和材料进入的窗口有关,我们可以遍历窗口时间线,尽量早的部署仪器。具体而言,按拓扑排序遍历仪器,得到一个要部署的仪器。然后遍历窗口数组,如果窗口所连车间的车间区域满足仪器使用条件,我们就将仪器部署到该车间区域,再进行下一个仪器的部署。
在上面的过程中,我们记录好部署的车间区域和进入的窗口,就可以完成题目的要求了。
成绩
在我的资源中有我实现的一个baseline的代码。
以上是关于2022嵌入式算法大赛题目解析+baseline思路的主要内容,如果未能解决你的问题,请参考以下文章