Subject: Re: dubbio sostanziale Date: Thu, 03 Jul 2008 08:44:47 GMT From: L Organization: [Infostrada] Newsgroups: it.cultura.filosofia.moderato qf wrote: [...] Allora, proviamo a capirci: Se i due automi non fossero due modi diversi di organizzare "la stessa quantità di informazione" non si potrebbe trasformare l'uno nell'altro. Quindi *entrambe hanno memoria*, ossia capacità di depositare da qualche parte informazione che poi vanno a riprendere. Se volessimo poi essere più tecnici, dovremmo distinguere tra automi sincroni e asincroni. Si dicono automi sincroni o sincronizzati, quelle macchine sequenziali (quindi _tutte_ dotate di memoria) che transitano da uno stato s(tn) allo stato successivo s(tn+1) ad un "clock" specifico. Si dicono -invece- asincroni se hanno transizione non ad un clock preciso, ma la transizione dipende da quando avvenga il presentarsi della parte di test del mondo esterno detta "ingressi" (detti ingressi asincroni, poiché si possono presentare quando gli pare e hanno azione subito, mentre nell'altro caso sono "efficaci" solo durante il clock, e poi memorizzati nel caso di Moore). In ogni caso il più semplice esempio di macchina sequenziale è un orologio. Un orologio è tipicamente una macchina di Moore, e lo stato successivo dipende solo dallo stato precedente, e deve avere memoria dell'ora precedente per poter "calcolare" quale sia l'ora successiva da indicare (sia nel caso meccanico, sia nel caso digitale). Vediamo ora un automa di Mealy come può essere trasformato in un automa di Moore. Supponiamo di avere un timer (un orologio), ma anche un input z: L'input z alla macchina di Mealy (che ha anche uno stato), sia un segnale elettrico, dipendente dal galleggiante di un serbatoio. Quindi colleghiamo un galleggiante di un serbatoio ad una batteria in modo tale che la pressione del galleggiante (per il vento, per il livello dell'acqua) realizzi una connessione tra la batteria e l'input della macchina di Mealy, ma non in modo stabile, ma fluttuante, ossia circa un ponticello che non ha sempre la stessa pressione, e a volte da il segnale e a volte possa fluttuare. Ora l'insieme orologio + input z (ingresso, z, è valore elettrico alla macchina di Mealy, grazie al galleggiante) è una macchina di Mealy a cui posso far fare quello che decido io. Supponiamo che quando il timer è a fine corsa dia y=1 (come uscita del timer, ossia dello stato del timer) Ora, per esempio, possiamo costruire la seguente tabella: yz | w 00 01 10 11 y dipende dallo stato del timer z è un input che dipende dal serbatoio (se si è riempito o no, ma noi non lo sappiamo quando si riempie e se vi sono disturbi) se facciamo w=f(y,z) La nostra funzione di output, w, dipenderà sia dallo stato (y), sia dagli ingressi (z). Che w sia una funzione di output ne fa fede che io posso utilizzare per w per esempio l'AND (logico) di y e z e scrivere: w= y AND z Avrò allora: yz | w 00 0 01 0 10 0 11 1 poi con un tester verifico se fa l'AND di questi due fili elettrici, Il primo filo elettrico è collegato a un timer (quindi ha memoria). Il secondo filo elettrico è collegato al serbatoio nel modo già detto (quindi può essere anche una variabile aleatoria, non so quando il serbatoio si riempirà). La precedente è detta macchina di Mealy, poiché genera l'uscita, nel nostro caso w, e sarà (w) sia condizionata da una variabile di stato (y), sia da una variabile di ingresso (z). Ora vediamo _l'equivalente_ automa di Moore: Sappiamo -dalla teoria di Moore- che la z non si presenterà direttamente in output. Come facciamo a far sapere all'output(?) che il serbatoio è pieno? Dobbiamo "memorizzare" tale situazione e non lasciarla fluttuare come è con Mealy (in Mealy, non è detto che la z sia dello stesso valore e per un tempo fissato, poiché l'ingresso z può superare un valore di soglia in cui è risentito come attivo, oppure no, e ciò rende il sistema esposto ai rumori sulla linea elettrica (o altri disturbi) e quindi il sistema di Mealy, è più inaffidabile di una sistema di Moore. Infatti in un sistema di Moore le variabili che sono "osservate" come input: vengono memorizzate! e dalla loro memorizzazione, più la storia pregressa del sistema, si progetta lo stato futuro, quindi "variabili di ingresso" agiscono _anche_ in un sistema di Moore, altrimenti non si potrebbe stabilire una corrispondenza Mealy/Moore). Tornando a noi: Se _memorizziamo la variabile z_ "serbatoio pieno"? = yes -> ciò (per progetto) sia z'=1 "serbatoio pieno"? = no -> ciò (per progetto) sia z'=0 Sia z' = "z che è stata memorizzata" e non è lasciata fluttuare mentre agisce verso l'output Ora anziché disporre di z in modo fluttuante, vogliamo, come detto, memorizzare (fisicamente) z in z'. E ciò possibile? Certamente: Per esempio, oltre al timer compriamo un flip flop JK (contiene un bit di memoria). Inizializziamo il nostro flip flop (grazie al tasto di reset o con la configurazione JK=01) e la uscita del flip flop sarà Q(tn)=Q(tn+1)=0 Ossia sarà stabilmente ad indicare lo stato NOP (non operativo) a meno che qualcuno non gli dia fastidio (ossia che non succeda qualche cosa). Se colleghiamo su K un interruttore di inizializzazione che possa dare -nella fare si reset- K=1 e J=0, ma -terminata tale fase- imponga su K=0 come valore stabile .. allora ..collegato anche un clock sul flip flop ... quando il clock sarà attivo, l'input J del flip flop collegato fisicamente a "z" (analogico) mi realizzerà z'(digitale) ossia memorizzato stabilmente. Ora la nostra macchina di Moore dedotta da quella di Mealy, grazie alla estensione della mappa degli stati (rispetto a Mealy), non deve fare altro che collegarsi al timer (che ha memoria) e al flip flop di memorizzazione dell'input (input= z, z'= il flip flop di memoria su serbatoio). Ciò renderà la macchina di Moore da noi progetta integralmente dipendente dallo stato, e quindi con memoria, anche se indirettamente lo stato della macchina e non l'uscita è relazionata con gli ingressi analogici, mentre l'uscita è collegata solo con lo stato. vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Posso aggiungere pro domo tua: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvv Che "il nuovo stato" quello di Moore -dedotto da Mealy- ha una parte dello stato che discende dalla *digitalizzazione degli input*, ossia creando una mappa di stato più estesa ed inglobante l'azione degli input analogici digitalizzandoli. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Ma una volta -fatto ciò- l'uscita di Moore guarda solo una macchina di stato, e non input (ormai inglobati, nello stato) Mentre lo stato di Moore (per gli stati successivi, ma non per l'output) risente degli input anche analogici, in ipotesi di macchine sincrone (caso tipico di macchine più immuni al rumore) purché tali input analogici si presentino durante la fase di acquisizione (ossia l'azione del clock). Se non ho convinto me ne dispiace, ma il linguaggio dovrebbe avere proprio la funzione di spiegarsi. Se "qualcuno mi paga anche il circuito" magari ne faccio le fotografie e lo metto su internet. In mancanza di altri input, ringrazio comunque per il diletto di parlare di progetto in automatica, è sempre una cosa che riguarda la filosofia della scienza, e quindi siamo IT. Saluti, L