Capitolo 1 – Approfondimento Riconoscere le

Transcript

Capitolo 1 – Approfondimento Riconoscere le
Università degli Studi di Bologna
Scuola di Ingegneria e Architettura
Capitolo 1 – Approfondimento
Riconoscere le palindromi con la MdT
Corso di Laurea Magistrale in Ingegneria Informatica
Anno accademico 2014/2015
Prof. ENRICO DENTI
Dipartimento di Informatica – Scienza e Ingegneria (DISI)
IL PROBLEMA
Si vogliono riconoscere le frasi palindrome
tramite la Macchina di Turing
Definiscesi «palindroma» una frase che si possa leggere
indifferentemente nei due sensi (da sinistra a destra, o da
destra a sinistra)
Esempi facili:
"Anna", "Aerea", "Ai lati d'Italia", "Alla bisogna tango si balla", "E le tazzine igienizzatele!",…
Esempi famosi: racconto (in italiano) 6538 caratteri
NB: per convenzione si prescinde da spazi, punteggiatura e accenti
Prof. Enrico Denti – Università di Bologna – A.A. 2014/2015
1
IL RACCONTO PALINDROMO
Ai lati, a esordir, dama e re, Pertini trepida, tira lieti moccoli, dialoga - vocina, pipa... -, ricorre alle battute. E’durata!... ne patì Trap: allena - mèritasi lodi testé - Juvitalia,
mai amata. Il boato n’eruppe su filato, mero atto d’ira: assorga da gai palati, ingoi l’arena! Si rise, noi: gara azzurra - felicità, reti - e ricca! Né tacerò pose, ire, rapidi miti;
citerò paure... però meritan oro. Ci sono rari tiri? Sia! ma i latini eroi goderono di rigore - c’è fallo -; "Fatale far tale rete": lassa prosopopea nei peani dona aìre facile. Ma
"fatale" malessere globi dilata, rene, vene ci necrotizza: ratto, vago, da finir al còre (l’oblierà? Dall’idea - l’Erinni! - trepiderà: tic e tac...)... Lapsus saliente (idra! sillabo!):
non amai Cabrini; flusso acre - pus era? Sudore? - bile d’ittero ci assalì: risa brutali, amaro icore... Fiore italo, cari miei, secca, alidirà vizzito là, se sol - a foci nuove
diretti, fisi - a metà recedete: l’itala idea di vis (i redivivi, noti, ilari miti!) trapasserà, inerte e vana, in italianità lisa, banal. Attutite relativa ira, correte: eterni onori n’avrete!
Sibili - tre "fi" - di arbitro: finita lì metà partita; reca loro l’animo di lotta, fidata ripresa! mira, birra ridà! attuta ire, bile! La si disse "eterea", la Catalogna: alla pari terrò cotali
favolose ore... Notte molle, da re! Poeti m’illusero ("Va’!", "Fa’!", "Osa!") colla fusione - esile, serica, viva -, rime lepide, tra anelito d’età d’oro e rudezze d’orpello; così
cederò all’eros, ai sensi rei; amai - l’amavo... - una grata città, la gag, la vita; nutro famosa cara sete, relativa a Lalo, Varese, De Falla, Petrassi, e Ravel, e Adam, e
Nono... Sor... bene, totale opaca arte; né pago fui per attori, dive, divi (lo sarò?)... Là ogni avuto, mai sopito piacere s’evaporò, leggera falena era: se con amor, lì, alla
cara - cotale! - virile sera - coi gaudi sereni, grevi da dare angine, beati - lo paragono, decàde a ludo, mollica, vile cineseria, onere. Sì! Taccola barocca allora rimane,
meno mi tange: solo apatia apporterà, goffa noia... Paride, Ettore e soci trovarono sì dure sorti - riverberare di pira desueta! - coi gelosi re dei Dori (trono era d’ira, Era,
Muse); a Ilio nati e no, di elato tono, di rango, là tacitati - re... mogi -, videro Elleni libare, simil a Titani, su al Pergamo: idem i Renani e noi... "...caparbi", vaticinò - tono
trepido -, ed ora tange là tale causale trofeo (coppa di rito è la meta della partita), trainer fisso; mìralo come l’anemone: fisso, raro, da elogi... D’animo nobile, divo mai:
mai tetro, fatale varò la tattica. Cito Gay, ognor abile devo dir: da Maracanà sono tacco, battuta... Ai lati issò vela l’ala latina Bruno: cerca la rete, si batte assai, opera lì,
fora, rimargina... Bergomi, nauta ragazzo, riserra giù sì care fila: è l’età... Coi gradi vedo - troppa la soavità - capitano Dino, razza ladina. Rete vigila! dilàtati...!: la turba,
l’arena, ti venera. Ad ogni rado, torpido e no, tirabile tiro, trapelò rapidità sua: parò (la tivù, lì, diè nitidi casi). Di tutto - fiero, mai di fatica, vivace - raccatta: e, se tarpate, le
ali loro - è la verità - paion logore. Zoff (ùtinam!) è dei... Parà: para... Piede, mani, tuffo: zero gol, noi a patire. Vale oro: lì, là... è l’età... "Pratese, attacca! reca vivacità!",
"Fidiamo!", "Rei fottuti disaciditi!"... Nei diluvi, talora pausati, di parole partorite lì, baritone o di proto, da ring o da arene ("Vita nera là, brutalità tali da ligi veterani, da...
lazzaroni!", "Dònati! pàcati va’! osa!: l’apporto devi dar!", "Giocate leali, feraci!", "Su i garresi!", "Rozza gara!", "Tu, animo!", "Grèbani! Grami!", "Raro filare!"; poi:
"Assaetta!", "Bis!" e "Ter!"), alacre, con urbanità, l’alalà levossi: "Italia!", a tutta bocca, tonò. Sana cara Madrid, ove delibaron Goya... gotica città talora velata...: forte ti
amiamo! Vi delibo nomina di goleador a Rossi - fenomenale! -: mò, colà, rimossi freni artati (tra palle date male o tiri dappoco è forte la sua celata legnata), rode, o
d’ipertono, tonicità, vibra. Pacione inane, rimediò magre, plausi - nati tali - miserabili nelle ore di Vigo (meritàti!); Catalogna ridonò totale idoneità - noi lì a esumare, a
ridare onor - tiro diede, riso; le giocate use - da ripide, rare, brevi, ritrose, rudi - son ora vorticose e rotte, e d’ira paion affogare (troppa?). Aìta, Paolo!: segna, timone
mena, mira, rolla, accora, balòccati sereno, aìre - se Nice li vacillò - modula e dà (cedono...): gara polita e benigna - e rada, di vergine residua... - gioca. Re s’è lì rivelato
(Caracalla? Il romano Cesare!): anela, fa, regge loro, pavese reca...: ipotiposi amo. Tu va’ in goal, ora! Sol, ivi, devi dirottare più foga: penetra a capo elato - tenebroso
non è... - ma da elevare, issar te, palla, fede, sera (vola, là) a vitale rete! Sarà caso... Ma Fortuna ti valga galattica targa, nuova malìa: mai Eris ne sia sorella! Or è
deciso: colle prodezze, dure o rodate doti - lena, arte di Pelè, mira -, vivaci rese lì sé e noi: su fallo (caso a favore sul limite, opera dell’ometto nero) è solo, va filato,
corre, tira, palla angolata cala... è rete! Essi di sale, l’Iberia tutta a dir "Arriba!", rimaser. Pirata? Di fatto li domina... Loro lacerati tra patemi; Latini forti, braidi, fertili, bis e
ter van, ìrono in rete... E terrò cari a vita: le reti; tutta l’anabasi latina; i Latini, a nave e treni, a ressa partiti (mìrali!); i toni vivi, derisivi, d’aedi alati; le tede cerate ("Mai sì
fitte" ridevo: unico falò s’esalò, tizzi vari di là accesi); e i miracolati eroi, feroci... Oramai la turba si rilassa: i coretti deliberò d’usare. Supercaos sul finir! Baciamano? No:
balli sardi, etnei lassù (spalcate!); citaredi per tinnire, là, ed il "la" dare; il Bolero, clarini, fado, gavotta, razzi, torce (Nice n’è venerata) lì. Di bolge, resse, la melata
famelica "feria" anodina è piena, e po’ po’ sorpassa l’etere la trafelata folla. Fecero giri d’onore: dogi o re, in Italia, mai si ritirarono sì coronati. Remore, Perù, aporetici
timidi pareri... e sopore, catenacci reiterati, Cile, far ruzza: a ragione si risanerà lì ogni itala piaga; da grossa a ridotta, o remota, lì fu, seppure nota, obliata. Mai amai la
tivù: jet-set, idoli, satire...; ma nella partita - penata, rude e tutta bella: erro? - ci rapì: panico vago, lai di locco, mite ilarità di Pertini... tre pere a Madrid, rosea Italia!
ANALISI DEL PROBLEMA
La nostra versione: vogliamo riconoscere le
palindromi di bit tramite la Macchina di Turing
Esempio di frase palindroma:
♦ 1 0 1 1 0 1 ♦
Approccio
a) Definire un algoritmo appropriato
b) Programmarlo sulla Macchina di Turing
Prof. Enrico Denti – Università di Bologna – A.A. 2014/2015
2
UN POSSIBILE ALGORITMO (1/2)
Situazione iniziale:
♦ 1 0 1 1 0 1 ♦
1. leggere il primo simbolo a sinistra:
♦ 1 0 1 1 0 1 ♦
2. ricordare se è 1 o 0 e marcare tale casella con ♦
♦ ♦ 0 1 1 0 1 ♦
3. ora, spostarsi sull’ultimo simbolo a destra:
♦ ♦ 0 1 1 0 1 ♦
UN POSSIBILE ALGORITMO (2/2)
4. se tale simbolo non coincide con quello ricordato,
scrivere un simbolo d’errore (ad esempio, ) e
terminare (ma non è il caso in esame)
altrimenti, marcare tale casella con ♦
♦ ♦ 0 1 1 0 ♦ ♦
tornare a capo e iterare sulla stringa rimasta:
♦ ♦ 0 1 1 0 ♦ ♦
[ottimizzazione possibile: operare anche all’indietro]
5. Se si sono consumati tutti i bit (ci sono solo ♦)
la frase è palindroma scrivere un simbolo di
esito positivo (ad esempio, ☺) e fermarsi.
Prof. Enrico Denti – Università di Bologna – A.A. 2014/2015
3
EVOLUZIONE (1/2)
♦ 1 0 1 1 0 1 ♦
♦ ♦ 0 1 1 0 1 ♦
♦ ♦ 0 1 1 0 1 ♦
1°passo
♦ ♦ 0 1 1 0 ♦♦
torna a capo
♦ ♦ 0 1 1 0 ♦♦
...
♦ ♦ ♦ 1 1 0 ♦♦
2°passo
♦ ♦ ♦ 1 1 ♦♦♦
torna a capo
EVOLUZIONE (2/2)
♦ ♦ ♦ 1 1 ♦ ♦ ♦
...
♦ ♦ ♦ ♦ 1 ♦ ♦ ♦
3°passo
♦ ♦ ♦ ♦ 1 ♦ ♦ ♦
♦ ♦ ♦ ♦ ☺♦ ♦ ♦
Prof. Enrico Denti – Università di Bologna – A.A. 2014/2015
4
PROGRAMMARE LA MACCHINA
"Programmare l'algoritmo" sulla macchina di
Turing significa
definire la parte di controllo data dalle
tre funzioni mfn() sfn() dfn()
Poiché esse hanno lo stesso dominio A x S
♦ A = insieme finito dei simboli di ingresso e uscita
♦ S = insieme finito degli stati (di cui uno è HALT)
dove A e S sono insiemi finiti, possono essere
facilmente definite in forma tabellare.
Il Programma per la MdT
Stato iniziale
Prof. Enrico Denti – Università di Bologna – A.A. 2014/2015
5
EVOLUZIONE
Nel nostro caso:
• A = { 0, 1, ♦, , ☺ }
• S = { HALT, s0, s1 (iniziale), s2, s3, s4, s5 }
Configurazione iniziale del nastro:
♦ 1 0 1 1 0 1 ♦
Configurazione finale del nastro:
♦ ♦ ♦ ♦ ☺ ♦ ♦ ♦
Prof. Enrico Denti – Università di Bologna – A.A. 2014/2015
6