1 / 98

O relacjach i algorytmach

O relacjach i algorytmach. Relacja jest podstawowym pojęciem matematycznym, również użytecznym w informatyce: Operatory relacji =,  , <,  , >,  w językach programowania. Relacyjne bazy danych. W eksploracji danych: skale pomiarowe.

danika
Download Presentation

O relacjach i algorytmach

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. O relacjach i algorytmach Relacja jest podstawowym pojęciem matematycznym, również użytecznym w informatyce: • Operatory relacji =, , <, , >,  w językach programowania. • Relacyjne bazy danych. • W eksploracji danych: • skale pomiarowe. • relacja nierozróżnialności w teorii zbiorów przybliżonych

  2. O relacjach i algorytmach • W wykładzie zostaną omówione relacje dwuczłonowe, a także sposoby ich reprezentacji w postaci macierzy lub grafu. • Grafy zostaną użyte do pokazania relacji w postaci przemawiającej do wyobraźni. Tymczasem postać macierzowa umożliwi konstrukcję algorytmów do badania własności relacji. • Zostaną także pokazane przykłady relacji wraz z przedstawieniem ich własności i określeniem ich typów.

  3. Iloczyn kartezjański zbiorów Rozważa się dwa zbiory X i Y. Zbiór wszystkich uporządkowanych par elementów należących odpowiednio do tych zbiorów, nazywa się iloczynem(albo produktem) kartezjańskim zbiorów X i Y. Iloczyn kartezjański oznacza się jako XY. Można to zapisać w następujący sposób: X×Y={(x,y):xX i yY} Jeżeli dodatkowo zachodzi równość X=Y, to zamiast X×Xmożna napisać X2.

  4. Iloczyn kartezjański zbiorów Przykład: Iloczyn kartezjański zbiorów X={1,2,3,4}, Y={a,b,c}: Jest to zbiór wszystkich par (cyfra, litera). Operacja iloczynu kartezjańskiego nie jest przemienna: X×Y Y×X

  5. Iloczyn kartezjański zbiorów Przykład ten można także zinterpretować graficznie. Jeżeli w tabeli wiersze oznaczymy elementami jednego zbioru, a kolumny – elementami drugiego zbioru, to punkt na przecięciu odpowiedniego wiersza i kolumny reprezentuje parę (cyfra, litera).

  6. Iloczyn kartezjański zbiorów Innym przykładem iloczynu kartezjańskiego jest zbiór punktów na płaszczyźnie OXY, oznaczany jako R2. Pojęcie iloczynu kartezjańskiego można rozszerzyć na większą liczbę wymiarów. Dla przykładu, iloczyn R×R×R=R3 oznacza zbiór punktów w przestrzeni trójwymiarowej.

  7. Macierz Kolejnym przykładem iloczynu kartezjańskiego jest zbiór indeksów elementów macierzy. Macierzjest skończonym zbiorem elementów, zapisywanym w postaci prostokątnej tablicy o m wierszach i n kolumnach:

  8. Macierz Adres elementu w macierzy składa się z dwóch liczb, z których pierwsza wskazuje na numer wiersza, a druga na numer kolumny, w których ten element się znajduje. Na przykład a24=1 oznacza, że element znajdujący się w drugim wierszu i czwartej kolumnie macierzy jest równy 1.

  9. Macierz Macierz kwadratowa, macierz prostokątna

  10. Macierz Macierz transponowana Transpozycja nie zmienia elementów na głównej przekątnej

  11. Macierz Macierz symetryczna

  12. Relacja dwuczłonowa Dla danych zbiorów X i Y relacją dwuczłonową na iloczynie kartezjańskim X×Yjest dowolny podzbiór tego iloczynu.

  13. Relacja dwuczłonowa Przykład: Szkoła uczy komputerowych metod kroju i szycia. Zbiór nazwisk nauczycieli: X={Kowalski,Nowak,Jankowski, Kaszubski,Góralski,Kurpiowski} Zbiór przedmiotów nauczanych w pierwszym semestrze: Y={Krój, szycie, fastrygowanie, krój komputerowy, wyszywanie komputerowe}

  14. Relacja dwuczłonowa Oto przydział nauczycieli do przedmiotów: R={(Kowalski, krój), (Kowalski, fastrygowanie), (Jankowski, wyszywaniekomputerowe), (Kaszubski, szycie), (Góralski, krój komputerowy), (Kurpiowski, krój), (Kurpiowski, fastrygowanie), (Kurpiowski, wyszywanie komputerowe)}

  15. Relacja dwuczłonowa Przydział ten jest przykładem relacji. Iloczyn kartezjański zawierałby 30par (nazwisko, przedmiot), tymczasem przedstawiona relacja zawiera tylko 8 par.

  16. Reprezentacja relacji - macierz Rozważa się dwa zbiory: zbiór X={x1,x2,…,xm} składający się z m elementów oraz zbiór Y={y1,y2,…,yn} zawierający nelementów. Niech na iloczynie kartezjańskim X×Y będzie określona pewna relacja ρ. Relacja ta może być reprezentowana w postaci macierzy. Wiersze macierzy odpowiadają kolejnym elementom zbioru X, zaś kolumny – elementom zbioru Y.

  17. Reprezentacja relacji - macierz Macierzą relacji  jest zerojedynkowa macierz Rij, zawierająca m wierszy i n kolumn. Jej elementy określone są następującym wzorem: gdzie i=1, 2, …, m, j=1, 2, …, n.

  18. Reprezentacja relacji - macierz Jeżeli X=Y, to relacją w zbiorze X jest pewien podzbióriloczynu kartezjańskiego X×X. W dalszej części wykładu będą rozważane wyłącznie relacje w n-elementowym zbiorzeX, reprezentowane przez kwadratową macierz o rozmiarze n×n.

  19. Reprezentacja relacji - macierz Przykład 1: Relacja ρjest określona w zbiorze X={1,2,3,4,5,6}. x, yXxρ y x+y jest liczbą złożoną

  20. Reprezentacja relacji - graf Jeżeli elementy zbioru potraktować, jako węzły grafu, to zdarzenie, iż element i-tyjest w relacji z elementem j-tym, można przedstawić przy pomocy łuku skierowanego od węzła ido węzła j. Otrzymany graf jest grafem skierowanym, zaś macierz relacji jest macierzą sąsiedztwa grafu.

  21. Reprezentacja relacji - graf X={1,2,3,4,5,6}, x, yXxρ y x+y jest liczbą złożoną

  22. Własności relacji • Relacja dwuczłonowa może być zwrotna, przeciwzwrotna, symetryczna, antysymetryczna, spójna, przechodnia. • Własności relacji ujawnią się w macierzy lub w grafie. • Korzystając z reprezentacji macierzowej można algorytmizowaćbadanie relacji. • Reprezentacja grafowa wpływa na wyobraźnię i ułatwia proces tworzenia algorytmu.

  23. Własności relacji Do tworzenia algorytmów zostanie użyty język C++. • Elementy macierzy 1albo 0 można traktować, jako logiczne wartości prawda albo fałsz. • Dla elementów macierzy mogą być stosowne operacje arytmetyczne lub logiczne. • W C++ n wierszy i n kolumn tablicy dwuwymiarowej są indeksowane liczbami od 0 do n - 1.

  24. Własności relacji - zwrotność Relacja  określona w zbiorze X jest zwrotna, gdy dla każdego elementu xX element ten pozostaje w relacji z samym sobą. xX: xx

  25. Własności relacji - zwrotność W zapisie macierzowym zwrotność przejawia się tym, że wszystkie elementy znajdujące się na przekątnej macierzy R są równe 1. Oznacza to, że w każdym węźle grafu relacji znajduje się pętla.

  26. Własności relacji - zwrotność Algorytm badania zwrotności powinien sprawdzać, czy na przekątnej macierzy znajdują się same jedynki. Jeżeli pojawi się co najmniej jedno zero, to relacja nie jest relacją zwrotną.

  27. Własności relacji - zwrotność Algorytm badania zwrotności: int zwrotna(int R[SIZE][SIZE],int n) { int i; for (i=0; i<n; i++) if (R[i][i] == 0) return 0; return 1; } .

  28. Własności relacji - przeciwzwrotność Relacja  określona w zbiorze X jest przeciwzwrotna, gdy żaden element xX nie jest w relacji z samym sobą. xX: (xx)

  29. Własności relacji - przeciwzwrotność W zapisie macierzowym przeciwzwrotność przejawia się tym, że wszystkie elementy znajdujące się na przekątnej macierzy R są równe 0. Oznacza to, że w żadnym węźle grafu relacji nie ma pętli.

  30. Własności relacji - przeciwzwrotność Algorytm badania zwrotności powinien sprawdzać, czy na przekątnej macierzy znajdują się same zera. Jeżeli pojawi się co najmniej jedna jedynka, to relacja nie jest relacją przeciwzwrotną.

  31. Własności relacji - przeciwzwrotność Algorytm badania przeciwzwrotności: intprzeciwzwrotna(int R[SIZE][SIZE],int n) { int i; for (i=0; i<n; i++) if (R[i][i]) return 0; return 1; }

  32. Własności relacji - symetria Relacja  określona w zbiorze X jest symetryczna,gdy dla każdych dwóch elementów x,yX, z faktu, że x jest w relacji z ywynika, że y jest w relacji z x. x,yX: xyyx

  33. Własności relacji - symetria W zapisie macierzowym symetria przejawia się w symetrii macierzy R. W grafie wszystkie łuki między dwoma różnymi węzłami biegną w dwóch kierunkach.

  34. Własności relacji - symetria Algorytm badania symetrii polega na przechodzeniu wszystkich elementów Rijznajdujących się ponad główną przekątną macierzy i sprawdzaniu, czy są im równe elementy Rji leżące pod przekątną. Jeżeli pojawi się Rij ≠ Rji, to relacja nie jest symetryczna.

  35. Własności relacji - symetria Algorytm badania symetrii: intsymetryczna(int R[SIZE][SIZE],int n) { inti,j; for (i=0; i<n–1; i++) for (j=i+1; j<n; j++) if (R[i][j] != R[j][i]) return 0; return 1; } .

  36. Własności relacji - antysymetria Relacja  określona w zbiorze X jest antysymetryczna, jeżeli dla każdych dwóch elementów x, yX z faktu, że x jest w relacji z yi y jest w relacji z x, wynika, że elementy x i y są identyczne: x,yX: xyyx x=y

  37. Własności relacji - antysymetria W macierzy relacji antysymetrycznej każdemu elementowi Rij=1 spoza przekątnej, towarzyszy element Rji=0: (i,j)ijRijRji=0. Jeżeli między dwoma różnymi węzłami istnieje łuk w grafie, to nietowarzyszy mu łuk w przeciwną stronę.

  38. Własności relacji - antysymetria Algorytm badania antysymetrii polega na przechodzeniu przez wszystkie elementy macierzy znajdujące się ponad przekątną i sprawdzaniu, czy RijRji=0. Jeżeli ten warunek nie jest spełniony conajmniej jeden raz, to relacja nie jest antysymetryczna.

  39. Własności relacji - antysymetria Algorytm badania antysymetrii: intantysymetryczna(int R[SIZE][SIZE],int n) { inti,j; for (i=0; i<n–1; i++) for (j=i+1; j<n; j++) if (R[i][j] && R[j][i]) return 0; return 1; } .

  40. Własności relacji - przeciwsymetria Relacja  określona w zbiorze X jest przeciwsymetryczna, gdy dla każdych dwóch elementów x,yX, z faktu, że x jest w relacji z y, wynika, że y nie jest w relacji z x: x,yX: xy(yx).

  41. Własności relacji - przeciwsymetria Przeciwsymetria: jeżeli relacja jest przeciwzwrotna i antysymetryczna, to jest przeciwsymetryczna (asymetryczna).

  42. Własności relacji - spójność Relacja  określona w zbiorze X jest spójna, jeżeli dla dowolnych dwóch elementów x,yX, xpozostaje w relacji z ylub ypozostaje w relacji z x: x,yX: xyyxx=y

  43. Własności relacji - spójność W zapisie macierzowym spójność przejawia się tym, że jeżeli poza przekątną w macierzy relacji zachodzi Rij=0, to odpowiednio Rji=1. Oznacza to, ze dla relacji spójnej zawsze zachodzi następujący warunek: (i,j)ijRijRji=1.

  44. Własności relacji - spójność W grafie relacji spójnej pomiędzy dwoma różnymi węzłami istnieje łuk co najmniej w jednym kierunku.

  45. Własności relacji - spójność Algorytm badania spójności polega na przechodzeniu przez wszystkie elementy macierzy znajdujące się nad przekątną i sprawdzaniu, czy RijRji=1. Jeżeli ten warunek nie jest spełniony co najmniej jeden raz, to relacja nie jest spójna.

  46. Własności relacji - spójność Algorytm badania spójności: intspojna(int R[SIZE][SIZE],int n) { inti,j; for (i=0; i<n–1; i++) for (j=i+1; j<n; j++) if (!(R[i][j] || R[j][i])) return 0; return 1; } .

  47. Własności relacji - przechodniość Przechodniość: Relacja  określona w zbiorze X jest przechodnia, jeżeli dla dowolnych elementów x,y,zX, , z faktu, że x jest w relacji z y i y jest w relacji z z, wynika, że x jest w relacji z z: x,y,zX:xyyzxz.

  48. Własności relacji - przechodniość x,y,zX:xyyzxz. Graf relacji przechodniej charakteryzuje się tym, że jeżeli istnieje łuk od węzła x do węzła y i od węzła y do węzła z, to istnieje także łuk (na skróty) idący od węzła x do węzła z.

  49. Własności relacji - przechodniość Przykład relacji przechodniej:

More Related