Corso di Intelligenza Artificiale. Esercizio 1

Documenti analoghi
Linguaggio C++ 8. Matrici

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 28 Gennaio 1999 PROVA SCRITTA

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 14/02/2012 / Foglio delle domande / VERSIONE 1

In molte applicazioni sorge il problema di sapere in quanti modi possibili si può presentare un certo fenomeno.

Monomi e Polinomi. Monomio Si dice monomio un espressione letterale in cui figurano solo operazioni di moltiplicazione.

Note per il corso di Geometria e algebra lineare Corso di laurea in Ing. Elettronica e delle Telecomunicazioni

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

Linguaggi e Grammatiche Liberi da Contesto

ESAME DI FONDAMENTI DI INFORMATICA I ESAME DI ELEMENTI DI INFORMATICA. 28 Gennaio 1999 PROVA SCRITTA

Esercizi su algebra lineare, fattorizzazione LU e risoluzione di sistemi lineari

Algoritmi e Strutture Dati. HeapSort

C I R C O N F E R E N Z A...

Esercitazione 3. Espressioni booleane I comandi if-else e while

La rappresentazione dei dati

AMBIENTE EXCEL CALCOLO DEL RESTO DELLA DIVISIONE FRA NATURALI

TEOREMA DEL RESTO E REGOLA DI RUFFINI

Risoluzione di problemi ingegneristici con Excel

DIVISIBILITA, DIVISORI E MULTIPLI. Conoscenze

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi seconde

Heap e code di priorità

Informatica B

ADT Coda con priorità

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

Esercitazioni di Reti Logiche. Lezione 1 Rappresentazione dell'informazione. Zeynep KIZILTAN zkiziltan@deis.unibo.it

1 Multipli e sottomultipli. Divisibilità

Vettori e matrici. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

STATISTICA DESCRITTIVA. Elementi di statistica medica GLI INDICI INDICI DI DISPERSIONE STATISTICA DESCRITTIVA

EQUAZIONE DELLA RETTA

Esercitazione Dicembre 2010 (2 ore)

ESAME DI STATO. SIMULAZIONE PROVA NAZIONALE Scuola Secondaria di I grado Classe Terza. Prova 4. Anno Scolastico Classe:... Data:...

1 Multipli di un numero

ESERCITAZIONE MICROECONOMIA (CORSO B) ESEMPI DI ESERCIZI DI TEORIA DEI GIOCHI

EXCEL: FORMATTAZIONE E FORMULE

Ripasso di teoria ed esercizi in preparazione al terzo compito. 26 gennaio 2004

ha come obiettivo quello di costruire a partire da A una matrice U, m n, che abbia il

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1

SQL - Sottointerrogazioni

alberi binari e ricorsione

7 2 =7 2=3,5. Casi particolari. Definizione. propria se < impropria se > e non è multiplo di b. apparente se è un multiplo di. Esempi.

Successioni ricorsive lineari

SISTEMI DI 1 GRADO CON DUE EQUAZIONI IN DUE INCOGNITE

Linguaggi di Programmazione Corso C. Parte n.3 Linguaggi Liberi da Contesto e Linguaggi Contestuali. Nicola Fanizzi

Esame di INFORMATICA (*) Operazioni Aritmetiche: Somma. Lezione 3. Operazioni Aritmetiche: Somma. Operazioni Aritmetiche: Somma

Appunti ed esercizi sulle coniche

Esercizio. Sia a R non nullo e siano m, n numeri interi non nulli con m n. Allora a m /a n è uguale a. [1] 1/a n m [2] 1/a m n [3] 1/a n m [4] a n m

Esercitazione n o 3 per il corso di Ricerca Operativa

Indicatori statistici

1 Definizione di sistema lineare omogeneo.

Punti nel piano cartesiano

ESERCIZI SVOLTI Giuliano Bonollo - Michele Bonollo

Prof.ssa Laura Pagnozzi Prof. Ivano Coccorullo. Calcolo Combinatorio

Programmazione Ricorsione

IL CODICE EAN (European Article Number)

04 - Numeri Complessi

DIVISIBILITA, DIVISORI E MULTIPLI. Conoscenze

Proprietà delle relazioni 1

La simulazione con DERIVE Marcello Pedone LE SIMULAZIONI DEL LANCIO DI DADI CON DERIVE

Rappresentazioni numeriche

ESERCIZI DEL CORSO DI INFORMATICA

Esercizi per il corso di Programmazione I

Roadmap. Ricorsione: funzioni ricorsive. Definizione di fattoriale. Definizione dei numeri Fibonacci

Un insieme si dice finito quando l operazione consistente nel contare i suoi elementi ha termine.

MATRICI E SISTEMI LINEARI

Prof.ssa Laura Pagnozzi Prof. Ivano Coccorullo. Calcolo Combinatorio

12) Metodo dei minimi quadrati e linea di tendenza

MONOMI. Donatella Candelo 13/11/2004 1

Corsi di Laurea in Matematica Probabilità I Anno Accademico giugno 2013

Analisi. Calcolo Combinatorio. Ing. Ivano Coccorullo

Esercitazione 5. Procedure e Funzioni Il comando condizionale: switch

4 0 = 4 2 = 4 4 = 4 6 = 0.

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 28 Giugno 05 Nome: Cognome: Matricola: Esercizio 1

Informatica A a.a. 2010/ /02/2011

Pagamento Oneri. Gli oneri di istruttoria ed i bolli vengono pagati all invio della richiesta.

Questo paragrafo e quello successivo trattano gli stessi argomenti del capitolo B6 relativo alla soluzione grafica dei sistemi di primo grado.

Distribuzioni di probabilità

Esercizi svolti sulla parabola

I RADICALI QUADRATICI

Fondamenti di Informatica

Metodi e Modelli per l Ottimizzazione Combinatoria Ripasso sulla Programmazione Lineare e il metodo del Simplesso (parte I)

Statistica. Alfonso Iodice D Enza

Strutture dati in PROLOG. Lezione 6. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 6 0

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 1 parte (6 CFU) 12 Luglio 2012 Tempo a disposizione: 2 h Risultato: 32/32 punti

Chi non risolve esercizi non impara la matematica.

Fig. 1: rotore e statore di una dinamo

Informatica Grafica. Un introduzione

DIP.LAB.MCR E.d L/1. Emissione Redatta da: Dott. Vitale Francesco U.O. Patologia Clinica Distretto Ospedaliero PA1 P.O.Partinico.

Note sull implementazione in virgola fissa di filtri numerici

Sistemi di equazioni lineari

Prof.ssa Laura Salvagno

= < < < < < Matematica 1

Alberi Bilanciati di Ricerca

Facoltá di Scienze MM.FF.NN. Corso di Studi in Informatica- A.A

Esercitazione su Bilancio Familiare

Importanza delle incertezze nelle misure fisiche

2. Risolvere con il metodo di eliminazione di Gauss con pivoting parziale il seguente sistema lineare:

Fondamenti di Informatica. Codifiche per numeri decimali: virgola fissa e mobile

LA FORZA...SIA CON TE!

Excel come foglio di calcolo. Altri Grafici con Excel Istogrammi, grafici a torta

11.4 Chiusura transitiva

Applicazioni lineari e diagonalizzazione. Esercizi svolti

Transcript:

Esercizio 1 Si definisca un predicato in PROLOG chiamato maxlist che applicato ad una lista di liste di interi ListListInt dia come risultato la lista degli elementi massimi di ogni lista componente di ListListInt. Si definisca prima la versione ricorsiva e poi quella ricorsiva-tail. Esempio:?- maxlist([[3,10,2], [6,9],[1,2]], X). yes, X = [10,9,2] Soluzione: maxlist([],[]):-!. maxlist([x Y],[N T]):- max(x,n),maxlist(y,t). Versione ricorsiva max([x],x):-!. max([x T],X):- max(t,n),x>=n,!. max([x T],N):- max(t,n). Versione iterativa max([x T],M):- max(t,x,m). max([],m,m):-!. max([h T],MT,M):- H>MT,!,max(T,H,M). max([h T],MT,M):- max(t,mt,m). Esercizi Prolog 1

Esercizio 2 Data una lista L1 e un numero intero N, scrivere un predicato Prolog domanda1(l1,n,l2) che restituisca in L2 la lista degli elementi di L1 che sono liste contenenti solo due valori interi positivi fra 1 e 9 la cui somma valga N. Esempio: :- domanda1([[3,1],5,[2,1,1],[3],[1,1,1],a, [2,2]],4,L2). yes, L2 = [[3,1], [2,2]] Soluzione: domanda1([],n,[]). domanda1([[a,b] R ], N, [[A,B] S]):- N is A + B,!, domanda1( R,N,S ). domanda1([_ R], N,S ):- domanda1( R,N,S ). Esercizi Prolog 2

Esercizio 3 Si definisca un predicato in PROLOG chiamato averstud che applicato a un numero di matricola di uno studente Matr e a una lista di esami LE dia come risultato la media AV dei suoi voti. Ogni esame sia rappresentato da un termine della lista LE della forma esame(matr,esame,voto). Si definisca prima la versione ricorsiva e poi quella ricorsiva-tail. Esempio:?-averStud(s1,[esame(s2,f1,30), esame(s1,f1,27),esame(s3,f1,25), esame(s1,f2,30)], AV). yes, AV = 28.5 Esercizi Prolog 3

Soluzione: % versione ricorsiva averstud(s,l,av) :- totstud(s,l,n,t), N > 0, AV is T/N. totstud(_,[],0,0) :-!. totstud(s,[esame(s,_,v) R],N,T) :-!, totstud(s,r,nn,tt), N is NN + 1, T is TT + V. totstud(s,[_ R],N,T) :- totstud(s,r,n,t). % versione tail-ricorsiva averstud(s,l,av) :- totstud(s,l,0,n,0,t), N > 0, AV is T/N. totstud(_,[],n,n,t,t) :-!. totstud(s,[esame(s,_,v) R],NI,NO,TI,TO):-!, N is NI + 1, T is TI + V, totstud(s,r,n,no,t,to). totstud(s,[_ R],NI,NO,TI,TO) :- totstud(s,r,ni,no,ti,to). Esercizi Prolog 4

Esercizio 4 Si scriva un programma Prolog che, prendendo in ingresso due liste L1 e L2, restituisca in uscita due liste L3 e L4 tali che L3 contenga gli elementi di L1 che appartengono anche a L2, mentre L4 contenga gli elementi di L1 che non appartengono a L2. Si supponga disponibile il predicato member. Si dica inoltre se il predicato così definito è ricorsivo tail. Esempio:?-list_mem([a,r,t],[t,s,m,n,a],L3,L4). restituirà L3=[a,t] e L4=[r]. Soluzione: list_m([],l2,[],[]). list_m([a Rest1],L2,[A Rest3],L4):- member(a,l2),!,list_m(rest1,l2,rest3,l4). list_m([a Rest1],L2,L3,[A Rest4]):- list_m(rest1,l2,l3,rest4). Il predicato è ricorsivo tail. Esercizi Prolog 5

Esercizio 5 Si scriva un predicato Prolog che data una lista ed un elemento El appartenente alla lista, restituisca in uscita l'elemento successivo ad El nella lista. Esempio:?- consec(3, [1,7,3,9,11],X). yes X=9 Nel caso in cui El sia l'ultimo elemento il predicato dovrà fallire. Soluzione consec(el, [El [X _]],X):-!. consec(el, [_ Tail],X):- consec(el,tail,x). Esercizi Prolog 6

Esercizio 6 Si scriva un predicato Prolog list_to_set a due argomenti che data una lista di liste come primo argomento leghi il secondo argomento a una lista nella quale sono state eliminate le liste ripetute o le loro permutazioni. Per esempio dato il goal:?-list_to_set([[1,2,3],[3,1,2],[1]], Y). si vuole ottenere: yes Y=[[3,1,2],[1]] Per esempio dato il goal:?-list_to_set([[1,2],[1,2],[1,2]], Y). si vuole ottenere: yes Y=[[1,2]] Si supponga dato il predicato permutation(x,y) che verifica se una lista X è una permutazione della lista Y. Esercizi Prolog 7

Soluzione list_to_set([],[]):-!. list_to_set([i R],[I R1]):- not member_list(i,r),!, list_to_set(r,r1). list_to_set([i R],R1):- list_to_set(r,r1). member_list(x,[y _]):-permutation(x,y),!. member_list(x,[_ R]):-member_list(X,R). Esercizi Prolog 8

Esercizio 7 Si scriva un programma Prolog che data in ingresso una lista di liste con 2 elementi ciascuna ed una costante c1 restituisca in uscita due liste DX ed SX, la prima contenente gli elementi che nelle coppie compaiono a destra di c1, la seconda a sinistra. Soluzione coppie([],_,[],[]). coppie([[x,x] T],X,[X Td],[X Ts]) :-!, coppie(t,x,td,ts). coppie([[x,y] T],X,[Y Td],Ts) :-!, coppie(t,x,td,ts). coppie([[y,x] T],X,Td,[Y Ts]) :-!, coppie(t,x,td,ts). coppie([_ T],X,Td,Ts) :- coppie(t,x,td,ts). Esercizi Prolog 9

Esercizio 8 Scrivere un predicato Prolog che fornisce l ultimo elemento di una lista. Esercizio 9 Si definisca un predicato Prolog che calcola i massimi locali (esclusi gli estremi) di una lista, ad esempio: :- max_loc([5,4,7,2,3,6,1,2],x) yes, X=[7,6] Esercizio 10 Dare un programma in Prolog che definisca la relazione tra due liste di avere l'una lunghezza doppia dell'altra. Esercizio 11 Scrivere un predicato Prolog per verificare se una lista è palindroma Esercizio 12 Dato un albero binario, si scriva un predicato che calcola la profondità massima dell albero. Esercizi Prolog 10

Esercizio 13 Dare un programma in Prolog che definisca la relazione nodiinterni tra un albero binario e un naturale, tale che il numero naturale indichi il numero di nodi interni (non foglie) dell'albero Esercizio 14 Dati due alberi A1 ed A2 si scriva un predicato che verifica se A1 è un sottoalbero di A2. Esercizio 15 Data una matrice NxN rappresentata come lista di liste, si calcoli la somma degli elementi della diagonale principale. Esercizio 16 Una matrice M di bit n m, si dice matrice C-Grey se, j=1,,m- 1, la j-esima colonna della matrice differisce dalla colonna (j+1)- esima esattamente in un bit. Si realizzi un programma Prolog che, data M rappresentata come lista di colonne, risponda sì se M è C- Grey. Esercizio 17 Scrivere un predicato flatten che appiattisce una lista di liste. Ad esempio: :- flatten([1,a,[2,3],[],h,f(3),[c,[d,[e]]]],l). yes, L=[1,a,2,3,h,f(3),c,d,e] Esercizi Prolog 11