गतिविधि नेटवर्क और पूर्ववर्ती तालिका
प्रोजेक्ट को गतिविधियों (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): ग़ैर-क्रांतिक गतिविधियों को उनके फ़्लोट के अंदर खिसकाओ ताकि हिस्टोग्राम समतल हो, या उपलब्ध मज़दूरों से ऊपर न जाए। मज़दूर कम हों तो प्रोजेक्ट लंबा भी करना पड़ सकता है। मज़दूरों की निचली सीमा = (कुल मज़दूर-दिन) ÷ (प्रोजेक्ट समय), ऊपर की ओर पूर्णांक।
घर पर करो
परिवार के लिए चाय और पराठे बनाने की योजना बनाओ: काम (पानी उबालना, आटा गूँधना, पराठा सेंकना...), उनका समय और कौन पहले — लिखो। नेटवर्क बनाओ और क्रांतिक पथ ढूँढो। दो लोग मिलकर कितना जल्दी कर पाएँगे?
मुख्य सूत्र और परिभाषाएँ
- EF = ES + अवधि; किसी गतिविधि का ES = पूर्ववर्तियों के EF में सबसे बड़ा (MAX)।
- LS = LF − अवधि; किसी गतिविधि का LF = अनुवर्तियों के LS में सबसे छोटा (MIN)।
- कुल फ़्लोट = LS − ES = LF − EF। क्रांतिक गतिविधि ⇔ फ़्लोट = 0।
- प्रोजेक्ट समय = क्रांतिक (सबसे लंबे) पथ की लंबाई।
- मज़दूरों की निचली सीमा = ⌈ कुल मज़दूर-दिन ÷ प्रोजेक्ट समय ⌉।
हल किए गए उदाहरण
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 मज़दूर।
आम गलतियाँ
- आगे की गिनती में सबसे छोटा EF लेना। गतिविधि को सभी पूर्ववर्तियों का इंतज़ार करना है, इसलिए सबसे बड़ा लो।
- पीछे की गिनती में सबसे बड़ा LS लेना। सबसे छोटा लो, वरना कोई अगला काम लेट होगा।
- क्रांतिक पथ को सबसे छोटा रास्ता समझना। यह सबसे लंबा रास्ता है, इसीलिए प्रोजेक्ट का समय तय करता है।
- ग़ैर-क्रांतिक गतिविधि को फ़्लोट से ज़्यादा टालकर सोचना कि प्रोजेक्ट समय नहीं बदलेगा।