load('relacije.sage')
A = [1,2,3,4]
rho = [(1,1), (1,2), (2,1), (3,4)]
mat3 = relacija_elementi(A, rho)
matrica_html(mat3, A, A)
relacija_elementi(A, rho, izlaz="graf").show(figsize=[3,3])
refleksivna(mat3),simetricna(mat3),antisimetricna(mat3),tranzitivna(mat3)
import numpy as np
slika = Graphics()
for a in np.arange(-2,2.1,0.1):
slika += line([(a,-1),(a,1)],thickness=2)
show(slika)
A = [2,4,6,9,12,18,27,36,48,60,72]
relA = lambda a,b: mod(a,b) == 0
pusA = Poset((A,relA))
mat5 = relacija_formula(A,relA,izlaz="matrica")
matrica_html(mat5, A, A)
pusA.show(vertex_color='yellow',figsize=[4,4],vertex_size=500,axes_pad=0.1)
pusA.minimal_elements()
pusA.maximal_elements()
Ne postoji najmanji element
pusA.has_bottom()
Ne postoji najveći element
pusA.has_top()
Donje međe podskupa $\{4,6\}$ su $12,36,48,60,72$, a njegov infimum je $12$.
lower_bounds(pusA, [4,6])
Jedina gornja međa podskupa $\{4,6\}$ je $2$, što je ujedno i njegov supremum.
upper_bounds(pusA, [4,6])
Podskup $\{12,18,48\}$ nema donjih međi pa nema niti infimum.
lower_bounds(pusA, [12,18,48])
Gornje međe podskupa $\{12,18,48\}$ su $2$ i $6$, a njegov supremum je $6$.
upper_bounds(pusA, [12,18,48])
Zadani parcijalno uređeni skup nije mreža jer npr. njegov dvočlani podskup $\{60,72\}$ nema infimum.
pusA.is_lattice()
lower_bounds(pusA, [60,72])
T = list(filter(lambda x: len(x) % 2 != 0, Subsets(4)))
T
pusT = Poset((T, lambda x,y: x & y == x))
mat6 = relacija_formula(T , lambda x,y: x & y == x, izlaz="matrica")
matrica_html(mat6, T, T)
pusT.show(vertex_color='yellow',figsize=[8,10],vertex_size=2000,axes_pad=0.2)
pusT.minimal_elements()
pusT.maximal_elements()
Ne postoji najmanji element
pusT.has_bottom()
Ne postoji najveći element
pusT.has_top()
Primjeri podskupova koji imaju gornje međe, ali nemaju supremum
upper_bounds(pusT,[Set({1}),Set({3})])
upper_bounds(pusT,[Set({1}),Set({2})])
upper_bounds(pusT,[Set({1}),Set({4})])
Primjeri podskupova koji imaju gornje međe i supremum
upper_bounds(pusT,[Set({1}),Set({2}),Set({3})])
upper_bounds(pusT,[Set({1}),Set({2}),Set({4})])
Primjeri podskupova koji imaju donje međe, ali nemaju infimum
lower_bounds(pusT,[Set({2,3,4}),Set({1,2,3})])
lower_bounds(pusT,[Set({2,3,4}),Set({1,2,4})])
lower_bounds(pusT,[Set({1,3,4}),Set({1,2,3})])
Primjeri podskupova koji imaju donje međe i infimum
lower_bounds(pusT,[Set({2,3,4}),Set({2})])
skup = ['M1','M2','M3','M4','M5']
relacija = [('M1','M3'),('M1','M4'),('M2','M3'),('M4','M3'),('M5','M3'),('M5','M4')]
pus7 = Poset((skup, relacija))
mat7 = matrica_incidencije_PUS((skup,relacija))
matrica_html(mat7, skup, skup)
parcijalni_uredjaj(mat7)
pus7.show(vertex_color='yellow',figsize=[4,4],vertex_size=500,axes_pad=0.1)
pus7.top()
pus7.has_bottom()
pus7.minimal_elements()