Sudoku: ancora un esercizio



Похожие документы
RISOLUTORE AUTOMATICO PER SUDOKU

Gestionalino è un Software che gestisce altri Software Specifici per risolvere le varie

x u v(p(x, fx) q(u, v)), e poi

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Soluzione dell esercizio del 2 Febbraio 2004

ALTRI SUGGERIMENTI PER IL PERCORSO AD OSTACOLI

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

LE FUNZIONI A DUE VARIABILI

Ottimizzazione Multi Obiettivo

USO DI EXCEL CLASSE PRIMAI

Esercizio 1 Soluzione Esercizio 2 Soluzione

Fasi di creazione di un programma

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

Algebra e Logica Matematica. Calcolo delle proposizioni Logica del primo ordine

Gestionalino-Base è un Software che gestisce altri Software Specifici progettati per

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

Capitolo 13: L offerta dell impresa e il surplus del produttore

Equilibrio bayesiano perfetto. Giochi di segnalazione

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

FUNZIONI ELEMENTARI - ESERCIZI SVOLTI

Calcolo del Valore Attuale Netto (VAN)

Probabilità discreta

Cosa è un foglio elettronico

CORSO DI CALCOLO DELLE PROBABILITÀ E STATISTICA. Esercizi su eventi, previsioni e probabilità condizionate

LEZIONE 23. Esempio Si consideri la matrice (si veda l Esempio ) A =

Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete.

APPLICAZIONI LINEARI

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE

Organizzazione degli archivi

Predicati e Quantificatori

Un gioco con tre dadi

Lezione 8. La macchina universale

ESERCIZI DI MATEMATICA FINANZIARIA DIPARTIMENTO DI ECONOMIA E MANAGEMENT UNIFE A.A. 2015/ Esercizi 4

METODI per effettuare previsioni con analisi di tipo WHAT-IF

Amministrazione gruppi (Comunità)

SPECIFICHE E LIMITI DI EXCEL

Database. Si ringrazia Marco Bertini per le slides

Anno 3. Classificazione delle funzioni

Funzioni. Funzioni /2

Gestione della memoria centrale

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Linguaggi del I ordine - semantica. Per dare significato ad una formula del I ordine bisogna specificare

Amministrazione gruppi (all interno della Scuola)

Il confronto fra proporzioni

(anno accademico )

Esercizi di Macroeconomia per il corso di Economia Politica

Scheda operativa Versione rif c00. Libro Inventari

Elementi di Psicometria con Laboratorio di SPSS 1

Appunti sulla Macchina di Turing. Macchina di Turing

Linguaggi. Claudio Sacerdoti Coen 11/04/ : Semantica della logica del prim ordine. Universitá di Bologna

Anno 3. Funzioni: dominio, codominio e campo di esistenza

CONTINUITÀ E DERIVABILITÀ Esercizi risolti

Prof.ssa Paola Vicard

Capitolo 13. Interrogare una base di dati

Funzioni. Il concetto di funzione nasce da quello di corrispondenza fra grandezze. Tale corrispondenza può essere data in svariati modi:

Informatica (Basi di Dati)

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

Basi di dati 9 febbraio 2010 Compito A

MODELLO RELAZIONALE. Introduzione

sumere, come peraltro confermato dalla giurisprudenza, che:

Amministrazione classi

Progetto di Reti di Telecomunicazione Modelli in Programmazione Lineare Problemi di flusso

Il Modello Relazionale

1 Giochi a due, con informazione perfetta e somma zero

Introduzione alla teoria dei database relazionali. Come progettare un database

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che:

L apposizione di firme e informazioni su documenti firmati

T = Da questa relazione si può ricavare quella inversa con cui si ottiene il tempo impiegato a percorrere un determinato spazio: S

Metodi e Modelli Matematici di Probabilità per la Gestione

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Ricorsione in SQL-99. Introduzione. Idea di base

1 Applicazioni Lineari tra Spazi Vettoriali

Il Gestionale: Gestionalino-Magazzino

Descrizione attività

Corrispondenze e funzioni

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

Lezione 9: Cambio di base

DATABASE. nozioni di base

Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente

Convertitori numerici in Excel

Metodi Stocastici per la Finanza

9. Urti e conservazione della quantità di moto.

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

Problema del trasporto

Automazione Industriale (scheduling+mms) scheduling+mms.

G. Zaltman Domande di qualità producono risposte di qualità Capitolo dodici. Andrea Farinet

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

Parte 6. Applicazioni lineari

Fogli Elettronici: MS Excel

EQUAZIONI DIFFERENZIALI Esercizi svolti. y = xy. y(2) = 1.

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

Concetto di Funzione e Procedura METODI in Java

Транскрипт:

Sudoku: ancora un esercizio Silvio Ranise LORIA & INRIA-Lorraine Nancy (France) 17 Gennaio 2007

Un esempio (sempre lo stesso) 5 3 7 6 1 9 5 9 8 6 8 6 3 4 8 3 1 7 2 6 6 2 8 4 1 9 5 8 7 9

Regole (sempre le stesse!) 1. in ogni cella (i, j), un solo valore da 1 a 9 2. per ogni valore k (da 1 a 9): 2.1 per ogni linea i, il valore k appare in una sola cella 2.2 per ogni colonna j, il valore k appare in una sola cella 2.3 per ogni quadrato, il valore k appare in una sola cella

Regole (sempre le stesse!) 1. in ogni cella (i, j), un solo valore da 1 a 9 2. per ogni valore k (da 1 a 9): 2.1 per ogni linea i, il valore k appare in una sola cella 2.2 per ogni colonna j, il valore k appare in una sola cella 2.3 per ogni quadrato, il valore k appare in una sola cella

Regole (sempre le stesse!) 1. in ogni cella (i, j), un solo valore da 1 a 9 2. per ogni valore k (da 1 a 9): 2.1 per ogni linea i, il valore k appare in una sola cella 2.2 per ogni colonna j, il valore k appare in una sola cella 2.3 per ogni quadrato, il valore k appare in una sola cella

Regole (sempre le stesse!) 1. in ogni cella (i, j), un solo valore da 1 a 9 2. per ogni valore k (da 1 a 9): 2.1 per ogni linea i, il valore k appare in una sola cella 2.2 per ogni colonna j, il valore k appare in una sola cella 2.3 per ogni quadrato, il valore k appare in una sola cella

Regole (sempre le stesse!) 1. in ogni cella (i, j), un solo valore da 1 a 9 2. per ogni valore k (da 1 a 9): 2.1 per ogni linea i, il valore k appare in una sola cella 2.2 per ogni colonna j, il valore k appare in una sola cella 2.3 per ogni quadrato, il valore k appare in una sola cella

Esercizio Trasformare il problema di risolvere il sudoku in un problema di soddisfacibilitá nella logica dei predicati del primo ordine con eguaglianza

Suggerimento 1 (lo stesso) Come possiamo rappresentare la tavola del gioco? Utilizzate un predicato ternario p: p(i, j, k) dove (i, j) identifica la cella della tavola e k il valore in questa memorizzato Domanda: non potremmo usare una funzione che prende la cella ovvero la coppia (i, j) e ritorna il valore k? In questo caso, il dominio di Hebrand è finito oppure no? Nel caso in cui utilizziamo il predicato ternario p, il dominio di Herbrand è finito oppure no?

Suggerimento 1 (lo stesso) Come possiamo rappresentare la tavola del gioco? Utilizzate un predicato ternario p: p(i, j, k) dove (i, j) identifica la cella della tavola e k il valore in questa memorizzato Domanda: non potremmo usare una funzione che prende la cella ovvero la coppia (i, j) e ritorna il valore k? In questo caso, il dominio di Hebrand è finito oppure no? Nel caso in cui utilizziamo il predicato ternario p, il dominio di Herbrand è finito oppure no?

Suggerimento 1 (lo stesso) Come possiamo rappresentare la tavola del gioco? Utilizzate un predicato ternario p: p(i, j, k) dove (i, j) identifica la cella della tavola e k il valore in questa memorizzato Domanda: non potremmo usare una funzione che prende la cella ovvero la coppia (i, j) e ritorna il valore k? In questo caso, il dominio di Hebrand è finito oppure no? Nel caso in cui utilizziamo il predicato ternario p, il dominio di Herbrand è finito oppure no?

Suggerimento 2 (variante) Come possiamo imporre la regola 1? Ovvero: in ogni cella (i, j), un solo valore da 1 a 9 Utilizzare una sola formula della logica dei predicati del primo ordine con eguaglianza: x.(x = 1 x = 2 x = 9) La formula sopra scritta fissa la cardinalità del dominio di qualsiasi struttura che la soddisfi ad essere pari a 9? Indizio: Le costanti 1, 2,..., 9 sono distinte oppure no? Bisogna aggiungere delle formule per imporre che, ad esempio, 1 sia distinto da 2?

Suggerimento 2 (variante) Come possiamo imporre la regola 1? Ovvero: in ogni cella (i, j), un solo valore da 1 a 9 Utilizzare una sola formula della logica dei predicati del primo ordine con eguaglianza: x.(x = 1 x = 2 x = 9) La formula sopra scritta fissa la cardinalità del dominio di qualsiasi struttura che la soddisfi ad essere pari a 9? Indizio: Le costanti 1, 2,..., 9 sono distinte oppure no? Bisogna aggiungere delle formule per imporre che, ad esempio, 1 sia distinto da 2?

Suggerimento 2 (variante) Come possiamo imporre la regola 1? Ovvero: in ogni cella (i, j), un solo valore da 1 a 9 Utilizzare una sola formula della logica dei predicati del primo ordine con eguaglianza: x.(x = 1 x = 2 x = 9) La formula sopra scritta fissa la cardinalità del dominio di qualsiasi struttura che la soddisfi ad essere pari a 9? Indizio: Le costanti 1, 2,..., 9 sono distinte oppure no? Bisogna aggiungere delle formule per imporre che, ad esempio, 1 sia distinto da 2?

Suggerimento 3 (variante) Come possiamo imporre la regola 2.1? Ovvero: per ogni valore v (da 1 a 9), per ogni linea k, il valore v appare in una sola cella Utilizzate la seguente formula (dove l ed m identificano due righe della tabella): p(k, l, v 1 ) k, l, m, v 1, v 2. p(k, m, v 2 ) = v 1 v 2 l m Nota: v 1 v 2 abbrevia (v 1 = v 2 ) Domanda: è corretto quantificare universalmente su k, l, m, v 1, v 2 senza alcuna precisazione che tale variabili devono assumere valori appartenenti all insieme {1, 2,..., 9} oppure bisognerebbe imporre delle restrizioni?

Suggerimento 3 (variante) Come possiamo imporre la regola 2.1? Ovvero: per ogni valore v (da 1 a 9), per ogni linea k, il valore v appare in una sola cella Utilizzate la seguente formula (dove l ed m identificano due righe della tabella): p(k, l, v 1 ) k, l, m, v 1, v 2. p(k, m, v 2 ) = v 1 v 2 l m Nota: v 1 v 2 abbrevia (v 1 = v 2 ) Domanda: è corretto quantificare universalmente su k, l, m, v 1, v 2 senza alcuna precisazione che tale variabili devono assumere valori appartenenti all insieme {1, 2,..., 9} oppure bisognerebbe imporre delle restrizioni?

Suggerimento 3 (variante) Come possiamo imporre la regola 2.1? Ovvero: per ogni valore v (da 1 a 9), per ogni linea k, il valore v appare in una sola cella Utilizzate la seguente formula (dove l ed m identificano due righe della tabella): p(k, l, v 1 ) k, l, m, v 1, v 2. p(k, m, v 2 ) = v 1 v 2 l m Nota: v 1 v 2 abbrevia (v 1 = v 2 ) Domanda: è corretto quantificare universalmente su k, l, m, v 1, v 2 senza alcuna precisazione che tale variabili devono assumere valori appartenenti all insieme {1, 2,..., 9} oppure bisognerebbe imporre delle restrizioni?

Suggerimento 4 (variante) Come possiamo imporre la regola 2.2? Ovvero: per ogni valore v (da 1 a 9), per ogni colonna k, il valore v appare in una sola cella Utilizzate la seguente formula (dove l ed m rappresentano due colonne della tabella): p(l, k, v 1 ) k, l, m, v 1, v 2. p(m, k, v 2 ) = v 1 v 2 l m

Suggerimento 4 (variante) Come possiamo imporre la regola 2.2? Ovvero: per ogni valore v (da 1 a 9), per ogni colonna k, il valore v appare in una sola cella Utilizzate la seguente formula (dove l ed m rappresentano due colonne della tabella): p(l, k, v 1 ) k, l, m, v 1, v 2. p(m, k, v 2 ) = v 1 v 2 l m

Suggerimento 5 Come possiamo imporre la regola 2.3? Ovvero: per ogni valore k (da 1 a 9), per ogni quadrato 3 3, il valore k appare in una sola cella Pensateci su un po...

Suggerimento 5 Come possiamo imporre la regola 2.3? Ovvero: per ogni valore k (da 1 a 9), per ogni quadrato 3 3, il valore k appare in una sola cella Pensateci su un po...

Suggerimento 6 (lo stesso) Come possiamo imporre che una certa cella abbia un certo valore? Per esempio per imporre che nella cella (1, 1) ci sia il valore 5, scriviamo semplicemente: p(1, 1, 5)

Suggerimento 6 (lo stesso) Come possiamo imporre che una certa cella abbia un certo valore? Per esempio per imporre che nella cella (1, 1) ci sia il valore 5, scriviamo semplicemente: p(1, 1, 5)

Suggerimento 7 (nuovo) Bisogna aggiungere qualcosa alla specifica di p? Ad esempio, vorremmo che ad ogni cella corrispondesse uno ed un solo valore e non molteplici, ovvero che il predicato p fosse funzionale nei suoi due primi argomenti. Come possiamo ottenere questo? Aggiungendo la seguente formula: ( ) p(x, y, z) x, y, z, w. = z = w p(x, y, w)

Suggerimento 7 (nuovo) Bisogna aggiungere qualcosa alla specifica di p? Ad esempio, vorremmo che ad ogni cella corrispondesse uno ed un solo valore e non molteplici, ovvero che il predicato p fosse funzionale nei suoi due primi argomenti. Come possiamo ottenere questo? Aggiungendo la seguente formula: ( ) p(x, y, z) x, y, z, w. = z = w p(x, y, w)

Suggerimento 7 (nuovo) Bisogna aggiungere qualcosa alla specifica di p? Ad esempio, vorremmo che ad ogni cella corrispondesse uno ed un solo valore e non molteplici, ovvero che il predicato p fosse funzionale nei suoi due primi argomenti. Come possiamo ottenere questo? Aggiungendo la seguente formula: ( ) p(x, y, z) x, y, z, w. = z = w p(x, y, w)

Suggerimento 7 (nuovo) Bisogna aggiungere altre formule a quelle scritte fino ad ora? Considerate il simbolo =...

Suggerimento 7 (nuovo) Bisogna aggiungere altre formule a quelle scritte fino ad ora? Considerate il simbolo =...

Domande 1. Qual é il problema di soddisfacibilitá nella logica dei predicati del primo ordine che corrisponde alla soluzione di un certo problema di sudoku? 2. Utilizzate il metodo di Herbrand per risolvere il problema. Ci sono delle differenze con le formule ottenute con la rappresentazione proposizionale diretta suggerita nelle trasparenze del 29/11/2006?

Domande 1. Qual é il problema di soddisfacibilitá nella logica dei predicati del primo ordine che corrisponde alla soluzione di un certo problema di sudoku? 2. Utilizzate il metodo di Herbrand per risolvere il problema. Ci sono delle differenze con le formule ottenute con la rappresentazione proposizionale diretta suggerita nelle trasparenze del 29/11/2006?