双拼显然:
编号 | 序列顺序 | 累计次数 |
---|---|---|
1 | 4 | |
2 | 6 | |
3 | 9 | |
4 | 10 |
三拼的判断方式是:回溯法生成所有可能的序列,在每一步选择新操作(某人上车或下车)时,判断车上是否还有人。
编号 | 序列顺序 | 累计次数 |
---|---|---|
1 | 6 | |
2 | 8 | |
3 | 10 | |
4 | 11 | |
5 | 12 | |
6 | 12 | |
7 | 14 | |
8 | 14 | |
9 | 16 | |
10 | 16 | |
11 | 18 | |
12 | 18 | |
13 | 19 | |
14 | 20 | |
15 | 21 | |
16 | 21 | |
17 | 21 | |
18 | 21 | |
19 | 21 | |
20 | 21 | |
21 | 24 | |
22 | 25 | |
23 | 26 | |
24 | 27 | |
25 | 28 | |
26 | 28 | |
27 | 28 | |
28 | 28 | |
29 | 28 | |
30 | 28 | |
31 | 29 | |
32 | 29 | |
33 | 29 | |
34 | 29 | |
35 | 29 | |
36 | 29 | |
37 | 29 | |
38 | 29 | |
39 | 29 | |
40 | 29 | |
41 | 30 | |
42 | 30 | |
43 | 30 | |
44 | 30 | |
45 | 30 | |
46 | 30 | |
47 | 30 | |
48 | 30 | |
49 | 30 | |
50 | 30 | |
51 | 30 | |
52 | 30 | |
53 | 30 | |
54 | 30 | |
55 | 30 | |
56 | 30 | |
57 | 30 | |
58 | 30 | |
59 | 30 | |
60 | 30 |
编号 | 场景 | 序列顺序 |
|
计算次数 |
---|---|---|---|---|
1 | 双拼 | 16238.69 | 10 | |
2 | 双拼 | 22143.40 | 10 | |
3 | 双拼 | 23042.19 | 10 | |
4 | 双拼 | 10417.09 | 10 | |
5 | 双拼 | 16918.74 | 10 | |
6 | 三拼 | 13903.36 | 30 | |
7 | 三拼 | 13350.40 | 30 | |
8 | 三拼 | 19324.21 | 29 | |
9 | 三拼 | 15757.84 | 30 | |
10 | 三拼 | 33871.15 | 23 |
根据球面方向角计算候选路径的所有三点间夹角,然后分别计算其最小值和平均值,加起来作为指标。对所有候选路径的指标做排序,取前k大的再做枚举。
编号 | 场景 | 序列顺序 |
|
计算次数 | 与$S^*$比值 |
---|---|---|---|---|---|
1 | 双拼 | 16238.69 | 4 | 100.00% | |
2 | 双拼 | 22143.40 | 4 | 100.00% | |
3 | 双拼 | 23042.19 | 4 | 100.00% | |
4 | 双拼 | 10417.09 | 4 | 100.00% | |
5 | 双拼 | 16918.74 | 4 | 100.00% | |
6 | 三拼 | 13903.36 | 21 | 100.00% | |
7 | 三拼 | 13350.40 | 16 | 100.00% | |
8 | 三拼 | 19324.21 | 11 | 100.00% | |
9 | 三拼 | 16046.75 | 18 | 101.83% | |
10 | 三拼 | 33871.15 | 15 | 100.00% | |
:----: | :----: | :---------: | :--------: | :--------: | :--------: |
1 | 双拼 | 16238.69 | 4 | 100.00% | |
2 | 双拼 | 22143.40 | 4 | 100.00% | |
3 | 双拼 | 23042.19 | 4 | 100.00% | |
4 | 双拼 | 10417.09 | 4 | 100.00% | |
5 | 双拼 | 16918.74 | 4 | 100.00% | |
6 | 三拼 | 13903.36 | 6 | 100.00% | |
7 | 三拼 | 14264.10 | 6 | 106.84% | |
8 | 三拼 | 19324.21 | 5 | 100.00% | |
9 | 三拼 | 16301.20 | 6 | 103.45% | |
10 | 三拼 | 34100.83 | 6 | 100.68% |
根据球面距离计算候选路径的所有两点间距离,然后加起来作为指标。对所有候选路径的指标做排序,取前k小的再做枚举。
编号 | 场景 | 序列顺序 |
|
计算次数 | 与$S^*$比值 |
---|---|---|---|---|---|
1 | 双拼 | 16238.69 | 4 | 100.00% | |
2 | 双拼 | 22143.40 | 4 | 100.00% | |
3 | 双拼 | 23042.19 | 4 | 100.00% | |
4 | 双拼 | 10417.09 | 4 | 100.00% | |
5 | 双拼 | 16918.74 | 4 | 100.00% | |
6 | 三拼 | 13903.36 | 12 | 100.00% | |
7 | 三拼 | 13350.40 | 11 | 100.00% | |
8 | 三拼 | 19324.21 | 10 | 100.00% | |
9 | 三拼 | 16046.75 | 13 | 101.83% | |
10 | 三拼 | 33871.15 | 9 | 100.00% | |
:----: | :----: | :---------: | :--------: | :--------: | :--------: |
1 | 双拼 | 16238.69 | 4 | 100.00% | |
2 | 双拼 | 22143.40 | 4 | 100.00% | |
3 | 双拼 | 23042.19 | 4 | 100.00% | |
4 | 双拼 | 10417.09 | 4 | 100.00% | |
5 | 双拼 | 16918.74 | 4 | 100.00% | |
6 | 三拼 | 13903.36 | 6 | 100.00% | |
7 | 三拼 | 14264.10 | 6 | 106.84% | |
8 | 三拼 | 19324.21 | 5 | 100.00% | |
9 | 三拼 | 16301.20 | 6 | 103.45% | |
10 | 三拼 | 34100.83 | 6 | 100.68% |
- Step 1: 枚举所有情况 对于每种序列,DFS计算所有候选点的选择,三拼中总共大约有60x7^6种情况。
case1: 13506.873184310927 查表190次 运行时间300ms case6: 11977.745265270445 查表548次 运行时间3min
- Step 2: 剪枝 由于计算量太大,不采用直接枚举+剪枝的思路。
采用多个策略组合的方式:
-
先确定序列,再考虑上车点 如果保留前N小的序列,这样只有Nx7^6种情况。
-
根据其所在马路到邻近节点的距离对候选点进行排序剪枝 d = 马路起点到上一节点的距离 + 马路终点到下一节点的距离 保留前k小的候选点,还剩Nxk^6种情况。
从task2的结果分析,case1/6可以用N=1做第一步剪枝,然后k取(4,2)全对,取(1,1)结果:
case1: 13892.215120194916 查表4次 比例1.0285293221181337 case6: 12195.516433070448 查表6次 比例1.018181315679791