Recentemente ho suonato di nuovo in The Logical Journey of the Zoombinis e ho cercato di implementare alcuni algoritmi informatici in grado di risolvere i vari enigmi. Sono bloccato su come affrontare il rompicapo del capitano Cajun.
Per chi non ha familiarità, uno Zoombini è una creatura con 4 attributi: capelli, occhi, naso e piedi. Ognuno di questi attributi ha 5 possibili valori; per esempio, i piedi di un Zoombini possono essere ruote, pattini a rotelle, scarpe da ginnastica, una molla o un'elica. Ecco un esempio di Zoombini con capelli disordinati, occhiali, un naso verde e scarpe da ginnastica:
Nel puzzle del traghetto, il compito è di organizzare una collezione di 16 Zoombinis sui sedici posti di un traghetto. L'accordo deve obbedire alla regola secondo la quale qualsiasi due posti confinanti ortogonalmente deve essere occupato da Zoombinis che condividono almeno una caratteristica. Se due Zoombinis hanno capelli diversi, occhi diversi, nasi diversi, e piedi diversi l'uno dall'altro, potrebbero non sedersi uno accanto all'altro.
La disposizione dei posti cambia per livello; per la concretezza, concentriamoci sul livello "Molto difficile", in cui i 16 posti sono disposti in una griglia 4 per 4. Ecco un esempio in cui 15 Zoombinis sono stati legalmente seduti, ma l'ultimo Zoombini in piedi sul banco degli imputati non può essere collocato sull'ultimo posto vuoto, perché non condividerebbe alcuna funzionalità con Zoombini alla sua destra:
Ce ne sono 16! ≈ 21 trilioni di incarichi possibili di Zoombini ai posti. Quindi, semplicemente, eseguire tutti i compiti possibili per vedere se è legale non sarà pratico. Quali sono alcune euristiche che potrei impiegare per affrontare sensibilmente questo problema?