PRT का मतलब व्यक्तिगत रैपिड ट्रांजिट है। यह एक स्वचालित परिवहन है जो कंप्यूटर द्वारा नियंत्रित होता है और विशेष मार्गों के साथ आगे बढ़ता है। यहाँ अंग्रेज़ी और रूसी में विकिपीडिया के लिंक दिए गए हैं। लंदन में, हीथ्रो हवाई अड्डे पर, एक कार्यप्रणाली कुछ वर्षों से काम कर रही है। और जापानियों ने 70 के दशक में इस तरह के परिवहन को वापस बनाया, लेकिन फिर प्रतिबंध लगा दिया। जैसा कि सीवीएस (कंप्यूटर-नियंत्रित वाहन प्रणाली) परियोजना को बंद कर दिया गया था, जापान के क्षेत्र, बुनियादी ढांचे और परिवहन मंत्रालय ने कहा था कि यह प्रणाली असुरक्षित थी और मौजूदा न्यूनतम दूरी के नियमों का पालन नहीं करती थी। इसलिए, इस प्रकार के परिवहन को लागू करने के लिए, एक विशेष कानून को अपनाना आवश्यक होगा।
शुरू करने के लिए, मैं कहना चाहता हूं कि मैं पीआरटी परिवहन कैसे देखता हूं - यह एक सरल आविष्कार है जो आपको चौराहों और स्टेशनों पर बिना रुके गंतव्य स्टेशन तक पहुंचने की अनुमति देता है। मेरा मानना है कि पहियों को रबर होना चाहिए, जैसा कि लंदन संस्करण में, एक कार की तरह। लेकिन शक्ति बैटरी से नहीं होनी चाहिए, बल्कि संपर्क रेल से होनी चाहिए। और केबिन 4-सीटर नहीं होना चाहिए, लेकिन सिंगल और डबल (एक के बाद एक), जो संकीर्ण पथ बनाने के लिए संभव होगा।
यहाँ यह लिखा है कि PRT- ट्रांसपोर्ट कंट्रोल सिस्टम सिंक्रोनस, एसिंक्रोनस, ट्रांस-सिंक्रोनस, अर्ध-सिंक्रोनस और एसिंक्रोनस पॉइंट फॉलोअर हो सकता है। जैसा कि मैं इसे समझता हूं, जिस तरह से मैं पीआरटी परिवहन देखता हूं वह सिंक्रोनस कंट्रोल सिस्टम है। लेकिन मैं इसे इस तरह से देखता हूं: वाहन (वाहन) या उनकी अनुपस्थिति निर्धारित दूरी पर और निश्चित दूरी पर मार्गों के साथ सख्ती से चलती है। तो कहने के लिए, इलेक्ट्रॉनों और छेद, जब अर्धचालक उपकरणों के साथ तुलना की जाती है। बोर्डिंग करते समय, यात्री गंतव्य स्टेशन को इंगित करता है। केंद्रीय कंप्यूटर इस जानकारी को प्राप्त करता है, आंदोलन का मार्ग विकसित करता है और इसे वाहन को भेजता है।
कार्यक्रम को सरल बनाने के लिए, मान लें कि हमारे पास तीन स्टेशन A, B और C (चित्र देखें) हैं।

4 नियंत्रण बिंदु भी हैं: प्रवाह (बी 2, बी 4) और 2 कांटे (बी 1, बी 3) के 2 संगम बिंदु। यह भी मान लीजिए कि वाहन 60 किमी / घंटा की गति से चलते हैं, वाहन की नाक के बीच की दूरी 8.33 मीटर (60 / 3.6 / 2) है। फिर, 60 किमी / घंटा की गति से वर्गों में, वाहन प्रति सेकंड 2 बार ड्राइव करेंगे। और स्टेशन पर वाहन 10 किमी / घंटा की गति से चलते हैं, वाहन की नाक के बीच की दूरी 2.77 (10 / 3.6) मीटर है (वाहन प्रति सेकंड 1 बार यात्रा करेंगे)।
आइए एक कार्यक्रम लिखने की कोशिश करें जो पथ को परिभाषित करता है। चित्र में दिखाए गए सिस्टम के लिए, हमें दो सरणियों की आवश्यकता है, प्रत्येक मर्जिंग पॉइंट बी 2 और बी 4 के लिए एक सरणी, जो उनके माध्यम से गुजरने वाले वाहनों के बारे में जानकारी संग्रहीत करती है। सरणियों का आयाम 7200 = 60 * 60 * 2 (60 मिनट * 60 सेकंड * 2 गुना / सेकंड) होगा। सरणी निकटतम घंटे के लिए दिए गए विलय बिंदु से गुजरने वाले वाहनों के बारे में जानकारी संग्रहीत करेगी। यदि किसी निश्चित समय के लिए सरणी में 0 संग्रहीत किया जाता है, तो वह स्थान मुफ़्त है (यह एक छेद है)। यदि यह पल किसी वाहन द्वारा आरक्षित है, तो आप इस वाहन की संख्या को सरणी में संग्रहीत कर सकते हैं।
मैं जावास्क्रिप्ट में लिख रहा हूं, लेकिन मुझे लगता है कि सी में इसे करने में कोई समस्या नहीं है।
B2.length = 7200; B4.length = 7200; // for( i=0; i<7200; i++ ){ B2[i]=0; B4[i]=0; } // TaktovOtBDoB2 = 20;// 0,5 B2 TaktovOtADoB2 =200;// 0,5 A B2 TaktovOtBDoB4 = 20;// 0,5 B4 TaktovOtCDoB4 =200;// 0,5 C B4 // TekTakt: // if( startTakt + TekTakt + TaktovOtADoB2 > 7200 ) 7200: function nahodim_puti(S1,S2,NTC){//S1- , S2- , NTC- if(S1=='A' && S2=='C'){ // A startTakt=0; // , : . do{ startTakt++; T = startTakt + TekTakt + TaktovOtADoB2; if( T >= 7200 ) T = T - 7200; }while( B2[T] != 0 ) // () B2[T] = NTC; } if(S1=='B' && S2=='C'){// startTakt=0; // , : . do{ startTakt++; T = startTakt + TekTakt + TaktovOtBDoB2; if( T >= 7200 ) T = T - 7200; }while( B2[T] != 0 ) // () B2[T] = NTC; } if(S1=='C' && S2=='A'){// C A startTakt=0; // , : . do{ startTakt++; T = startTakt + TekTakt + TaktovOtCDoB4; if( T >= 7200 ) T = T - 7200; }while( B4[T] != 0 ) // () B4[T] = NTC; } if(S1=='B' && S2=='A'){// A startTakt=0; // , : . do{ startTakt++; T = startTakt + TekTakt + TaktovOtBDoB4; if( T >= 7200 ) T = T - 7200; }while( B4[T] != 0 ) // () B4[T] = NTC; } return startTakt; } setInterval( OpredeliaemTekTakt, 500 ); function OpredeliaemTekTakt()// TekTakt 1 , { B2[TekTakt]=0; B4[TekTakt]=0; TekTakt++; if(TekTakt==7200)TekTakt=0;}
यदि स्टेशन पर कई पार्किंग स्थल हैं, तो प्रत्येक पार्किंग स्थान के लिए मर्ज बिंदु जोड़े जाएंगे। फिर, वाहन शुरू होने के क्षण की गणना करने के लिए, पुनरावर्तन लागू किया जाना चाहिए।