Programma d`Inseguimento di Contorni
Transcript
Programma d`Inseguimento di Contorni
PROGRAMMA D’INSEGUIMENTO DI CONTORNI 1960. Milano Avvertenza. Questo studio fu eseguito da noi per conto del Centro di Cibernetica e Attività Linguistiche (CCAL) nel 1960 ospitato nella sede dell’Università di Milano, in V. Festa del Perdono nel quadro di una ricerca finanziata dall’Euratom, al quale fu poi consegnato. Il presente lavoro fu citato in molte pubblicazioni del CCAL degli anni 1960. Il CCAL era interessato alla realizzazione di una macchina “percipiente” che avrebbe dovuto eseguire alcune fasi di trattamento delle immagini supposte presenti in una scena. Queste fasi erano essenzialmente la “differenziazione”, la ”figurazione” e la ”categorizzazione”. La differenziazione era immaginata come un’operazione in cui si sarebbero rilevate le “differenze” essenzialmente fotometriche fra punti vicini della scena. A titolo di esemplificazione era stato proposto di studiare il caso di una sagoma a forma di pera, scura in campo chiaro. La scena era priva di colori ed era supposta in bianco e nero, senza sfumature intermedie. Ci si rendeva conto che il problema generale era difficile da affrontare e queste semplificazioni erano appunto necessarie per tentare un primo approccio al problema. Le cosiddette “differenze” – peraltro non definite in rapporto ad una direzione determinata – sarebbero state nient’altro che il primo passo verso il rilevamento del contorno della figura giudicato necessario alla percezione della figura. La figurazione era invece immaginata come un’operazione in cui si sarebbero trovati i punti salienti del “contorno”. Una volta che questa operazione fosse stato eseguita, la via era spianata verso la categorizzazione, operazione che sarebbe avvenuta grazie al lavoro di un meccanismo di stati attenzionali non meglio identificati e di alcune loro combinazioni. A questa impostazione s’opponevano i nostri precedenti studi che datavano dal 1953: sostenevamo infatti l’opportunità di prendere in considerazione i centri, i centroidi e gli assi delle figure – al posto dei contorni – enti che ci sembravano suggeriti e confermati dai punti di fissazione e dai movimenti oculari osservati sperimentalmente da uno scienziato biofisico russo, A. Л. Ярбус, (A. L. Yarbus) dell’Università di Mosca, dalle illusioni visive, in particolare quella di Muller-Lye nella quale la lunghezza di due segmenti uguali appare diversa a causa dei due diversi centramenti dell’attenzione visiva, indotti da un diverso orientamento dei segni di freccia > e < nei due distinti casi (, >==<), oltre che confermati anche da una vastissima messe di osservazioni da noi raccolte sulla percezione, in particolare quelli dal 1953 al 1960. A tutto ciò si deve aggiungere che gli stati attenzionali propugnati nel CCAL come “operativi”, suscitavano la nostra perplessità per la contraddizione fra la concezione di “stato” e quella di “operazione”, contraddizione che ci sembrava impedisse il di passaggio alla ventilata e ambita categorizzazione e di realizzare l’ipotetica figurazione. Il filosofo della scienza Vittorio Somenzi dell’Università di Roma, era al corrente di una parte dei nostri studi sulla percezione e sul linguaggio e c’indirizzò al CCAL nella speranza che noi, avendo una formazione fisica, potessimo portare un contributo valido. Questo non fu veramente possibile poiché la posizione del CCAL fu mantenuta rigidamente sulla necessità d’escogitare un programma per rilevare i contorni d’una figura e di conseguenza il nostro aiuto si limitò allo studio di questo tipo di programmi previsti per “l’Inseguimento di contorni” e ad un Programmatore a relè che avrebbe dovuto porlo in atto ma che non fu mai realizzato. Per avere un’indicazione al di là di ogni dubbio e di ogni presa di posizione interessata, interpellammo Yarbus su questo punto ed egli esplicitamente escluse che l’occhio seguisse i contorni delle figure come se queste fossero “tastate”, questa l’espressione da lui usata. 1 Le teorie dei gestaltisti, inoltre, parlavano della percezione globale, assolutamente contraria all’analisi puntuale dei contorni e delle figure, affermando che l’insieme era “più della somma delle parti”. Nel Centro lavorava come psicologo e psichiatra Enzo Morpurgo – mio compagno di stanza - che sosteneva il punto di vista gestaltico senza però poter influire sulla linea intrapresa dal CCAL. Naturalmente ci sarebbe piaciuto potere applicare i nostri studi precedenti con i quali avremmo potuto realizzare facilmente una macchina percipiente artificiale anche per il caso di figure senza contorni evidenti. In questo clima, è evidente che il lavoro qui riportato assume il significato di una mera testimonianza storica. Lo studio che segue è dunque da considerare semplicemente propedeutico – specialmente in relazione ad alcune definizioni (reticolo, quadratino, frontiera, spostamento, unicità, concisione, totalità e simili) e d’importanza storico-documentativa. Ci lusinghiamo di pensare che gli amatori e qualche principiante possa trovarlo comunque interessante come primo approccio all’affascinante problema della percezione artificiale. 2 Parte I – Preliminari 1. Introduzione. Equivalenza fra il posizionatore numerico ed il reticolo di fotoelementi. Nello studio preliminare in merito alla visione artificiale in una macchina, si è esaminata la possibilità di dotarla di un programma che le consenta con mezzi ottici, meccanici ed elettrici di seguire il contorno di una figura [insieme con l’ing. Enrico Maretti: nota attuale] e – a questo scopo – si sono riconosciuti possibili due diversi apparati fra i quali scegliere e con cui si potrebbe condurre qualche tipo d’esplorazione in una scena. Questi apparati sono entrambi in grado di rilevare le caratteristiche fotometriche relative ad un’area molto ridotta (idealmente un “punto”) da tradurre in grandezza elettrica locale grazie ad un determinato tipo di fotoelemento (p. es. una fotocella, una fotoresistenza o altro dispositivo analogico simile). Uno dei due apparati fra cui si potrebbe scegliere, è un insieme di fotoelementi (dispositivi sensibili alla luce) disposti ordinatamente in un piano. Si suppone che si trovino ognuno all’interno di un piccolo quadrato ideale – o “quadratino” – che giaccia, insieme a tutti gli altri fotoelementi, su un medesimo piano di sostegno, la superficie fotosensibile rivolta verso la luce e protetta da materiale trasparente. Si formerebbe così una suddivisione del piano illuminato in tanti quadratini, secondo un certo numero che si ritiene opportuno. Questo piano suddiviso in tanti quadratini, aventi a due a due un lato in comune e su cui, grazie ad un sistema ottico, si rappresenta lo spazio scenico è qui detta “reticolo quadrangolare”. Dato il numero elevato di fotoelementi necessari per una sufficiente risoluzione dell’immagine, si pensa in alternativa ad un secondo apparato che sarebbe anche possibile. Esso sarebbe formato da un posizionatore, in pratica un braccio che porta un solo fotoelemento in grado così di spostarsi nel piano in cui naturalmente si deve formare l’immagine da trattare. In sostanza si tratterebbe di un posizionatore numerico (dunque “digitale”, ovverosia a passo fisso, discreto, di spostamento). Per entrambi gli apparati, (sia per il reticolo di più fotoelementi fissi, sia per il fotoelemento unico, quello spostato dal braccio mobile) l’immagine potrà provenire da una scena per mezzo del sistema ottico adeguatamente preparato. Più semplicemente, come primo approccio al problema, invece di usare una scena complessa, può bastare una sagoma ben illuminata, posata su una lastra trasparente ove fa ombra. Questa lastra si suppone a sua volta posata sul piano del reticolo ma è comunque separata dai fotoelementi oppure dal fotoelemento trascinato dal braccio. I due apparati sopra accennati sono quindi da considerare equivalenti e possono fornire comunque (l’uno o l’altro) un segnale elettrico in funzione della quantità di flusso luminoso intercettato nel quadratino dalla superficie fotosensibile prescelta di volta in volta. Il segnale così prelevato ha infatti un significato solo se è riferito ad una posizione corrispondente. Poiché il fotoelemento non è puntiforme – anche se si fa in modo di sceglierlo abbastanza piccolo – vi è una relativa incertezza sulla posizione da attribuire alla misura del segnale elettrico, peraltro soggetto anch’esso agli usuali errori di misura, data l’estensione della superficie fotosensibile. Ad ogni posizione (reale per il reticolo, virtuale per il braccio mobile) viene allora convenzionalmente assegnata una coppia di coordinate che definiscono la posizione ideale di un suo punto centrale con un margine d’errore tanto minore quanto maggiore è la precisione delle relative misurazioni. E’ ovvio che invece di un punto ideale, si ha a che fare con una superficie estesa che è quella del quadratino - cui s’attribuisce la misura della grandezza elettrica conseguente alla sua illuminazione. Questa stessa superficie può essere poi diversa dall’area intera del fotoelemento contenutovi, a causa delle ineliminabili imperfezioni costruttive (forma della superficie fotosensibile, cornice di protezione, eventuali saldature dei fili e così via). 3 Il piano immagine è quello in cui l’immagine è a fuoco o in cui semplicemente si trova posata la sagoma di prova la quale intercetta i raggi luminosi e vi produce la sua ombra. Coincide, con buona approssimazione, con il piano delle superfici fotosensibili fisse o di quella mobile. Il movimento del braccio da un punto ad un altro di questo “piano immagine”, è detto convenzionalmente “movimento reale”, mentre lo spostamento dei contatti necessario per il prelievo del segnale da un fotoelemento ad un altro del reticolo, è detto “movimento virtuale” (giacché i fotoelementi del reticolo reale restano immobili diversamente dall’unico fotoelemento montato sul braccio). Nel reticolo, infatti, tutto rimane fermo; cambiano solo i contatti quando sono spostati da un selettore tramite uno speciale sistema di distribuzione della conduzione elettrica. E’ questo cambiamento che produce virtualmente un moto di prelievo del segnale da un quadratino ad un altro. A questo punto si comprende che grazie all’equivalenza fra reticolo di fotoelementi e posizionatore “numerico” (digitale) ciò che conta è in ogni caso prelevare il segnale in relazione alle corrispondenti coordinate, non l’apparato con cui la misura sarà stata ottenuta. Data un’ipotetica figura o sagoma come immagine prodotta o posta come ombra sullo schermo, occorre decidere di volta in volta lo spostamento da realizzare nel piano ideale di movimento per poterne seguire il contorno. Questo spostamento deve tenere conto del segnale elettrico ottenuto, della continuità di movimento, quadratino per quadratino, e deve essere deciso anche sulla base del movimento – reale o virtuale – eseguito come vettore immediatamente prima. Non avrebbe senso procedere casualmente. Ne segue la necessità di redigere un insieme di regole valide, atte a decidere volta per volta lo spostamento da compiere in modo da limitare e mantenere il prelievo del segnale fotoelettrico sui quadratini molto vicini alla zona limite del contorno. Questo spostamento deve avere la minima lunghezza possibile, ma evidentemente non minore della distanza (in orizzontale, in verticale, o obliquamente) fra due quadratini “vicini”, ovvero tali da avere in comune o un lato o un punto di vertice. L’insieme di regole che così si verrà a redigere, costituirà nel suo complesso un “programma d’inseguimento del contorno”. Come vedremo, il programma così definito non è unico; ne sono possibili diversi, più o meno validi a seconda delle caratteristiche che se ne vogliano ottenere e ne saranno dati nove esempi ineguali fra cui scegliere a seconda delle esigenze che si presentano. Nel reticolo i quadratini sono tutti uguali fra loro e riempiono un rettangolo di lati l’ ed l” (l’ ⋛ l”) con l’ = md e l” = nd ove n ed m sono numeri interi e d (detto “passo del reticolo”) è la lunghezza del lato di un quadratino. Ad ogni quadratino – a scopo d’identificazione – è associabile una N-pla di indici. E’ possibile numerare i quadratini e, in questo caso, N = 1. In alternativa, dal momento che i quadratini occupano la superficie di un piano, possono essere loro associate due coordinate cartesiane e, in questo altro caso, ovviamente N = 2. 2. Programmi: condizioni preliminari. Per il programma di cui abbiamo parlato, conviene distinguere varie e diverse fasi. I. La prima fase ha come scopo la ricerca della sagoma di cui seguire la traccia del contorno. Questa fase può essere realizzata con una semplice spazzolamento o scansione (come sullo schermo di un oscillografo), del tipo riga per riga (con riferimento alle righe di quadratini di un reticolo o in alternativa alle righe di posizioni assumibili dal braccio) per esempio procedendo da sinistra a destra a partire dalla prima riga in basso e poi scorrendo le righe man mano al di sopra, sempre con lo stesso verso (da sinistra a destra ogni volta). E’ questa la fase di “ricerca o esplorazione” durante la quale lo spostamento sembra non dipendere dal segnale prelevato finché non se ne abbia una variazione che ovviamente segnala la presenza della sagoma. 4 II. A questo punto subentra l’innesco che è una seconda fase, volta a stabilire le condizioni per inseguire il contorno. Il movimento di scansione su accennato, cessa e si passa alla nuova fase di “inseguimento” grazie alla fase d’innesco. Da questo momento, tutte le coordinate dei quadratini che d’ora in poi saranno incontrate, saranno anche memorizzate. Ciò sarà utile perché quando tutto il contorno sarà stato seguito, si tornerà al punto di partenza e si decreterà la fine dell’inseguimento ma ciò sarà possibile soltanto se le coordinate di partenza saranno state appunto memorizzate. III. Dopo l’innesco si passa alla terza fase di programma, detta di “inseguimento del contorno”. Man mano che la fase attua questo inseguimento, si viene a creare una successione di coordinate che individuano i quadratini successivamente raggiunti l’uno dopo l’altro. Avremo così una successione di coordinate o di posizioni” essenziali per l’elaborazione. Ovviamente s’affiancano, nel contempo, anche una successione di stati” ed una “successione di vettori spostamento”. Il vettore spostamento da un quadratino al successivo, attuato per il prelievo del segnale, si assume avvenire – tranne esplicito avviso – da un quadratino ad un altro scelto fra gli altri otto quadratini che lo circondano, i soli che sono detti “quadratini vicini”. IV. La quarta ed ultima fase è quella in cui il programma sa riconoscere di aver esaurito il proprio compito e per questo si può chiamare “fase conclusiva o di chiusura dell’inseguimento”. Con questa fase si giunge alla fine ed affinché ciò si verifichi occorrono e bastano contemporaneamente due condizioni: la prima è che si verifichi il ritorno alle coordinate di un quadratino già toccato e la seconda è che questo ritorno avvenga con un vettore identico a quello precedente che portava a queste medesime coordinate. La fine dell’inseguimento sarà decretata se la macchina saprà riconoscere di avere già assunto le medesime coordinate trovate all’inizio – in fase d’innesco - e di averle raggiunte col medesimo vettore spostamento. Allora dovrà fermarsi. La macchina sarà dunque dotata di un elaboratore avente memoria e capacità sufficiente per compiere il necessario confronto di coordinate assunte e di spostamenti attuati e che avranno dovuto essere posti nella memoria per questo successivo confronto che avverrà necessariamente ad ogni nuovo passo. Per semplicità si sono supposte le seguenti condizioni di lavoro, onde evitare le complicazioni inerenti all’uso del movimento, del colore e del rilievo. Le condizioni di lavoro scelte sono: 1. 2. 3. 4. Scena statica in modo da non dovere considerare oggetti in movimento. Fuoco fisso per lavorare a distanza fissa (nel caso del reticolo o con un’ombra - braccio mobile). Bianco–nero per evitare le complicazioni di colore e le incerte sfumature di grigio. Uso degli stati 0 e 1 (espressi in cifre binarie) per indicare rispettivamente assenza o presenza di un segnale (elettrico) specificato grazie a una soglia che agisce nei confronti del segnale in ciascuno dei quadratini appartenenti alla sagoma. Si parla di scena statica nel senso che essa è supposta in quiete rispetto all’apparato di prelievo. Il fuoco dell’intero sistema ottico è fisso e regolato per la distanza a cui si trova la scena (oppure la sagoma per l’eventuale caso semplificato). La scena deve trovarsi in un piano ortogonale all’asse ottico del sistema. Se si usasse semplicemente una sagoma posata sul piano fotosensibile, sarebbe possibile semplificare il sistema ottico. Analogamente sono evitati i problemi concernenti i colori grazie all’adozione di due sole tinte: bianco e nero. In pratica l’immagine apparirà tutta nera in campo bianco (o viceversa) senza chiaroscuri. Per quanto riguarda la forma della sagoma, osserviamo che si possono presentare tre situazioni. Nella prima, assimilando la sagoma ad una macchia, si può avere una macchia unica di forma qualsivoglia e senza lacune. Nella seconda, oltre alla macchina che interessa, si presentano anche altre macchie sparse a varie distanze. 5 Nella terza, si vedono delle macchie bianche che formano lacune dentro la macchia nera. 1 2 3 A questo punto possiamo porre la condizione che la figura G di cui vorremmo il contorno, sia connessa (ossia senza parti staccate) e semplicemente connessa (cioè senza lacune interne, “bianche” nella sagoma pressoché nera). Si tratta dunque di una macchia unica, compatta e senza altre macchie circostanti. Ponendoci in condizioni operative, ogni quadratino dà un segnale proporzionale alla porzione di superficie che intercetta il flusso luminoso a sua volta in proporzione all’intensità d’energia in arrivo. In definitiva bisogna tenere conto anche dell’area sensibile investita. A seconda della posizione della sagoma, notiamo infatti che non necessariamente la luce investe tutta la superficie del quadratino e, di conseguenza, la quantità di flusso raccolto può interessare tutta l’area, oppure una parte più o meno grande o, ancora, può non colpirla affatto. Nonostante l’assunzione “bianco \ nero” è dunque necessario porre un’ulteriore condizione se si vuole lavorare con due soli stati (0 ed 1) e questo per evitare la variabilità del segnale ed eventuali stati d’incertezza fra nero e bianco. A questo riguardo, supporremo d’assumere una soglia prossima al valore medio dell’intervallo di variazione prevista per il flusso luminoso raccolto: flussi inferiori alla soglia saranno presi per “neri” (se la sagoma è nera, l’energia del segnale sarà prossima a zero ma lo stato simbolico corrispondentemente assunto sarà comunque 1 giacché di solito associamo questo “simbolo” ai quadratini propriamente contenuti nella sagoma indipendentemente dalla tinta), quelli superiori alla soglia saranno presi per bianchi. (Lo sfondo si considera bianco). Abbiamo infatti la possibilità di far corrispondere ad arbitrio i due simboli a disposizione 0 e 1, agli stati dei quadratini. Uno dei due può essere assegnato al nero e l’altro al bianco o viceversa. Noi qui assumeremo la tinta dell’interno della sagoma come corrispondente dello stato 1, l’altra, dello sfondo esterno, a 0. Conviene forse dire che nei casi dubbi in cui il flusso è prossimo alla metà dell’intervallo di variazione – vale a dire alla soglia – si può eventualmente introdurre un dispositivo, p. es. un circuito adatto, che rinforzi definitivamente il segnale (proveniente da un quadratino) sbilanciandolo in un senso o nell’altro – p. es. un circuito elettronico di scatto detto di “Smitt” o “trigger”. Attraverso l’accennata operazione non lineare di “soglia”, passiamo dalla primitiva immagine sul reticolo (reale o virtuale) ad un nuovo insieme (corrispondente all’immagine e che continuiamo a immaginare in nero) avente un aspetto “a gradinata”; questo termine è in riferimento al contorno che si presenta a zig-zag e che, di fatto appare in forma nuova; pertanto questo nuovo insieme sarà indicato con Gg. (L’indice è l’iniziale di “gradinata). E’ chiaro che quanto più estesa è l’ombra della figura originaria sagomata rispetto alle dimensioni di un singolo fotoelemento (corrispondente al quadratino e che idealmente dovrebbe essere il più piccolo posibile), tanto meglio il contorno di questo nuovo insieme rappresenterà i dettagli dell’insieme G d’origine. Mancano ancora altre ipotesi che ci sembrano necessarie relativamente all’insieme Gg che chiameremo “sagoma a gradinata” per distinguerla dalla sagoma originaria a contorno curvilineo. 6 Abbiamo detto che, per semplicità, l’insieme G deve essere connesso e semplicemente connesso. Ciò non basta ad evitare che l’insieme a gradinata non lo sia, così come chiunque può vedere facilmente con alcuni esempi. Occorre dunque imporre la condizione supplementare ma necessaria che l’insieme a gradinata Gg sia, per semplicità, connesso e semplicemente connesso. Per i nostri scopi, tanto basta e non occorre più che G lo sia. 3. I quadratini: alcune definizioni. Abbiamo visto cosa sono i quadratini vicini parlando a proposito del vettore spostamento. Consideriamo ora un quadratino q insieme agli altri otto vicini che lo circondano. Complessivamente sono nove. Il quadratino q è detto “quadratino di frontiera” quando i nove quadratini non sono tutti neri o tutti bianchi. Ancora, q è detto “quadratino interno” quando tutti e nove i quadratini sono neri (vale a dire appartenenti alla sagoma) Viceversa, è detto “quadratino esterno” quando tutti e nove i quadratini sono bianchi (vale a dire appartengono allo sfondo, cioè all’insieme complementare rispetto alla sagoma a gradinata). Ci possiamo ora domandare quali e quanti siano i quadratini di frontiera di un reticolo (non importa se reale o virtuale) in cui immaginiamo l’insieme Gg. Supponiamo di volere verificare, quadratino per quadratino, se ciascuno di loro è o no di frontiera. Quando avremo finito di trovarli tutti, ne avremo prodotto un elenco in cui tutti sono di frontiera, e circa la metà saranno bianchi e la parte rimanente neri. Diremo indifferentemente “frontiera” o “contorno” l’insieme di tutti i quadratini di frontiera (dell’insieme a gradinata), non importa se bianchi o neri. Diremo “contorno interno” l’insieme di tutti i quadratini di frontiera che sono neri. Diremo “contorno esterno” l’insieme di tutti i quadratini di frontiera che sono bianchi. Di conseguenza il contorno è formato in parte da un contorno interno nero ed in parte da un contorno esterno bianco. A questo punto diremo che un inseguimento di contorno è stato eseguito quando saremo in possesso di un elenco di tutti (condizione di totalità) e soli (condizione d’unicità) i quadratini di frontiera, senza ripetizione (condizione di concisione) e con continuità ovvero senza salti di quadratini nel piano (condizione di continuità) vale a dire che quadratini successivi nell’elenco corrispondano a quadratini vicini nel reticolo, quindi passando senza salti dall’uno all’altro, non importa se bianchi o neri. Adottando questa definizione teorica, un inseguimento inizierebbe fin dal primo quadratino nero trovato dalla macchina e si esaurirebbe alla prima ripetizione di un quadratino (che dovrebbe coincidere col primo). In pratica, tuttavia, un inseguimento così definito risulta molto difficile da realizzare. Dato infatti un certo programma, si possono sempre trovare dei quadratini che si succedano in maniera tale che alcuni si ripetano durante l’operazione in corso (e non soltanto alla fine), oppure che si trascuri qualche quadratino di frontiera che risulta così perduto – venendo così a mancare la totalità di tutti – o, ancora, che non vi siano nell’elenco solo quadratini di frontiera, ma anche non di frontiera - e, in questo caso, verrebbe a mancare l’unicità. La continuità è assicurata per costruzione usando sempre solo vettori di spostamento di lunghezza pari al lato o alla diagonale di un solo quadratino. Si possono allora volere introdurre delle nuove condizioni ridotte che in sostanza possono volere significare che “grosso modo” (percentualmente) secondo un certo grado tollerato in partenza, si ha un inseguimento come definito poco sopra; in definitiva, le condizioni ridotte finiscono col definire e tollerare un certo tipo d’inseguimento, stabilendo empiricamente la variazione ammessa in pratica sul rendimento percentuale medio per ciascun parametro, cioè per: totalità, unicità, concisione e continuità. 7 Un esempio di condizioni del genere è il seguente. Definito un certo numero di parametri di rendimento (che vedremo più avanti) variabili percentualmente da 0 a 100, si vuole che tutti siano superiori a 50; oppure che la radice della somma dei loro quadrati oltrepassi una soglia ben determinata. Un’altra condizione è questa: dato un numero intero, arbitrariamente scelto, Q ≥ 1, si considerano Q quadratini qualsiasi purché in successione continua nell’elenco, l’uno rispetto all’altro. Dati due interi n e b tali che n+b=Q e |n-b|≤s ove s è una soglia detta “indice di sbilanciamento del numero dei quadratini neri rispetto ai bianchi o viceversa”.. Si può inoltre volere che n (<Q) quadratini debbano essere neri e b (<Q) bianchi. Un’altra possibilità del tutto diversa è d’intervenire a priori sul programma, imponendo p. es. che le regole di spostamento tengano conto degli stati 0 e 1 di una sequenza limitata, per esempio di σ quadratini, anziché dello stato di un solo quadratino. Nel seguito, vedremo un esempio di programma con σ = 4. In ogni caso, per ottenere una migliore realizzazione del programma d’inseguimento, bisogna ricorrere a metodi che esulano dai programmi che qui e in questo limitato lasso di tempo, abbiamo potuto sviluppare. Quando si specificano le regole atte a fornire la successione dei quadratini di frontiera nell’ambito delle condizioni e delle specificazioni scelte, queste regole possono essere interpretate come istruzioni di un programma per una macchina capace d’attuarle, p. es. (ma non necessariamente) un computer. E’ a questo punto che nasce un programma d’inseguimento. La macchina che lo realizza, incorporandolo nella sua capacità di funzionamento, sarà detta “programmatore”. Le regole di un programma possono essere espresse da parole con spiegazioni più o meno dettagliate o con simboli più o meno sintetici. Diamo qui di seguito alcuni programmi, atti a realizzare un certo tipo d’inseguimento del contorno per un insieme a gradinata. 8 Parte II - Programmi 4. Programma 1° (L). Istruzioni vettoriali e angolari. Premesso che A, B, S, D sono le iniziali di Alto, Basso, Sinistra, Destra, che simboleggiano corrispondenti vettori di spostamento (di lunghezza pari al lato di un quadratino) e che significano rispettivamente “esegui lo spostamento di un quadratino verso quello più vicino in alto, in basso, a sinistra, a destra”, diamo qui le istruzioni del primo programma: Istruzioni vettoriali del programma L 1 dopo D B 0 dopo B A 1 dopo A D 0 dopo D S 1 dopo S A 0 dopo A B 1 dopo B S 0 dopo S D A titolo illustrativo, la prima istruzione si legge: “se trovi un 1 dopo uno spostamento a destra, esegui un nuovo spostamento verso il quadratino vicino, in basso”. Si noti che B è scritto dopo la freccia, rispettando così la sequenza degli eventi in analogia al verso di lettura da sinistra a destra: infatti lo spostamento B avviene ed è scritto dopo aver trovato un 1 dopo uno spostamento a destra (D). In questo insieme di istruzioni, mettiamone a confronto due, la prima e la quarta: “1 dopo D B“ “0 dopo D S”. Possiamo subito notare che lo spostamento risultante è diverso a seconda che lo stato di partenza sia 1 oppure 0. Se fosse sempre lo stesso, il programma sarebbe indifferente rispetto allo stato e dunque non lo “avvertirebbe”. Affinché gli sia sensibile, occorre anche che sia attivo, ovvero che corrisponda con un’azione “diversa” a “stimoli” diversi. Sembra qui d’avere a che fare quasi con la teoria SR cara alla scuola psicologica del comportamentismo. In ogni caso, possiamo darci una regola generale: a diversi stati può essere bene fare corrispondere attività diverse. Si viene così a creare una asimmetria fra le attività in corrispondenza agli stati; in linea di principio ciò porta ad un comportamento motorio adattato (nel nostro caso, sequenza di spostamenti diversi o opposti in funzione dei due stati diversi presenti in prossimità del contorno, a questo dunque “adattati”). Questo programma L fa parte di un gruppo di nove programmi che saranno presentati qui di seguito e che sono applicati – come già si disse - soltanto dopo una prima esplorazione per righe, per es. orizzontali. Il programma completo, iniziando con la fase di esplorazione, fa eseguire il prelievo del segnale per ogni riga, riga per riga, e quadratino per quadratino (o posizione per posizione se si usa un braccio mobile), partendo dal primo a sinistra in basso, poi proseguendo con quello subito alla sua destra e così via. Quando si ha il primo passaggio del segnale da 0 ad 1, allora si applica questo primo programma L, cioè si dà inizio all’inseguimento come fissato dalle istruzioni che lo costituiscono. Il programma L è ovviamente il sottoprogramma destinato all’inseguimento. Come già dicemmo, fa parte di un intero programma più ampio, (scisso in più sottoprogrammi atti ad eseguire ciascuno la fase corrispondente). Il primo sottoprogramma destinato alla prima esplorazione riga per riga, a scansione, è relativamente semplice ed uguale per tutti i programmi presentati e sarà quindi d’ora in poi sottinteso. 9 In tutti i programmi che presentiamo, gli spostamenti sono sempre di un solo quadratino per volta e – in questo programma L – hanno direzioni o orizzontale o verticale (in altri programmi si hanno direzioni composte con risultanti vettoriali oblique a 45°). Ponendoci su quadratino di partenza e traversandone un lato, si possono avere quattro possibilità di spostamento: a destra, a sinistra, in alto e in basso. Il quadratino d’arrivo (in relazione ad uno spostamento singolo) ha dunque un lato in comune con quello di partenza. Ciò dovrebbe accadere per tutti i quadratini successivi e contigui nell’elenco prodotto da questo programma, i quali dovrebbero avere, a due a due, in comune un lato - contatto proprio fra quadratini - grazie al quale c’è continuità fra loro. Non così in altri programmi che fanno uso di moti obliqui nei quali il movimento avviene attraverso un vertice - contatto improprio fra quadratini. Nulla è invece detto della relazione fra i quadratini man mano raggiunti ed il contorno di Gg ovverosia con i quadratini di frontiera (non importa se della stessa tinta o di quella opposta). Supponiamo che nel reticolo (reale o virtuale) esista un solo quadratino nero appartenente alla sagoma. In questo caso - estremamente ridotto ad un unico quadratino - supponiamo che la macchina vi giunga da sinistra dopo la fase iniziale d’esplorazione. Per ipotesi, troverà un 1. Dopo l’innesco, la macchina inizierà la fase d’inseguimento. Fra gli otto quadratini vicini, lo spostamento che seguirà – scelto fra quelli dettati dal programma - potrebbe avvenire a priori solo verso 4 di questi mediante i 4 possibili vettori spostamento (A, B, S, D) previsti appunto dalle regole – o “istruzioni” - del programma (come da prospetto vettoriale visto più sopra). In realtà, essendo la provenienza da sinistra, lo spostamento è necessariamente D e, pertanto, avremo due condizioni che sono, sinteticamente, “1 dopo D” e, consultando la tabella delle istruzioni, vedremo subito che la prima obbliga la macchina ad eseguire un nuovo spostamento verso il basso essendo: “1 dopo D B” con ormai ovvio significato dei simboli. Ora il quadratino è isolato per ipotesi, e tutti gli altri circostanti si trovano allo stato 0. Pertanto lo spostamento B porterà la macchina ad un nuovo quadratino che dà segnale 0. Dovremo quindi leggere l’istruzione “0 dopo B A” e la macchina tornerà in alto sul quadratino iniziale nero, ritrovandone di nuovo le stesse coordinate di prima – ma vi giunge con moto vettoriale diverso. Essa non terminerà il programma giacché siamo solo noi a sapere già che il quadratino nero è isolato: la macchina non lo sa e si limita ad eseguire le istruzioni. La macchina “non vede“ nell’insieme la figura che sta trattando ed è costretta a fare un passo alla volta. Di conseguenza tornando indietro, verso l’alto, al quadratino di partenza ma pervenendovi con moto vettoriale diverso (da quello di prima), il programma d’inseguimento continua. Si sarebbe interrotto se il vettore attuale fosse stato identico a quello iniziale sempre sulle medesime coordinate. Sottolineiamo che, per come è congegnata finora (ma si potrebbe fare altrimenti), alla macchina manca infatti la vista d’insieme. Così proseguendo, la macchina finirà col descrivere una stella a quattro braccia formata da otto spostamenti coordinati (cioè paralleli agli assi cartesiani, supposti verticale ed orizzontale) nella sequenza: B, A, D, S, A, B, S, D (si può controllare con le istruzioni e la figura). 10 qi q qp v. a. - Fase di esplorazione e suo ternine: il primo quadratino “nero” trovato, innesca la fase d’inseguimento successiva. qi Fase d’innesco. L’inseguimento inizia con “1 dopo D = B” Vettore d’arrivo = v. a. Quadratino = q (al centro stella). i = contatto improprio; p = contatto proprio Fase di inseguimento. In tratteggio i quadratini bianchi; i quadratini neri sono convenzionalmente in grigio. Sono trovati soltanto i quattro quadratini vicini “bianchi” a contatto di lato col quadratino “nero” q che ha innescato l’inseguimento. Esso stesso è un quadratino di frontiera e per trovare gli altri quattro suddetti, q deve essere ripetuto quattro volte. Questa figura suggerisce la possibilità di un programma che eviti il ritorno sul quadratino di partenza mediante una regola del tipo: “0 dopo B = AD” (ove AD denota lo spostamento composto, obliquo verso l’alto a destra) oppure di un altro tipo adatto come potrebbe essere 0 dopo B D. Gli otto spostamenti sono nella sequenza: B, A, D, S, A, B, S, D. Questo caso suggerisce d’adottare la seguente regola generale: se si proviene dalla fase di esplorazione e il quadratino iniziale è ripetuto quattro volte, su otto spostamenti consecutivi coordinati (secondo gli assi), una volta sì ed una no, la fase d’inseguimento deve terminare. Per fare questo occorre memorizzare nel computer, in un registro speciale di “fine inseguimento”, le coordinate del quadratino inizialmente trovato come appartenente alla sagoma e l’ordine di fine sarà condizionato al numero (di conteggio) 4 che è il numero dei ritorni a q . Avvertiamo che il numero quattro delle volte che bisogna attendere per terminare l’inseguimento (su otto spostamenti consecutivi), è necessario per essere certi che i quattro quadratini a contatto di lato siano bianchi (ovverosia non appartenenti alla sagoma). Resta il fatto che se vi fossero quadratini neri a contatto di vertice, con questo programma non verrebbero rivelati. Questa circostanza conferma l’utilità d’avere definito “quadratino qp a contatto proprio” ciascuno dei quattro a contatto di lato e “quadratino qi a contatto improprio” ciascuno dei quattro a contatto di vertice, distinguendo fra i due tipi di contatto. Vogliamo notare a questo punto che questa duplicità del tipo di contatto non depone a favore del reticolo quadrangolare nonostante la relativa semplicità di questo ultimo, a causa della non uniforme distribuzione delle relazioni spaziali fra i quadratini vicini. Abbiamo accennato che eventuali quadratini della sagoma a contatto di vertice non sono rivelati, come si può vedere in figura per il quadratino “nero” qi a destra in alto. In questo programma L, qi può essere considerato come appartenente ad un’altra figura del tutto esterna rispetto a quella data: 11 essendo il contatto di tipo improprio, potrebbe essere considerato volendo, come un’imperfezione della figura e, come tale, da trascurare. Bisogna distinguere bene il quadratino iniziale, quello con cui inizia e dovrebbe concludersi l’inseguimento, da un qualsiasi altro, toccato in un diverso momento intermedio durante l’inseguimento medesimo e non adatto a fare terminare l’inseguimento. Di questa specie sono i quadratini ripetuti. Questi si riconoscono per essere raggiunti una o più volte dal tracciato inseguitore del contorno ma con spostamenti d’arrivo ineguali (p. es. una volta dal basso, un’altra volta da destra o dall’alto…). Data la diversità del vettore di ritorno, i q ripetuti non costituiscono un pericolo e pertanto si tratta di ripetizioni innocue. La circostanza di un diverso ritorno può verificarsi anche per il quadratino iniziale vero e proprio, quello in cui il l’inseguimento dovrebbe terminare, ma l’eventuale insistenza a proseguire l’applicazione del programma può portare il beneficio di trovar nuovi quadratini di frontiera prima non toccati e quindi può valere la pena non concludere l’inseguimento tassativamente. La regola generale tuttavia sempre valida è che se un quadratino è ripetuto ma per merito di uno spostamento identico a quello di un arrivo precedente sul medesimo quadratino, allora è tassativamente obbligatorio finire l’applicazione del programma perché si entrerebbe altrimenti in un giro vizioso di ripetizioni. La ripetizione per spostamento identico (e stesse coordinate, stesso stato), deve decretare dunque la chiusura dell’inseguimento in ogni caso (purché la scena sia in quiete). Un’insistenza a proseguire provocherebbe la ripetizione identica di tutto l’inseguimento precedente senza alcun nuovo beneficio. Le ripetizioni innocue sono dunque quelle con vettori d’arrivo diversi fra loro: da questo si comprende che per un programma che prevede solo quattro tipi di spostamenti vettoriali (A, B, S, D), non sono ammesse per il ritorno più di quattro ripetizioni “diverse” settorialmente. E’ infatti inevitabile che al massimo la quinta ripetizione avvenga con vettore identico ad uno dei quattro già avvenuti; ripetiamo che da questo momento si renderebbe ripetitivo l’inseguimento, senza alcuna novità di vantaggio. Conviene allora ribadire con maggiore precisione, che il programma deve assolutamente terminare se un quadratino è di nuovo raggiunto con lo stesso vettore d’arrivo e lo stesso stato che vi è contenuto (se nel frattempo la sagoma non è stata cambiata). Questa è una regola generale. Non importa se il quadratino sia nero o bianco. In altre parole, ai fini del risultato dell’inseguimento non conta soltanto qual è il quadratino raggiunto (nella successione che costituisce il contorno) ma soprattutto anche il vettore d’arrivo con cui vi si giunge. Se tutte e tre le caratteristiche (stato del quadratino, coordinate e spostamento vettoriale) si ripresentassero immutate in nuovo ciclo, sarebbe innescato un secondo ciclo d’inseguimento identico al primo, e quindi non avrebbe alcun senso eseguirlo. Il programma dovrebbe essere costituito da un insieme di regole sufficienti e adatte per ogni situazione, sia relativamente agli stati 0 ed 1, sia relativamente ai vettori spostamento. Il programma L approssima abbastanza bene questo scopo ideale, almeno per i casi più usuali, ed è rappresentato anche dal diagramma sintetico di istruzioni della Tavola 1. 12 Vettore S d’arrivo locale Vettore S d’uscita locale In questo scorcio di un insieme a gradinata (in grigio) i due vettori d’ingresso e d’uscita sono in tratteggio. Gli altri vettori che punteggiano il contorno e sembrano orlarlo, sono a tratto pieno. I quadratini “neri” dell’insieme a gradinata corrispondono ad una parte di un’ipotetica sagoma. Quelli bianchi allo sfondo. Il diagramma s’ispira alle rotazioni anziché agli spostamenti e risulta di conseguenza più agile, così letto. Infatti le otto istruzioni che abbiamo visto prima, si riducono immediatamente a due soltanto, date sotto forma angolare anziché vettoriale. Detti v’ e v” due vettori di spostamento che si susseguono in modo che, terminato il primo, subentri il secondo con un angolo α compreso fra la α v’ v” semiretta di proseguimento della direzione del primo e la semiretta di proseguimento della direzione del secondo – con segno positivo per angoli percorsi in senso orario - diciamo “angolare” l’istruzione che permette di decidere l’entità dell’angolo α così definito. Il diagramma angolare va interpretato ricordando che la lunghezza di una freccia indica quanto deve essere l’entità dello spostamento per passare dal centro di un quadratino e quello di un altro contiguo. E’ ovvio anche che nell’istruzione angolare, direzione e verso del vettore spostamento dipendano dallo stato trovato, 0 oppure 1 (di solito uno di questi due simboli è segnato accanto alla freccia, o l’uno o l’altro nelle Tavole). La parte dove sta la punta della freccia indica il quadratino d’arrivo, la parte opposta, senza freccia o “punto d’applicazione”, quello di partenza. Passiamo ora a dare le istruzioni sotto forma angolare che riducono le otto vettoriali già viste a soltanto due. Istruzioni angolari del programma L stato 0 stato 1 180° +90° Come abbiamo convenuto, il senso positivo scelto qui per la rotazione è quello orario. Notiamo ancora che nel primo membro di queste due istruzioni si può trovare lo stato (1 oppure 0) del 13 quadratino di partenza dell’istruzione medesima. (L’angolo 180° è indifferente al segno: quello negativo è posto solo per ricordare l’opposizione nella relazione fra le rotazioni dei due stati ) E’ ovvio che il motivo per cui lo stato del quadratino d’arrivo non è specificato è che esso si rivelerà nel futuro applicativo dell’istruzione medesima che attualmente si sta decidendo d’eseguire ma non è ancora eseguita. La lettera distintiva del programma è L poiché la poligonale d’inseguimento appare come una spezzata costruita con delle L successive accostate e alternativamente speculari l’una rispetto all’altra. 5. Programma 2° (S). Solo la frontiera. Il programma 1 (L) precedente, aveva un gran numero di ripetizioni a causa dell’istruzione che prevedeva una rotazione di 180° la quale comporta chiaramente un ritorno indietro sul quadratino di partenza. Si è così pensato di evitare il più possibile le ripetizioni con un secondo programma nel quale sono previste soltanto rotazioni di 90°, positive o negative. Le istruzioni angolari sono dunque semplicemente: Istruzioni angolari del programma S stato 0 stato 1 -90° +90° Riportiamo anche le istruzioni vettoriali, ovviamente più numerose - che sono otto: le due istruzioni angolari devono essere moltiplicate per quattro per sapere come comportarsi nei quattro possibili moti coordinati (D, S; A, B); per ciascuna di queste, bisogna moltiplicare poi per due, tante volte quanti sono gli stati possibili in ogni quadratino di partenza, ovverosia 0 ed 1 – per un totale appunto di otto. Istruzioni vettoriali del programma S 1 dopo D B 0 dopo B D 1 dopo A D 0 dopo D A 1 dopo S A 0 dopo A S 1 dopo B S 0 dopo S B L’istruzione d’innesco è implicitamente contenuta nelle istruzioni del programma, dato che la fase precedente d’esplorazione ha già necessariamente controllato che vi sono solo stati 0 nelle righe scandite in precedenza più in basso. Anche qui, a titolo illustrativo, la prima istruzione si legge: “se trovi un 1 dopo uno spostamento a destra, esegui un nuovo spostamento verso il quadratino in basso”. L’istruzione successiva suppone che il vettore B abbia appunto portato al rinvenimento di uno 0 e prescrive l’esecuzione del vettore D, dunque a prosecuzione parallela del moto che aveva portato al precedente stato 1. Si ha quindi una tendenza a rasentare il contorno per quanto possibile senza inutili ripetizioni. Si veda la figura. Direzione iniziale (frontiera interna). D Contorno intermedio presunto B Direzione dopo 2 istruzioni (frontiera esterna) D L’inclinazione della figura non è significativa: tende a puntualizzare l’importanza delle rotazioni piuttosto che dei vettori veri e propri. 14 Il diagramma delle istruzioni si trova nella tavola 2. In questo diagramma, il punto iniziale da cui conviene partire è il centro. Eseguendo uno spostamento qualsiasi (D, S, A oppure B) si ha immediatamente la successiva direzione ed il verso da prendere, individuando così lo spostamento successivo. Basta considerare quale stato si trova nel “prossimo” quadratino (0 o 1) per ricavare il nuovo vettore spostamento. Ad es., se mi sposto inizialmente a destra dal centro, posso trovare uno 0 oppure un 1: se trovo 1 andrò in basso, se trovo 0 andrò in alto. Supponendo di trovarci in quest’ultimo caso, quale sarà il successivo spostamento? Riportiamoci al centro del diagramma che illustra figurativamente le istruzioni ed andiamo in alto conformemente all’ultimo spostamento effettuato: qui abbiamo due possibilità vettoriali, andare a destra oppure a sinistra (queste sono indicate da due frecce corrispondenti). Nal diagramma possiamo vedere che dopo lo spostamento in alto, andrò a sinistra se trovo 0 ed a destra se trovo 1. E così via. Questo 2° programma (S), dà soltanto alcune ripetizioni, ma in numero ben minore del 1° programma (L). (V. la tabella al paragrafo 15). Il programma S non fornisce tutti i quadratini di frontiera, ma ci dà solo quadratini di frontiera (come del resto si verificava con il programma L) La lettera distintiva del programma è la S per ricordare l’andamento sinuoso dell’inseguimento ottenuto grazie alle istruzioni di questo programma. 6. Programma 3° (V). Vettori obliqui. La lettera distintiva “V” è stata scelta per questo programma perché dà l’idea dei vettori obliqui usati nell’inseguimento. Lo scopo di questo programma è di verificare cosa accade quando si usano dei vettori obliqui anziché coordinati rispetto agli assi di riferimento orizzontale e verticale. Si può constatare la perdita di molti quadratini di frontiera che non sono rinvenuti durante il tracciato d’inseguimento. Le istruzioni angolari sono uguali a quelle già viste per il programma precedente, vale a dire: Istruzione d’innesco per il programma V. Forma vettoriale Forma angolare 1° 1 dopo D DB 1° 1 45° 0 1 Innesco Istruzioni angolari del programma V in fase d’inseguimento stato 0 stato 1 -90° +90° Questo programma angolare è formalmente identico al programma S. Ciò che lo diversifica è l’unica istruzione d’innesco che ha la funzione d’inizializzare dando luogo ai vettori obliqui successivi con una rotazione eccezionale di 45° (come è infatti il passaggio D DB). 15 Le istruzioni vettoriali impongono spostamenti obliqui come risulta dal prospetto seguente. Istruzioni vettoriali del programma V 1 dopo DA 0 dopo DB 1 dopo AS 0 dopo AD 1 dopo SB 0 dopo SA 1 dopo BD 0 dopo BS DB DA AD AS SA SB BS BD Anche qui, a titolo illustrativo, diciamo che la prima istruzione si legge: “se trovi un 1 dopo uno spostamento obliquo verso destra in alto, esegui un nuovo spostamento verso il quadratino a destra in basso”. Presumendo che dopo un 1 venga trovato uno 0, l’istruzione successiva suppone che il vettore DB abbia appunto portato al rinvenimento di uno 0 e dispone l’esecuzione del vettore DA, dunque a prosecuzione del moto precedente parallelo (DA) che avrebbe portato al precedente stato 1 (mentre all’innesco invece era D e non DA). Nel programma S c’era anche all’innesco un vero e proprio parallelismo fra il moto D a destra verso il primo quadratino ed il moto a destra D dopo il vettore B, quello verso il basso che portava ad uno 0. Come in (S) si ha anche qui, in V, una tendenza a rasentare il contorno per quanto possibile senza inutili ripetizioni innocue che risultano relativamente poche. Si nota tuttavia che i vettori obliqui comportano una sensibile perdita di quadratini di frontiera. Si veda la Tabella di confronto dei parametri di rendimento relativamente ai nuovi programmi qui presentati (v. paragrafo 14). Gli spostamenti obliqui implicano il moto lungo le diagonali dei quadratini. Qui il contatto fra due quadratini forniti dall’elenco nella fase d’inseguimento avviene per l’avere essi un punto di vertice in comune: si tratta dunque di un contatto improprio. Anche con questo programma, degli otto quadratini vicini ad un q dato (al centro nello schema), ne vengono presi in considerazione solo quattro per lo spostamento da q al successivo, e precisamente secondo le quattro direzioni oblique ammesse dal programma: DB, DA, AS, BS. I simboli usati nelle istruzioni indicano esaurientemente direzione e verso di uno spostamento obliquo; ad esempio DB fa spostare il prelievo del segnale fotoelettrico caratteristico del quadratino q (supposto al centro, in figura), a quello a destra in basso (col vettore DB). Il primo segnale 1 dà inizio al programma d’inseguimento con un opportuno spostamento, come nei precedenti programmi. Mentre però, nei due precedenti programmi, dopo il primo 1 si faceva un primo spostamento B (si proveniva da sinistra, quindi si aveva un D), qui al primo 1 lo spostamento è l’obliquo DB (provenendo da sinistra nell’esplorazione del reticolo). Si ha dunque una condizione iniziale per l’inseguimento, diversa e specifica per ogni programma. Questa condizione fa parte dell’innesco ma può essere sottintesa nei nostri esempi e specialmente quando è implicita è omessa per brevità. 16 Una possibile variante – tecnicamente meno semplice da realizzare e comunque non vantaggiosa - è cambiare il sottoprogramma d’esplorazione (precedente all’applicazione di V), facendola avvenire per diagonali anziché per righe del reticolo. L’attuale programma, sostanzialmente identico al precedente, ne differisce per la rotazione di tutti gli spostamenti di 45° , come si vede nella tavola 3. Cambiando il sistema di riferimento dei vettori coordinati con una rotazione degli assi di 45°, si è ottenuto facilmente il programma espresso in maniera formalmente identica al programma S. Con il programma V, in un inseguimento si risparmia il numero di passi (numero di spostamenti e quindi di quadratini trovati) ma ovviamente si perdono alcuni possibili dettagli non potendo più contare su una soddisfacente tendenza alla totalità per i quadratini di frontiera. Il rapporto fra due spostamenti elementari nei due programmi, naturalmente fra quadratini successivi, è uguale alla radice di due. Questo rapporto è vicino a quello fra il numero di passi in media eseguiti dai due programmi S e V. Mentre mediante l’uso delle rotazioni è possibile esprimere subito e più concisamente un gran numero di istruzioni e di programmi similari, l’espressione in termini di spostamenti vettoriali sembra essere più vantaggiosa e finanche necessaria se si vogliono specificare alcune particolarità e dettagli dell’esecuzione dei programmi. 7. Programma 4° (M). Risparmio di passi. La lettera M che caratterizza questo programma dà un’idea dell’allargamento della traiettoria d’inseguimento, progettata nel tentativo di risparmiare il numero di passi necessari ed evitare le ripetizioni presenti ancora nei programmi L, S e V. Il programma M entra appunto nel merito di questo argomento. In merito si veda la Tavola 4 e la “tabella di confronto dei programmi” (par. 14). Questo quarto programma è sostanzialmente uguale al secondo (S) ma con un’importante variante: dopo due passi (spostamenti) in cui si abbiano due zeri o due 1, ritrovando ancora, rispettivamente 0 oppure 1, si ripete il vettore spostamento in direzione e verso. Ciò elimina un numero significativo di ripetizioni, intendendo per ripetizione il porre di nuovo in elenco un quadratino, o meglio, le sue coordinate che vi erano già state poste in precedenza. Ciò permette un notevole risparmio nel numero di passi necessari per completare l’inseguimento, senza tuttavia diluire la considerazione del dettaglio rispetto al secondo programma (S), rimanendo circa uguale il numero dei quadratini di frontiera elencati. Si confrontino a questo proposito le tavole 2 e 4. Si noterà anche che si hanno in tutto 12 istruzioni; le condizioni poste al primo membro di ciascuna, sono ora principalmente tre: una è lo stato della qualità del quadratino (se 0 oppure 1), un’altra è il numero di passi (occorre qui contare fino a tre quadratini successivi e controllare se lo stato sia o no costante) ed infine lo spostamento d’arrivo. Come il solito, mentre a primo membro troviamo le condizioni di validità dell’istruzione, a secondo membro troviamo l’azione da svolgere. Istruzioni vettoriali del programma M Se ci sono stati fino ad un massimo di due quadratini uguali (a 0 o a 1) allora: 1 dopo D B 1 dopo A D 1 dopo S A 1 dopo B S 0 dopo D A 0 dopo A S 0 dopo S B 0 dopo B D Dopo tre quadratini tutti 1 o tutti 0 e dopo D D ma al quarto quadratino uguale, ricomincia il conteggio da uno. Dopo tre quadratini tutti 1 o tutti 0 e dopo B B ma al quarto quadratino uguale, ricomincia il conteggio da uno 17 Dopo tre quadratini tutti 1 o tutti 0 e dopo S S ma al quarto quadratino uguale, ricomincia il conteggio da uno Dopo tre quadratini tutti 1 o tutti 0 e dopo A A ma al quarto quadratino uguale, ricomincia il conteggio da uno Qui occorre dunque un conteggio dei quadratini che si presentano uguali uno dopo l’altro. Al quarto quadratino uguale, questo non viene più contato come quarto ma di nuovo come primo giacché il conteggio deve ricominciare e pertanto si ha una rotazione (–90° se si ha uno 0; +90° se si ha un 1). Il programma può essere posto sotto altra forma più semplice, per es. utilizzando la notazione angolare anziché quella vettoriale. Parleremo allora di una “trasformazione” o di “diversa espressione formale” in quanto chi è chiamato ad eseguire le istruzioni, sia un uomo o una macchina, digitale o analogica, può trovare più comodo avere le istruzioni in una forma piuttosto che in un’altra. La trasformazione può essere di volta in volta o più semplice o più complessa a seconda del tipo di lavoro da svolgere. Il numero di passi necessari all’inseguimento della sagoma da noi usata diminuisce circa del 15% rispetto a quelli eseguiti dal programma S. Ricordiamo che i programmi V ed M sono stati in qualche modo derivati dal programma S. Il programma V è addirittura il programma S sotto mentite spoglie grazie all’uso degli spostamenti obliqui al posto di quelli coordinati (orizzontale e verticale). Si può notare che in effetti V formalmente si trasforma in S previa rotazione nel riferimento scelto (assi obliqui a 45°). Se ne trae l’avvertenza di non fermarsi al semplice confronto delle istruzioni o degli inseguimenti, in generale, ma di esaminare più approfonditamente un programma per avere un’idea delle sue prestazioni. 8. Programma 5° (R). Spostamenti misti. Risparmio di istruzioni in macchina. La lettera R scelta per il quinto programma qui presentato ricorda l’aspetto dell’inseguimento ottenuto, per la sua asimmetria fra una barra verticale a sinistra nella lettera e l’andamento obliquo a destra. Mentre i programmi V ed M erano stati derivati in qualche modo dal programma S, si è pensato poi di considerarli a loro volta come materiale da utilizzare componendoli insieme e usando il programma M come un suggeritore della via da seguire. Dagli esempi d’applicazione, il programma M sembra infatti un po’ migliore del programma S (si evitano alcune ripetizioni) e ci siamo domandati se ulteriori modifiche dei programmi S e V, ed eventualmente di L, opportunamente integrati fra loro, avrebbero portato qualche ulteriore miglioramento. Il programma prende in considerazione la possibilità di spostamenti misti, ossia anche obliqui oltre a quelli lungo linee orizzontali e verticali. Ciò per avere – oltre che ad un inseguimento del contorno – anche un inseguimento della pendenza grazie ad un’eventuale considerazione percentuale dei tratti coordinati in rapporto a quelli obliqui. Vedremo poi un altro programma, più complesso, che sembra meglio prendere di mira questa ultima esigenza (il settimo programma: K). Osserviamo che è dalle caratteristiche salienti del contorno, come la pendenza nei vari punti, che alcuni sostengono di poter giungere ad un riconoscimento della figura. Per avere un’idea più immediata del programma, presentiamo le istruzioni, dapprima senz’altro sotto la forma angolare. Istruzione di conteggio 4° 1° Cioè considera l’ordinale del quarto stato rilevato – non importa se 0 oppure 1 purché consecutivo – come se fosse il primo attualmente e riparti da capo con le istruzioni. In questo programma possono cambiare le istruzioni fino alla terza da eseguire. 18 Istruzioni angolari del programma R stato stato stato stato 0 1 0 1 primo o secondo consecutivo primo o secondo consecutivo terzo consecutivo dopo altri due 0 terzo consecutivo dopo altri due 1 -90° +90° -45° +45° In alternativa alle angolari, presentiamo anche le istruzioni vettoriali. Istruzioni vettoriali del programma R 0, primo o secondo consecutivo, dopo D 0, primo o secondo consecutivo, dopo A 0, primo o secondo consecutivo, dopo S 0, primo o secondo consecutivo, dopo B 0, primo o secondo consecutivo, dopo DB 0, primo o secondo consecutivo, dopo DA 0, primo o secondo consecutivo, dopo SA 0, primo o secondo consecutivo, dopo SB A S B D DA SA SB DB 1, primo o secondo consecutivo, dopo D 1, primo o secondo consecutivo, dopo B 1, primo o secondo consecutivo, dopo S 1, primo o secondo consecutivo, dopo A 1, primo o secondo consecutivo, dopo DB 1, primo o secondo consecutivo, dopo SB 1, primo o secondo consecutivo, dopo SA 1, primo o secondo consecutivo, dopo DA B S A D SB SA DA DB 0, terzo consecutivo dopo altri due 0, dopo D 0, terzo consecutivo dopo altri due 0, dopo DA 0, terzo consecutivo dopo altri due 0, dopo A 0, terzo consecutivo dopo altri due 0, dopo AS 0, terzo consecutivo dopo altri due 0, dopo S 0, terzo consecutivo dopo altri due 0, dopo SB 0, terzo consecutivo dopo altri due 0, dopo B 0, terzo consecutivo dopo altri due 0, dopo BD DA A AS S SB B BD D 1, terzo consecutivo dopo altri due 1, dopo D 1, terzo consecutivo dopo altri due 1, dopo DB 1, terzo consecutivo dopo altri due 1, dopo B 1, terzo consecutivo dopo altri due 1, dopo BS 1, terzo consecutivo dopo altri due 1, dopo S 1, terzo consecutivo dopo altri due 1, dopo SA 1, terzo consecutivo dopo altri due 1, dopo A 1, terzo consecutivo dopo altri due 1, dopo AD DB B BS S SA A AD D In totale, le istruzioni vettoriali (ovverosia di spostamento) sono in numero di 32. Esse sono state qui date in termini di spostamenti nell’eventualità che debbano servire in tale forma. E’ utile il raffronto fra le 5 istruzioni in termini di rotazioni (che sono solo 4, più una di conteggio) e quelle in termini di spostamenti e di conteggio – che sono invece 33 (alle 32 di spostamento bisogna sommarne una di conteggio = 32+1=33). Come si vede dal prospetto, ogni istruzione angolare esprime un intero gruppo (otto) di vettoriali corrispondenti. Il maggior numero di istruzioni è dovuto alla presenza sia di spostamenti coordinati con gli assi cartesiani di riferimento, sia di spostamenti obliqui. Come si era già visto, usando le istruzioni angolari vi è un notevole risparmio nel numero di istruzioni. 19 E’ forse bene sottolineare che la bontà di un programma (che elenchi quadratini il più possibile prossimi al contorno di un insieme a gradinata) può dipendere non solo dal soddisfare certi criteri con cui si vuole l’elenco (e che suggeriscono le regole del programma), ma anche dalla semplicità, dal numero e dall’aspetto delle istruzioni che costituiscono importanti caratteristiche che influenzano l’immediatezza del loro uso non solo sulla carta ma anche ovviamente nella tecnologia della macchina. Per esempio, volendo applicare le istruzioni angolari, supponiamo di giungere ad un terzo quadratino 0 (“consecutivamente ad altri due 0”) con un ben determinato spostamento (p. es. “D = destra”). Poiché la rotazione prescritta è –45°, si dovrà fare, dopo “destra”, uno spostamento DA (a destra in alto). E’ ovvio che se il segnale fosse stato il primo 0 o il secondo 0 (dopo un 1), lo spostamento – dovendo formare 90° negativi con il precedente che era D – ora dovrebbe essere A (verso l’alto), anziché DA. 9. Programma 6° (Q). Ordinamento delle istruzioni. Le istruzioni qui implicano e corrispondono ad un numero ordinale e sono date sotto forma angolare giacché in questa forma economica sono ben 18 e quindi non vale la pena tradurle in termini vettoriali (diventerebbero ben 72). Nell’esposizione di questo programma si prende in considerazione anche il caso di un insieme a gradinata così piccolo da essere formato da un singolo quadratino “isolato” e lo risolve pienamente facendo in modo di girarvi attorno. L’efficacia di questa soluzione si riscontra nel picciolo della “pera” che anche se non è “isolato” è comunque descritto e risolto con soltanto due ripetizioni innocue – si veda la Tavola 10. Il particolare suddetto mostra subito la differenza fra i due programmi Q e M. Mentre M tornava varie volte sul picciolo, Q dà luogo a due sole ripetizioni (M ne dava 10) fornendo gli stessi quadratini neri e pressoché gli stessi bianchi. In realtà questo sesto programma (Q) deriva dal secondo (S). Le istruzioni di base di Q utilizzano solo rotazioni di –90° e +90° ma applicate tenendo conto, fino a 9, del numero di passi eseguiti con un medesimo stato invariato: dopo la nona istruzione, il conteggio si azzera e l’inseguimento s’interrompe (si ricomincerebbe eventualmente da capo se, a questo punto, non fosse vietato). In realtà non ha senso andare oltre la nona istruzione intorno ad un quadratino isolato perché esso ha solo otto quadratini vicini e, girandovi attorno, finisce che il nono coincide con il primo del giro grazie alle opportune istruzioni predisposte ad arte: la sequela dei quadratini di uguale colore si chiude e con essa anche la successione delle istruzioni. 4° 0 - 6° 0 - Vettore d’ingresso 3° 0 ≡ 12° quadratino e chiusura per la regola generale fase esplorativa precedente… fase esplorativa preced. 8° 0 9° 0 ≡ 1° 0 - 2° 0 – fase esplorativa precedente La fine dell’inseguimento può essere così eccezionalmente anticipata sul nono quadratino bianco Il primo quadratino allo stato 1 (“nero”), è raggiunto dalla fase di esplorazione (vettori punteggiati) riga per riga – partendo dal basso, da sinistra - con un vettore orizzontale D proveniente da sinistra. L’inseguimento inizia con il primo 1, con un primo vettore B (“verso il basso”) che porta l’indagine nel quadratino sotto in basso, il primo di una serie di stati 0. Si potrebbe evitare questo esame in basso ricordando che i quadratini bianchi sono stati già visti durante la fase esplorativa precedente. In tal caso, tuttavia, si creerebbe disarmonia nell’applicazione 20 del programma la quale implicherebbe una complicata gestione e pesante modifica delle istruzioni. Al contrario, applicandole così come sono state già presentate, si crea un’uniformità di trattamento che risulta semplificante e vantaggiosa. Proseguendo, sia al primo 0, sia al secondo 0, la rotazione prevista è di –90°. Successivamente, un quadratino bianco sì ed uno no, gli spostamenti si susseguono una volta con 0° (angolo che significa “proseguire senza ruotare”) ed un’altra volta con –90°, alternativamente fino all’ottavo passo che fa ruotare di –90° come il nono (che coincide con il primo bianco). Su questo quadratino nono, oppure sull’ottavo,è autorizzata la chiusura dell’inseguimento (il vettore che dal nono bianco porta al decimo nero – in tratto grosso – è puramente indicativo). Istruzioni angolari del programma Q 1° passo 1 2° passo 1 3° passo 1 4° passo 1 5° passo 1 6° passo 1 7°passo 1 8° passo 1 9° passo 1 1° passo 0 2° passo 0 3° passo 0 4° passo 0 5° passo 0 6° passo 0 7° passo 0 8° passo 0 9° passo 0 + 90° + 90° 0° + 90° 0° + 90° 0° + 90° + 90° - 90° - 90° 0° - 90° 0° - 90° 0° - 90° - 90° Il programma può ed anzi deve, essere interrotto al nono passo 0 – o più sinteticamente all’ottavo 0: sappiamo, infatti, che il 9° “0” coincide con il 1° “0”, è lo stesso quadratino, quindi è inutile ripeterlo, dà comunque risultato 0 di prelievo. Certo si ripete un quadratino bianco già elencato dopo avere girato completamente attorno a quello nero. Vediamo così che non è sempre tassativo rispettare la regola generale di chiusura dell’inseguimento. Possono esistere casi particolari con deroghe che permettano una chiusura anticipata. Qui, volendo, si potrebbe applicare la regola generale al 12° passo (che gode di uno stesso vettore spostamento e di uno stesso stato 0 del quadratino bianco, iniziale, ora ripetuto) Negli altri casi (ovvero prima della nona istruzione), si può attendere di pervenire ad un quadratino già elencato (vale a dire individuato dalle sue coordinate) ma con un vettore identico a quello con cui vi si era giunti in precedenza, giusto nel rispetto della regola generale già nota sulla chiusura dell’inseguimento. Come accennato, il programma sembra evitare le ripetizioni dei quadratini con una certa grazia quando il contorno è abbastanza frastagliato: si può confrontare con il 4° programma siglato M (Tavole 4 e 6). Il picciolo della sagoma a pera mostra subito la differenza fra i due programmi. Mentre il programma M tornava diverse volte sul picciolo, Q dà luogo a due sole ripetizioni, senza intrecciarsi troppo nel percorso eseguito. Le istruzioni di questo programma non sono sempre sufficienti: nel caso che si supponga d’includere nell’insieme a gradinata una semplice appendice ad andamento rettilineo ed inclinata a 45° formata da quadratini a contatto per un punto di vertice con il resto dell’insieme e fra loro a due a due, il programma non ne garantisce il rilevamento come si può vedere nel confronto fra le due figure che seguono. Naturalmente si può sempre decidere di rilevare l’appendice grazie ad un altro sottoprogramma mirato a questo scopo. [Osservazioni come questa avevano dato adito, negli anni precedenti, a una profonda e complessa teoria che legando anche il linguaggio, non è qui il caso d’esporre Nota attuale]. 21 v.a. v.a. Fine v.a. = vettore d’arrivo (punteggiato). Il programma Q non rileva l’appendice e dà luogo invece ad un movimento ciclico che s’interrompe quando torna sulle coordinate del primo quadratino con vettore d’arrivo identico al primo. Non ci sono ripetizioni v.a. = vettore d’arrivo (punteggiato). Il programma Q riesce a rilevare l’appendice a contatto improprio; l’inseguimento deve essere interrotto in maniera diversa da quella sul quadratino iniziale rilevato da v. a..: infatti il vettore spostamento si ripete uguale un poco più tardi su un quadratino allo stato 0 già elencato prima, dopo l’inizio dell’inseguimento (“Fine”), in armonia con la regola generale di chiusura. In tratteggio grosso, traccia di un’eventuale appendice non rilevata. Tutti i quadratini neri sono ripetuti (in grigio scuro), tranne l’ultimo a destra in alto (grigio chiaro). Le ripetizioni sono innocue (non provocano inopinata chiusura). La chiusura avviene su un bianco. Ecco due casi diversi che illustrano come il programma Q non possa sempre garantire il rilevamento dell’appendice (figura di sinistra e a destra l’appendice aggiunta in traccia a tratteggio). Occorrono sottoprogrammi adatti (subroutine) non d’inseguimento generale (che quindi non trattiamo) sia per rilevare l’appendice, sia per lo svincolo di Q da eventuali trappole localizzate in qualche punto del contorno (v. la figura a sinistra). Sia il programma S, sia M e Q, come pure altri programmi, non possono garantire d’inseguire una qualsiasi appendice in generale specialmente se hanno un contatto improprio con il resto della sagoma. Il sesto programma (Q), insieme a tutti gli altri finora visti, escluso il primo (L), è simmetrico rispetto agli 0 e agli 1 nel senso che il numero degli uni e degli altri (nell’elenco d’inseguimento) è pressoché equivalente. Le istruzioni sono inoltre le stesse sia per lo stato 0 che per lo stato 1; per vederlo, basta cambiare il segno di rotazione da positivo a negativo e, insieme, i simboli degli stati da 0 a 1 e viceversa. In generale, le rotazioni possibili di lavoro da noi adottate, la cui scelta è in stretta relazione con l’adozione del reticolo quadrangolare, sono multiple di 45°, più precisamente: α = k45° (con k = 0, ±1, ±2, ±3, ±4) Pertanto lavoriamo con angoli positivi o negativi di 0°, 45°, 90°, 135°, 180°. Passiamo ora a parlare delle istruzioni del programma. Per es. la prima “1° passo 1 +90°” può essere letta come segue: “se attualmente lo stato del primo q è 1, (dunque il precedente era uno stato 0) “allora fai una rotazione di +90° ”. 22 Nell’istruzione non si fa esplicito cenno allo zero precedente nell’elenco tranne che per l’implicita indicazione data dall’ordinale, relativamente allo stato 1 che, si dice, è “il primo” che evidentemente sottintende l’esistenza appunto di uno stato 0 subito precedente. Più propriamente l’istruzione può essere tuttavia data – per una macchina – sotto altre forme, più o meno esplicite, più o meno complesse. Un meccanismo capace di rotazioni è certo ben diverso da un altro capace soltanto di spostamenti. Un esempio che entra nel merito della questione è il seguente. Si abbia una macchina, un posizionatore o un selettore riferito ad un reticolo, capace di spostare il prelievo da un quadratino ad un altro, tuttavia solo combinando movimenti lungo linee orizzontali o verticali. In questa ipotesi la macchina potrà eseguire direttamente solo ordini quali D, B, S, A e non altri. In questo caso non si possono immettere ordini concernenti rotazioni espresse in forma sintetica poiché la macchina non le intende e quindi non è in grado d’eseguire queste ultime ma solo spostamenti coordinati che bisogna ordinare ogni volta, uno per uno, come tali. Si possono tuttavia immettere ordini di rotazione purché vi sia un decodificatore che faccia passare da uno di loro all’altro ordine corrispondente in termini di spostamenti, ma in questo caso non abbiamo più a che fare con la sola macchina capace di eseguire spostamenti, perché dobbiamo includere l’apparato decodificatore nella macchina complessiva. S’immagini ora di avere un carrello che si sposta mediante motori collegati a due ruote motrici orientate in direzioni opposte di marcia, come un’automobile. Quando do l’ordine “-90°” si abbassa una ruota opportunamente orientata ed i motori compiono un certo numero di giri in modo da passare da un quadratino ad un altro (si pensi ad un pavimento rivestito di mattonelle quadrate) secondo l’istruzione ricevuta. Se il segno è opposto, (+90°) la ruota direzionale viene rialzata mentre invece s’abbassa un’altra ruota direzionale opportunamente disposta in modo da far girare il carrello in senso opposto. Il carrello può portare una fotocella e si sposta sul pavimento a mattonelle quadrangolari verniciate di bianco o di nero in maniera da condizionare la fotocella ed anche il programmatore che vi è collegato incorporante al suo interno le istruzioni previste. Nel nostro caso, tornando al programma Q, dovrà esistere nel suo relativo programmatore, un contatore di passi – e quindi di prelievi, tutti di stato uguale (0 oppure 1), il quale s’azzera ogni volta che c’è un mutamento (p. es. da 0 a 1 o viceversa) e immediatamente comincia di nuovo a contare proprio all’affacciarsi di ogni nuovo stato. Il contatore avrà un proprio stato locale (numerico) che determina poi l’istruzione a cui l’eventuale apparato inseguitore deve obbedire grazie al concorso della soglia applicata all’impulso fotometrico. Il diagramma della Tavola 6 è semplificato grazie alle rotazioni, il che rende vantaggioso il loro uso per quanto ciò non sia sempre ottenibile. Notiamo che una rotazione di 0° equivale ad una ripetizione vettoriale dello spostamento che conduce ad un nuovo quadratino dove si preleva il segnale. Da questo punto di vista, i programmi M e Q sono irriducibili ad S. Le istruzioni Q si possono comunque ancora ridurre da 18 a 8 istruzioni, ponendole sotto quest’altra forma: Istruzioni angolari ridotte del programma Q. 3° passo con 1 0° 5° passo con 1 0° 7° passo con 1 0° altri passi con 1 (i rimanenti dal 1° al 9°) + 90° 3° passo con 0 0° 0° 5° passo con 0 7° passo con 0 0° altri passi con 0 (i rimanenti dal 1° al 9°) - 90° 23 Osservando ciò che prescrive il secondo membro dell’istruzione per il 3°, 5°, e 7° passo, si comprende che ciò non dipende dallo stato qualitativo del quadratino (0 oppure 1 non importa) e che le istruzioni si possono ulteriormente ridurre a soltanto cinque. 3° passo 5° passo 7° passo negli altri casi, negli altri casi, 0 1 0° 0° 0° -90° +90° Come si disse, il conteggio s’azzera ad ogni nuovo stato diverso dal precedente. Le istruzioni s’intendono come per es. la prima: “al 3° passo dopo l’ultimo cambiamento di stato è prescritto il proseguire a 0° (ossia dritto, senza girare)”. Il contatore funziona fino a 9. Al 10° si azzera e ricomincia a contare da 1. Abbiamo visto che il numero di istruzioni può essere diminuito o aumentato a seconda degli scopi prefissi, delle condizioni e delle possibilità (come la reperibilità di certe apparecchiature o materiali e così via). E’ importante l’uso di simboli appropriati e la capacità della macchina di intenderli come si deve (meno facile di quanto si creda da realizzare in una macchina). A questo punto facciamo notare che abbiamo ridotto il numero delle istruzioni – mediante concetti e simboli adatti – da 72 a 5. Altri programmi sono possibili tenendo conto di un certo numero di stati o spostamenti relativi a passi antecedenti rispetto al quadratino attuale, vale a dire tenendo conto del numero e della qualità dei quadratini non solo “attuali” (=del momento) ma anche di quelli memorizzati. 10. Programma 7° (K). Memoria di lavoro, sequenze e stati plurimi nel tempo e nello spazio. Schema a blocchi. Finora lo spostamento da eseguire era deciso sulla base del contenuto (stato) di un solo quadratino. Di conseguenza, ci si può domandare quale influenza possano avere sull’azione da decidere e da eseguire, gli stati di n quadratini precedentemente esplorati; si tratta dunque d’indagare l’influenza che può avere una speciale memoria di stati rilevati. In alternativa, è naturale che ci si possa domandare anche come possa influire sulla decisione predetta, la considerazione di più stati prelevati tutti insieme contemporaneamente e relativi ad altrettanti quadratini circostanti, idea, questa, che si ritrova in qualche modo attuata nel Perceptron di Rosenblatt (1960°, 1960b. Block et al. 1961), anche se con scopi, modalità ed intenti diversi. E’ soprattutto un’idea attuata dalla natura nell’architettare il funzionamento del neurone, con inarrivabile perfezione di struttura e di funzionamento, organo versatile per eccellenza. Capace com’è di prestarsi se occorre, dove al trattamento sequenziale e dove a quello parallelo dei segnali. In questo quadro, qui cominciamo ad indagare cosa accade considerando lo stato di N quadratini antecedenti, tenuti dunque “contemporaneamente” presenti grazie ad una memoria temporanea di lavoro. Il loro insieme diventa una sorta di stato plurimo in cui coesistono fisicamente i prelievi già fatti in un tempo passato. VXYZ “stato plurimo temporale” = sequenza di stati “memorizzati” (N=4) X V “stato plurimo spaziale” = stati considerati insieme “in parallelo” Y T Z 24 Tanto per fissare le idee, scegliamo N=4. Lavoreremo quindi con uno stato plurimo temporale di 4 quadratini, ciascuno contribuendo con il proprio stato (stabilito, s’intende sempre, come il solito, dopo l’intervento della soglia corrispondente). Chiaramente, questa memoria di 4 stati è solo temporanea nel senso che ad ogni passo può e deve essere cancellato lo stato più vecchio (che non serve più) ed acquisito quello nuovo, attualmente considerato. Qui, “attualmente” significa “nel momento in cui lo si acquisisce e lo si mantiene per il breve lasso di tempo durante il quale serve”. Il nuovo stato è immesso al primo posto della sequenza temporale e diventa la cifra più significativa – non importa 0 oppure 1 – se la sequenza di 0 e 1 è letta in codice binario (come in quello decimale, la più significativa è a sinistra). E’ ovvio che la predetta cancellazione è strettamente obbligatoria solo per la memoria di lavoro. 0 1 2 3 4 5 6 7 0000 0001 0010 0011 0100 0101 0110 0111 8 9 10 11 12 13 14 15 1000 1001 1010 1011 1100 1101 1110 1111 Per comodità, diamo qui la tabella che fornisce i primi 16 numeri nel sistema in codice binario (15 non nulli e lo zero). Le cifre disponibili sono solo due: 0 e 1. Per es. in codice decimale, volendo scrivere in 4 cifre, il numero 23 si scriverebbe 0023. Può essere utile sottolineare che implicitamente tutti i risultati dell’inseguimento devono essere mantenuti per una successiva elaborazione in una memoria a parte che possiamo chiamare “memoria elaborativa” la quale contiene una sequenza ben più lunga, idealmente quella di tutti i quadratini di frontiera; più realisticamente, conterrà la sequenza di tutti i quadratini forniti dalla fase d’inseguimento del contorno. Memoria di lavoro sugli ultimi N stati . P. es. N = 4 nel programma K che costruisce e sfrutta lo stato plurimo temporale. Elaboratore locale di lavoro: soglie, stati. Programmatore. Istruzioni del programma K Memoria di spostamento Fotoelementi analogici. Prelevatori di segnale Scena e reticolo reale o virtuale Memoria elaborativa. Selettore o braccio mobile Caratteristiche percezione Elaboratore previsto di pendenze, curvature Schema a blocchi della macchina di percezione artificiale dotata di un reticolo di fotoelementi sensibile alla luce [versione per il CCAL. Nota attuale]. Schema di trasformazione del contenuto cangiante della memoria di lavoro. X1 X2 X3 X4 X 25 X1 X2 X3 Istruzioni angolari del programma K. 1011 + 45° 1110 + 45° 1111 + 45° 1xxx (ove xxx ≠ 011, 110, 111) +90° 0100 -45° 0001 -45° 0000 -45° 0xxx (ove xxx ≠ 100, 001, 000) -90° Le istruzioni, ad es. la prima, vanno lette come segue: “se il quadratino che sto considerando è ‘1’, se il quadratino precedente a questo era ‘0’, se i due altri quadratini ancora precedenti erano entrambi ‘1’, allora eseguirò una rotazione di 45 gradi in senso orario”. Analogamente si leggono le altre istruzioni, tranne la quarta e l’ottava che si possono leggere riassumendo in questo modo: “per tutte le sequenze dove la prima cifra è 1 (oppure 0) esegui la rotazione di 90 gradi col segno indicato” (s’intende positivo il senso orario) purché le tre cifre rimanenti non siano quelle indicate in parentesi; queste si riferiscono infatti alle tre istruzioni già viste (che abbiano la medesima prima cifra). Lo stato del quadratino “attuale” (ossia del momento) è rappresentato proprio dalla prima cifra a sinistra. 15° 0001 0011 17° 13° 14° 0000 1100 0110 19° 18° 12° 11° 0100 1000 1001 0010 20° 10° 0010 0100 22° v.a. 16° 0100 23° 0010 21° 9° 1001 1000 1° quadr. Progr..S 4° q. P. S Innesca K (fine) 5° 1100 Inizio delle sequenze 8° 2° q. P. S (24° 0001) 3° q. P. S 6° 7° 0110 0011 0001 Lo schema di sinistra suppone 11 quadratini di un minuscolo insieme a gradinata disposti come in figura. Il vettore d’entrata (v. a.) è punteggiato fine. Vettori di fine in tratteggio grosso. Nello schema di destra si vedono i quadratini numerati insieme alle rispettive sequenze di lavoro degli stati binari; permettono di decidere lo spostamento successivo da adottare. Alcuni quadratini di frontiera non sono rilevati ( ) dal programma K che ne perde qui 8. Il programma K s’innesca al 4° quadratino. Il programma S è usato come ausiliario per stivare i quattro stati dei primi quattro quadratini della sagoma (in corsivo nello schema a destra). L’inseguimento potrebbe chiudersi sul primo quadratino iniziale, ma è meglio che la fine abbia luogo sul settimo bianco, perché più sicura, essendo non solo ritrovata la posizione (7°) ma anche il vettore spostamento che lì vi giungeva in precedenza. 26 Abbiamo visto che i quadratini considerati consecutivamente in K sono quattro ogni volta. La sequenza delle cifre dipende dagli stati raggiunti man mano ad ogni passo e questi dipendono a loro volta dagli spostamenti effettuati; quindi, in definitiva, la sequenza dà in qualche modo una vaga idea della forma del contorno ma non sempre in maniera univoca: infatti non è possibile in generale risalire dagli ultimi stati al percorso precedente: la forma non è misurabile [Incarbone, 1998; nota attuale]. Per indagare questo punto, cominciamo col dare qui di seguito le sequenze binarie di 4 cifre indicate nella figura illustrativa in funzione del numero ordinale del quadratino in cui si trovano. (V. figura precedente). Consideriamo per es. la sequenza 0100 presente nel 10°, 19° e 22° quadratino. Si vede subito che nel 10° abbiamo un andamento precedente diverso da quello del 19° e dal 22°. PROGRAMMA K Sequenza binaria => ordinale del quadratino 0000 0001 0010 0011 0100 0110 1000 1100 17° 8°, 16° 11°, 20°, 23° 7°, 15° 10°, 19°, 22°, 6°, 14° 9°, 18° 5°, 13° Dalla tabella si vede che anche il 9° ed il 18° quadratino sono raggiunti con la medesima sequenza 1000, tuttavia l’andamento della spezzata che porta su un quadratino è diverso da quello che porta all’altro pur con uguale sequenza 1000. Il lettore può divertirsi a ricostruire, dalla tabella, i tracciati delle altre terne e ambi di quadratini d’uguale sequenza, ben individuati dal loro numero d’ordine. 10° 19° 22° 9° Sequenza 0100 18° Sequenza 1000 Dimostrazione empirica che fra sequenza binaria degli stati descritti ed i percorsi necessari ad ottenerli non c’è corrispondenza biunivoca. Nel caso presentato, la sequenza p. es. 0100 può ottenersi in tre modi distinti ed in due p. es. la 1000. La storia degli stati non rispecchia evidentemente la storia dei vettori e delle loro rotazioni. Quando si voglia applicare il programma K, bisogna tenere presente che esso è attorniato da un intero programma costituito da almeno tre grandi parti che sono:, la fase d’esplorazione che prelude ed innesca l’inseguimento; il programma K vero e proprio (dovrebbe chiamarsi “sottoprogramma”); la fase di chiusura dovuta al riconoscimento che il contorno è terminato (“fine”). La prima parte è quella che consiste nell’usuale esplorazione riga per riga (partendo dal basso e da sinistra) fino ad incontrare uno stato diverso del segnale; questa esplorazione è valevole per tutti i programmi e, in ogni caso, può essere pragmaticamente valida. La seconda è l’innesco, la terza è l’inseguimento, la quarta la chiusura. La fase d’inseguimento potrebbe terminare quando, tornando al punto di partenza, si ritrovassero le sue stesse coordinate iniziali. Sappiamo tuttavia ormai che il semplice ritorno non garantisce una conclusione sicura: potrebbe trattarsi infatti di un ritorno locale. Come già si disse, l’inseguimento termina sicuramente ed obbligatoriamente quando si ritrovano contemporaneamente un vettore identico a quello d’arrivo su un certo quadratino 27 (non importa se iniziale o no) e le stesse coordinate precedenti (che individuano chiaramente il quadratino come uno già elencato durante l’inseguimento) oltre naturalmente lo stato ritrovato del quadratino (ciò è possibile perché, per ipotesi, la sagoma è in quiete). La seconda parte – e questa è una novità di questo programma K – consiste nel fatto che per i primi quattro quadratini si applica eccezionalmente il programma S (e non K). Questi sono contati a partire dal primo 1 che ha interrotto la fase precedente d’esplorazione. Il quadratino in cui si trova questo 1 viene riguardato e messo al primo posto nella prima sequenza della memoria di lavoro del programma K. Ciò dà modo d’applicare sul 5° quadratino questo programma; le regole prevedono la considerazione degli ultimi quattro quadratini incontrati (ad un ogni passo d’avanzamento del programma K medesimo). Si presuppone che questi quadratini siano vicini (e a contatto proprio) almeno a due a due e che appartengano possibilmente al contorno. Alcuni di questi (uno bianco dello sfondo ed uno nero della sagoma), all’inizio dell’inseguimento erano già stati scanditi e stivati in memoria ma sono ignorati da K durante l’innesco (attuato da S) nel corso del lavorio di preparazione che fornirà i primi 4 quadratini e relativi spostamenti in sequenza successivamente dall’uno all’altro. La terza parte appartiene per intero all’applicazione del programma K. La quarta parte si presenta piuttosto complessa se si vuole provocare la chiusura anticipata dell’inseguimento rispetto a ciò che è stabilito dalla regola generale di chiusura (cioè che stato e spostamento si devono ripresentare rigorosamente uguali a quelli di un quadratino già elencato). Dal punto di vista pratico conviene rispettare la regola anche se dal punto di vista teorico la discussione è di notevole interesse per le non trascurabili implicazioni che investe. Begli esempi di ripetizioni innocue che si possono considerare come ritorni locali si hanno nelle tavole dalla prima alla nona. Le ripetizioni di quadratini sono infatti altrettanti casi di ritorno locale. Anche i programmi più evoluti mostrano ritorni locali sul contorno della sagoma “a pera” e sul “picciolo” che funge da consistente (nel senso d’assenza di contatti impropri) appendice di prova. Ricordando che lo stato X relativo ad un quadratino può essere o 0 oppure 1, indichiamo con X1 lo stato del quadratino attuale, con X2 quello del quadratino immediatamente precedente ovverosia il penultimo, con X3 quello del terzultimo, e con X4 quello del quartultimo ed avremo la sequenza: X 1 X 2 X 3 X 4. Il programma deve anzitutto costruire e custodire (memorizzare) questa sequenza che corrisponde ad un numero di quattro cifre in codice binario. Deve poi andare a vedere fra i primi membri delle istruzioni scritte, quale è quella che corrisponde al numero così costruito ed eseguirla con una rotazione corrispondente che prescrive un preciso spostamento. Questo permette di passare ad un nuovo successivo quadratino rilevandone lo stato che chiamiamo X’1. Si deve ora costruire un nuovo numero di quattro cifre che con ovvi simboli può essere indicato con la sequenza X’1 X’2 X’3 X’4. Questo nuovo numero può essere ottenuto facilmente mediante la traslazione del numero precedente X1 X2 X3 X4 in un registro (naturalmente elettronico perché più comodo da usare); la traslazione dei quattro posti avviene secondo le ovvie relazioni di traslazione: X’1 X’2 X’3 X’4. = = = = è dato dallo stato del quadratino attuale. X1 X2 X3 X4 manca, viene perso perché non serve più. Questo programma è stato congegnato in modo da eseguire un tracciato analogo a quello del programma S, non solo secondo le direzioni orizzontale e verticale ma anche secondo le oblique a 45°. 28 Si vuole a questo punto indagare l’influenza dell’angolo di rotazione sull’avanzamento e sul contorno rinvenuto complessivamente sulla sagoma. Per ottenere ciò si adottano le stesse istruzioni del programma S ma con angoli fissi di rotazione con vettori a 45° rispetto agli assi orizzontali e verticali. Si ottiene così un nuovo programma. 11. Programma 8° (O). Influenza dell’angolo di rotazione prescritto. Questo nuovo programma, derivato direttamente da S ma con angoli di rotazione di 45° fissi, chiamato O a causa dell’aspetto tondeggiante del tracciato generato, è progettato per osservare l’influenza dell’angolo di rotazione sull’esecuzione ed il rendimento dell’inseguimento. Ha due sole istruzioni angolari. Istruzioni angolari del programma O. 1 + 45° 0 - 45° Il programma diminuisce sensibilmente il numero di passi necessari ad inseguire tutto il contorno ma a prezzo del dettaglio (v. Tavola 8). Il posizionatore, o altro apparato meccanico, come noi dovremmo potere usare, impiega un certo tempo per passare da un prelievo in un quadratino al prelievo in un altro quadratino. Il tempo complessivo impiegato per abbracciare tutta la sagoma, dipende dal programma oltre che dalle caratteristiche tecniche temporali delle attrezzature che dovrebbero essere a disposizione. 12. Programma 9° (D). Figure isolate o con appendici. Finora abbiamo tralasciato di considerare le eventuali appendici formate da quadratini aventi in comune un punto di vertice con il resto dell’insieme a gradinata e fra loro a due a due. Il programma D è stato pensato tenendo di mira questo problema. Il significato delle istruzioni si ricava facilmente dagli esempi precedenti. Il programma è asimmetrico rispetto agli stati 0 ed 1. Può, volendo, considerarsi un prodotto evoluto dei programmi L e Q. Istruzioni angolari del programma D 1 180° 1° 0 2° 0 3° 0 4° 0 5° 0 6° 0 7° 0 8° 0 9° 0 -90° -90° -90° -90° -90° -90° -90° -90° -90° e chiusura In genere è sufficiente l’uso delle prime sei istruzioni concernenti lo 0; sono date però fino al nono passo le relative istruzioni di 0 per includere il caso speciale in cui nel reticolo ci sia un solo quadratino nero (intorno a cui ruotare così come si vede in figura, si confronti con il sesto programma, Q). La nona istruzione di D – tenendo conto dei passi e degli stati antecedenti - è concepita come termine del giro attorno ad un quadratino isolato e dunque riconosce e conclude la fase di chiusura dell’inseguimento ponendovi fine. 29 Vettore di riga in arrivo - 7° 0 3° 0 8° 0 1° 0 2° 0 Programma D. Figura con quadratino “nero” isolato. Il programma Q, come pure facevano anche quelli siglati R e K, seguivano molto bene l’appendice rappresentata dal picciolo della sagoma dimostrativa “a pera”. Naturalmente questo programma dà parecchie ripetizioni. Rispetto ad L ha però il vantaggio di poter inseguire delle appendici. Come L e come tutti i vari programmi presentati, escluso l’ottavo, siglato O, esso dà solo quadratini di frontiera. 30 Parte III – Criteri di scelta 13. Alcune considerazioni per la scelta di un programma. Velocità. Dettaglio e Totalità. Unicità o Non Estraneità. Ripetizione. Continuità. Le considerazioni più generali che si possono fare in merito ai programmi architettati per l’inseguimento di un contorno, vertono innanzitutto sull’opportunità del loro studio giacché nulla vieta che sia migliore un’altra via d’accesso alla percezione artificiale. Altre considerazioni più particolari concernono invece la scelta del programma più adatto alle esigenze teoriche e tecniche – anche da un punto di vista matematico, tecnologico ed umanistico –le quali hanno generato questo breve studio su alcuni dei possibili programmi d’inseguimento di contorno i quali comportano almeno qualche confronto fra di loro. Sappiamo p. es. che il numero dei quadratini raggiunti dai passi del programma è legato alla lunghezza dell’orlo gradinato corrispondente al perimetro della sagoma sovrapposta al reticolo. Ciò può essere utile ma osserviamo tuttavia che la costante di proporzionalità dipende dal programma scelto. A parità di programma - al variare della forma - l’errore relativo fra il numero di passi e la lunghezza effettiva s’aggira intorno a qualche percento (i programmi L e D, il primo ed il nono, sono comunque caratterizzati da un’esecuzione ridondante e con un gran numero di ripetizioni). Una volta stabilita la proporzionalità fra il numero di passi e la lunghezza del tracciato eseguito, si può esprimere questa ultima in una qualunque unità di misura; una di queste è giusto il numero di passi. Un’altra osservazione verte sulle particolari successioni che si vengono a formare. Una risulta dall’elenco dei quadratini (individuati da una N-pla di coordinate, di solito N = 2 oppure 1 nelle scansioni riga per riga), un’altra la successione dei loro stati e infine un’altra ancora è degli spostamenti implicati. Un’idea potrebbe essere che si possa ripercorrere l’elenco degli stati e ricostruire il percorso degli spostamenti in base alle istruzioni. Una volta tracciato l’inseguimento, ciò non sembra di rilievo per gli scopi pratici (la percezione ed il riconoscimento artificiali di una figura, richiedono una ben più complessa elaborazione). E’ bene anche osservare che l’elenco degli stati ci dà informazioni parziali – non univoche come sappiamo già, p. es., dal programma K - sulla forma della sagoma e che l’elenco di stati va corredato da un elenco di vettori. Essendo gli stati possibili 0 ed 1, è evidente che l’elenco si risolve in un numero binario che dipende dalla forma, purché ovviamente nell’ambito delle ipotesi e delle condizioni poste dal programma in uso. E’ superfluo precisare che questa corrispondenza fra forma e numero non è comoda per stabilire tracciati più o meno simili o somiglianti sulla base di successioni che si vorrebbe dessero luogo a numeri ipoteticamente vicini; infatti la modifica di una sola cifra nella successione produce una profonda modificazione del tracciato successivo nell’elenco. Viceversa, la presenza di un lieve dettaglio diverso, come una piccola sbavatura o una minima appendice, può dare luogo a numeri molto lontani fra loro. In altre parole questa corrispondenza non dà adito ad una classificazione – volgarmente “riconoscimento” – di figure simili o somiglianti ed è quindi inutilizzabile praticamente perché non valida sul piano teorico mentre sul piano pratico creerebbe inutilmente problemi d’elaborazione estremamente complessi, anche se questi potrebbero destare qualche curiosità o interesse. Il numero di passi è invece ben utilizzabile come misura del perimetro nell’ambito di un medesimo programma e può avere una certa importanza riguardo al tempo d’esecuzione nel caso si usi un posizionatore meccanico. I programmi L e D sono lenti a questo riguardo a causa del gran numero di ripetizioni. E’ altresì chiaro che il maggior tempo impiegato nell’inseguimento non è garanzia di finezza migliore dei 31 dettagli se il tempo è perduto in numerose ripetizioni e deviazioni verso zone non di contorno (si veda l’ottavo programma, detto O, Tavola 8). Un programma veloce può rischiare di sacrificare i dettagli rispetto ad uno più lento ma più adatto per una maggiore definizione. Per avere una base sicura di riferimento è bene definire la velocità del programma come rapporto fra il numero Nc dei quadratini di frontiera dell’insieme a gradinata della sagoma da indagare (detti brevemente “quadratini del contorno”) ed il numero di passi Np necessario all’inseguimento complessivo. Dunque: Vr = Nc / Np In ogni caso, per meglio definire ed analizzare la bontà di un programma, si possono dare alcuni parametri da porre in relazione, e globalmente, al rendimento. Il dettaglio viene perso quando alcuni quadratini di frontiera vengono perduti. Si può così definire la perdita di dettaglio come rapporto fra quelli persi (mediamente fra varie figure) ed il numero di quelli del contorno. Il dettaglio è anche sciupato o falsato dalla presenza nell’elenco d’eventuali quadratini estranei che non sono di frontiera e dunque non appartengano al contorno. Ciò può inoltre allungare il tempo per produrre l’elenco. E’ quindi opportuno dare il rapporto fra il numero dei quadratini superflui, estranei o parassiti (cioè non di frontiera) presenti in media nell’elenco per diverse figure ed il numero dei quadratini corrispondenti del contorno per le medesime su cui si è fatta la media. Le ripetizioni sono relativamente innocue, anche se possono rallentare i tempi d’elencazione. Si possono così definire tre rapporti (espressi da r con un indice): perdita di totalità o dettaglio estraneità, ossia non unicità perdita di concisione = = = (Quadratini persi del contorno)/ Nc (Quadratini introdottisi non del contorno)/ Nc. (Quadratini ripetuti)/Nc. = = = nt/ Nc nt/ Nc nr/ Nc L’ultimo rapporto potrebbe essere dato o considerando solo i quadratini di frontiera o tutti quelli comunque presenti dell’elenco (così come abbiamo fatto noi). La scelta non è importante in pratica, data la proporzionalità fra queste due entità ed il perimetro dell’insieme. Le predenti definizioni danno luogo alle ovvie espressioni: rt rs rr = = = nt/ Nc ns/ Nc. nr/ Nc. Perdita di Totalità Perdita di Unicità Perdita di Concisione Un programma d’inseguimento è tanto migliore quanto più i tre parametri indicati sono prossimi a zero. Non abbiamo parlato del parametro legato alla continuità perché nei programmi presentati, questa ci sembrava assicurata dall’uso costante di vettori spostamento di lunghezza pari al lato o al massimo alla diagonale di un solo quadratino. E’ comunque chiaro che si possono escogitare dei programmi in cui siano previsti dei salti per evitare ripetizioni e per aumentare la velocità e l’efficienza del programma. E’ evidente che la bontà di un programma può dipendere anche da ciò che dalle istruzioni è richiesto agli organi di programmazione e d’esecuzione, qualora non s’abbia a disposizione una calcolatrice [“computer”: nota attuale] versatile, opportunamente adatta ed occorra fare un apparato programmatore per l’esecutore (selettore elettronico o motori posizionatori) oppure occorra adattarsi ad apparati già disponibili da impiegare. In questo senso occorre scegliere gli elementi che entrano a comporre le istruzioni di un programma nella maniera più soddisfacente possibile. 32 Gli elementi cui alludiamo, sono: 1. 2. 3. 4. Stati, differenze prime, seconde, terze. (Per es. le “seconde” sono le differenze fra le prime). Spostamenti, e prodotti di spostamenti (obliqui, con direzione opportuna). Rotazioni ed eventuali combinazioni di rotazioni. Numero di passi o rapporti con taluni elementi precedenti. Gli elementi in termini dei quali è data un’istruzione, da soli non dicono nulla della bontà dell’istruzione a questo riguardo. L’ideale sarebbe trovare delle semplificazioni che è possibile fare in generale e poi ricavare quelle che più interessano. A volte converrà adottare elementi di un certo tipo (p. es. rotazioni anziché spostamenti). Potrà convenire complicare le istruzioni anziché semplificarle o viceversa, secondo che si abbiano in dotazione apparati in grado d’eseguire certe istruzioni su caratteristiche determinate piuttosto che altre. I parametri di rendimento sono definiti come segue: Rt Rs Rr = = = 1 - rt 1 - rs. 1 - rr. Rendimento di Totalità Rendimento di Unicità Rendimento di Concisione Altre osservazioni potrebbero essere fatte in merito all’inviluppo del contorno – vale a dire non in merito ai quadratini di frontiera bensì riguardo alle tangenti alla curva che si presume delimiti l’insieme a gradinata, non semplice da definire immediatamente, dato il suo aspetto a zigzag. Il settimo programma (K) è stato considerato particolarmente a questo riguardo e nella particolare successione di stati 1 e 0 cui dà origine, la pendenza è più facilmente riconoscibile per il carattere stesso del programma. Come si vede, anche questo è un criterio per scegliere il programma più adatto alle circostanze ed alle particolari esigenze che si vogliono soddisfare. Un programma infine può essere selezionato anche per la facilità con cui consente di trovare non solo le pendenze delle tangenti ma anche caratteristiche di secondaria importanza come l’area della sagoma oppure più essenziali come le curvature del contorno, i flessi ed altra caratteristiche figurative che contribuiscano ad identificare alcuni aspetti della figura in esame. 33 Parte IV - Rendimenti 14……………………Tabella di confronto dei programmi. L S V M R Q K O D rt 0,15 0,16 0,56 0,18 0,25 0,18 0,30 0,60 0,12 Totalità rs 0 0 0,1 0 0,24 0 0,05 0,3 0 Unicità rr 0,64 0,1 0,1 0,05 0,05 0,02 0,005 0,04 0,4 Concisione Np 283 181 130 168 151 160 140 140 239 N passi Vr 0,67 1,04 1,45 1,1 1,25 1,2 1,35 1,35 0,8 Velocità Vr = Mancanza di: Nc / Np 15.……….Rendimenti percentuali dei diversi programmi presentati. Possiamo invece fare ricorso ai rendimenti di totalità, unicità e di concisione esprimendoli in percentuale di R% = (1 – r)x100 anziché come rapporti corrispondenti come più sopra. R% L S V M R Q K O D Rt% 85 84 50 82 75 82 70 40 88 Totalità Rs% 100 100 90 100 96 100 95 70 100 Unicità Rr% 36 90 90 95 99 98 99,5 96 60 Concisione Nota: Np e Vr restano invariati. R = 1 – r (indici omessi) Occorre avvisare che questa tabella è riferita alle tavole presentate (dalla prima alla nona) perciò può dare una garanzia relativa solo per la sagoma scelta nelle condizioni di lavoro ipotizzate (grandezza, orientazione nel piano scenico, tipo di reticolo…). Le tabelle sopra date, vanno quindi confrontate con le tavole e con i commenti presenti nelle pagine precedenti, in relazione a particolari esigenze per cui può convenire per es. insistere più su un parametro che su certi altri. Concisione equivale a non ripetizione. La continuità è verificata. Implicitamente per costruzione. Relazioni fra alcuni parametri. Tenendo presente il loro significato, i diversi parametri sono legati dalla relazione: Np - ns + nt - nr = Nc che, dividendo ambo i membri per Nc diventa: 1/Vr + rt – rs - rr = 1 34 : Parte V - Ausiliaria Terminologia. Per comodità dello studioso e per evitare incertezze, dubbi o equivoci si vogliono qui specificare il più chiaramente possibile i significati dei termini più usati nell’articolo “Programma d’inseguimento di contorni” a cui questa parte ausiliaria è stata aggiunta per rendere più agevole l’esposizione. In pari tempo serve ad esporre il punto di vista ed alcuni pensieri su vari argomenti filosofici che l’autore si riserva di trattare più diffusamente. Accento = Elemento soggettivo, non misurabile fisicamente nell’oggetto cui è mentalmente attribuito per ragioni che dipendono dall’attenzione dedicata. L’accento può investire qualsiasi aspetto della vita quotidiana e può variare da una qualità o da una zona ad un’altra in una scena (scena spaziale specialmente nella visione, nel tatto.., scena temporale nei movimenti, anche visivi, nell’udito…, presente anche nell’immaginazione, nell’aspettativa e nel ricordo) e senza che nulla cambi sul piano fisico: la scena può restare identica eppure l’accento è fatto cambiare dal soggetto. Cospicui esempi si hanno in musica e nell’etnografia musicale, nelle arti figurative, nel discorso, in poesia ed in letteratura, in matematica, nella gestualità, in politica, nelle faccende domestiche…, insomma in ogni momento dell’attività e della vita di ogni giorno. Un bello esempio di accento cromatico si ha nella parte centrale dell’illusione di Kanisza. L’accento è il frutto più importante e la caratteristica più saliente dell’attenzione. Nelle figure ambigue, l’aspetto cambia a seconda di come è posto l’accento, in particolare quello semantico. Chiaramente, non coincide con questa, anche se a volte vi è confuso. L’accento è infatti il prodotto finale dell’attività attentava che per ben funzionare ha bisogno di un’altra capacità fondamentale, l’intuizione secondo una teoria piuttosto complessa che non è qui il caso d’esporre. Attenzione = secondo una mia teoria delle funzioni mentali, è la capacità di porre un accento. La moderna psicologia dell’attenzione non sembra ancora riuscita ad esplicitare pienamente questo punto di vista (Kahneman, 1973) Braccio mobile = Dispositivo meccanico capace di moto per assumere una data posizione in un certo ambito. Cifra binaria = Dall’algebra di Boole (1976): simbolo che può assumere due soli stati, p. es. verde o rosso, o A o B, o 0 o 1. Circuito elettronico = Percorso chiuso (che torna su se stesso circolarmente) in cui gli elettroni si muovono. E’ una rete elettrica interrotta da valvole – con funzione di rubinetti controllati – realizzate o con relè o con valvole termoioniche o con transistor o con circuiti integrati. Circuito integrato = Composto da numerosi circuiti (migliaia) interagenti, disegnato, miniaturizzato e infine stampato industrialmente per essere prodotto velocemente ed a basso costo. Computer = Macchina apparentemente complessa, formata essenzialmente da un dispositivo ritmico (orologio) che scandisce i tempi d’attuazione scorrendo ad ogni colpo le istruzioni contenute in una memoria a celle, controllato da dispositivi esterni periferici (p. es. tastiera, mouse) e capace di controllarne altri (p. es. stampamte). Condizioni ridotte = approssimazione, per motivi pratici, alle condizioni ideali. Contatto improprio = Tra due quadratini aventi solo un vertice in comune Contatto proprio = Tra due quadratini aventi un lato in comune Continuità = Senza salti. Importanti i sofismi di Zenone in filosofia. Interessante l’analisi infinitesimale in matematica e meraviglioso, moderno e rivoluzionario il metodo meccanico di Archimede, da lui comunicato ad Eratostene di Alessandria ed applicato p. es. per trovare la formula di calcolo del volume della sfera (Rufini, 1961). Contorno = Comunemente è il limite monodimensionale di una figura piana. In un solido, non è descrivibile in una dimensione e non lo si può dunque “seguire” né, tanto meno, “inseguire” ma si può piuttosto “abbracciarlo” o con la mano o con lo sguardo. In un reticolo reale o virtuale è l’insieme di tutti gli elementi (p. es. quadratini) di frontiera, interni ed esterni. Contorno esterno = E’ l’insieme di tutti gli elementi di frontiera “bianchi” (non appartenenti all’insieme a gradinata che è, per così dire, l’ombra della sagoma o insieme originario). Contorno interno = E’ l’insieme di tutti gli elementi di frontiera “neri” (appartenenti all’insieme a gradinata che è, per che è, per così dire, l’ombra della sagoma o insieme originario). Coordinata = Variabile numerica che numerando una linea o lista di elementi ne può precisare uno, grazie al valore assunto dal suo stato numerico. Direzione = Retta d’applicazione di un vettore. Ferma rimanendo la direzione, questa ha due versi possibili, opposti l’uno all’altro. Equivalenza = Possibilità di sostituzione, di solito rispetto a determinati effetti Fase = Parte temporale ben definita, relativamente estesa e circoscritta di un accadimento Fine dell’inseguimento di contorno = Fase terminale dell’inseguimento, decisa con criteri ben precisi che ne consentono la “chiusura”. Fisso = Immutabile rispetto ad un riferimento, ad un osservatore. Non soggetto a movimento. In questo contesto è usato 35 anche nel senso di “incapace di generare” cambiamenti, trasformazioni o operazioni di qualsiasi tipo. Un esempio tipico è la categoria, la cui caratteristica è la fissità ed essendo fissa è considerata qui non operativa, in contrasto con coloro che sembrano sostenere il contrario. Flusso luminoso = S’intende qui la quantità d’energia elettromagnetica della gamma grosso modo visibile (un fotoelemento generico non ha sensibilità spettrale cromatica identica a quella dell’occhio umano) e che nell’unità di tempo traversa, ortogonalmente, una determinata area destinata a riceverla – come appunto quella di un fotoelemento. Fotoelemento = Dispositivo elettricamente sensibile alla luce. In generale fornisce una grandezza elettrica – tensione, corrente, resistenza o impedenza - che dipende dal flusso luminoso che lo investe. Le cellule della retina sono fotoelementi ovviamente fotosensibili e possono fornire in maniera non semplice impulsi elettrici alle vie nervose. Frontiera o contorno = E’ l’insieme dei quadratini di frontiera, non importa se appartenenti alla figura o allo sfondo rispetto a cui la figura si trova considerata. Fuoco ottico = Posizione in un sistema ottico, espressa in unità di lunghezza, in corrispondenza della quale si ha massima nitidezza dell’immagine che si forma su uno schermo ivi posizionato. Generatore elettronico di funzioni matematiche. Il generatore di cui si è parlato, generava un segnale elettronico definito geometricamente grazie ad una sagoma di cartone disegnata, ritagliata e poggiata sullo schermo di un oscillografo scandito rapidamente dal punto luminoso provocato dal pennello elettronico che vi batteva disegnando sullo schermo un segnale a “dente di sega”. La luce così prodotta eccitava una fotocellula ed un circuito elettronico poteva allora ricostruire il contorno dell’immagine, in ciò generando un segnale elettrico in funzione del tempo secondo un grafico del tutto simile alla sagoma medesima. Gestalt = Teoria psicologica sulla forma secondo cui l’insieme è “più della somma delle parti”, il globale più importante dell’analitico ed il contesto o sfondo è essenziale ed indissolubilmente legato alla definizione della figura. Gradinata = Andamento a zig-zag. Identificazione = Operazione che consiste nell’indicare con precisione, univocamente, l’oggetto da considerare. Nel reticolo è l’operazione deittica che consente d’assegnare le coordinate ad un suo elemento. Illusione di Muller-Lye = In questa nota illusione, un segmento frecciato sembra più lungo o più corto dell’altro a seconda del verso delle frecce. La lunghezza dei segmenti è in realtà identica. La loro diversa valutazione dipende dal contesto. La teoria della Gestalt si sforza di dire che l’insieme è più della somma delle parti. In realtà, la visione “globale” interviene sulle figure modificandone in maniera complessa le caratteristiche senza riguardo a quelle “elementari”. In sostanza si può argomentare che in generale ogni figura è considerata più sinteticamente che analiticamente. In prima approssimazione, ciò può collegarsi al funzionamento dell’attenzione visiva che pone l’accento di posizione sulle estremità, nei punti da essa centrati fra le punte delle frecce. In seconda approssimazione, esiste una spiegazione ancora più sintetica e valida, qui non riportata, perché troppo complessa da esporre in questa sede: questa diversa ed importante teoria ha ben più ampio respiro ma a suo tempo – a differenza della prima - non fu comunicata al CCAL perché troppo complessa ed importante. In ogni caso è capace di rendere conto anche delle altre “illusioni visive”. Immagine = S’intende quella che si può osservare sullo schermo di un sistema ottico. Innesco = Fenomeno breve, atto a dare inizio ad un nuovo fenomeno o fase di durata maggiore (es. scintilla rispetto al fuoco appiccato). Inseguimento = Ricerca che si sviluppa nel tempo attorno ad un oggetto sfuggente. Insieme = Più elementi formano un insieme quando esiste un criterio che permette di stabilire se un elemento appartiene o no all’insieme. Insieme a gradinata = Figura dal contorno a zig-zag, conformemente al tracciato reticolare del reticolo. Istruzione = Insieme di regole che specifica le condizioni, date le quali si deve eseguire un’azione determinata N-pla = Insieme di N elementi (con N numero intero positivo) la cui disposizione ordinata permette d’individuare un unico oggetto. Operativo = Che – di fatto - concerne operazioni traducibili in azioni, movimenti o cambiamenti specificati. Passo del reticolo = Lunghezza minima dello spostamento che bisogna percorrere per passare da un elemento ad un altro uguale più vicino del reticolo. Equivale alla lunghezza minima dello spostamento che un elemento di un quadratino deve compiere per sovrapporsi esattamente sul corrispondente di un altro quadratino, il più vicino. Piano immagine = E’ il piano in cui si forma l’immagine, perpendicolare all’asse ottico. Posizionatore numerico = Dispositivo meccanico capace di raggiungere una posizione indicata da un numero riconducibile ad un numero intero. Posizione = Punto ben determinato dello spazio in rapporto ad un osservatore, dunque in un sistema di riferimento. Programma = insieme di istruzioni ciascuna delle quali prescrive un’azione in circostanze rigorosamente previste. 36 Quadrangolare = Detto di reticolo formato da quadrati, tutti d’uguale grandezza, che coprono una piano senza lacune né sovrapposizioni, a mosaico. Quadratini vicini (ad uno dato) = Sono otto, 4 a contatto di lato (contatto proprio) e 4 di vertice (contatto improprio). Quadratino = Quadrato piccolo rispetto alle dimensioni di un reticolo quadrangolare. E che contiene, o in cui si posiziona, un elemento fotosensibile. Quadratino di frontiera = Piccolo quadrato di colore qualsiasi, attorniato da altri 8, fra i quali almeno uno è di colore opposto. Quadratino di frontiera esterno = Piccolo quadrato del colore dello sfondo (bianco), attorniato da altri 8, fra i quali almeno uno è di colore opposto a quello dato. Quadratino di frontiera interno = Piccolo quadrato del colore della figura (nero), attorniato da altri 8, fra i quali almeno uno è di colore opposto a quello dato. Quadratino esterno = Piccolo quadrato del colore dello sfondo (bianco), attorniato da altri 8 tutti dello sfondo (bianchi). Quadratino interno = Piccolo quadrato del colore della figura (nero), attorniato da altri 8 tutti della figura (neri). Reale = Ciò che si crede esista indipendentemente da noi. Indistinguibile, per il soggetto, dall’allucinazione e dal sogno Se non grazie ad un confronto successivo a posteriori. Relè = Dispositivo di grande interesse teorico e pratico. E’ un elettromeccanismo pilota: si può paragonare al volante di un’auto o alla manopola di un rubinetto. Consente cioè di pilotare e regolare un più forte flusso d’energia impiegando un’energia al confronto molto minore. Permettendo (o impedendo) ad una piccola corrente di scorrere in un filo avvolto attorno ad un piccolo cilindro di ferro, questo si magnetizza (o si smagnetizza) e attrae (o lascia allontanare) una - o più - lamelle di contatto su un altro cavo – o altri cavi - più grossi del tutto estranei e separati dal filo precedente, evitando così ogni pericolo. In qualche modo si ha la possibilità di dare o togliere una potenza elettrica maggiore controllandola con una molto minore. In questo, il relè somiglia alla valvola termoionica ed al transistor. L’importanza teorica di questi tre dispositivi è molteplice. Innanzitutto la presenza o l’assenza di corrente possono essere fatti corrispondere agli stati simbolici 0 e 1 il cui significato è associato e stabilito arbitrariamente. Dal punto di vista matematico, questi dispositivi s’accostano all’algebra di Boole ed alla sua “logica del pensiero” realizzando quanto preconizzato da Leibniz (Mugnai, 1973). Assurgendo a dispositivi logici, entrano nell’ingegneria, realizzando quadri di comando o “centraline”, per ascensori, aerei, navi, impianti industriali e domestici di ogni tipo, sempre sensibili alle condizioni di lavoro (p. es. piani prenotati, oggetti in movimento, stato delle porte, tempi trascorsi, valori di temperatura e così via) e decidendo di conseguenza l’azione da fare (p. es. girare a destra o a sinistra, fermare oppure far proseguire un ascensore, spegnere un forno e simili). Un altro versante d’importanza teorica è offerto dal punto di vista psicologico in senso ontogenetico o filogenetico. Fra il comando e la sua esecuzione trascorre inevitabilmente un intervallo di tempo, piccolo ma non nullo che equivale ad un vero e proprio ritardo. L’intervallo temporale separa il comando dall’azione esecutiva. Questa è una delle caratteristiche fondamentali dell’intelligenza fin dal suo primitivo manifestarsi. Il ritardo equivale in qualche modo ad un’inibizione temporanea dell’azione e fornisce una durata durante la quale si può pensare ulteriormente. Se c’è un ostacolo fra il leone e la sua preda, il predatore è capace di un temporaneo allontanamento dalla preda per aggirare l’ostacolo: per fare ciò gli occorre un’inibizione temporanea dell’azione che altrimenti scatterebbe in maniera incontrollata. Il ritardo equivale in qualche modo ad un tempo di pausa per una possibile riflessione. Come dice questo termine, l’intervallo separa il comando ipotetico e la sua attuazione “riflessa nello specchio”. L’azione può così essere contemplata prima ancora di porla in atto. E’ il germe del pensiero. I relè si possono combinare in vari modi e si possono ottenere elaborazioni straordinarie che s’avvicinano a ciò che intendiamo per intelligenza, in questo caso artificiale. Un altro aspetto che investe il punto di vista della comunicazione semantica è che il comando può essere fatto equivalere ad un segno e la sua esecuzione (il contatto che si chiude o che si apre) può essere fatto equivalere ad un significato (nel suo aspetto più primitivo ed immediato ma non per questo meno fondante e fondamentale). Se il comando proviene da uno stimolo (es. porta chiusa) e l’esecuzione è rivolta ad una reazione di risposta (es. vai!) si ha una cellula SR che può anche essere condizionata a più cellule collegate insieme opportunamente (es. Piano prenotato? Porta chiusa?) così da permettere una decisione su base complessa di condizioni ovvero stimoli contemporanei (vai se la porta è chiusa e se il piano è stato prenotato) oppure una catena “istintiva” che può eventualmente interagire anche con se stessa, del tipo: SR = S’R’ = S”R”.. in cui ogni reazione, una volta agita ed ultimata, può costituire, una volta ultimata, lo stimolo per l’azione successiva (formando catene di riflessi condizionati come per i cani di Pavlov (1966) o incondizionati come per il ragno con la sua tela, almeno entro certi limiti). Dal punto di vista della comunicazione, dell’ingegnere, del matematico e dello psicologo, ogni evento può essere segnalato, può essere cioè all’origine di un segnale (es. interruttore che si chiude ed accende la bobina avvolta del relè) così come i contatti comandati dal relè possono essere interpretati come origine e mezzo d’azione significata tramite opportuni attuatori (motori, servovalvole, elettrocalamite, lampade e simili). 37 Dal punto di vista dell’autoregolazione, il relè è un dispositivo capace di funzione autopilota. Uno dei contatti comandati, può fungere da interruttore che dà corrente al relè stesso mantenendolo così autoacceso anche nel caso che venga a mancare il comando d’accensione principale. Questa funzione funge quindi anche da memoria poiché conserva il comando originario d’accensione relé. Per spegnerlo occorre un pulsante, detto d’arresto, che interrompa la linea d’alimentazione e che normalmente è chiuso. I contatti si distinguono in normalmente aperti (NA) ed in normalmente chiusi (NC). Interessante è il contatto di scambio che da una parte è NC su un filo, e dall’altra parte è invece NA su un altro filo. La progettazione con relè (o con valvole, transistor o circuiti integrati) deve tener conto degli eventi distinguendo quelli di controllo da quelli da controllare, e tenerne conto dal punto di vista del loro numero, del loro susseguirsi nel tempo e della loro disposizione momento per momento. L’articolo sul “Programmatore dell’inseguitore di contorni” contiene teoria e progetti di circuiti a relè. Reticolo = Superficie (di solito piana) suddivisa in tante figure geometriche tutte uguali che la ricoprono interamente – a mosaico - senza sovrapposizioni e senza lacune. Nel nostro caso, il reticolo è una porzione di piano. Nel caso dell’occhio, il reticolo è situato su una porzione della superficie sferica del globo oculare e la suddivisione è attuata dalle cellule fotosensibili alla luce. Riferimento = Il più noto sistema di riferimento è quello delle coordinate cartesiane. Il riferimento è una relazione spaziale fra un oggetto ed un osservatore che ne valuta un aspetto (essenzialmente la posizione, ma anche p. es. la distanza, la posizione, il colore, l’importanza, il significato…). Il riferimento è descrivibile anche come un ambiente soggettivo che un osservatore considera fermo ed immutabile rispetto a se stesso. Ripetizione = Sul reticolo ci si riferisce ad un quadratino che già elencato una prima volta, viene poi elencato una seconda o altre volte ancora. Rotazione = Angolo che il movimento rotatorio di una retta deve compiere per assumere una nuova direzione. Qui si è convenuto che il verso positivo è quello orario. Il concetto di rotazione si dimostra utile nel caso di vettori che devono succedersi l’uno all’altro ruotando la propria direzione rispetto a quella del precedente. Sagoma = Per la macchina qui ipotizzata si sarebbe trattato di una figura ritagliata su un cartoncino. In generale è una figura che con colore uniforme si staglia su uno sfondo di colore uniforme diverso, preferibilmente complementare. Scena = Sfondo o insieme di oggetti cui si rivolge la nostra capacità d’osservazione. Segnale = Segno o insieme di segni cui s’attribuisce un significato. (Può essere un’orma, l’accensione di un relè, un suono, uno sbandieramento, un contatto che si chiude). Segno = Qualcosa che si distingue dallo sfondo degli eventi ambientali inducendo a pensare ad un suo possibile significato. In combinazione con altri segni può trasmettere un effettivo significato (p. es. più segni per fare una lettera, più sillabe per fare una parola). Significato = In prima istanza è ciò che è indicato dal gesto o da un suo efficace sostituto. Il bambino impara infatti il significato deitticamente dal gesto e soltanto in seguito può imparare attraverso altre parole dal significato già acquisito. Tutte le parole sono quindi considerate avere la loro propria radice nell’indicazione. Brevemente: è l’oggetto del segnale deittico o riconducibile a segnali deittici. Sistema ottico = E’ costituito da lenti, specchi, diaframmi e schermi su cui poter osservare un’immagine che riproduce una parte scenica. Soglia = Valore al di sotto e al di sopra del quale si producono accadimenti distinti. Statico = Immobile, privo di movimento. Termine che ha qui anche il significato di “incapace di produrre azione”. Stimolo = Configurazione di elementi fisici atti ad eccitare il sistema nervoso di un organismo vivente. Successione = Insieme ordinato in modo tale che dati due elementi qualsiasi dell’insieme, esista un criterio che permette di decidere quale dei due precede l’altro. Transistor = Dispositivo semiconduttore in grado di regolare il flusso di corrente in base ad un comando elettrico di potenza molto inferiore. Si comporta come una valvola, un rubinetto che regola il flusso d’acqua in un tubo agendo con poco dispendio d’energia sulla manopola. Se la manopola lo permette, il transistor lascia scorrere la corrente – costituita da elettroni in moto – che scorre tanto più densamente quanto più il comando di manopola lo consente. La “manopola” è costituita da un’altra corrente d’intensità molto minore di quella controllata. In questa capacità di regolazione, il transistor somiglia alle valvole termoioniche e con queste, ancora una volta, ai relè. Valore medio = Semisomma se i valori sono due. Più in generale è la somma di più valori, divisa per il loro numero: (a1 + a2 + …an)/n. Valvola termoionica = Dispositivo in grado di regolare il flusso di elettroni (emessi da un filamento caldo) che formano una corrente regolabile grazie ad un comando elettrico di infima potenza. Si comporta come una vera e propria valvola, un rubinetto che regola il flusso d’acqua in un tubo agendo con poco dispendio d’energia sulla manopola. Questa è costituita da una tensione elettrica di pochi volt applicati su una speciale griglia che gradua il flusso elettronico. Il rapporto d’energia in gioco è molto vantaggioso e pertanto la tensione si configura come un “controllo” mentre la corrente controllata acquista il carattere di energia graduabile a piacere. E’ evidente l’analogia con i transistor e con i relè. Verso = Una retta ha due versi opposti l’uno all’altro. Specificare il verso permette di orientare una retta. Il verso ci 38 dice da quale parte andare lungo la direzione scelta. La direzione è individuata invece da una retta data. Virtuale = Come se ci fosse Visione artificiale = Qui s’intende il processo che consente ad una macchina – di solito con mezzi ottici, meccanici ed elettronici - di comportarsi come se “vedesse” l’ambiente in cui si trova e d’agire di conseguenza. 39 Tavole: descrizione Sigla del Programma Numero della tavola L S V M R Q K O D 1 2 3 4 5 6 7 8 9 Confronto 10 I due stati plurimi 11 Ogni tavola – da 1 a 9 - ha un titolo individuato da un numero e da una lettera esclusivamente dedicata al programma illustrato dalla tavola medesima. La n. 10 è una tavola di confronto fra i programmi. Ciascuna tavola da 1 a 9 riporta o illustra: 1. 2. 3. 4. 5. 6. Il titolo. La sagoma, la frontiera interna (x) e la frontiera esterna (.). Il disegno della frontiera senza la sagoma. La traiettoria seguita nel corso dell’inseguimento del contorno. Le istruzioni vettoriali o angolari già riportate nel testo. Il diagramma corrispondente alle istruzioni in forma angolare o vettoriale o entrambe. Per comodità del lettore per un confronto fra le istruzioni dei diversi programmi, sono riportate le diciture delle tavole. Tav. 1 1 dopo D B Tav. 2 0 dopo B A 1 dopo A D 0 dopo D S 1 dopo S A 0 dopo A B 1 dopo B S 0 dopo S D 1 dopo D B 0 dopo B D 1 dopo A D 0 dopo D A 1 dopo S A 0 dopo A S 1 dopo B S 0 dopo S B Tav. 3 1 dopo DA DB 0 dopo DB 1 dopo AS 0 dopo AD 1 dopo SB 0 dopo SA 1 dopo BD 0 dopo BS Tav. 4 Fino ad un massimo di due quadratini uguali ( 0 o 1) fai: conteggio: 4° 1° 1 dopo 1 dopo 1 dopo 1 dopo 0 dopo 0 dopo 0 dopo 0 dopo DB AD S A B S DA AS S B BD Dopo tre quadratini tutti 1 o tutti 0 e dopo D D Dopo tre quadratini tutti 1 o tutti 0 e dopo B B Dopo tre quadratini tutti 1 o tutti 0 e dopo S S Dopo tre quadratini tutti 1 o tutti 0 e dopo A A Tav. 5 istruzione di conteggio: 4° stato 0 primo o secondo consecutivo stato 1 primo o secondo consecutivo stato 0 terzo consecutivo dopo altri due 0 stato 1 terzo consecutivo dopo altri due 1 40 1° - 90° + 90° - 45° + 45° DA AD AS SA SB BS BD Tav. 6 1° passo 1 2° passo 1 3° passo 1 4° passo 1 5° passo 1 6° passo 1 7°passo 1 8° passo 1 9° passo 1 1° passo 0 2° passo 0 3° passo 0 4° passo 0 5° passo 0 6° passo 0 7° passo 0 8° passo 0 9° passo 0 + 90° + 90° 0° + 90° 0° + 90° 0° + 90° + 90° Tav. 7 1011 + 45°. 1110 + 45° 1111 + 45° 1xxx (ove xxx ≠ 011, 110, 111) +90° 0100 -45° 0001 -45° 0000 -45° 0xxx (ove xxx ≠ 100, 001, 000) -90° Tav. 8 1 + 45° 0 - 45° Tav. 9 stato 1 180° 1° 0 -90° 2° 0 -90° 3° 0 0° 4° 0 -90° 5° 0 0° 6° 0 -90° 7° 0 0° 8° 0 -90° 9° 0 -90° e chiusura Tav. 10 Tavola di Confronto fra nove programmi Tav. 11 I due stati plurimi, temporale e spaziale 41 - 90° - 90° 0° - 90° 0° - 90° 0° - 90° - 90° Bibliografia AA. VV. Oftalmologia clinica. Moduzzi Editore. Benussi, V., (1907). Zur experimentelle Analyse des Zeitvergleichs, I: Zeitgrosse und Betonungsgestalt. Arch. Ges. Psychol., 9, 366-449. Benussi, V., (1913). Psychologie der Zeitauffassung. Winter. Heidelberg. Block, Kesler, Knight & Rosenblatt. (1961). Collected Technical Papers. Vol. 1. Cognitive Systems Research Program. Cornell University. Ithaca, N. Y. Boole, G., (1976). Indagine sulle leggi del pensiero,. Einaudi. Chomsky, N., (1988). Linguaggio e problemi della conoscenza. Il Mulino Fraissse, P., (1967). Psychologie du temps. Presses Universitaires de France. Paris. Ghersi, I., (1963). Matematica dilettevole e curiosa. Hoepli. Milano. Husserl, E., (1893). Zur Phanomenologie des inneren Zeitbewusstseins. Nijhoff. Den Haag. Husserl, E., (1992). Per una fenomenologia della coscienza interna del tempo. Angeli. Milano. Incarbone, S., (1998). La forma: riflessioni. In La forma segreta. A cura di E. Morpurgo. F. Angeli. Milano. Incarbone, S., (in preparzione). Manuale di Psicopoiesi. James, W., (1890). Principles of Psychology. Holt. New York. Kahneman, D., (1973). Psicologia dell’attenzione. Giunti Barbera. Firenze. Kanisza, G., (1980). La grammatica del vedere. Il Mulino. Bologna. Kanisza, G., (1991). Vedere e pensare. Il Mulino. Bologna. Kant, I., (1781). Critica della ragion pura. Le Monnier. Koehler, W., (1929). La psicologia della Gestalt. Feltrinelli. Koffka, K., (1935). Principi di psicologia della forma. Boringhieri. Torino. Michotte, A., (1972). La percezione della causalità. Giunti Barbera. Morpurgo, E., (1998). La forma segreta. F. Angeli. Milano. Mugnai, M., (1973). Leibniz e la logica simbolica. Sansoni. Ornstein, R., (1969). On the experience of time. Harmondsworth, England. Penguin. Parisi, D., (1978). Sui limiti del metodo sperimentale in psicologia. Giornale italiano di Psicologia. 2, 241-254. Pavlov, I., (1966). I riflessi condizionati. Boringhieri. Rosenblatt, F., (1960a). Stimulus Generalization Over Transforming Groups. I Yovits and Cameron (Ed), Self -Organizing Systems. Peregamon press. London, 1960. Rosenblatt, F., (1960b). Perceptrons and the theory of brain mechanisms. Cornell Aeronautical Laboratori Report No. VG-1196-g-8, September. Rufini, E., (1961). Il metodo di Archimede e le origini del calcolo infinitesimale nell’antichità. Feltrinelli. Sigiani, M., (1994). In: Accame, F., L’individuazione e la designazione dell’attività mentale. Ed. Espansione. Roma Stroud, I. M., (1948). The moment function hypothesis. Unpublished master’s thesis. Stanford University. Cal. Stroud, I. M., (1949). The psychological moment in perception. In Van Foerster Ed., Conference on Cybernetics, transactions of the sixth conference. Macy Foundation. New york, pp. 27-63. Thomson, R., (1975). Storia della psicologia. Boringhieri. Vaccarino, G., (2007). Prolegomeni. Dalle operazioni mentali alla semantica. CIDDO. Rimini. Vicario, G., (1973). Tempo psicologico ed eventi. Giunti e Barbera. Firenze Wundt, W., (1893). Grundzuge der physiologischen Psychologie. Engelmann. Leipzig. Yarbus (seguono in cirillico gli estratti di Biofisica): Ярбус. A. Л. ДВИЖЕНИЯ ТЛАЗ B ПРОЦЕССЕ СМЕНЫ ТОУЕК ФИКСАЦИИ. БИОФИЗИКА. TOM I, 1955r. Ярбус. A. Л. OBOCПPИTИИ ИЗOВPAЖЕНИИ, ПЕРЕМЕЩАЮЩИХСЯ ПO CETЧАТКЕ С ЗАДАННОЙ СКOPOCTЫО. БИОФИЗИКА. TOM VI, N. 3, 1959r. Ярбус. A. Л. ДВИЖЕНИЯ ГЛАС НРИ РАССМАTРИВАНИИ СЛОЖНЫХ ОБЪЕКТОВ. БИОФИЗИКА. TOM VI, N. 2, 1961r. 42 INDICE Avvertenza. Parte I - Preliminari 1. Introduzione. Equivalenza fra posizionatore numerico ed il reticolo di fotoelementi. 2. Programmi: condizioni preliminari. 3. I quadratini: alcune definizioni. Parte II - Programmi 4. Programma 1° (L). Istruzioni vettoriali e angolari. 5. Programma 2° (S). Solo la frontiera. 6. Programma 3° (V).Vettori obliqui 7. Programma 4à (M). Risparmio di passi. 8. Programma 5° (R).Spostamenti visti. Risparmio di istruzioni in macchina. 9. Programma 6° (Q). Ordinamento delle istruzioni 10. Programma 7° (K). Memoria di lavoro. Sequenze e stati plurimi nel tempo e nello spazio. . Schema a blocchi.. 11. Programma 8° (O). Influenza dell’angolo di rotazione prescritto. 12. Programma 9° (D). Figure con appendici. Parte III – Criteri di scelta 13. Alcune considerazioni per la scelta di un programma. Velocità. Dettaglio e totalità. Unicità o Non Estraneità. Ripetizione. Continuità Parte IV – Rendimenti 14. Tabella di confronto dei diversi programmi presentati. 15. Rendimenti percentuali dei programmi. 16. Relazione fra alcuni parametri. Parte V – Ausiliaria Terminologia. Tavole: descrizione Bibliografia. Indice TAVOLE (v. l’articolo “Inseguimento di Contorni - Tavole”) 43