[zxspectrum] Re: [OT] Stable models

  • From: "Stefano" <flydream@xxxxxxxx>
  • To: <zxspectrum@xxxxxxxxxxxxx>
  • Date: Sun, 9 Dec 2007 22:42:17 +0100

E' una sorta di Backtracking (o come diavolo si dice in inglese) ?
Ricordo che per risolvere il gioco degli scacchi si prova una mossa e poi si 
studiano le alternative nel caso la mossa si riveli fallimentare tornando a 
ritroso ogni volta di uno...

----- Original Message ----- 
From: "Paolo Ferraris" <pieffe8@xxxxxxxxx>
To: <zxspectrum@xxxxxxxxxxxxx>
Sent: Sunday, December 09, 2007 10:37 PM
Subject: [zxspectrum] Re: [OT] Stable models


> Enrico Maria Giordano wrote:
> 
>> Cosa sono gli "stable models"?
> 
> Domanda non facile da rispondere.
> 
> La risposta piu` semplice e`: l'argomento della mia tesi di dottorato.
> 
> 
> La risposta vera e propria e` molto piu` accademica e complicata.
> Non e` neanche fondamentarlo saperlo :-) ma cerco di essere conciso ed 
> esaustivo allo stesso tempo. Se volete saperne di piu` chiedete pure.
> 
> La "stable model semantics" e` un modo di intendere i programmi logici 
> tipo Prolog in un modo diverso dal Prolog.
> 
> Tutti sappiamo quando un assegnamento vero/falso delle variabili in una 
> formula proposizionale rende vera (in logica Booleana) questa formula.
> Per esempio la formula  a & b  e` vera solo quando sia a che b sono veri.
> Uno "stable model" praticamente non e` altro che un assegnamento che 
> rende "vero" --- secondo delle condizioni dettate dalla "stable model 
> semantics" --- un programma logico.
> 
> L'applicazione primaria degli stable models e` in un linguaggio di 
> programmazione dichiarativo chiamato Answer Set Programming, che 
> permette di rappresentare e risolvere problemi combinatoriali anche 
> molto complicati.
> 
> Un esempio semplice di questi problemi sono i vari puzzle che sono di 
> moda adesso, come il sudoku. Questo e` un programma che risolve i puzzle 
> del Sudoku:
> 
> 
> %% define the domain of variables
> coord(0..8). % coordinates are 0--8
> dgt(1..9). % coordinates are 1--9
> sCoord(0..2). % small coordinates (used to denote 3x3 sectors) are 0--2
> 
> %% one digit per cell
> 
> %% "for each pair of coordinate X,Y, the number of digits D such that
> %% c(X,Y,D) holds is no less than 1 and no more than 1"
> 1{c(X,Y,D): dgt(D)}1 :- coord(X), coord(Y).
> 
> %% each digit exactly once per row, column, sector
> 
> %% "for each coordinate Y and digit D, the number of X coordinates
> %% such that c(X,Y,D) holds is no less than 1 and no more than 1"
> 1{c(X,Y,D): coord(X)}1 :- coord(Y), dgt(D).
> 
> %% "for each coordinate X and digit D, the number of Y coordinates
> %% such that c(X,Y,D) holds is no less than 1 and no more than 1"
> 1{c(X,Y,D): coord(Y)}1 :- coord(X), dgt(D).
> 
> %% "for each sector denoted by small coordinate SX,SY and any digit D,
> %% the number of cells in that sector that contain digit D is no more
> %% than 1 and no less than 1"
> 1{c(X,Y,D): coord(X): coord(Y): X/3==SX: Y/3==SY}1 :- sCoord(SX),
>     sCoord(SY), dgt(D).
> 
> 
> Una applicazione reale di questo linguaggio e` nella gestione dei guasti 
> dello space shuttle, un problema molto piu` complesso del sudoku :-)
> 
> 
> -p
>

Other related posts: