$config[ads_header] not found

O problemă comună de planificare

Cuprins:

Anonim

O problemă comună de planificare

Unul dintre cititorii mei fideli a scris, întrebându-mă cum voi rezolva o problemă comună de programare. Iată situația: un traseu care folosește un autobuz este programat să funcționeze la fiecare 60 de minute, dar, în funcție de ora zilei, traseul poate dura până la 70 de minute până la finalizare. Desigur, dacă un autobuz care este programat să funcționeze la fiecare 60 de minute durează de fapt 70 de minute, atunci autobuzul va întârzia întotdeauna și în cele din urmă va ajunge să lipsească o călătorie. Există patru modalități distincte prin care putem rezolva această problemă.

În general, această problemă demonstrează dificultățile pe care le au programatorii în programarea rutelor care nu rulează foarte des. Este ușor să alocați blocuri autobuzelor pe rutele care operează frecvent, deoarece există o mulțime de călătorii din care să alegeți. Este dificil să atribuiți blocuri autobuzelor pe rutele care nu funcționează foarte des, deoarece sunt foarte puține călătorii din care să alegeți. În unele cazuri, singurele alternative pot fi fie să încercați să stoarceți șoferul, fie să aveți o punere la dispoziție pentru o perioadă îndelungată de timp.

Această problemă este probabil să crească în viitor, pe măsură ce congestia și traficul crescute conspirează pentru a reduce viteza de funcționare a autobuzului. Soluțiile de programare care erau elegante în perfecțiunea lor în 1980, 1990 sau 2000 s-ar putea să nu mai funcționeze în 2011. Deși rutele care operează rar sunt adesea trecute cu vederea de personalul agenției din cauza conducerii lor obișnuite reduse (uneori sunt denumite „linii pierzatoare”), poate motivul pentru care au o conducere scăzută este faptul că suferă problema de programare la care se face referire. Aplicarea acestor principii de programare poate funcționa ca o versiune a unei rute de autobuz a hit-ului reality-show-ului „Cel mai mare pierzător”.

Adăugați un autobuz la Rută

Primul lucru pe care îl putem face pentru a remedia această problemă este să adăugăm un autobuz la rută. În exemplul discutat mai sus, dacă un autobuz durează 70 de minute pentru a completa o întoarcere, atunci un autobuz poate furniza o direcție de 70 de minute sau două autobuze pot furniza un avans de 35 de minute. Deși aceasta este cea mai ușoară soluție, este cea mai scumpă. Dacă costă 100 de dolari pe oră pentru a opera un autobuz și adăugăm un autobuz suplimentar pe această rută timp de opt ore pe zi, cheltuim un plus de 800 USD pe zi * 254 zile lucrătoare pe an = 200.000 USD + pe an pentru a rezolva o problemă de programare. Adăugăm servicii nu din cauza cererii, ci pentru că ruta nu poate fi parcursă în configurația sa actuală.

Îndepărtați stațiile de autobuz

Al doilea lucru pe care îl putem face pentru a remedia această problemă este eliminarea stațiilor de autobuz. Înlăturarea stațiilor de autobuz este singura modalitate reală de a crește viteza de funcționare a autobuzului (reîmprospătați-vă memoria despre modul în care am localizat stațiile de autobuz), deoarece se estimează că fiecare stație de autobuz unde se oprește autobuzul adaugă 30 de secunde la timpul de funcționare al autobuzului. Rutele care au o distanță medie de oprire mai mică de șase sute de metri sunt buni candidați pentru îndepărtarea opririi, deși fiți conștienți că eliminarea opririlor este uneori periculoasă din punct de vedere politic.

Schimbați traseul

Al doilea lucru pe care îl putem face este să schimbăm traseul în sine. Multe servicii de circulație care se pot confrunta cu această problemă de programare operează rutele minunate în jurul unui anumit cartier (mă gândesc la rutele DASH din Los Angeles aici). Îndreptarea rutelor nu numai că va scădea timpul necesar pentru a le finaliza, dar va duce, de asemenea, probabil la creșterea călăriei prin conectarea mai directă a destinațiilor (citiți primerul meu despre modul de proiectare a rutelor de autobuz).

Interconectează ruta cu o altă rută

Desigur, soluția de mai sus nu va funcționa cu o rută care operează deja într-o linie dreaptă care leagă două destinații și nu poate funcționa în niciun caz dacă ruta existentă este foarte eficientă pentru pasageri. În acest caz, cea mai bună soluție este probabil intercalarea. În interliniere, conectăm o rută de autobuz cu alta care împărtășește un terminal comun. Imaginează-ți două rute cu autobuzul, ambele funcționând la fiecare 60 de minute; una durează 70 de minute pentru a finaliza o tură (presupunem că este inclusă) și una durează 50 de minute pentru a completa o tură. În mod separat, cel care durează 70 de minute va întârzia în mod constant și, în cele din urmă, va rata o călătorie, iar celălalt va avea o cantitate excesivă de disponibilitate. Împreună, funcționează perfect. Pentru a se conecta la funcționare, cele două rute trebuie să partajeze un terminal comun, să funcționeze pe același pas, iar una trebuie să aibă nevoie de timp de rulare suplimentar, în timp ce cealaltă are timp de dispunere inutil.

Per total

În general, este dificil să programați autobuzele atunci când pasul dorit nu se potrivește cu timpul de funcționare. Cu toate acestea, utilizarea eficientă a uneia sau a mai multor din cele patru tehnici de mai sus va merge mult până la ameliorarea acestei probleme.

O problemă comună de planificare