Кількість циклів у графіку


9

Скільки циклів Ck (k3) є в а n вершинна графіка така, що на графіку немає жодного циклу Cm (m>k).

Наприклад n=5, k=3, тоді графік матиме максимум два C3так, що G не матиме жодної Ck(k>3).

Я думаю, що є O(n) цикли будуть там задовольняти вищевказаним умовам.

Може хтось мені допоможе.


2
Ви говорите про цикли, викликані вершиною? неперервні цикли?
Ігор Шинкар

1
Відповідь може залежати від паритету mk. Наприклад, розгляньте збалансований вибух 5-ти циклу. Цей графік не містить 6 циклів, але він міститьΘ(n5)індуковані 5-цикли.
Ігор Шинкар

5
@IgorShinkar Я читав питання як "яка максимальна кількість k-цикли в n-верхня графіка, яка не має m-цикл для будь-якого m>k?" тому mце не параметр, він універсально оцінений
Сашо Ніколов

Я припускаю, що ви говорите про індуковані цикли (дірки). Якщо ви хочете мінімальну кількість, це, безумовно, 0, порожній графік. Якщо ви хочете максимальну кількість, це n ^ 3 для k = 3 (розгляньте повний графік).
Ісін Као

@YixinCao Для k = 3, якщо ви вважаєте повний графік з вершинами 'n', то у нас буде цикл, довжина якого більше 3. Я шукаю максимальне число циклів довжини k у графі, таким, що граф не повинен містити будь-який цикл довжиною більше k
Кумар

Відповіді:


5

Це не так O(n) хіба що k=3. Дляk навіть, максимальна тривалість циклу в повному двопартійному графіку Kn,k/2 є k, і кількість довжини-k циклів є (k21)!nk/2=Θ(nk/2). Наприклад,K2,n має квадратичне число 4-циклів, але немає циклів довше 4.

З іншого боку, для будь-якої постійної пов'язаної k на тривалість найдовшого циклу дійсно є кількість трикутників O(n). Ось швидкий доказ: у першому глибинному дереві пошуку кожен край переходить від нижньої його двох кінцевих точок до максимум предкаk1 кроки назад, тому будь-який листок дерева має максимум ступеня k1і належить максимум трикутників. Тепер видаліть листочок і індукуйте.(k12)


так, ви маєте рацію :)
virgi

1

Я написав коротку програму чілінго для перевірки малих значень (вона може швидко обробляти графіки до 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.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.