Spaces:
Sleeping
Sleeping
| title: GeneticWFM | |
| emoji: 𧬠| |
| colorFrom: indigo | |
| colorTo: green | |
| sdk: docker | |
| pinned: false | |
| short_description: Evolutionary AI solver for workforce management | |
| license: apache-2.0 | |
| # 𧬠AI Workforce Scheduler | |
| Questo progetto Γ¨ un prototipo avanzato per l'ottimizzazione della pianificazione dei turni di lavoro (**Workforce Management**) basato su **Algoritmi Genetici** e accelerato tramite **Numba**. Γ progettato specificamente per gestire scenari complessi nel settore **BPO (Business Process Outsourcing)**, garantendo la copertura del fabbisogno operativo e il rispetto dei vincoli di legge e contrattuali. | |
| ## π Caratteristiche Tecniche | |
| * **Motore Evolutivo ad Alte Prestazioni**: Utilizzo di **Numba (`njit`)** per la compilazione Just-In-Time e il calcolo parallelo della fitness, permettendo di gestire popolazioni numerose su centinaia di dipendenti in pochi secondi. | |
| * **Architettura Modulare**: Suddivisione netta tra motore genetico, modelli di dominio e logica di business per una facile scalabilitΓ . | |
| * **Gestione Vincoli Avanzata**: | |
| * Pause **VDT (Video Terminalista)** gestite dinamicamente tramite maschere di turno. | |
| * Rispetto del **Mix Settimanale** (Giorni Lavorati vs Riposi). | |
| * Gestione di vincoli **Hard** (Assenze, turni fissi) e **Soft** (Preferenze orarie). | |
| * **Vettorializzazione NumPy**: Tutta la logica di calcolo Γ¨ ottimizzata per operare su matrici, riducendo al minimo i cicli Python nel core dell'algoritmo. | |
| ## π Struttura del Progetto | |
| Il progetto Γ¨ organizzato secondo i principi della programmazione modulare: | |
| ``` | |
| . | |
| βββ app.py # UI & Sandbox Evolutiva (Streamlit) | |
| βββ src/ | |
| β βββ config.py # Manager degli Iperparametri (Cascade L0/L1/L2) | |
| β βββ config/ | |
| β β βββ engine_config.json # Parametri dell'Ambiente Evolutivo (L1) | |
| β βββ engine/ # Motore Evolutivo e Operatori Genetici | |
| β β βββ crossover.py # Ricombinazione Genica (Uniform Crossover vettorializzato) | |
| β β βββ evolution.py # Ciclo Generazionale (Main JIT Solver) | |
| β β βββ mutation.py # Perturbazione Stocastica (Mutazione Ibrida Day-Swap/Time-Shift) | |
| β β βββ selection.py # Pressione Selettiva (Tournament) e Funzione di Fitness (Loss) | |
| β βββ models/ | |
| β β βββ individual.py # Rappresentazione Cromosomica e mapping Genotipo/Fenotipo (VDT) | |
| β βββ problems/ | |
| β β βββ my_problem.py # Definizione dello Spazio di Ricerca e dei Vincoli Ambientali | |
| β βββ utils/ | |
| β βββ demand_processing.py # Allineamento dei Target di Fitness (Time-series sanitization) | |
| β βββ generator.py # Generatore di Ambienti di Simulazione (Mock Scenarios) | |
| β βββ health.py # Metriche di Dinamica Popolazionale (IBE, Distanza di Hamming) | |
| β βββ helpers.py # Utility di decodifica dei tratti e structural analysis | |
| β βββ hf_storage.py # Conservazione del Pool Genetico e I/O su HF Datasets | |
| β βββ visualization.py # Proiezione Fenotipica e rendering vettoriale dei risultati | |
| βββ Dockerfile # Containerizzazione per HF Spaces | |
| βββ requirements.txt # Dipendenze del progetto | |
| βββ README.md # Documentazione | |
| ``` | |
| ## π οΈ Installazione e Setup | |
| ### Prerequisiti | |
| * Python 3.10 o superiore. | |
| * Si consiglia l'uso di un ambiente virtuale (`venv`). | |
| ### Passaggi | |
| 1. **Clona il repository**: | |
| ```bash | |
| git clone <repository-url> | |
| cd workforce-scheduler | |
| ``` | |
| 2. **Configura l'ambiente**: | |
| ```bash | |
| python -m venv .venv | |
| source .venv/bin/activate # Su Windows: .venv\\Scripts\\activate | |
| pip install -r requirements.txt | |
| ``` | |
| ## π» ModalitΓ d'Uso | |
| ### Avvio Dashboard | |
| Per gestire le attivitΓ e avviare l'ottimizzazione tramite l'interfaccia web: | |
| ```bash | |
| streamlit run app.py | |
| ``` | |
| ## βοΈ Sistema di Configurazione | |
| L'algoritmo adotta una gerarchia di parametri a tre livelli: | |
| 1. **System Defaults**: Valori di sicurezza definiti nel codice. | |
| 2. **Engine Config** (`src/config/engine_config.json`): Parametri standard per il comportamento dell'algoritmo. | |
| 3. **Activity Config** (`data/activities/{nome}/activity_config.json`): Parametri specifici per la commessa, inclusi i **pesi della fitness**. | |
| ## π Visualizzazione Risultati | |
| L'applicazione genera automaticamente: | |
| * **Matrici di Copertura**: Grafici comparativi tra domanda e staff. | |
| * **Roster Visuale**: Tabellone dei turni settimanale. | |
| * **Report QualitΓ **: Analisi degli slot scoperti. | |
| ## π§ͺ Roadmap e Sviluppi Futuri | |
| * [ ] Integrazione di modelli di **Deep Learning** per la predizione della domanda. | |
| * [ ] Implementazione di strategie di mutazione basate su **Reinforcement Learning**. | |
| * [ ] Export dei roster in formato Excel/CSV. | |
| **Sviluppato come prototipo per soluzioni WFM avanzate.** |