Google Hash Code
Self-driving rides
Hash Code 2018, Online Qualification Round
Self-driving rides Hash Code 2018 Online Qualification Round 1 / 6
Enonc´ ´ e
Repr´ esentation du probl` eme
0 1 2 3
0 1 2
Notes
Notes
Enonc´ ´ e
Repr´ esentation du probl` eme
R,C
nombre de lignes et de colonnes de la grille
Fv´ ehicules
N
courses
∀r∈[1,N],sr,fr : le point de d´ebut et le point d’arriv´ee de la course
∀r∈[1,N],er,lr : le temps au plus tˆot de d´ebut et le temps au plus tard de fin de la course
B
bonus par course commen¸cant ` a l’heure
Thorizon de temps
Score d’une course : distance de la course plus un ´ eventuel bonus si elle est commenc´ ee ` a l’heure au plus tˆ ot
Objectif
: Maximiser le score de toutes les courses effectu´ ees
Self-driving rides Hash Code 2018 Online Qualification Round 2 / 6
Exemple
Example
1
2 0
1
T = 15 B = 2
e0 = 2 l0 = 14 e1 = 4 l1 = 14
Notes
Notes
Exemple
Example
Grille de 3 lignes et 4 colonnes 2 v´ ehicules
3 courses
s0= (0,2),f0= (2,2),e0= 2,l0= 14 s1= (2,1),f1= (0,1),e1= 4,l1= 14 s2= (1,0),f2= (3,2),e2= 0,l2= 14
Bonus de 2
Horizon de 15 pas de temps
Self-driving rides Hash Code 2018 Online Qualification Round 3 / 6
Enonc´ ´ e
Les variables ?
Les courses affect´ ees aux v´ ehicules
∀v∈[0,F −1],Lv : la liste des courses affect´ees au v´ehiculev
Notes
Notes
Algorithme glouton
Principe
A chaque ´ ` etape, on fait un choix, celui qui semble le meilleur ` a cet instant
Construit une solution pas ` a pas
sans revenir sur ses d´ecisionsen effectuant `a chaque ´etape le choix qui semble le meilleur en esp´erant obtenir un r´esultat optimum global
Approche glouton
suivant les probl`emes pas de garantie d’optimalit´e (heuristique gloutonne)
peu coˆuteuse (compar´ee `a une ´enum´eration exhaustive) choix intuitif
Self-driving rides Hash Code 2018 Online Qualification Round 5 / 6
Algorithme glouton
Example
2 v´ehicules, 3 courses
s2= (1,0),f2= (3,2),e2= 0,l2= 14,d2= 4 s0= (0,2),f0= (2,2),e0= 2,l0= 14,d0= 2 s1= (2,1),f1= (0,1),e1= 4,l1= 14,d1= 2
Objectif
: Maximiser le score de toutes les courses effectu´ ees
On trie les courses par ordre d´ecroissant de distanceOn parcourt les courses et on essaye de l’affecter `a un v´ehicule de fa¸con `a
Notes
Notes
Algorithme glouton
Example
2 v´ehicules, 3 courses
s2= (1,0),f2= (3,2),e2= 0,l2= 14,d2= 4 s0= (0,2),f0= (2,2),e0= 2,l0= 14,d0= 2 s1= (2,1),f1= (0,1),e1= 4,l1= 14,d1= 2
L0= [2,1] t0= 9,p0= (0,1)
L1= [0] t1=,p1= ()
score = 10
Self-driving rides Hash Code 2018 Online Qualification Round 6 / 6
Algorithme glouton
Example
2 v´ehicules, 3 courses
s2= (1,0),f2= (3,2),e2= 0,l2= 14,d2= 4 s0= (0,2),f0= (2,2),e0= 2,l0= 14,d0= 2 s1= (2,1),f1= (0,1),e1= 4,l1= 14,d1= 2
Am´ elioration
On peut changer de strat´ egie
1 On trie les courses par ordre d´ecroissant de distance
2 On trie les courses par possibilit´e de bonus
3 Une combinaison des 2 pr´ec´edentes