Spaces:
Sleeping
Sleeping
metadata
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
Clona il repository:
git clone <repository-url> cd workforce-schedulerConfigura l'ambiente:
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:
streamlit run app.py
βοΈ Sistema di Configurazione
L'algoritmo adotta una gerarchia di parametri a tre livelli:
- System Defaults: Valori di sicurezza definiti nel codice.
- Engine Config (
src/config/engine_config.json): Parametri standard per il comportamento dell'algoritmo. - 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.