📘 CodingMarble Learn

क्रांतिक पथ विश्लेषण (Critical Path Analysis)

बड़ा प्रोजेक्ट कई छोटे कामों (activities) से बनता है। कुछ काम दूसरों के ख़त्म होने का इंतज़ार करते हैं। इन्हें activity-on-node नेटवर्क में दिखाते हैं। आगे की गिनती (forward pass) से हर काम का सबसे जल्दी शुरू होने का समय (ES) मिलता है, पीछे की गिनती (backward pass) से सबसे देर से ख़त्म होने का समय (LF)। फ़्लोट = LS − ES बताता है कि काम कितना खिसक सकता है। जिन कामों का फ़्लोट 0 है, वे क्रांतिक पथ बनाते हैं — सबसे लंबा रास्ता, जो पूरे प्रोजेक्ट का कम-से-कम समय तय करता है। गैंट चार्ट नेटवर्क को समय-रेखा पर पट्टियों में बदलता है, और संसाधन हिस्टोग्राम बताता है कि हर दिन कितने मज़दूर चाहिए। फ़्लोट के अंदर काम खिसकाकर इसे समतल करना संसाधन समतलन (resource levelling) है।

🎬 कदम-दर-कदम कहानी

  1. प्रोजेक्ट कई छोटे कामों से बनता है। हर डिब्बा एक काम है, साथ में उसके दिन। तीर का मतलब: 'पहले इसे ख़त्म करो'।
  2. आगे की गिनती: बाएँ से दाएँ चलो। हर काम तभी शुरू होता है जब उससे पहले वाले सारे काम ख़त्म हों। आख़िरी अंत-समय = प्रोजेक्ट का समय: 13 दिन।
  3. पीछे की गिनती: 13 से दाएँ से बाएँ चलो। हर काम का सबसे देर से ख़त्म होने का समय = उसके बाद वाले कामों के LS में सबसे छोटा।
  4. फ़्लोट = LS − ES। जिन कामों का फ़्लोट 0 है, वे लाल हो जाते हैं। ये क्रांतिक पथ बनाते हैं: A → C → E → G।
  5. गैंट चार्ट: हर काम समय-रेखा पर एक पट्टी बन गया। हल्का हिस्सा उसका फ़्लोट है। नीचे की हरी पट्टियाँ बताती हैं हर दिन कितने मज़दूर चाहिए।
  6. खुद करो: काम D के दिन बदलो। देखो प्रोजेक्ट का समय और क्रांतिक पथ कैसे बदलते हैं।

टिप: 3D दृश्य को घुमाने के लिए खींचें। ज़ूम के लिए दो उंगलियाँ इस्तेमाल करें।

🤔 आम शंकाएँ और उनके जवाब

आगे की गिनती में सबसे बड़ा अंत-समय क्यों लेते हैं?

काम तब तक शुरू नहीं हो सकता जब तक उससे पहले के सभी काम ख़त्म न हों। जो सबसे आख़िर में ख़त्म हो, वही शुरू होने का समय तय करता है।

पीछे की गिनती में सबसे छोटा क्यों?

अगर कोई काम सबसे जल्दी ज़रूरी अगले काम के LS के बाद ख़त्म हुआ, तो वह अगला काम लेट हो जाएगा। इसलिए सबसे छोटा लेते हैं।

क्रांतिक और ग़ैर-क्रांतिक कामों का फ़्लोट अलग कैसे है?

क्रांतिक कामों का फ़्लोट 0 है (3D में लाल)। B, D, F जैसे कामों के पास 1 दिन का खाली समय है।

गैंट पट्टी का हल्का हिस्सा क्या बताता है?

वह फ़्लोट है: काम उतना दाईं ओर खिसक सकता है और प्रोजेक्ट लेट नहीं होगा।

क्या क्रांतिक पथ बदल सकता है?

हाँ। खुद करो वाले चरण में D लंबा करो। जब उसकी देरी फ़्लोट से ज़्यादा हो जाती है, A → D → F → G सबसे लंबा बन जाता है।

गतिविधि नेटवर्क और पूर्ववर्ती तालिका

प्रोजेक्ट को गतिविधियों (activities) में बाँटते हैं। हर गतिविधि की एक अवधि (duration) होती है। पूर्ववर्ती तालिका (precedence table) बताती है कि किस गतिविधि से पहले कौन-सी गतिविधियाँ पूरी होनी ज़रूरी हैं।

Activity-on-node नेटवर्क में हर गतिविधि एक डिब्बा (node) है। A से C तक तीर का मतलब: A ख़त्म होने से पहले C शुरू नहीं हो सकता। अक्सर एक Start और एक End node भी जोड़ते हैं।

दूसरे तरीके में गतिविधियाँ तीरों पर होती हैं (activity-on-arc); वहाँ कभी-कभी डमी (dummy) गतिविधि (बिंदुदार तीर, अवधि 0) लगानी पड़ती है। गणना वही रहती है।

उदाहरण तालिका

A(3) और B(4) का कोई पूर्ववर्ती नहीं। C(2) और D(4) को A चाहिए। E(6) को B और C चाहिए। F(3) को D चाहिए। G(2) को E और F चाहिए।

जल्दी और देर के समय: आगे और पीछे की गिनती

आगे की गिनती (forward pass): शुरुआती गतिविधि का ES = 0। EF = ES + अवधि। बाक़ी गतिविधियों का ES = उनके पूर्ववर्तियों के EF में सबसे बड़ा। क्यों? क्योंकि उसे सबसे धीमे काम का इंतज़ार करना पड़ता है।

सभी EF में सबसे बड़ा = प्रोजेक्ट पूरा होने का न्यूनतम समय।

पीछे की गिनती (backward pass): आख़िरी गतिविधि का LF = प्रोजेक्ट समय। LS = LF − अवधि। बाक़ी का LF = बाद वाली गतिविधियों के LS में सबसे छोटा। क्यों? ताकि सबसे जल्दी वाला अगला काम न रुके।

उदाहरण: E का ES = max(B का EF 4, C का EF 5) = 5। A का LF = min(C का LS 3, D का LS 4) = 3।

क्रांतिक पथ और फ़्लोट

कुल फ़्लोट (total float) = LS − ES (= LF − EF)। यह बताता है कि गतिविधि को पूरा प्रोजेक्ट लेट किए बिना कितना टाला जा सकता है।

फ़्लोट 0 वाली गतिविधि क्रांतिक (critical) है। शुरू से अंत तक क्रांतिक गतिविधियों की कड़ी क्रांतिक पथ है। यह नेटवर्क का सबसे लंबा रास्ता है, इसलिए इसकी लंबाई = प्रोजेक्ट का समय। एक से ज़्यादा क्रांतिक पथ भी हो सकते हैं।

कुछ पाठ्यक्रम स्वतंत्र फ़्लोट (independent float) और हस्तक्षेपी फ़्लोट (interfering float) = कुल फ़्लोट − स्वतंत्र फ़्लोट भी पढ़ाते हैं।

मॉडल में बदलाव का असर

क्रांतिक गतिविधि 2 दिन लंबी हो तो प्रोजेक्ट 2 दिन लंबा। ग़ैर-क्रांतिक गतिविधि अपने फ़्लोट जितनी या उससे कम लंबी हो तो कोई असर नहीं; फ़्लोट से ज़्यादा हो तो क्रांतिक पथ बदल जाता है। 3D में D का फ़्लोट 1 है: D 4 से 5 दिन हो तो फ़र्क़ नहीं, 6 दिन हो तो प्रोजेक्ट 14 दिन।

गैंट चार्ट, संसाधन हिस्टोग्राम और संसाधन समतलन

गैंट (cascade) चार्ट में हर गतिविधि समय-रेखा पर एक पट्टी है, जो अपने ES पर शुरू होती है। फ़्लोट हल्के रंग में आगे दिखाया जाता है। क्रांतिक गतिविधियों में यह हिस्सा नहीं होता।

संसाधन हिस्टोग्राम बताता है कि हर समय-अंतराल में कितने मज़दूर (या मशीनें) चाहिए। उस समय चल रही सभी गतिविधियों के मज़दूर जोड़ दो।

संसाधन समतलन (resource levelling): ग़ैर-क्रांतिक गतिविधियों को उनके फ़्लोट के अंदर खिसकाओ ताकि हिस्टोग्राम समतल हो, या उपलब्ध मज़दूरों से ऊपर न जाए। मज़दूर कम हों तो प्रोजेक्ट लंबा भी करना पड़ सकता है। मज़दूरों की निचली सीमा = (कुल मज़दूर-दिन) ÷ (प्रोजेक्ट समय), ऊपर की ओर पूर्णांक।

घर पर करो

परिवार के लिए चाय और पराठे बनाने की योजना बनाओ: काम (पानी उबालना, आटा गूँधना, पराठा सेंकना...), उनका समय और कौन पहले — लिखो। नेटवर्क बनाओ और क्रांतिक पथ ढूँढो। दो लोग मिलकर कितना जल्दी कर पाएँगे?

मुख्य सूत्र और परिभाषाएँ

हल किए गए उदाहरण

1. गतिविधियाँ: A(3), B(4) शुरुआती; C(2) और D(4) को A चाहिए; E(6) को B और C; F(3) को D; G(2) को E और F। हर गतिविधि का ES और प्रोजेक्ट समय निकालो।

A: ES 0, EF 3। B: ES 0, EF 4। C: ES 3, EF 5। D: ES 3, EF 7। E: ES = max(4, 5) = 5, EF 11। F: ES 7, EF 10। G: ES = max(11, 10) = 11, EF 13। प्रोजेक्ट समय = 13 दिन।

2. इसी प्रोजेक्ट की पीछे की गिनती करके हर गतिविधि का LS निकालो।

G: LF 13, LS 11। E: LF 11, LS 5। F: LF 11, LS 8। D: LF 8, LS 4। C: LF 5, LS 3। B: LF 5, LS 1। A: LF = min(3, 4) = 3, LS 0।

3. हर गतिविधि का कुल फ़्लोट और क्रांतिक पथ बताओ।

फ़्लोट = LS − ES: A 0, B 1, C 0, D 1, E 0, F 1, G 0। क्रांतिक पथ: A → C → E → G (3 + 2 + 6 + 2 = 13 दिन)।

4. D में 3 दिन की देरी हुई (अब 7 दिन)। नया प्रोजेक्ट समय?

D का फ़्लोट 1 है, तो 2 दिन आगे खिसकते हैं। पथ A → D → F → G = 3 + 7 + 3 + 2 = 15 दिन, जो 13 से लंबा है। नया समय 15 दिन, नया क्रांतिक पथ A → D → F → G।

5. मज़दूर: A 2, B 1, C 3, D 2, E 2, F 1, G 3। जल्दी वाले समय पर दिन 3 (3 से 4) में कितने मज़दूर चाहिए?

चल रहे काम: B (0–4), C (3–5), D (3–7)। मज़दूर = 1 + 3 + 2 = 6।

6. 13 दिन में पूरा करने के लिए मज़दूरों की निचली सीमा निकालो।

मज़दूर-दिन = 6 + 4 + 6 + 8 + 12 + 3 + 6 = 45। 45 ÷ 13 ≈ 3.46, इसलिए कम-से-कम 4 मज़दूर।

आम गलतियाँ

अभ्यास क्विज़

1. आगे की गिनती में, जिस गतिविधि के दो पूर्ववर्ती 6 और 9 पर ख़त्म होते हैं, उसका ES है:
2. कुल फ़्लोट है:
3. क्रांतिक पथ है:
4. एक क्रांतिक गतिविधि 2 दिन लेट हुई। प्रोजेक्ट:
5. फ़्लोट के अंदर गतिविधियाँ खिसकाकर मज़दूर-संख्या समतल करना कहलाता है:

अभ्यास: खुद जवाब दो

अपना जवाब लिखो या चुनो, फिर जाँचें दबाओ। अटको तो संकेत देखो; जवाब देने के बाद पूरा हल दिखेगा।

अक्सर पूछे जाने वाले प्रश्न

क्रांतिक पथ विश्लेषण क्या है?

प्रोजेक्ट की योजना बनाने का तरीका। यह कम-से-कम प्रोजेक्ट समय और वे काम बताता है जिन्हें टाला नहीं जा सकता (क्रांतिक पथ)।

क्रांतिक पथ कैसे निकालते हैं?

आगे की गिनती से जल्दी के समय, पीछे की गिनती से देर के समय निकालो, फिर फ़्लोट शून्य वाली गतिविधियों को शुरू से अंत तक जोड़ो।

संसाधन हिस्टोग्राम किस काम आता है?

यह हर समय-अंतराल में चाहिए मज़दूर दिखाता है, ताकि चरम पहचानकर ग़ैर-क्रांतिक कामों को फ़्लोट के अंदर खिसकाकर समतल किया जा सके।

यह कहाँ पढ़ाया जाता है

इंग्लैंडYear 12Optional application 3 Discrete (part 1)
इंग्लैंडYear 13Optional application 3 Discrete (part 2)

पहले यह पढ़ें

आगे पढ़ें

इससे जुड़े पाठ

सभी गणित पाठ