Timetable Weaver - Utilitar - București - Lucrari 2025 Nationala

Informatii generale

Descriere

Timetable Weaver reprezintă o soluție software de înaltă performanță dedicată instituțiilor de învățământ, concepută pentru automatizarea și optimizarea procesului complex de generare a orarelor.

Această aplicație inovatoare implementează algoritmi avansați de optimizare combinatorială pentru a elabora orare școlare care respectă toate constrângerile impuse, oferind astfel o soluție elegantă și eficientă pentru o problemă de planificare deosebit de complexă.

Tehnologii

TEHNOLOGII:
Pentru acest proiect, au fost utilizate mai multe tehnologii:
• React – permite crearea de aplicații web interactive prin utilizarea componentelor reutilizabile. Facilitează gestionarea stării aplicației și actualizarea eficientă a DOM-ului.
• TypeScript – adaugă tipuri statice la JavaScript, ceea ce ajută la prevenirea erorilor. Face codul mai ușor de întreținut și de înțeles, mai ales în proiecte mari.
• Tailwind CSS – permite stilizarea rapidă a componentelor prin clase utilitare. Încurajează un design consistent și facilitează personalizarea stilurilor fără a scrie CSS personalizat.
• Vite – oferă un mediu de dezvoltare rapid, cu un timp de încărcare redus. Permite un flux de lucru eficient și îmbunătățește experiența de dezvoltare prin reîncărcare rapidă a paginii.

ALGORITMUL DE GENERARE:
Algoritmul folosește o combinație de algoritmi genetici și tehnica de simulated annealing pentru a genera orare optime, ținând cont de constrângeri stricte și flexibile.

  1. Algoritmul genetic 1+1
    Este o variantă simplificată, în care se lucrează cu o singură soluție (sau individ) la fiecare iterație, care este apoi modificată pentru a genera o nouă soluție.

Etape:
• Inițializare: se alege o soluție inițială validă, respectând constrângerile stricte.

La fiecare iterație:
• Se generează o nouă soluție prin mutație (de exemplu, schimbarea orei unei lecții sau a unui profesor).
• Se evaluează noua soluție pentru a verifica respectarea constrângerilor (stricte și flexibile).

Selecție:
• Dacă noua soluție este mai bună (mai optimă) decât cea curentă, aceasta o înlocuiește.
• Dacă nu, soluția curentă rămâne neschimbată.
• Terminare: procesul continuă pentru un număr definit de iterații sau până când nu se mai observă îmbunătățiri semnificative.

  1. Tehnica de simulated annealing
    Principiu de bază:
    Simulated annealing se inspiră din procesul de răcire a metalelor. Scopul este evitarea blocării în soluții locale suboptime, prin acceptarea temporară a unor soluții mai slabe.

Etape:
• Start la temperatură înaltă: se pornește cu o soluție aleatoare și o temperatură ridicată, care permite acceptarea soluțiilor mai slabe.
• Răcire treptată: temperatura scade progresiv, reducând probabilitatea de a accepta soluții mai slabe.
• Evaluare și acceptare: la fiecare pas, se evaluează o nouă soluție. Dacă este mai bună, se acceptă. Dacă este mai slabă, poate fi acceptată cu o probabilitate care scade odată cu temperatura.

  1. Integrarea celor două metode
    Algoritmul începe cu o populație generată aleatoriu, aplicând inițial metodele algoritmului genetic. Ulterior, se integrează tehnica de simulated annealing, adaptând soluțiile pe baza evaluării continue a calității acestora. Astfel, se asigură respectarea constrângerilor stricte și optimizarea celor flexibile.

Cerinte sistem

WINDOWS:
Sistem de operare: Windows 10 / Windows 11
Procesor: Intel Pentium 4
RAM: 4 GB
Conexiune la internet

macOS:
Sistem de operare: macOS 11 (Big Sur)
Procesor: Intel sau Apple Silicon (M1, M2 etc.)
RAM: 4 GB
Conexiune la internet

LINUX:
Distribuție: Orice distributie pe care se poate instala Google Chrome sau Chromium
RAM: 4 GB
Conexiune la internet

Realizatori

Răzvan-Tudor Lungu

  • Scoala: Colegiul National “I.L. Caragiale”
  • Clasa: 10
  • Judet: București
  • Oras: București

Matei Stefan Costan

  • Scoala: Colegiul National Ion Luca Caragiale Bucuresti
  • Clasa: 10
  • Judet: București
  • Oras: Bucureşti

Screenshots