Inscription / Connexion Nouveau Sujet
Niveau énigmes
Partager :

Allumer la grille

Posté par
LittleFox
05-06-20 à 14:02


Bonjour,

Voici une version simplifiée d'un problème que je rencontre à mon boulot (ça parle d'irradier des tumeurs mais on va parler d'allumer des ampoules ).

J'ai une grille de 12x12 ampoules. Elles sont toutes éteintes au début.
Dès que je touche une ampoule elle devient jaune et ses (4) voisines si elles étaient éteintes deviennent rouges.
Une ampoule devient verte dès qu'elle et ses voisines sont jaunes.
Je me déplace d'une ampoule à l'autre (horizontalement et verticalement) en une seconde et je ne suis pas obligé de toucher les ampoules sur mon passage.
Je dois rendre toutes les ampoules vertes (et donc toutes les toucher).

Dans quel ordre dois-je toucher les ampoules pour que le temps que chacune passe dans l'état rouge ou jaune soit minimum (on cherche à minimiser le maximum)?

En particulier, y a-t-il une solution plus efficace qu'un serpentin (où le temps maximal est de 23s)?

Allumer la grille

Dans l'exemple inefficace ci-dessus, l'ampoule 7 est restée rouge ou jaune 6 secondes mais ça fait 12 secondes que l'ampoule 1 est jaune.

Je n'ai pas la réponse mais vous aideriez un projet de recherche qui soigne des gens

Posté par
derny
re : Allumer la grille 05-06-20 à 14:43

Bonjour LittleFox et tout le monde, je ne comprends pas tout.
Si je touche l'ampoule qui est au-dessous de la 4, la 4 devient verte et pourtant je ne l'ai pas touchée. Or tu dis qu'il faut les toucher pour qu'elles deviennent vertes.
Autre précision : quand tu dis "je ne suis pas obligé de toucher les ampoules sur mon passage", mais chaque survol d'ampoule même non touchée prend une seconde ?

Posté par
LittleFox
re : Allumer la grille 05-06-20 à 17:02

Les numéros sont l'ordre dans lequel j'ai touché les ampoules dans mon exemple. La 4 deviendra verte et elle aura été touchée en 4ème  (par moi).

Oui, chaque déplacement (une ampoule à gauche, à droite, en haut ou en bas) prend une seconde.

Posté par
Imod
re : Allumer la grille 05-06-20 à 17:12

Bonjour Littlefox

Ca ressemble au jeu de la vie en plus compliqué , je ne suis pas sûr qu'il y ait une réponse simple .

Imod

Posté par
LittleFox
re : Allumer la grille 05-06-20 à 18:15


@Imod
Oui ça m'y fait penser un peu aussi. Mais les mise à jour sont locales et pas globales.
Il y a 4 états au lieu de 2 mais il n'y a pas de cycle possible.

Donc au final assez différent quand même

Posté par
mathafou Moderateur
re : Allumer la grille 05-06-20 à 19:40

Bonjour,

moi ça m'a fait penser au jeu "Lights out" © 1995

Allumer la grille

wiki

mathématiquement on fait des calculs matriciels là dessus sur une algèbre de boole (allumé / éteint / ou exclusif)
voir le wiki, ou site de R.J.B.ch

ici on pourrait utiliser une technique semblable, mais avec un ensemble différent de [0; 1} : {éteint, rouge, jaune , vert}
et une opération différente...

Posté par
weierstrass
re : Allumer la grille 05-06-20 à 23:54

Je ne suis pas sur d'avoir compris le problème. Si on serpente ligne par ligne, le temps maximal est de 24s. Quand on atteint le bout d'un ligne, on rougit la case au dessus. A partir de là, on remonte. On doit ensuite faire une ligne puis remonter, puis refaire une ligne. On a parcouru 1 + 11 + 1 + 11 soit 24. A moins que l'on se fiche des cases du bord et que l'on ne s'occupe que du carré 10x10 au milieu. Ou alors, j'ai mal compris l'idée d serpentin...
Sinon, je pense avoir trouvé l'idée de base de la démo :
Prenons les deux premiers coins jaunis.
Supposons qu'ils sont sur le même bord, et en bas, et que l'on visite en premier celui de gauche. Au moment ou l'on jaunit le deuxième coin, il existe une case de la première colonne qui est jaune (et pas encore verte). (car on a déjà jauni le coin coin en bas à gauche, mais pas encore celui en haut à gauche).
Il faudra donc faire au moins un aller pour aller la verdir, sachant que l'on a déja fait au moins un aller. Donc on aura forcément besoin à un moment de faire 2 allers avant de verdir une case jaunie.

Posté par
LittleFox
re : Allumer la grille 07-06-20 à 18:08


@mathafou
Je ne suis pas sûr que le même type d'algèbre puisse être utilisée. On a 4 état qui vont tous dans le même sens (éteint -> (rouge ->) jaune -> vert. Le ou exclusif est donc exclu
Mais peut-être qu'il y a une piste quand même.

@weierstrass
Oui, effectivement. C'est bien 24, j'ai oublié de compter que la première lampe  de chaque rangée est allumée avant de d'y toucher.

J'aime vraiment bien l'idée de ta démo. Je l'ai pas mal retournée dans ma tête et je pense qu'elle tient.

Après l'idée serait d'étendre à des formes plus compliquées qu'un carré et choisir l'emplacement et la "portée" des lampes.

Merci beaucoup à tous



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !