Faire un programme C qui fabrique une instance aléatoire du
problème du "sac à dos" modulo 232 et qui cherche
à la résoudre par recherche exhaustive.
Le programme engrendre donc dans un premier temps 33 nombres
s, p1, ..., p32 de 32 bits de manière
pseudo-aléatoire.
Une solution du problème est un sous-ensemble I de {1,...,32} tel
que la somme modulo 232 des pi pour i dans I est
égale à s.
Une telle recherche est assez longue.
On cherche à pouvoir la lancer en arrière plan, tout en pouvant
continuer à dialoguer avec le processus.
On cherche essentiellement à lui transmettre plusieurs messages
différents:
- afficher ou la recherche en est (message
STATUS),
- abandonner la recherche et recommencer avec une autre instance
(message
RESTART),
- abandonner définitivement (message
STOP),
- demander l'affichage des sous-ensembles I qui seraient des solutions
modulo 2n (message
DISP n).
Définir un protocole de signaux pour coder ces messages
avec les signaux SIGUSR1 et SIGUSR2,
et faire une application Perl qui envoie ce type de message
à un processus donné.
[corrigé recherche en C,
lanceur de message en Perl]