Composition automatique de palanquées en plongée sous-marine

Composition automatique de palanquées en plongée sous-marine

Profil Profil souhaité : master ou bac
Prérequis Connaissances de programmation objet (Java). Il est préférable d’avoir une expérience en plongée sous-marine, par exemple d’avoir un premier brevet de plongée, de manière à connaître le domaine et ses contraintes.
Durée min 12 semaines, ampleur du travail modulée en fonction de la durée

Possibilité de stage de pôles (financement des déplacements)

Contexte

Une palanquée est un groupe de plongeur qui plonge ensemble ; l’équivalent d’une cordée en alpinisme.

Etant donné un groupe de plongeur typiquement de 20 à 30, issu d’un club ou d’une organisation commune, il faut proposer une composition de palanquée cad un ensemble de palanquées ainsi qu’un planning tel que :
- Les palanquées respectent les prérogatives des brevets de plongée. La plongée sous-marine est un, sport où chaque plongeur a un brevet, et il y a des règles sur la composition de palanquée qui sont formulées sur base des brevets des plongeurs. Par exemple, la CMAS a défini des brevets de plongée pour adulte et enfants. Les brevets CMAS pour plongeurs adultes sont les 1, 2, 3, 4 étoiles, et il y a également des brevets de moniteur de plongée : 1, 2, 3 étoiles. Deux plongeurs deux étoiles peuvent plonger ensemble, à une profondeur maximale de20m. un plongeur 3* et un 2* peuvent plonger ensemble en respectant leur profondeur limite, un une étoile ne peut plonger qu’avec un 4* ou plus, etc. Il y a également des brevets de plongée pour enfant, et des brevets de plongée pour adulte qui autorisent l’adulte à encadrer la plongée d’un enfant. Il y a d’autres systèmes de brevets, notamment PADI, avec des règles légèrement différentes.
- Il faut à tout moment une palanquée de sécurité, cad une palanquée comprenant un plongeur minimum 4*, qui doit donc être au bord de l’eau et qui surveille le bon déroulement des plongées et soit prêt à intervenir en cas d’incident (ramener quelqu’un au bord, donner de l’oxygène, etc.)
- Chaque plongeur est satisfait de ses plongées. Certains plongeurs ont des souhaits de profondeur à atteindre (typiquement 30m ou 40m).
- Un plongeur peut éventuellement enchaîner plusieurs plongées, sauf s’il s’agit de plongées profondes : pas deux plongées à 30 ou 40m de profondeur d’affilée. En cas de plongées multiples il est recommandé que la profondeur aille en décroissant, sauf si la/les premières plongées sont peu profondes, typiquement des plongées à 10m max effectuées avec un enfant
- Certains plongeurs ne peuvent pas plonger ensemble (par exemple si les personnalités sont incompatibles)
- Certains plongeurs souhaitent plonger ensemble (par exemple pour faire une activité commune tel de la photographie sous-marine)
- Il faut éventuellement tenir compte de la température : certains plongeurs sont frileux et ne peuvent donc pas assurer le poste de sécurité après une plongée ni effectuer plus d’une plongée. Certains plongeurs ont des combinaisons étanches qui leur permettent de ne pas craindre le froid.
- Etc.

OscaR est un toolkit Open Source de recherche opérationnelle. Il comprend notamment un moteur de type recherche locale basée sur des contraintes (CBLS) et un moteur de programmation par contraintes (CP).

Objectif su stage

L’objectif du stage est de proposer un algorithme de composition de palanquée. Cet algorithme devra tenir compte des règles ci-dessus.

L’algo pourra ou non être intégré à une interface graphique, selon les aspirations et compétences du stagiaire.

Certaines règles devront être identifiées ou affinées, tels les règles de composition de palanquée sur base des brevets des différentes fédérations.

Certains critères nécessiteront une certaine créativité pour être exprimés, notamment les critères humains de satisfaction des plongeurs.

Structure du travail

Le stage se découlera comme suit :

  1. Elaboration du cahier des charges, une séance d’interview de moniteur expérimenté sera organisée.
  2. Collection d’un ensemble de jeux de données.
  3. Proposition de l’algorithme sur base des moteurs disponibles dans le moteur oscar ; probablement un hybride avec le moteur CP s’approchant de la génération de colonne.
  4. Proposition d’un format de fichier d’entrée-sortie, sur base de JSon et/ou d’une interface graphique.
  5. Développement de l’algorithme et test sur les données.

Encadrement

Tout le travail sera encadré, mais nécessitera un minimum d’autonomie. Il s’agit d’un stage à forte connotation algorithmique, sur un outil Open Source en pleine expansion.

Références

- OscaR : https://bitbucket.org/oscarlib/oscar/wiki/Home
- Scala : http://www.scala-lang.org

Contact : Renaud De Landtsheer