Сколько циклов есть в граф вершин такой, что у графа нет цикла ,
Например , тогда граф будет иметь не более двух так что не будет иметь
Я думаю, что есть там будут циклы, удовлетворяющие вышеуказанным условиям.
Кто-нибудь может мне помочь.
Сколько циклов есть в граф вершин такой, что у графа нет цикла ,
Например , тогда граф будет иметь не более двух так что не будет иметь
Я думаю, что есть там будут циклы, удовлетворяющие вышеуказанным условиям.
Кто-нибудь может мне помочь.
Ответы:
Не то если , За четная максимальная длина цикла в полном двудольном графе является и количество длин циклы , Например, имеет квадратичное число 4-циклов, но не более 4 циклов.
С другой стороны, для любой постоянной границы на длине самого длинного цикла число треугольников действительно , Вот быстрое доказательство: в первом глубинном дереве поиска каждое ребро проходит от нижней его двух конечных точек до предка не более отступает, поэтому любой лист дерева имеет максимальную степень и принадлежит не более треугольники. Теперь удалите лист и введите.
Я написал короткую программу-клинго для проверки малых значений (она может быстро обрабатывать графики до 7 вершин. Кроме того, заземление может занять довольно много времени):
Я получил этот стол
n (vertices)
3 4 5 6 7
3 1 1 2 2 3
4 3 3 6 10
k (cycle length) 5 12 12 12
6 60 60
7 360
Вот программа:
num(1..n).
is_sym_order(empty,0).
ncontains(empty,K) :- num(K).
is_sym_order(cons(K,empty),1) :- num(K).
last(cons(K,empty), K) :- num(K).
is_sym_order(cons(K,S),M+1) :- is_sym_order(S,M), ncontains(S,K), last(S,L), K > L.
ncontains(cons(K,S), J) :- J != K, ncontains(S,J), is_sym_order(cons(K,S),_).
last(cons(K,S), L) :- last(S,L), is_sym_order(cons(K,S),_).
sec_last(cons(A,S),A) :- is_sym_order(cons(A,S),2).
sec_last(cons(K,S), SL) :- sec_last(S,SL), is_sym_order(cons(K,S),_).
is_sub_order(cons(A,S), M) :- A > SL, sec_last(S,SL), is_sym_order(cons(A,S), M).
vertex(1..n).
{is_edge(V,W)} :- vertex(V), vertex(W), V < W.
sym_edge(V,W;W,V) :- is_edge(V,W).
is_path(cons(V,empty)) :- vertex(V).
is_path(cons(A,cons(B,S))) :- is_path(cons(B,S)), sym_edge(A,B), is_sym_order(cons(A,cons(B,S)),_).
is_cycle(cons(A,S)) :- is_path(cons(A,S)), is_edge(V,A), last(S,V), is_sub_order(cons(A,S),M), M >= k.
:- is_cycle(S), is_sub_order(S,M), M > k.
prim_cycle(S) :- is_cycle(S), is_sub_order(S,k).
:~ not is_cycle(S), is_sub_order(S,k).[1,S]
num_cycs(C) :- C = #count{is_cycle(S):is_cycle(S)}.
#show is_edge/2.
#show num_cycs/1.
#show prim_cycle/1.