bonjour,
j'ai un programme qui envoie sur une carte d'acquisition une série de codes. Chaque code représente un événement particulier. Ces événements sont codés sur 6 bits.
Logiquement avec 6 bits je peux coder 2^6 = 64 événements. L'ennui est certains événements ont lieu en même temps, par conséquent le code envoyé à la carte d'acquisition est la somme de ces codes (le programme fonctionne comme ça, je ne peux rien changer à ce niveau).
Exemple :
Si Event_1 et Event_2 ont lieu en même temps, la carte reçoit 8+48 = 56.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Event_1 = 2^4 + 2^5 = 48 Event_2 = 2^3 = 8
Ensuite au moment du traitement des données, je réalise l'opération inverse (utilisation de masques) pour retrouver Event_1 et Event_2.
Ce chevauchement des événements a une conséquence : le nombre d'événements que je peux coder n'est plus de 64.
En reprenant l'exemple ci-dessus, je ne peux pas coder un Event_3 tel que :
car dans ce cas si je reçoit 56, je ne sais pas si c'est Event_3 que j'ai reçu ou (Event_1 + Event_2).
Code : Sélectionner tout - Visualiser dans une fenêtre à part Event_3 = 2^3 + 2^4 + 2^5
Donc voici ma problématique :
- Je cherche à savoir combien d'événements je peux coder sur 6 bits tout en limitant les conflits, sachant que je peux avoir au maximum 4 événements qui se chevauchent.
- Bien sûr, je souhaite pouvoir coder un maximum d'événements
- De plus, je cherche à déterminer les codes de ces événements.
Après avoir pris des renseignements, on m'a parlé d'algorithmes d'optimisation, de l'algorithme de branch et bound, et de simplexe (pour la programmation linéaire).
Etant totalement incompétent dans ces domaines, je sollicite votre aide pour résoudre ce casse-tête
![]()
Partager