Quoi qu'on en dise, le moteur à improbabilité semble suivre un certain nombre de règles.
Afin de prévoir au plus juste la position d'apparition du vaisseau à chaque voyage, Trillian a relevé pour plusieurs centaines de voyages, le point de départ, et le point d'arrivée. Chaque point est décrit par 3 coordonnées, et un voyage est donc décrit par 6 nombres.
Afin que l'ordinateur de bord Eddie puisse lui-même prévoir les lieux d'apparition, Trillian essaie de lui fournir un modèle pour ces données. D'après Marvin, Eddie est relativement perfectionné, et les seuls modèles qu'il peut exploiter sont des réseaux de neurones. Marvin fournit une documentation technique sur ce type de réseau à Trillian (télécharger la documentation en question).
Il lui explique que pour Eddie, il faut fournir un réseau à deux couches, la première couche contenant 32 neurones et des fonctions d'activation de type ReLU et la seconde couche contenant 3 neurones et des fonctions d'activation identité. L'entrée du réseau sera un vecteur de taille 3, de même que la sortie.
Il lui explique que si elle est capable de fournir les 227 ((3 x 32 + 32) + (32 x 3 + 3)) paramètres d'un tel réseau de neurones à Eddie, celui-ci pourra exploiter le modèle, et prévoir les points d'arrivée.
Il ne reste plus à Trillian qu'à trouver ces 227 valeurs.
L'objectif est que le réseaux de neurones possédant 3 entrées, une couche de 32 neurones, puis une couche de 3 neurones, affublé de ces 227 poids calcule au mieux les points d'arrivée d'un voyage (3 coordonnées) connaissant le point de départ (3 coordonnées). On ne peut pas espérer un calcul parfait, et le calcul sera satisfaisant si l'écart entre chaque coordonnée calculée en sortie par le réseau et les coordonnées des points d'arrivée fournis par Trillian n'excède jamais 0.1.
Considérons l'exemple suivant (un voyage) :
[1.0, -2.513, -0.942, 0.8, -1.884, -1.036]
Cet exemple signifie que le réseau, si on lui donne en entrée 1.0, -2.513, -0.942
devra trouver en sortie une valeur pas trop éloignée de 0.8, -1.884, -1.036.
La valeur 0.72, -1.91, -1.02 serait par exemple acceptable.
Par contre la valeur 0.72, -1.985, -1.02 ne le serait pas car la deuxième
coordonnée diffère de plus de 0.1 de la coordonnée souhaitée.
Les données d'entrée permettent d'accéder aux coordonnées relevées par Trillian (plusieurs centaines de séries de 6 nombres).
Il n'y a pas de limite de temps entre la consultation des données d'entrée, et la fourniture de la réponse.
La réponse, au format JSON, devra contenir la clé params associée à la liste des 227
paramètres, donnés dans l'ordre indiqué dans la documentation fournie par Marvin.
{
  'signature': XXX
  'params': [0.945, 1.23, -0.34, ...]
}
