Sei sulla pagina 1di 29

Calcolabilit e Complessit a a

Schifano S. Fabio schifano@fe.infn.it

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [1]

Calcolabilt e Complessit a a
INFN via paradiso 12, 0532-974203 Lezioni: LUN - GIO 14:00 18:00 Orario di ricevimento: alla ne della lezione Esami: 2 compiti durante il corso + orale compito + orale libri di testo: Introduzione alla Calcolabilit, A. Marchetti Spaccamela, M. Protasi a Franco Angeli Linguaggi, Modelli, Complessit, G. Ausiello, F. DAmore, G. Gambrosi a Franco Angeli La Struttura degli Algoritmi, Fabrizio Luccio Bollati Boringhieri Editore

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [2]

Calcolo delle Funzioni Ricorsive


Vogliamo dimostrare lequivalenza del modello delle funzioni ricorsive con il modello del -calcolo. Per far ci bisogna dimostrare che: o le funzioni di base sono -denibili le funzioni ottenute come risultato dellapplicazione degli operatori funzionali , , E, R sono -denibili equivalentemente che le funzioni ottenute come risultato dellapplicazione degli operatori funzionali , , ricursione, sono -denibili

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [3]

Calcolo delle Funzioni Ricorsive


Teorema Le funzioni di base sono -denibili. Dimostrazione

I x.x Z y.0 S xzw.(z(xzw)) p xy.x


La dimostrazione che gli operatori sono -denibili piuttosto laboriosa e verr omessa. e a

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [4]

Il Linguaggio
Prima di dimostrare lequivalenza tra -calcolo e funzioni ricorsive deniamo un linguaggio di programmazione simile al -calcolo. La sintassi del linguaggio sar la segunete: a

E c

::= ::=

c | v | v.E | EE | (E) 0 | ... | 9 | True | False | a | ... | z | + | | | / | ... cons | head | . . . IF

integer booleans letters arith op list op

Il linguaggio comprende simboli per rappresentare gli interi simboli per rappresentare i valori booleani
Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [5]

simboli per rappresentare le variabili alcune funzioni primitive del linguaggio per manipolare i numeri e le list Currying:

+ : N (N N), +xy = x + y :
usando la -astrazione posso denire la funzione inc = x. + 1, cio la funzione che e preso un numero lo incrementa di 1 Questa propriet si chiama Currying e ci permette di pensare tutte le funzioni come a funzioni di una sola variabile. Esempio IF : B N N N: IF True E1E2 = E1 head(cons a b) = a tail(cons a b) = b

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [6]

Funzioni Ricorsive ed Y
consideriamo la seguente denizione della funzione fattoriale: FACT = ( n . IF (= n 0) 1 ( n (FACT (- n 1)))) La funzione FACT denita in termini di s stessa. Il calcolo per non permette di e e o denire una formula in modo ricorsivo. Osserviamo per che tramite una astrazione possiamo scrivere o FACT = fact. ( n . ( IF (= n 0) 1 ( n (fact (- n 1)) ))) FACT cio FACT = H FACT e e H = fact.( n . ( IF (= n 0) 1 ( n (fact (- n 1)) ))) Loperatore H una lambda astrazione che non usa la ricorsione. e
Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [7]

Da un punto di vista matematico come se dovessimo determinare il valore di FACT che e sosfa lequazione FACT = H FACT cos come si fa per determinare il valore di x che soddisfa lequazione x2 2 = x. i Lequazione FACT = H FACT aerma che quando la funzione H applicata a FACT il e risultato FACT, ovvero FACT un punto sso di H. e e Quindi abbiamo bisogno di un operatore che calcola il punto sso di un altro operatore. Consideriamo loperatore Y denito nel seguente modo:

Y = h.(x.h(x, x))(x.h(x, x))


allora vale la seguente propriet: a Per ogni g funzione g(Y g) = Y g , quindi Y g calcola un punto sso di g , e g e anche il minimo punto sso.
Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [8]

Infatti: Yg e x. g(x,x)) ( x . g(x,x)) = = g ( x . g(x,x) , x . g(x,x)) g( Y g ) = =

h.( x. h(x,x))( x . h(x,x)) x. g(x,x)) ( x . g(x,x))

Quindi la funzione FACT pu essere denita, in modo non ricorsivo, come o FACT = Y H Nei linguaggi funzionali loperatore Y fornito come primitivo. e

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [9]

Infatti per esempio calcoliamo FACT 1: FACT 1 = = = = = = = = = = = = YH1 H (Y H) 1 ( fact.( n . ( IF (= n 0) 1 ( n (fact (- n 1)))))) ( Y H ) 1 ( n . ( IF (= 1 0) 1 ( n ((Y H) (- n 1))))) 1 ( IF (= 0 1) 1 ( 1 ((Y H) (- 1 1)))) ( 1 ((Y H) (- 1 1)) ) ( 1 ((Y H) 0) ( 1 (H (Y H) 0) ( 1 ( fact.( n . ( IF (= n 0) 1 ( n (fact (- n 1)) ))) (Y H) 0) ( 1 ( ( IF (= 0 0) 1 ( n ((Y H) (- 0 1)) )) (11) 1

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [10]

Il Linguaggio FP
Formalmente, FP descritto da una quintupla e

O, : , P, F , D

ove:

O ` linsieme degli oggetti e : ` loperazione di applicazione e P ` linsieme delle funzioni primitive e F ` linsieme delle funzioni di ordine superiore e D ` linsieme delle denizioni date dallutente e

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [11]

Linsieme O
Linsieme O costituisce linsieme delle sequenze di termini su cui applicare le funzioni di primo ordine. I termini sono linsieme dei valori numerici booleani e speciali come che denota il valore indenito. Una sequenza indicata con la seguente notazione: e

x1, x2, . . . , xn

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [12]

Linsieme P
Linsieme P delle funzioni primitive costituito da funzioni matematiche e da funzioni per e la manipolazione delle sequenze Function +,-,*,/ s distl distr trans apndl apndr reverse Semantics

+ : x, y x + y, . . . s : x1, x2, . . . , xs, . . . , xn xs dislt : x, y1, . . . , yn x, y1 , . . . , x, yn distr : x1, . . . , xn , y x1, y , . . . , xn, y trans : x11, . . . , x1n . . . xm1, . . . , xmn x11, . . . , xm1 . . . x1n, . . . , xmn apndl : x, y1, . . . , yn x, y1, . . . , yn apndr : x1, . . . , xn , y x1, . . . , xn, y reverse : x1, x2, . . . , xn xn, . . . , x2, x1

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [13]

Linsieme F
Linsieme F costituito da funzioni di ordine superiore (HOF ), cio funzioni i cui e e argomenti sono altre funzioni. Nellambito del linguaggio rappresentano i combinatori tramite i quali si possono combinare le funzioni primitive per denirne altre. La caratteristica fondamentale che tali forme sono in numero limitato. e Questo aspetto conferisce alla metodologia di programmazione FP una aspetto fortemente strutturato a vantaggio del processo di compilazione. Functional Composition Construction Reduce ApplyToAll Symbol Semantic

[. . .] /

f g : x f (g : x) [f1, . . . , fn] : x f1 : x, . . . , fn : x / : x1, . . . , xn x1 . . . xn (f ) : x1, . . . , xn f : x1, . . . , f : xn

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [14]

Linsieme D
Linsieme D costituisce le denizioni dellutente, ovvero denizioni di funzioni di primo ordine ottenute come combinazioni, tramite i funzionali, di funzioni primitive. Ad esempio, la seguente un esempio di funzioni denita dallutente: e

{Suml

/+ }

che applicata ad una sequenza la riduce ad un unico valore corrispondente alla somma dei suoi elementi:

Suml :< x1, . . . , xn >= x1 + . . . + xn

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [15]

Esempi
Inner Product:

IP / ( ) trans
Matrix Multiplication

M M (IP ) ( distl) distr [1, trans 2]


Linear Combination

LC (+) trans [1, () distl [2, 3]]

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [16]

N-bosy Simulator
Dato un sistema di tipo gravitazionale, cio un sistema i cui componenti interagiscono e tramite forze esercitate reciprocamente, come il sistema solare, si vuole determinare istante per istante la posizione e la velocit di ciascun componente del sistema. a Sia:

la funzione che calcola il prodotto cartesiano binario,


CalF la funzione che data la posizione di due pianeti calcola la forza con la quale essi interagiscono SumF la funzione che calcola la somma vettoriale di vettori NewPos la funzione che data la posizione di un pianeta ed una forza, ne calcola la nuova posizione.

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [17]

Utilizzando le denizione precedenti possiamo formulare il programma per Nbody:

{ {forces {result {N body

distl distr [id, id]} ( CalF)} SumF} NewPos trans [result forces , id]}

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [18]

Parallelismo e FP
Le caratteristiche interessanti di FP come linguaggio parallelo sono:

semantica data-parallel delle HOF : il funzionale agisce contemporaneamente su diversi elementi della struttura di input:
composition genera parallelismo di tipo pipeline apply-to-all e construction generano parallelismo di tipo farm reduce esplicita parallelismo di tipo tree

stile di programmazione strutturato, assenza di side eects, list homomorphism


Fissata una architettura di interconnessione di PEs, ogni HOF ha un proprio Skeleton o Template di implementazione.

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [19]

List Homomorphism
Il concetto di list homomorphism una propriet algebrica che verica le seguenti e a condizioni: una funzione h con elemento neutro u un omomorsmo sulle sequenze nite e se esiste un operatore binario associativo tale che:

h: =u h : (x+ y) = h : x h : y +

ove + loperazione di concatenazione delle sequenze. +e Esempio Sia Suml x1, . . . , xn = omomorsmo:
n i=1

xi, sia u =

, sia = +, allora Suml un e

Suml : =u Suml : (x+ y) = Suml : x + Suml : y +

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [20]

List Homomorphism
Limportanza di questa propriet algebrica per la programmazione parallela deriva dal a Primo Terorema sugli Omomorsmi dovuto a Bird: una funzione h un omomorsmo se e solo se esistono un operatore binario e associativo ed una funzione f per cui vale la seguente relazione:

h (/) (f )

Questo teorema esprime il fatto che una funzione che verica la condizione di list omomorsmo riscrivibile come la composizione dei funzionali reduce e map. e Poich questi due funzionali possono espicitare grandi quantit di parallelismo, ne deriva e a che la funzione esplicita inerentemente del parallelismo. Il teorema permette di riscrivere automaticamente una denizione di funzione come combinazione di operatori che possono essere implementati in parallelo.
Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [21]

Funzioni di Comunicazione
Nellinterpretazione di FP come linguaggio di programmazione parallelo le funzioni distl, distr, trans, . . . svolgono un ruolo di routing dei dati. Infatti, si consideri come esempio la seguente applicazione:

distl : x, y1, y2, . . . , yn


Se si suppone che ogni elemento della sequenza argomento sia memorizzato su un processing element diverso, applicare la funzione distl signica muovere lelemento x dal processing elements ove memorizzato a quelli ove sono memorizzati gli elementi e x1, x2, . . . , xn. Di consegunza, lapplicazione in questione si riduce a run-time in un insieme di comunicazioni tra i processori che memorizzano gli elementi della sequenza di input.

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [22]

Alegbra dei Programmi


Lalgebra del linguaggio FP comprende un insieme di equazioni che esprimono identit, a ovvero equivalenze semantiche tra funzioni con struttura sintattica dierente. Esse si presentano sotto la seguente forma

lhs rhs
e da un punto di vista semantico non hanno alcun altro signicato. Le equazioni dellalgebra possono essere classicate in base ai parametri di interesse per la programmazione parallela quali: grado di parallelismo, grana di elaborazione e comunicazioni. In questo modo si ottiene un insieme di regole di riscrittura orientate che possono essere usatedurante il processo di compilazione.

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [23]

Regole per il Grado di Parallelismo


() () ( ) s trans s trans reverse reverse trans trans tail tail trans
Le regole di riscrittura contenute in tabella aumentano o diminuiscono, a seconda del verso in cui vengono utilizzate, il numero di funzioni del programma che possono essere eseguite in modo parallelo. Tale obiettivo raggiunto introducendo il funzionale apply-to-all nellespressione sintattica e del programma sorgente. Ad esempio, la regola di riscrittura

s trans s
elimina dal programma la funzione di routing (trans) sostituendola con una funzione di calcolo, denita dal funzionale apply-to-all.
Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [24]

La seguente regola di riscrittura

() () ( )
diminuisce il potenziale grado di parallelismo nel programma sostituendo due funzionali apply-to-all con uno solo. Tale regola potrebbe essere utili per casi in cui necessario bilanciare il carico. e

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [25]

Regole per la Comunicazione


trans [1, . . . , n] ([1, . . . , n]) s trans s trans [1 1, . . . , n n] ([1 1, . . . , n n]) trans distl [ 1 2] ([ 1 2]) distl Le regole contenute in tabella hanno come obiettivo lottimizzazione delle funzioni di routing, quindi, lottimizzazione delle comunicazioni. Esse sono di due tipi: equazioni che eliminano le funzioni di routing, cio equazioni del tipo r e come le prime due contenute in tabella equazioni che spostano le funzioni di routing attorno alle funzioni di calcolo, cio e equazioni del tipo r r come le ultime due della medesima tabella. Le prime eliminano una funzione di routing e quindi ottimizzano le comunicazioni. Le seconde possono essere utili per raggruppare funzioni di routing ed ottenere una unica funzione di routing.
Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [26]

Regole per la grana di Elaborazione


( ) [1, . . . , n] [1 , . . . , n ] [1, . . . , n] [ 1, . . . , n]
Le regole della tabella sono un insieme di equazioni che permettono di variare la grana di elaborazione, ovvero linsieme di operazioni sequenziali che possono essere fatte su un singolo dato. La grana di elaborazione viene variata sfruttando il funzionale composition, tramite il quale possiamo applicare sequenzialmente pi di una funzione ad un solo elemento di input. u Consideriamo come esempio la prima equazione della tabella, conosciuta in letteratura con il nome di map promotion: ( ). Il rhs esprime la possibilit di appicare ad ogni elemento della sequenza di input sia la a funzione che la funzione .
Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [27]

Il lhs, viceversa, espime la possibilit di poter applicare allintera sequenza di input sia la a funzione che la funzione . Nei due casi la grana di elaborazione che si determina dierente. e Anche queste regole possono essere utili per bilanciare il carico.

Schifano S. Fabio

Calcolabilit e Complessit a a

Laurea Specialistica Informatica [28]

Topological Optimization
Limplementazione dei HOF deve tenere conto della rete di interconnessione su cui si eettua limplementazione. Ad esempio, limplementazione della reduce si mappa in modo naturale su una rete di interconnessione di nodi ad albero. Poich si dimostra che / un omomorsmo, sfruttando il primo teorema sugli omomorsmo, e possiamo scrivere

/ / (/)
Il lato destro di tale regola una espressione che si pu mappare ecentemente su una e o griglia bidimensionale di processing elements.

Schifano S. Fabio

Potrebbero piacerti anche