कितने चक्र एक में देखते हैं शिखर ग्राफ ऐसी है कि किसी भी ग्राफ चक्र नहीं है ।
उदाहरण के लिए , , तब ग्राफ में अधिकतम दो होंगे ताकि में कोई
मैं सोच रहा हूं कि चक्र हैं, क्या उपरोक्त शर्तों को पूरा करना संतोषजनक होगा।
क्या कोई मेरी मदद कर सकता है।
कितने चक्र एक में देखते हैं शिखर ग्राफ ऐसी है कि किसी भी ग्राफ चक्र नहीं है ।
उदाहरण के लिए , , तब ग्राफ में अधिकतम दो होंगे ताकि में कोई
मैं सोच रहा हूं कि चक्र हैं, क्या उपरोक्त शर्तों को पूरा करना संतोषजनक होगा।
क्या कोई मेरी मदद कर सकता है।
जवाबों:
यह नहीं है जब तक कि । के लिए भी, द्विपक्षीय ग्राफ की पूरी में एक चक्र की अधिकतम लंबाई है , और length- की संख्या चक्र है । उदाहरण के लिए, में 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.