Professional Documents
Culture Documents
2020 - 4 - 30 - Binarna Relacija
2020 - 4 - 30 - Binarna Relacija
2020 - 4 - 30 - Binarna Relacija
Binarna relacija R je skup uređenih parova (d1,d2) pri čemu je d1€domain1 i d2€domain2.
R.relate(d1,d2) … funkcija koja skupu R pridružuje uređeni par (d1,d2), tj. d1 je u relaciji s d2
R.unrelate(d1,d2) … funkcija koja u skupu R briše uređeni par (d1,d2)
S = compute1(d2) … funkcija koja za zadani d2 (npr. euklidski) kreira novi skup S u koji
stavlja sve elemente iz domain1 koji su u relaciji s d2
S = compute2(d1) …
Implementacija relacije pomoću bit-matrice
Primjer
domain1 = {2, 3, 5, 7}
domain2 = {3, 6, 8, 9}
R = {(2,6), (2,9), (3,3), (5,3), (5,6), (5,9)}
…
R.relate(3,9)
R[3,9]=1
S = R.compute1(9)
S = {2,5}
S = R.compute2(5)
S2 = {3, 6, 9}
class relation():
def __init__(self,n):
self.n = n
self.r =[[False for j in range(n)]for i in range(n)]
def __repr__(self):
for i in range(self.n):
for j in range(self.n):
if self.r[i][j]:
print(‘({},{})‘.format(i,j),end=‘ ')
return ''
def relate(self,i,j):
self.r[i][j] = True
def unrelate(self,i,j):
self.r[i][j] = False
def Make_null(self):
for i in range(self.n):
for j in range(self.n):
self.r[i][j] = False
def __repr__(self):
for par in self.R:
print('({},{})'.format(par[0],par[1]),end=' ')
return ''
Implementacija relacije pomoću skupa u Pythonu
def Make_null(self):
self.R=set()
def relate(self,d1,d2):
if d1 in self.D1 and d2 in self.D2:
self.R.add((d1,d2))
def unrelate(self,d1,d2):
self.R.discard((d1,d2))
def compute1(self,d2):
S = set()
for par in self.R:
if par[1] == d2:
S.add(par[0])
return S
def compute2(self,d1):
…