Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Documente similare
Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Analiză statică Analiza fluxului de date 23 octombrie 2014

Logică și structuri discrete Mulțimi Casandra Holotescu

Probleme date la examenul de logică matematică şi computaţională. Partea a II-a Claudia MUREŞAN Universitatea din Bucureşti Facultatea de Matematică ş

Logică și structuri discrete Logică propozițională Marius Minea marius/curs/lsd/ 3 noiembrie 2014

Prelegerea 4 În această prelegere vom învăţa despre: Algebre booleene; Funcţii booleene; Mintermi şi cuburi n - dimensionale. 4.1 Definirea algebrelor

Analiză de flux de date 29 octombrie 2012

FIŞA DISCIPLINEI

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Facultatea de Matematică Anul II Master, Geometrie Algebrică Mulţimi algebrice ireductibile. Dimensiune 1 Mulţimi ireductibile Propoziţia 1.1. Fie X u

E_d_Informatica_sp_MI_2015_bar_02_LRO

DAN LASCU ADRIANA-LIGIA SPORIŞ ANDA OLTEANU PAUL VASILIU MATEMATICĂ. CULEGERE DE PROBLEME TIP GRILĂ PENTRU ADMITEREA ÎN ACADEMIA NAVALĂ MIRCEA CEL BĂT

Cursul 6 Cadru topologic pentru R n În continuarea precedentei părţi, din cursul 5, dedicată, în întregime, unor aspecte de ordin algebric (relative l

Limbaje de ordinul I LOGICA DE ORDINUL I Un limbaj L de ordinul I este format din: o mulţime numărabilă V = {v n n N} de variabile; conectorii şi ; pa

Elemente de aritmetica

LOGICA MATEMATICA SI COMPUTATIONALA Sem. I,

D.Rusu, Teoria măsurii şi integrala Lebesgue 6 MĂSURA LEBESGUE Cursul 5 Teorema 6.26 Există submulţimi ale lui R care nu sunt măsurabile Lebesgue. Dem

Prelegerea 3 În această prelegere vom învăţa despre: Clase speciale de latici: complementate. modulare, metrice, distributive şi 3.1 Semi-distributivi

PROGRAMA CONCURSULUI NAŢIONAL

Performanta in matematica de gimnaziu si liceu-program de pregatire al elevilor olimpici MULTIMI. OPERATII CU MULTIMI Partea I+II Cls. a V-a

Logică și structuri discrete Logică propozițională Marius Minea marius/curs/lsd/ 27 octombrie 2014

Slide 1

Cursul 12 (plan de curs) Integrale prime 1 Sisteme diferenţiale autonome. Spaţiul fazelor. Fie Ω R n o mulţime deschisă şi f : Ω R n R n o funcţie de

Nr. 932 din Avizat ISJ Vâlcea, Inspector școlar informatică, Ciochină Luisa EXAMEN DE ATESTARE A COMPETENȚELOR PROFESIONALE A ABSOLVENȚILOR

Microsoft Word - cap1p4.doc

Grafuri - Concepte de baza. Tipuri de grafuri. Modalitati de reprezentare

Subiectul 1

Slide 1

Aero-BCD, , Prof. L. Costache & M. Olteanu Notițe de Adrian Manea Seminar 5 Șiruri și serii de funcții. Serii de puteri 1 Șiruri de funcții D

1. Găsiți k numerele cele mai apropiate într-un şir nesortat Dându-se un şir nesortat și două numere x și k, găsiți k cele mai apropiate valori de x.

Microsoft Word - _arbori.docx

Microsoft Word - Curs_08.doc

Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică Gheorghe Asachi Iaşi, 2015 Analiză Matematică Lucian Maticiuc 1 / 29

Dorel LUCHIAN Gabriel POPA Adrian ZANOSCHI Gheorghe IUREA algebră geometrie clasa a VIII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA

20 SUBIECTE DE EXAMEN - De fapt, în pofida acestor probleme, până la urmă tot vom logaritma, căci aceasta este tehnica naturală în context. Trebuie do

Programarea şi utilizarea calculatoarelor

ALGEBRA PENTRU INFORMATICĂ GEORGE CIPRIAN MODOI Cuprins Bibliografie 2 1. Mulţimi, Funcţii, Relaţii Preliminarii logice 3 Exerciţii la Prelimin

Matematica VI

Microsoft Word - Programa finala olimpiadei matematica 2007 gimnaziu.doc

Microsoft Word - a5+s1-5.doc

8.1. Elemente de Aritmetică. 8. Aplicatii (15 aprilie 2019) Lema 8.1. Fie (A, +) un grup abelian şi H, K A. Atunci H K şi H + K = {h + k h H şi k K} s

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

Distanţa euclidiană (indusă de norma euclidiană) (în R k ). Introducem în continuare o altă aplicaţie, de această dată pe produsul cartezian R k XR k,

Examenul de bacalaureat 2012

Examenul de bacalaureat 2012

SUBPROGRAME

Grafuri neorinetate Aplicatii 1 Care este numărul maxim de componente conexe pe care le poate avea un graf neorientat cu 20 noduri şi 12 muchii? a. 6

Gheorghe IUREA Adrian ZANOSCHI algebră geometrie clasa a VII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA 45 Matematică. Clasa a VII-

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

CURBE BÉZIER În CAGD se utilizează adesea curbele polinomiale, adică acele curbe definite de o parametrizare polinomială: C : [a, b] R 3 C(t) = (x(t),

Examenul de bacalaureat 2012

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

Microsoft Word - D_ MT1_II_001.doc

Noțiuni matematice de bază

CLP_UTCN-grila-2012.dvi

Microsoft Word - TIC5

Microsoft PowerPoint - Curs_SDA_10_RO_2019_v1.pptx

Retele Petri si Aplicatii

PowerPoint Presentation

COMENTARII FAZA JUDEŢEANĂ, 9 MARTIE 2013 Abstract. Personal comments on some of the problems presented at the District Round of the National Mathemati

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

Geometrie afină Conf. Univ. Dr. Cornel Pintea cpintea math.ubbcluj.ro Cuprins 1 Săptămâna Endomorfismele unui spaţiu afin Transla

Notiuni de algebra booleana

Slide 1

MergedFile

Top

{ 3x + 3, x < 1 Exemple. 1) Fie f : R R, f(x) = 2x + 4, x 1. Funcţia f este derivabilă pe R\{1} (compunere de funcţii elementare), deci rămâne să stud

Cursul 8 Funcţii analitice Vom studia acum comportarea şirurilor şi seriilor de funcţii olomorfe, cu scopul de a dezvălui o proprietate esenţială a ac

Laborator 3

2.1.Tipul tablou unidimensional

Paradigme de programare

Diapositive 1

Probleme rezolvate informatica: Probleme rezolvate grafuri si a

Programarea calculatoarelor. Note de curs Marius Minea 1 Introducere în programarea în C 1.1 Funcţii în limbajul C Calcule şi funcţii La origine, rolu

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Structuri de date pentru partiţii de mulţimi O partiţie finită a unei mulţimi nevide S este o mulţime finită de submulţimi ale lui S: {S 1, S 2,..., S

TEORIA MĂSURII Liviu C. Florescu Universitatea Al.I.Cuza, Facultatea de Matematică, Bd. Carol I, 11, R Iaşi, ROMANIA, e mail:

E_d_Informatica_sp_SN_2014_bar_10_LRO

ETTI-AM2, , M. Joița & A. Niță Notițe de Adrian Manea Seminar 11 Transformarea Laplace Aplicații Transformarea Z Ecuații și sisteme diferenți

Managementul Resurselor Umane

Microsoft Word - Curs1.docx

Microsoft Word - Laborator 6 - Expresii Regulate IV.doc

Microsoft Word - Programa_Evaluare_Nationala_2011_Matematica.doc

Baze de date Anul 2 Teorie Examen 1. Diagrama entitate/relatie si diagrama conceptuala (curs 2-5) 2. Arbore algebric si expresie algebrica (curs 6-10)

Teoria Grafurilor şi Combinatorică recapitulare Principii de numărare Reţineţi că: P (n, r) este numărul de şiruri (sau r-permutări) de forma A 1,...,

Retele Petri si Aplicatii

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

ALGORITHMICS

Curs 6: Clasificarea surselor de informatii - Clasificarea Bayes Naiva. Modelul Bernoulli

Curs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1

SECURITATE ȘI CRIPTOGRAFIE

Ministerul Educatiei, Cercetarii si Tineretului Grup Scolar Gh. Asachi Galati Proiect pentru obtinerea certificatului de competente profesionale Speci

matematica

Introducere

Cursul 14 Mulţimea lui Mandelbrot Mulţimile şi funcţiile cu caracter excepţional (mulţimea lui Cantor, insula lui Koch, funcţiile lui Weierstrass şi T

Clasa IX 1. O lăcustă face salturi, fiecare salt în linie dreaptă şi de două ori mai lung ca precedentul. Poate vreodată lăcusta să revină în punctul

Algebra si Geometri pentru Computer Science

Poo Laboratoare 1 Contents Laborator7 2 1 Colecţii de obiecte în Java Interfaţa Iterator Interfaţa C

INDICATORI AI REPARTIŢIEI DE FRECVENŢĂ

Transcriere:

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius@cs.upt.ro http://www.cs.upt.ro/ marius/curs/lsd/ 20 octombrie 2014

Relații în lumea reală și informatică Noțiunea matematică de relație modelează legătura dintre două elemente (posibil de tip diferit) relații umane: copil, părinte, prieten relații cantitative : egal, mai mic Transpuse în informatică: rețele sociale : prieten, follow, în cercuri, etc. O relație între elementele aceleiași mulțimi definește un graf (elementele sunt noduri, relația e reprezentată prin muchii) relațiile sunt o noțiune cheie în teoria grafurilor

Definiția unei relații O relație binară R între două mulțimi A și B e o submulțime a produsului cartezian A B: R A B Notăm (x, y) R, sau x R y, sau R(x, y) (x e în relație cu y) Generalizat, putem avea o relație n-ară care e o mulțime de n-tupluri (din produsul cartezian a n mulțimi). O relație e o noțiune mai generală decăt o funcție: f : A B asociază un singur element y B fiecărui x A o relație R A B poate conține mai multe perechi (x, y 1 ), (x, y 2 ),... cu același x sau nicio pereche, pentru anumite valori x A În general, o relație nu e o noțiune simetrică: perechea (și produsul cartezian) sunt noțiuni ordonate, (x, y) (y, x). Există, desigur, relații simetrice (în lumea reală și în matematică)

Reprezentarea unei relații Explicit, prin mulțimea perechilor dacă e finită sau exprimabilă printr-o regulă care leagă elementele: R = {(x, x 2 + 1) x Z} În formă de matrice booleană / binară, pentru A, B finite, cu liniile indexate după A, și coloanele după B m xy = 1 dacă (x, y) R, m xy = 0 dacă (x, y) R reprezentare practică dacă A și B nu sunt foarte mari Printr-o funcție de la A la P(B)

Relația văzută ca funcție O relație R A B poate fi văzută ca o funcție f R : A P(B) de la A la mulțimea părților lui B: f R (x) = {y B (x, y) R} Asociază fiecărui x mulțimea (posibil vidă) a tuturor elementelor lui B cu care x e în relație.

Funcții parțiale Dacă relaxăm condiția ca o funcție să asocieze o valoare fiecărui element, obținem o funcție parțială f : A B. Ele sunt utile când domeniul exact al funcției nu e cunoscut (funcții care nu sunt neapărat calculabile în orice punct). în conjectura 3 n + 1, numărul de pași pentru a ajunge la 1 În practică, când domeniul de definiție al funcției e foarte mare sau nelimitat, dar dorim să lucrăm totuși cu o reprezentare finită pentru niște valori de interes

Funcții parțiale în ML În ML, putem reprezenta funcții parțiale folosind modulul Map. parametrizat cu un modul: tipul (ordonat) de definiție al mapării module M = Map.Make(String) creează un modul care poate reprezenta corespondențe între șiruri de caractere și un tip încă neprecizat Când definim o valoare, adăugând o pereche în mapare, se instanțiază și tipul destinație: let m = M.add "x" 5 M.empty adaugă o mapare de la șirul x la 5 la dicționarul vid acum, m e un dicționar de la șiruri la întregi Căutăm o corespondență în dicționar: M.find "x" m returnează întregul 5 M.find "y" m returnează excepția Not_found

Lucrul cu excepții O excepție este o condiție specială care întrerupe calculul normal dacă nu e tratată, se abandonează execuția programului altfel, codul de tratare a excepției stabilește ce se face Sintaxa: try expresie with tipar unde tipar tratează una sau mai multe excepții și are forma excepție-1 -> expresie-exceptionala-1 excepție-2 -> expresie-exceptionala-2... Dacă expresie se evaluează normal, ea dă rezultatul; altfel, dacă apare excepție-k se evaluează ramura respectivă fun x m -> try M.find x m with Not_found -> 0 Excepțiile se propagă, terminând fiecare funcție, până când sunt prinse de un bloc de tratare altfel, programul e abandonat.

Relații cu ajutorul dicționarelor Am văzut că o relație R A B poate fi privită ca o funcție f R : A P(B) de la A la mulțimea părților lui B: f R (x) = {y B (x, y) R} Dicționarul va fi atunci de la A la mulțimi de elemente din B module M = Map.Make(String) (* dictionar pe siruri *) module S = Set.Make(String) (* multimea de valori *) let addpair m (x, y) = let oldset = try M.find x m with Not_found -> S.empty in M.add x (S.add y oldset) m (* creeaza dictionar din lista *) let setmap_of_pairs = List.fold_left addpair M.empty setmap_of_pairs [("tms", "arad");("tms", "lugoj")];;

Proprietăți ale relațiilor Următoarele proprietăți sunt definite pentru relații binare pe o (aceeași) mulțime X: R X X reflexivă dacă pentru orice x X avem (x, x) R ireflexivă dacă pentru orice x X avem (x, x) R simetrică dacă pentru orice x, y X, dacă (x, y) R atunci și (y, x) R antisimetrică dacă pentru orice x, y X, dacă (x, y) R și (y, x) R, atunci x = y tranzitivă, dacă pentru orice x, y, z X, dacă (x, y) R și (y, z) R, atunci (x, z) R

Relații de echivalență O relație e de echivalență dacă e reflexivă, simetrică și tranzitivă Relația de egalitate e (evident) o relație de echivalență. Relația de congruență modulo un număr: a b (mod n) dacă n a b (divide diferența) O relație de echivalență pe X definește o partiție a lui X în clase de echivalență ˆx = {y (x, y) R} (clasa de echivalență a lui x e mulțimea elementelor aflate în relație cu x)

Relații de ordine (parțială) O relație e o ordine parțială (non-strictă), dacă e reflexivă, antisimetrică și tranzitivă Exemple: relația pe (orice fel de) numere (la fel ) relația de divizibilitate între întregi relația de incluziune pe mulțimea părților O relație e o ordine strictă dacă e ireflexivă și tranzitivă Orice ordine parțială induce o ordine strictă, și reciproc. Definim: a b dacă a b și a b Definim: a b dacă a b sau a = b O relație e o ordine totală dacă oricare două elemente sunt comparabile, adică pentru orice x, y avem x y sau y x

Latice O latice e o mulțime parțial ordonată, în care orice două elemente au un minorant și un majorant. (elemente mai mici, respectiv mai mari în ordine decăt cele două). Ex: mulțimea părților unei mulțimi (intersecție, reuniune) Ex: mulțimea divizorilor unui număr (c.m.m.d.c, c.m.m.m.c) Imagine: http://en.wikipedia.org/wiki/file:hasse_diagram_of_powerset_of_3.svg http://en.wikipedia.org/wiki/file:lattice_of_the_divisibility_of_60.svg

Noțiunea de punct fix x X e punct fix pentru funcția f : X X dacă f (x) = x. (privind f ca o transformare, ea nu îl modifică pe x) Importanța: putem defini multe prelucrări (recursive/ciclice) ca transformări care se opresc când atingem un punct fix O latice L e completă dacă orice mulțime S L are un cel mai mic majorant (supremum) și un cel mai mare minorant (infimum). Luând S = L, rezultă că L are un element minim și unul maxim

Teorema de punct fix Teoremă (Knaster-Tarski): Fie f o funcție monotonă pe o latice completă. Atunci mulțimea punctelor fixe a lui f e tot o latice completă. Corolar: O funcție monotonă pe o latice completă are un cel mai mic punct fix și un cel mai mare punct fix. se obțin pornind de la 0, f(0), f(f(0)),... resp. M, f(m), f(f(m)),... unde 0 și M sunt elementul cel mai mic respectiv cel mai mare

Punctul fix în ML Dacă există limita șirului x, f(x), f(f(x))... putem scrie: let rec fix f x = let y = f x in if y = x then x else fix f y fix f x compară f (x) cu x. Dacă sunt egale, x e punct fix, și e returnat. Dacă nu, reapelăm recursiv cu valoarea f (x). Apelul al n-lea va avea argumentul f n 1 (x) și îl compară cu f n (x). Dacă există n cu f n 1 (x) = f n (x), va fi găsit, f n 1 (x) e punct fix. Putem rescrie, folosind o funcție ajutătoare cu doar un parametru (nu mai trebuie repetat la apel parametrul f): let fix f x = let rec fix1 x = let y = f x in if y = x then x else fix1 y in fix1

Inversa și compunerea de relații Inversa unei relații R A B e relația R 1 B A, cu (y, x) R 1 dacă și numai dacă (x, y) R R 1 = {(y, x) (x, y) R} Fie două relații R 1 A B și R 2 B C. Atunci compunerea R 2 R 1 A C e relația R 2 R 1 = {(x, z) există y B (x, y) R 1 și (y, z) R 2 } La fel ca la funcții, scriem R 2 R 1 și vedem că pentru x A găsim întâi y B și apoi z C. Se poate vedea simplu că (R S) 1 = S 1 R 1 Pentru o relație de echivalență, R = R 1 (de ce? arătați!) Dacă R e tranzitivă, R R R (de ce? arătați!) Pentru o relație binară R A A, se notează R 2 = R R, etc.

Închiderea tranzitivă a unei relații Fie relația copil(x, Y) (X e copilul lui Y): copil(ana, ion), copil(lia, ion), copil(ion, mara), copil(mara, eva). Definim relația desc(x, Y) dacă copil(x, Y) (1) descendent: desc(x, Z) dacă desc(x, Y) și desc(y, Z) (2) Relația desc include relația copil (1) și e tranzitivă (2). Închiderea tranzitivă a unei relații R A A e relația tranzitivă minimală R + astfel ca R R + Putem calcula R + = R k = R R 2 R... 2 = R R R 3 = R R R k=1 copil 2 : desc(ana, mara), desc(lia, mara), desc(ion, eva) copil 3 : desc(ana, eva), desc(lia, eva). Nu sunt descendenți de ordin > 3. Sau, putem defini f (X) = R (X R), atunci f n (R) = n+1 k=1 R k. Dar f e monotonă, deci are un punct fix minimal, care e chiar R + iar dacă X e finită, ajungem la limită într-un număr finit de pași