Problema di telaio - Frame problem
Nell'intelligenza artificiale , il problema del frame descrive un problema con l'utilizzo della logica del primo ordine (FOL) per esprimere fatti su un robot nel mondo. Rappresentare lo stato di un robot con il FOL tradizionale richiede l'uso di molti assiomi che implicano semplicemente che le cose nell'ambiente non cambiano arbitrariamente. Ad esempio, Hayes descrive un " mondo a blocchi " con regole sull'impilamento dei blocchi. In un sistema FOL, sono necessari assiomi aggiuntivi per fare inferenze sull'ambiente (ad esempio, che un blocco non può cambiare posizione a meno che non venga spostato fisicamente). Il problema del frame è il problema di trovare raccolte adeguate di assiomi per una descrizione praticabile di un ambiente robotico.
John McCarthy e Patrick J. Hayes hanno definito questo problema nel loro articolo del 1969, Alcuni problemi filosofici dal punto di vista dell'intelligenza artificiale . In questo articolo, e in molti successivi, il problema matematico formale è stato un punto di partenza per discussioni più generali sulla difficoltà della rappresentazione della conoscenza per l'intelligenza artificiale. Questioni come come fornire assunzioni di default razionali e ciò che gli esseri umani considerano il buon senso in un ambiente virtuale. Successivamente, il termine ha acquisito un significato più ampio in filosofia , dove è formulato come il problema di limitare le credenze che devono essere aggiornate in risposta alle azioni. Nel contesto logico, le azioni sono tipicamente specificate da ciò che cambiano, con l'assunto implicito che tutto il resto (il frame) rimane invariato.
Descrizione
Il problema del frame si verifica anche in domini molto semplici. Uno scenario con una porta, che può essere aperta o chiusa, e una luce, che può essere accesa o spenta, è rappresentato staticamente da due proposizioni e . Se queste condizioni possono cambiare, sono meglio rappresentate da due predicati e che dipendono dal tempo; tali predicati sono chiamati fluenti . Un dominio in cui la porta è chiusa e la luce spenta all'istante 0, e la porta aperta all'istante 1, può essere rappresentato direttamente in logica dalle seguenti formule:
Le prime due formule rappresentano la situazione iniziale; la terza formula rappresenta l'effetto dell'esecuzione dell'azione di apertura della porta all'istante 1. Se tale azione avesse dei presupposti, come l'apertura della porta, sarebbe stata rappresentata da . In pratica, si avrebbe un predicato per specificare quando viene eseguita un'azione e una regola per specificare gli effetti delle azioni. L'articolo sul calcolo della situazione fornisce maggiori dettagli.
Mentre le tre formule precedenti sono un'espressione diretta nella logica di ciò che è noto, non sono sufficienti per trarre correttamente le conseguenze. Sebbene le seguenti condizioni (che rappresentano la situazione attesa) siano coerenti con le tre formule precedenti, non sono le uniche.
Infatti, un altro insieme di condizioni che è coerente con le tre formule precedenti è:
Il problema del frame è che specificare solo quali condizioni vengono modificate dalle azioni non implica che tutte le altre condizioni non vengano modificate. Questo problema può essere risolto aggiungendo i cosiddetti "assiomi di frame", che specificano esplicitamente che tutte le condizioni non interessate dalle azioni non vengono modificate durante l'esecuzione di tale azione. Ad esempio, poiché l'azione eseguita all'istante 0 è quella di aprire la porta, un assioma di telaio direbbe che lo stato della luce non cambia dall'istante 0 all'istante 1:
Il problema del frame è che un tale assioma del frame è necessario per ogni coppia di azione e condizione in modo tale che l'azione non influenzi la condizione. In altre parole, il problema è quello di formalizzare un dominio dinamico senza specificare esplicitamente gli assiomi di frame.
La soluzione proposta da McCarthy per risolvere questo problema implica assumere che si siano verificati un numero minimo di cambiamenti di condizione; questa soluzione è formalizzata utilizzando il quadro della circoscrizione . Il problema dello scatto di Yale , però, dimostra che questa soluzione non è sempre corretta. Sono state quindi proposte soluzioni alternative, comprendenti il completamento del predicato, l'occlusione fluente, assiomi di stato successori , ecc.; sono spiegati di seguito. Alla fine degli anni '80, il problema del telaio come definito da McCarthy e Hayes è stato risolto. Anche dopo, tuttavia, il termine "problema di frame" è stato ancora utilizzato, in parte per riferirsi allo stesso problema ma in contesti diversi (ad esempio, azioni concorrenti), e in parte per riferirsi al problema generale della rappresentazione e del ragionamento con domini.
Soluzioni
Le seguenti soluzioni descrivono come il problema del frame viene risolto in vari formalismi. I formalismi stessi non sono presentati per intero: ciò che viene presentato sono versioni semplificate che sono sufficienti per spiegare la soluzione completa.
Soluzione di occlusione fluente
Questa soluzione è stata proposta da Erik Sandewall , che ha anche definito un linguaggio formale per la specificazione dei domini dinamici; pertanto, tale dominio può essere prima espresso in questo linguaggio e poi automaticamente tradotto in logica. In questo articolo viene mostrata solo l'espressione in logica e solo nel linguaggio semplificato senza nomi di azioni.
La logica di questa soluzione è quella di rappresentare non solo il valore delle condizioni nel tempo, ma anche se possono essere influenzate dall'ultima azione eseguita. Quest'ultima è rappresentata da un'altra condizione, chiamata occlusione. Si dice che una condizione è occlusa in un determinato momento se è stata appena eseguita un'azione che rende la condizione vera o falsa come effetto. L'occlusione può essere vista come “permesso al cambiamento”: se una condizione è occlusa, è sollevata dall'obbedienza al vincolo di inerzia.
Nell'esempio semplificato della porta e della luce, l'occlusione può essere formalizzata da due predicati e . La logica è che una condizione può cambiare valore solo se il predicato di occlusione corrispondente è vero al momento successivo. A sua volta, il predicato di occlusione è vero solo quando viene eseguita un'azione che influisce sulla condizione.
In generale, ogni azione che rende vera o falsa una condizione rende vero anche il corrispondente predicato di occlusione. In questo caso, è vero, rendendo falso l'antecedente della quarta formula sopra per ; quindi, il vincolo che non vale per . Pertanto, può cambiare valore, che è anche ciò che viene imposto dalla terza formula.
Affinché questa condizione funzioni, i predicati di occlusione devono essere veri solo quando vengono resi veri come effetto di un'azione. Ciò può essere ottenuto sia per circoscrizione che per completamento del predicato. Vale la pena notare che l'occlusione non implica necessariamente un cambiamento: ad esempio, eseguire l'azione di aprire la porta quando era già aperta (nella formalizzazione di cui sopra) rende vero e rende vero il predicato ; tuttavia, non ha cambiato valore, come era già vero.
Soluzione di completamento del predicato
Questa codifica è simile alla soluzione di occlusione fluente, ma i predicati aggiuntivi indicano il cambiamento, non il permesso di cambiare. Ad esempio, rappresenta il fatto che il predicato cambierà di volta in volta in . Di conseguenza, un predicato cambia se e solo se il predicato di modifica corrispondente è vero. Un'azione determina un cambiamento se e solo se rende vera una condizione che in precedenza era falsa o viceversa.
La terza formula è un modo diverso per dire che l'apertura della porta provoca l'apertura della porta. Precisamente afferma che l'apertura della porta cambia lo stato della porta se fosse stata precedentemente chiusa. Le ultime due condizioni affermano che una condizione cambia value at time se e solo se il predicato di modifica corrispondente è true at time . Per completare la soluzione, i punti temporali in cui i predicati di modifica sono veri devono essere il minor numero possibile e questo può essere fatto applicando il completamento del predicato alle regole che specificano gli effetti delle azioni.
Soluzione assiomi di stato successori
Il valore di una condizione dopo l'esecuzione di un'azione può essere determinato dal fatto che la condizione è vera se e solo se:
- l'azione rende vera la condizione; o
- la condizione era precedentemente vera e l'azione non la rende falsa.
Un assioma di stato successore è una formalizzazione nella logica di questi due fatti. Ad esempio, se e sono due condizioni utilizzate per indicare che l'azione eseguita in quel momento era di aprire o chiudere rispettivamente la porta, l'esempio in esecuzione è codificato come segue.
Questa soluzione è incentrata sul valore delle condizioni, piuttosto che sugli effetti delle azioni. In altre parole, c'è un assioma per ogni condizione, piuttosto che una formula per ogni azione. Le precondizioni alle azioni (che non sono presenti in questo esempio) sono formalizzate da altre formule. Gli assiomi di stato successori sono usati nella variante al calcolo delle situazioni proposta da Ray Reiter .
Soluzione di calcolo fluente
Il calcolo fluente è una variante del calcolo delle situazioni. Risolve il problema del frame utilizzando termini logici del primo ordine , piuttosto che predicati, per rappresentare gli stati. La conversione dei predicati in termini nella logica del primo ordine è chiamata reificazione ; il calcolo fluente può essere visto come una logica in cui vengono reificati i predicati che rappresentano lo stato delle condizioni.
La differenza tra un predicato e un termine nella logica del primo ordine è che un termine è una rappresentazione di un oggetto (possibilmente un oggetto complesso composto da altri oggetti), mentre un predicato rappresenta una condizione che può essere vera o falsa se valutata su un dato insieme di termini.
Nel calcolo fluente, ogni possibile stato è rappresentato da un termine ottenuto dalla composizione di altri termini, ognuno dei quali rappresenta le condizioni che sono vere nello stato. Ad esempio, lo stato in cui la porta è aperta e la luce è accesa è rappresentato dal termine . È importante notare che un termine non è vero o falso di per sé, poiché è un oggetto e non una condizione. In altre parole, il termine rappresenta uno stato possibile, e non significa di per sé che questo sia lo stato attuale. Si può affermare una condizione separata per specificare che questo è effettivamente lo stato in un dato momento, ad esempio significa che questo è lo stato in un dato momento .
La soluzione al problema del frame data nel calcolo fluente consiste nello specificare gli effetti delle azioni affermando come un termine che rappresenta lo stato cambia quando l'azione viene eseguita. Ad esempio, l'azione di aprire la porta al tempo 0 è rappresentata dalla formula:
L'azione di chiudere la porta, che rende una condizione falsa anziché vera, è rappresentata in modo leggermente diverso:
Questa formula funziona a condizione che siano forniti opportuni assiomi about e , ad esempio, un termine che contiene la stessa condizione due volte non è uno stato valido (ad esempio, è sempre falso per ogni e ).
Soluzione per il calcolo degli eventi
Il calcolo degli eventi usa termini per rappresentare i fluenti, come il calcolo fluente, ma ha anche assiomi che vincolano il valore dei fluenti, come gli assiomi di stato successivi. Nel caso del calcolo, l'inerzia è rafforzata da formule che affermano che un fluent è vero se è stato vero in un dato momento precedente e nel frattempo non è stata eseguita alcuna azione che lo abbia modificato in falso. Il completamento del predicato è ancora necessario nel calcolo degli eventi per ottenere che un fluente sia reso vero solo se è stata eseguita un'azione che lo rende vero, ma anche per ottenere che un'azione sia stata eseguita solo se ciò è dichiarato esplicitamente.
Soluzione logica predefinita
Il problema del frame può essere pensato come il problema di formalizzare il principio che, per impostazione predefinita, "tutto si presume che rimanga nello stato in cui si trova" ( Leibniz , "An Introduction to a Secret Encyclopædia", c . 1679). Questo default, a volte chiamato legge di inerzia del senso comune , è stato espresso da Raymond Reiter nella logica di default :
(se è vero in situazione , e si può presumere che rimanga vero dopo aver eseguito action , allora possiamo concludere che rimane vero).
Steve Hanks e Drew McDermott hanno sostenuto, sulla base del loro esempio di ripresa a Yale , che questa soluzione al problema del telaio è insoddisfacente. Hudson Turner ha mostrato, tuttavia, che funziona correttamente in presenza di appropriati postulati aggiuntivi.
Soluzione di programmazione del set di risposte
La controparte della soluzione logica predefinita nel linguaggio di programmazione degli insiemi di risposte è una regola con negazione forte :
(se è vero al tempo , e si può presumere che rimanga vero al tempo , allora possiamo concludere che rimane vero).
Soluzione logica di separazione
La logica di separazione è un formalismo per ragionare sui programmi per computer utilizzando le specifiche pre/post del modulo . La logica di separazione è un'estensione della logica Hoare orientata al ragionamento su strutture dati mutevoli nella memoria del computer e altre risorse dinamiche, e ha uno speciale connettivo *, pronunciato "e separatamente", per supportare il ragionamento indipendente su regioni di memoria disgiunte.
La logica di separazione utilizza un'interpretazione rigorosa delle specifiche pre/post, che affermano che il codice può accedere solo alle posizioni di memoria garantite per esistere dalla precondizione. Questo porta alla validità della più importante regola di inferenza della logica, la regola del frame
La regola del frame consente di aggiungere a una specifica descrizioni di memoria arbitraria al di fuori del footprint (memoria a cui si accede) del codice: ciò consente alla specifica iniziale di concentrarsi solo sul footprint. Ad esempio, l'inferenza
cattura quel codice che ordina un elenco x non disordina un elenco separato y, e lo fa senza menzionare y nelle specifiche iniziali sopra la riga.
L'automazione della regola dei frame ha portato a significativi aumenti nella scalabilità delle tecniche di ragionamento automatizzato per il codice, alla fine implementate industrialmente su codebase con decine di milioni di righe.
Sembra esserci qualche somiglianza tra la soluzione logica di separazione al problema del frame e quella del calcolo fluente di cui sopra.
Linguaggi di descrizione dell'azione
I linguaggi di descrizione delle azioni eludono il problema del frame invece di risolverlo. Un linguaggio di descrizione delle azioni è un linguaggio formale con una sintassi specifica per descrivere situazioni e azioni. Ad esempio, che l'azione faccia aprire la porta se non bloccata è espresso da:
- cause se
La semantica di un linguaggio di descrizione dell'azione dipende da ciò che il linguaggio può esprimere (azioni simultanee, effetti ritardati, ecc.) ed è solitamente basata su sistemi di transizione .
Poiché i domini sono espressi in questi linguaggi piuttosto che direttamente nella logica, il problema del frame sorge solo quando una specifica fornita in una logica di descrizione dell'azione deve essere tradotta in logica. In genere, tuttavia, viene fornita una traduzione da questi linguaggi per rispondere alla programmazione dell'insieme piuttosto che alla logica del primo ordine.
Guarda anche
- Problema di rilegatura
- Buon senso
- Ragionamento di buon senso
- Ragionamento fallibile
- Logica lineare
- Logica di separazione
- Logica non monotona
- Problema di qualificazione
- problema di ramificazione
- Simbolo di messa a terra
- Problema di tiro a Yale
Appunti
Riferimenti
- Doherty, P.; Gustafsson, J.; Karlsson, L.; Kvarnström, J. (1998). "TAL: Specifica e tutorial del linguaggio delle logiche di azione temporale" . Transazioni elettroniche sull'intelligenza artificiale . 2 (3-4): 273-306.
- Gelfond, M.; Lifschitz, V. (1993). "Rappresentare azione e cambiamento da programmi logici" . Giornale di programmazione logica . 17 (2-4): 301-322. doi : 10.1016/0743-1066(93)90035-f .
- Gelfond, M.; Lifschitz, V. (1998). "Linguaggi d'azione" . Transazioni elettroniche sull'intelligenza artificiale . 2 (3-4): 193-210.
- Hanks, S.; McDermott, D. (1987). "Logica non monotona e proiezione temporale". Intelligenza Artificiale . 33 (3): 379-412. doi : 10.1016/0004-3702(87)90043-9 .
- Levesco, H.; Pirri, F.; Reiter, R. (1998). "Fondamenti per il calcolo della situazione" . Transazioni elettroniche sull'intelligenza artificiale . 2 (3-4): 159-178.
- Liberatore, P. (1997). "La complessità della lingua A" . Transazioni elettroniche sull'intelligenza artificiale . 1 (1–3): 13–37.
- Lifschitz, V. (2012). "Il problema della cornice, allora e adesso" (PDF) . Università del Texas ad Austin .Presentato alla celebrazione delle realizzazioni di John McCarthy , Stanford University , 25 marzo 2012.
- McCarthy, J.; Hayes, PJ (1969). "Alcuni problemi filosofici dal punto di vista dell'intelligenza artificiale" . Intelligenza della macchina . 4 : 463-502. CiteSeerX 10.1.1.85.5082 .
- McCarthy, J. (1986). "Applicazioni della circoscrizione alla formalizzazione della conoscenza del senso comune" . Intelligenza Artificiale . 28 : 89-116. CiteSeerX 10.1.1.29.5268 . doi : 10.1016/0004-3702(86)90032-9 .
- Miller, R.; Shanahan, M. (1999). "L'event-calculus in logica classica - assiomatizzazioni alternative" . Transazioni elettroniche sull'intelligenza artificiale . 3 (1): 77-105.
- Pirri, F.; Reiter, R. (1999). "Alcuni contributi alla metateoria del Situation Calculus". Giornale dell'ACM . 46 (3): 325-361. doi : 10.1145/316542.316545 . S2CID 16203802 .
- Reiter, R. (1980). "Una logica per ragionamento predefinito" (PDF) . Intelligenza Artificiale . 13 (1–2): 81–132. CiteSeerX 10.1.1.250.9224 . doi : 10.1016/0004-3702(80)90014-4 .
- R., Raimondo (1991). "Il problema del frame nel calcolo della situazione: una soluzione semplice (a volte) e un risultato di completezza per la regressione dell'obiettivo". In Lifschitz, Vladimir (ed.). Intelligenza artificiale e teoria matematica del calcolo: documenti in onore di John McCarthy . New York: stampa accademica. pp. 359-380. CiteSeerX 10.1.1.137.2995 .
- Sandewall, E. (1972). "Un approccio al problema del telaio e la sua attuazione". Intelligenza della macchina . 7 : 195-204.
- Sandewall, E. (1994). Caratteristiche e fluidità . (vol. 1). New York: Oxford University Press. ISBN 978-0-19-853845-5.
- Sandwall, E.; Shoham, Y. (1995). "Ragionamento temporale non monotono". In Gabbay, DM; Hogger, CJ; Robinson, JA (a cura di). Manuale di logica in intelligenza artificiale e programmazione logica . (vol. 4). La stampa dell'università di Oxford. pp. 439-498. ISBN 978-0-19-853791-5.
- Sandewall, E. (1998). "La logica della robotica cognitiva e la sua metateoria: caratteristiche e fluidi rivisitati" . Transazioni elettroniche sull'intelligenza artificiale . 2 (3-4): 307-329.
- Shanahan, M. (1997). Risolvere il problema del frame: un'indagine matematica della legge di inerzia del senso comune . MIT Press. ISBN 9780262193849.
- Thielscher, M. (1998). "Introduzione al calcolo fluente" . Transazioni elettroniche sull'intelligenza artificiale . 2 (3-4): 179-192.
- Toth, JA (1995). "Recensione del libro. Kenneth M. e Patrick J. Hayes, a cura di" . Agenti di ragionamento in un mondo dinamico: il problema della cornice. Intelligenza Artificiale . 73 (1–2): 323–369. doi : 10.1016/0004-3702(95)90043-8 .
- Turner, H. (1997). "Rappresentare le azioni nei programmi logici e nelle teorie predefinite: un approccio al calcolo della situazione" (PDF) . Giornale di programmazione logica . 31 (1–3): 245–298. doi : 10.1016/s0743-1066(96)00125-2 .
link esterno
- Zalta, Edward N. (a cura di). "Il problema del telaio" . Enciclopedia della filosofia di Stanford .
- Alcuni problemi filosofici dal punto di vista dell'intelligenza artificiale ; l'articolo originale di McCarthy e Hayes che proponeva il problema.