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