Informatii generale
- Categorie: Utilitar
- Judetul: București
- Surse: GitHub - matei212/timetable-weaver
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.
- 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.
- 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.
- 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


