Bu program tüm topolojileri listeleyecek.
$n\in \{1,2,3,4\}$ için maksimum 1 saniye içinde tüm topolojileri verir.
$n =5$ hepsini yazmasını $1$ saatten fazla sürer fakat çok normal. Çünkü çok hesap var.
Hızlandıramaya çalışıyorum.
import itertools as it
def isTopology(t,E):
'''Retourne True eğer t, E üzerine bir topoloji ise aksı halde False '''
t_inter,t_union=[set()]+t,t+[E]
for e1,e2 in it.combinations(t,2):
if e1.intersection(e2) not in t_inter: return False
if e1.union(e2) not in t_union: return False
return True
def topologies(n):
''' boş ve X olmayan tüm X in altkumelerin kümesi '''
E=set(range(1,n+1)) # n elemanli bir küme oluşturma
pE=[]
for i in range(1,len(E)):
pE+=[set(c) for c in it.combinations(E,i)]
T=[] # Topolojilerın listesi
for i in range(len(pE)+1):
for c in it.combinations(pE,i):
if isTopology(list(c),E):
c1=[set()]+list(c)+[E]
T.append(c1)
print(len(T),' : ',c1)
return T
# n elemanlı kümesi E=[1,n]
n=input("kumenin elemani sayısı : ")
try:# Hattaları!
n=int(n)
print("|n|={}".format(n))
except:
print("lütfen bir rakam gırın !")
# n elemanlı küme üzerınde topolojileri bul.
T=topologies(n)
print("\n %d elemanli küme topoloji sayisi = %d "%(n,len(T)))
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
"""
n= 2 için ;
Out :
kumenin elemani sayısı : 2
|n|=2
1 : [set(), {1, 2}]
2 : [set(), {1}, {1, 2}]
3 : [set(), {2}, {1, 2}]
4 : [set(), {1}, {2}, {1, 2}]
2 elemanli küme topoloji sayisi = 4
///////////////////////////////////////////////////////////////////
n = 3 için
Out :
kumenin elemani sayısı : 3
|n|=3
1 : [set(), {1, 2, 3}]
2 : [set(), {1}, {1, 2, 3}]
3 : [set(), {2}, {1, 2, 3}]
4 : [set(), {3}, {1, 2, 3}]
5 : [set(), {1, 2}, {1, 2, 3}]
6 : [set(), {1, 3}, {1, 2, 3}]
7 : [set(), {2, 3}, {1, 2, 3}]
8 : [set(), {1}, {1, 2}, {1, 2, 3}]
9 : [set(), {1}, {1, 3}, {1, 2, 3}]
10 : [set(), {1}, {2, 3}, {1, 2, 3}]
11 : [set(), {2}, {1, 2}, {1, 2, 3}]
12 : [set(), {2}, {1, 3}, {1, 2, 3}]
13 : [set(), {2}, {2, 3}, {1, 2, 3}]
14 : [set(), {3}, {1, 2}, {1, 2, 3}]
15 : [set(), {3}, {1, 3}, {1, 2, 3}]
16 : [set(), {3}, {2, 3}, {1, 2, 3}]
17 : [set(), {1}, {2}, {1, 2}, {1, 2, 3}]
18 : [set(), {1}, {3}, {1, 3}, {1, 2, 3}]
19 : [set(), {1}, {1, 2}, {1, 3}, {1, 2, 3}]
20 : [set(), {2}, {3}, {2, 3}, {1, 2, 3}]
21 : [set(), {2}, {1, 2}, {2, 3}, {1, 2, 3}]
22 : [set(), {3}, {1, 3}, {2, 3}, {1, 2, 3}]
23 : [set(), {1}, {2}, {1, 2}, {1, 3}, {1, 2, 3}]
24 : [set(), {1}, {2}, {1, 2}, {2, 3}, {1, 2, 3}]
25 : [set(), {1}, {3}, {1, 2}, {1, 3}, {1, 2, 3}]
26 : [set(), {1}, {3}, {1, 3}, {2, 3}, {1, 2, 3}]
27 : [set(), {2}, {3}, {1, 2}, {2, 3}, {1, 2, 3}]
28 : [set(), {2}, {3}, {1, 3}, {2, 3}, {1, 2, 3}]
29 : [set(), {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}]
3 elemanli küme topoloji sayisi = 29
//////////////////////////////////////////////////////////////////////
n=4 için :
Out:
kumenin elemani sayısı : 4
|n|=4
1 : [set(), {1, 2, 3, 4}]
2 : [set(), {1}, {1, 2, 3, 4}]
3 : [set(), {2}, {1, 2, 3, 4}]
4 : [set(), {3}, {1, 2, 3, 4}]
5 : [set(), {4}, {1, 2, 3, 4}]
6 : [set(), {1, 2}, {1, 2, 3, 4}]
7 : [set(), {1, 3}, {1, 2, 3, 4}]
8 : [set(), {1, 4}, {1, 2, 3, 4}]
9 : [set(), {2, 3}, {1, 2, 3, 4}]
10 : [set(), {2, 4}, {1, 2, 3, 4}]
11 : [set(), {3, 4}, {1, 2, 3, 4}]
12 : [set(), {1, 2, 3}, {1, 2, 3, 4}]
13 : [set(), {1, 2, 4}, {1, 2, 3, 4}]
14 : [set(), {1, 3, 4}, {1, 2, 3, 4}]
15 : [set(), {2, 3, 4}, {1, 2, 3, 4}]
16 : [set(), {1}, {1, 2}, {1, 2, 3, 4}]
17 : [set(), {1}, {1, 3}, {1, 2, 3, 4}]
18 : [set(), {1}, {1, 4}, {1, 2, 3, 4}]
19 : [set(), {1}, {1, 2, 3}, {1, 2, 3, 4}]
20 : [set(), {1}, {1, 2, 4}, {1, 2, 3, 4}]
21 : [set(), {1}, {1, 3, 4}, {1, 2, 3, 4}]
22 : [set(), {1}, {2, 3, 4}, {1, 2, 3, 4}]
23 : [set(), {2}, {1, 2}, {1, 2, 3, 4}]
24 : [set(), {2}, {2, 3}, {1, 2, 3, 4}]
25 : [set(), {2}, {2, 4}, {1, 2, 3, 4}]
26 : [set(), {2}, {1, 2, 3}, {1, 2, 3, 4}]
27 : [set(), {2}, {1, 2, 4}, {1, 2, 3, 4}]
28 : [set(), {2}, {1, 3, 4}, {1, 2, 3, 4}]
29 : [set(), {2}, {2, 3, 4}, {1, 2, 3, 4}]
30 : [set(), {3}, {1, 3}, {1, 2, 3, 4}]
31 : [set(), {3}, {2, 3}, {1, 2, 3, 4}]
32 : [set(), {3}, {3, 4}, {1, 2, 3, 4}]
33 : [set(), {3}, {1, 2, 3}, {1, 2, 3, 4}]
34 : [set(), {3}, {1, 2, 4}, {1, 2, 3, 4}]
35 : [set(), {3}, {1, 3, 4}, {1, 2, 3, 4}]
36 : [set(), {3}, {2, 3, 4}, {1, 2, 3, 4}]
37 : [set(), {4}, {1, 4}, {1, 2, 3, 4}]
38 : [set(), {4}, {2, 4}, {1, 2, 3, 4}]
39 : [set(), {4}, {3, 4}, {1, 2, 3, 4}]
40 : [set(), {4}, {1, 2, 3}, {1, 2, 3, 4}]
41 : [set(), {4}, {1, 2, 4}, {1, 2, 3, 4}]
42 : [set(), {4}, {1, 3, 4}, {1, 2, 3, 4}]
43 : [set(), {4}, {2, 3, 4}, {1, 2, 3, 4}]
44 : [set(), {1, 2}, {3, 4}, {1, 2, 3, 4}]
45 : [set(), {1, 2}, {1, 2, 3}, {1, 2, 3, 4}]
46 : [set(), {1, 2}, {1, 2, 4}, {1, 2, 3, 4}]
47 : [set(), {1, 3}, {2, 4}, {1, 2, 3, 4}]
48 : [set(), {1, 3}, {1, 2, 3}, {1, 2, 3, 4}]
49 : [set(), {1, 3}, {1, 3, 4}, {1, 2, 3, 4}]
50 : [set(), {1, 4}, {2, 3}, {1, 2, 3, 4}]
51 : [set(), {1, 4}, {1, 2, 4}, {1, 2, 3, 4}]
52 : [set(), {1, 4}, {1, 3, 4}, {1, 2, 3, 4}]
53 : [set(), {2, 3}, {1, 2, 3}, {1, 2, 3, 4}]
54 : [set(), {2, 3}, {2, 3, 4}, {1, 2, 3, 4}]
55 : [set(), {2, 4}, {1, 2, 4}, {1, 2, 3, 4}]
56 : [set(), {2, 4}, {2, 3, 4}, {1, 2, 3, 4}]
57 : [set(), {3, 4}, {1, 3, 4}, {1, 2, 3, 4}]
58 : [set(), {3, 4}, {2, 3, 4}, {1, 2, 3, 4}]
59 : [set(), {1}, {2}, {1, 2}, {1, 2, 3, 4}]
60 : [set(), {1}, {3}, {1, 3}, {1, 2, 3, 4}]
61 : [set(), {1}, {4}, {1, 4}, {1, 2, 3, 4}]
62 : [set(), {1}, {1, 2}, {1, 2, 3}, {1, 2, 3, 4}]
63 : [set(), {1}, {1, 2}, {1, 2, 4}, {1, 2, 3, 4}]
64 : [set(), {1}, {1, 2}, {1, 3, 4}, {1, 2, 3, 4}]
65 : [set(), {1}, {1, 3}, {1, 2, 3}, {1, 2, 3, 4}]
66 : [set(), {1}, {1, 3}, {1, 2, 4}, {1, 2, 3, 4}]
67 : [set(), {1}, {1, 3}, {1, 3, 4}, {1, 2, 3, 4}]
68 : [set(), {1}, {1, 4}, {1, 2, 3}, {1, 2, 3, 4}]
69 : [set(), {1}, {1, 4}, {1, 2, 4}, {1, 2, 3, 4}]
70 : [set(), {1}, {1, 4}, {1, 3, 4}, {1, 2, 3, 4}]
71 : [set(), {1}, {2, 3}, {1, 2, 3}, {1, 2, 3, 4}]
72 : [set(), {1}, {2, 4}, {1, 2, 4}, {1, 2, 3, 4}]
73 : [set(), {1}, {3, 4}, {1, 3, 4}, {1, 2, 3, 4}]
74 : [set(), {2}, {3}, {2, 3}, {1, 2, 3, 4}]
75 : [set(), {2}, {4}, {2, 4}, {1, 2, 3, 4}]
76 : [set(), {2}, {1, 2}, {1, 2, 3}, {1, 2, 3, 4}]
77 : [set(), {2}, {1, 2}, {1, 2, 4}, {1, 2, 3, 4}]
78 : [set(), {2}, {1, 2}, {2, 3, 4}, {1, 2, 3, 4}]
79 : [set(), {2}, {1, 3}, {1, 2, 3}, {1, 2, 3, 4}]
80 : [set(), {2}, {1, 4}, {1, 2, 4}, {1, 2, 3, 4}]
...........................................
.............................................
.................................................
4 elemanli küme topoloji sayisi = 355
"""