Sudoku 9x9 Logic Solver
DOWNLOAD → Sudoku 9x9 Logic Solver & Report Builder --- v 2008 12 31 --- Excel 2000
Versione per Excel 2000 o superiore: risolutore "logico" (1161 kb .zip) con generatore di report per schemi numerici "classici" (no diagonali) → vai alla pagina della guida al pannello di controllo del foglio "Classic Grid".
Dalla versione - v 2007 08 13 - è presente una macro che facilita l'importazione in Excel di schemi proposti in formato testo precedentemente copiati negli appunti di Windows (vai alla pagina con le spiegazioni dettagliate sulle caratteristiche di funzionamento di questa macro).
Dalla versione - v 2007 09 30 - è presente la valutazione di difficoltà di soluzione logica (vedi note sulle versioni).
Dalla versione - v 2008 04 01 - è stato introdotto un nuovo foglio per giocare e risolvere manualmente i Sudoku, con una serie completa di comandi e aiuti su un "Pannello di controllo" dedicato (vai alla pagina dedicata con la guida ai comandi e aiuti di gioco); ora è possibile risolvere e importare anche schemi "tipo pencilmark" (che contengono, oltre ai candidati inseriti fissi iniziali, anche i candidati residui nelle altre celle) e i "Sukaku" (altrimenti detti "No-given Sudoku" - "Pencilmark Sudoku" - "Suuji Kakure", dove non ci sono candidati inseriti fissi iniziali ma solo candidati residui di cella).
Questo risolutore "non standard" non si limita a fornire semplicemente lo schema iniziale risolto, ma genera un report grafico e uno testuale con tutti i passi logici seguiti per arrivare alla soluzione (nei report, oltre alla soluzione, compaiono solo i passi logici e non gli eventuali tentativi finali).
I due report sono generati su due fogli di lavoro distinti nominati "Report Grafico" e "Report TXT": se nella cartella di lavoro del risolutore ci sono già due fogli con questi nomi i dati precedenti saranno sovrascritti, altrimenti saranno generati due nuovi fogli di lavoro.
Chi vuole conservare i report deve, quindi, o rinominare i fogli di
lavoro dei report o spostarli/copiarli in un'altra cartella di lavoro.
"Report TXT" però conviene spostarlo, perché a volte si generano
stringhe con più di 1024 caratteri che potrebbero essere troncate con
un'azione di copia foglio (si può anche eventualmente fare un semplice
copia/incolla dati su un nuovo foglio vergine).
Se si sceglie la rinomina dei fogli nella stessa cartella di lavoro del risolutore bisogna tenere presente le dimensioni che può assumere il file: i due fogli report di uno schema sudoku abbastanza semplice raggiungono comunque una dimensione di circa 300 kb che può aumentare parecchio per schemi molto difficili (vedi files con report di esempio).
Il risolutore ricerca, nell'ordine e ciclicamente, per gli inserimenti fissi o le eliminazioni:
Quando un algoritmo esce dal suo ciclo senza eliminazioni si passa alla tecnica superiore, se invece trova anche una sola eliminazione si riprende dal passo uno. Gli algoritmi di eliminazione candidati escono dal loro ciclo in due casi: ovviamente quando non trovano più possibili eliminazioni, oppure anticipatamente quando, in seguito ad una eliminazione, rimane in qualche riga/colonna/riquadro un Naked o Hidden Single. Per questo motivo può capitare di osservare, nei report, eliminazioni eseguite con una determinata tecnica quando erano possibili con un'altra tecnica di livello inferiore. E' abbastanza frequente notare nelle Alternating Inference Chains eliminazioni possibili anche con Subsets o Basic Fishes, ma non dovrebbe mai accadere alla prima catena della serie (perché le prime catene eventualmente eliminano i candidati che impediscono l'utilizzo della tecnica inferiore).
Fino alla versione - v 2007 10 28 -, l'algoritmo di individuazione subsets ricerca tutti i tipi di naked prima degli hidden, e pertanto segnalerà, ad esempio, sempre un naked-quad anziché un hidden-pair in un settore con tre candidati fissi inseriti e sei celle da risolvere, oppure segnalerà sempre un naked-quad anziché un hidden-triple in un settore con due candidati fissi inseriti e sette celle da risolvere (vedi note sulle versioni).
Chi vuole maggiori informazioni su Alternating Inference Chains (Forbidding
Chains) può visitare il
sito di Bruno Greco (dove sono spiegati benissimo i concetti base
delle catene), oppure il
blog di sudoku.com.au (molti esempi e discussioni su catene di tutti
i tipi).
Per le tecniche di Forcing Chains si possono ricavare esempi dall'ottimo
risolutore Java
Sudoku
Explainer.
Nella versione attuale non sono supportate le Forcing Chains annidate all'interno di altre Forcing Chains: è l'unico sistema che consente di elaborare una soluzione logica per qualsiasi sudoku a soluzione unica, ma sono veramente pochi gli schemi che richiedono questa tecnica (vedi anche note sulla raccolta di schemi più difficili nella pagina download schemi di "Sudokum Players' Forum").
Non la richiedono, ad esempio, alcuni set di schemi abbastanza noti come Top 95, Top 1465 o VB6-contest.
Non è richiesta neanche negli schemi più difficili pubblicati come esempi di tecniche varie di soluzione nel sito del risolutore Sudoku Explainer (è forse la raccolta di schemi più completa come livelli di difficoltà).
I tempi di soluzione sono più lunghi di quelli del risolutore standard che usa limitate tecniche logiche (si ferma ai tripli subsets) e non produce alcun report.
Indicativamente, con processore Pentium 4 - 3,8 Ghz, servono comunque pochi secondi per gli schemi con difficoltà massima fino ai subsets, poche decine di secondi per quelli con molte alternating inference chains, massimo tre/quattro minuti per forcing chains con candidati singoli annidati, fino a venti minuti circa per forcing chains con candidati bloccati e/o subsets annidati e da una a più ore per forcing chains con con alternating inference chains annidate (per tutti questi il risolutore 9x9 standard impiega quasi sempre meno di un secondo e rarissimamente più di dieci secondi).
Il tempo di elaborazione indicato nel message box finale è calcolato non tenendo conto del tempo iniziale di reset dei due fogli "Report Grafico" e "Report TXT" che può essere di qualche secondo se l'ultimo "Report Grafico" è molto "voluminoso" (nel risolutore standard, invece, il tempo indicato nel message box comprende veramente tutto il ciclo di elaborazione).
Il "Sudoku 9x9 Logic Solver & Report Builder" ricerca comunque una via logica anche per gli schemi a soluzioni multiple, e indica nei report fino a un massimo di dieci soluzioni.
Ovviamente questi schemi non si possono mai risolvere completamente in modo logico, ed il risolutore, "prima di arrendersi" e passare ai tentativi, prova tutte le tecniche ed impiega molto tempo (di solito oltre mezz'ora sempre con Pentium 4 - 3,8 Ghz) prima di dare le soluzioni multiple (dalla versione - v 2008 04 01 - è tuttavia possibile fare un veloce controllo preventivo sul numero di soluzioni ammesse).
Per una migliore comprensione dei report grafici si può visionare la legenda in:
Vai alla pagina con i report di esempio
Vedi note sulle versioni Logic Solver