ESEMPI INTERATTIVI
In questa pagina presentiamo una raccolta di demo interattive pensate per illustrare
l’impiego di algoritmi avanzati in contesti specifici.
Gli esempi includono soluzioni per problemi combinatori basati su riconoscimento entità, simulazioni
di apprendimento tramite reti neurali,
e sistemi evolutivi.
Ogni applicazione è fruibile via web browser e serve a dimostrare l'efficacia delle nostre
tecnologie software, supportando un approccio multi-target che include non solo il web, ma anche dispositivi mobili, totem interattivi e soluzioni embedded.

Definizione del problema
-
Il motore di particelle gestisce fino a 3000 elementi microscopici soggetti a gravità, collisioni e interazioni dinamiche. Queste particelle cadono su una scritta, rivelandone progressivamente il profilo.
L’obiettivo è creare un effetto visivo realistico e coinvolgente che combini estetica e simulazione fisica.
Regole del sistema
- Ogni particella è soggetta a una forza gravitazionale costante che la spinge verso il basso.
- Le particelle interagiscono tra loro attraverso collisioni elastiche, evitando sovrapposizioni e distribuendosi naturalmente sulla superficie.
- La scritta funge da ostacolo solido: le particelle si fermano, scivolano o rimbalzano seguendo la sua forma.
- La dissipazione dell’energia e l’attrito simulato permettono alle particelle di stabilizzarsi progressivamente, formando un “effetto cascata” .
Implementazione dell'algoritmo
- La simulazione aggiorna in tempo reale posizione, velocità e accelerazione di ciascuna delle migliaia di particelle.
- Per il rilevamento delle collisioni si utilizza una griglia spaziale, garantendo performance fluide anche al massimo carico.
Applicazioni reali
- Visualizzazione dati finanziari: particelle che rappresentano transazioni, animate in base a volume o valore, per offrire una panoramica dinamica del mercato.
- Monitoraggio reti IoT: particelle che indicano lo stato dei nodi, cambiando colore o intensità in base a parametri come temperatura, segnale o attività, facilitando l’individuazione di anomalie.
- Simulazioni scientifiche o ingegneristiche: utilizzo del motore di particelle per visualizzare flussi complessi come il movimento di fluidi o la propagazione di onde.
- Giochi e simulazioni: per ambientazioni con pioggia di particelle e fluidi.
- Interfacce utente avanzate: per feedback visivi o elementi di gamification su pagine web.

Utilizzare il bottone "Ricrea grafo" per ricominciare.
Trascinare i punti per cambiarne la disposizione
Utilizzare il bottone "Ferma auto regolazione" per interrompere la funzionalità di disposizione automaticamente.
Definizione del problema
-
ForceAtlas2 è un algoritmo di layout per grafi che trasforma automaticamente
la struttura di una rete in una disposizione bidimensionale leggibile e
intuitiva.
L’obiettivo principale è mettere in evidenza comunità, nodi centrali e relazioni chiave, minimizzando sovrapposizioni e dispersione dei punti.
Regole del sistema
- I nodi si respingono tra loro come cariche elettriche, in proporzione inversa alla distanza.
- Gli archi si comportano da molle, applicando forze attrattive lungo le connessioni (legge di Hooke).
- Una gravità globale impedisce ai nodi periferici di allontanarsi eccessivamente dal centro.
- Ogni nodo può avere peso e dimensione variabili, influenzando l’intensità delle forze locali.
Implementazione dell'algoritmo
- ForceAtlas2 simula un sistema fisico iterativo dove nodi e archi interagiscono come cariche e molle. Ad ogni passo, i nodi si spostano in base alla somma delle forze subite.
- Per grafi di grandi dimensioni, viene usata l’ottimizzazione Barnes‑Hut, che riduce i tempi di calcolo. L’algoritmo è parallelizzato e disponibile anche in JavaScript/WebAssembly per usi web interattivi.
Applicazioni reali
- Reti sociali: per visualizzare connessioni tra utenti e scoprire comunità.
- Investigazioni: mappare relazioni tra persone, gruppi e eventi.
- Grafi semantici e knowledge graph: rappresentare concetti ed entità.
- Manifattura e Industria 4.0: tracciare flussi produttivi e macchinari interconnessi.
- Sanità e pubblica amministrazione: analizzare reti tra strutture e reparti.
- Marketing e business: visualizzare legami tra clienti, prodotti e fornitori.

Selezionare un tipo di algoritmo da utilizzare
Utilizzare il bottone "Cicla i test" per ciclare tra i vari algoritmi disponibili
Utilizzare il bottone "Reset" per ricominciare.
Definizione del problema
- L'obiettivo principale è quello di allocare un insieme di oggetti di diverse dimensioni all'interno di un numero minimo di contenitori (chiamati "bin") in modo efficiente.
Regole del sistema
- La dimensione del contenitore rettangolare è fissa.
- Gli oggetti rettangolari hanno dimensioni variabili possono essere ruotati di 90° (oggetti con *).
- L'obiettivo è minimizzare il numero di contenitori utilizzati.
Implementazione dell'algoritmo
- Sono stati implementati 6 tipi di algoritmi euristici per ottenere soluzioni approssimate ottimali o quasi ottimali in tempi accettabili.
- L'algoritmo "RMax" risulta il più efficiente.
Applicazioni reali
- Logistica e trasporti per ottimizzare il carico di camion, container o altri mezzi di trasporto.
- Settore IT per la creazione di backup di file nei supporti.
- Processi produttivi per organizzare le fasi di produzione in modo da massimizzare l'efficienza e ridurre gli sprechi di materiale.
- Imballaggio e spedizioni per organizzare al meglio gli oggetti da spedire all'interno di scatole o pacchi.
- Mappatura tecnologica nella progettazione di chip semiconduttori.

Utilizzare il bottone "Riavvia" per rigenerare un nuovo percorso.
Definizione del problema
- L'obiettivo principale è quello di ridurre il costo totale del percorso e il tempo impiegato per visitare tutte le città, garantendo che ogni città venga visitata solo una volta.
Regole del sistema
- Le città vengono caricate dalla lista delle città italiane (circa 16k).
- Viene estratto un campione di 100 città.
- Ogni tratta viene espressa con un peso che rappresenta la distanza geografica tra i 2 punti.
Implementazione dell'algoritmo
- E' stato implementato un algoritmo euristico per garantire una buona efficienza su una grande mole di dati.
- Viene iterato 5 volte il ciclo di ottimizzazione per identificare la soluzione migliore.
Applicazioni reali
- Copertura geografica delle flotte per assistenze e cantieri.
- Pianificazione degli itinerari per le consegne.
- Progettazione di circuiti elettronici.
- Programmazione della produzione e nella logistica.
- Identificazione del percorso per la programmazione di un robot.
- Tutti i problemi di ottimizzazione nella teoria dei grafi.

Inserire un testo personalizzato o premere il bottone
"Sommario casuale da Wikipedia".
Utilizzare il bottone "Calcola NER" per valutare il testo inserito.
Definizione del problema
- Estrarre una lista di entità (nominate) da frasi espresse in linguaggio naturale per poterle analizzare e classificare in base ai loro attributi.
- Gli attributi possono essere:
- PER: persone, anche di fantasi.
- NORP: nazionalità o gruppi religiosi o politici
- ORG: aziende, agenzie, istituzioni, ecc
- GPE: Paesi, città, stati
- LOC: località non GPE, catene montuose, specchi d'acqua
- DATE: date o periodi assoluti o relativi
- MONEY: valori monetari, inclusa l'unità
- FAC: edifici, aeroporti, autostrade, ponti, ecc.
- PRODUCT: oggetti, veicoli, alimenti, ecc. (non servizi.)
- EVENT: uragani nominati, battaglie, guerre, eventi sportivi, ecc.
- WORK_OF_ART: titoli di libri, canzoni, ecc.
- LAW: documenti nominativi trasformati in leggi
- LANGUAGE: qualsiasi lingua denominata
- TIME: tempi inferiori a un giorno
- PERCENT: percentuale, incluso "%"
- QUANTITY: misure, in base al peso o alla distanza
- ORDINAL: "primo", "secondo", ecc.
- CARDINAL: numeri che non rientrano in un altro tipo
- MISC: altro nome
Regole del sistema
- Il testo è espresso in linguaggio naturale.
- Il testo può essere scritto in italiano.
Implementazione dell'intelligenza artificiale
- E' stato utilizzato un approccio ibrido.
- La soluzione implementa 2 strati diversi tra Machine Learning classico e Deep Learning
- In base alla bontà dei risultati ottenuti viene generato il risultato finale.
Applicazioni reali
- Classificazione del testo per analisi statistica.
- Creazione di una knowledge base condivisa.
- Suggerimenti e collegamenti tra entità.
- Riconoscimento di oggetti per la classificazione semantica.

Utilizzare la manopola per modificare il numero di neuroni del livello nascosto.
Utilizzare il bottone "Avanti turno" per eseguire una singola partita.
Definizione del problema
- Ottenere la migliore percentuale di vittoria e migliorarla nel tempo.
Regole del sistema
- Il giocatore gioca con una carta casuale, se il giocatore ha più di 21 punti, il giocatore perde.
- Il Banco - Sta sul soft 17 - Nessun apprendimento implementato.
- Giocatore - apprende automaticamente in base alla rete neurale.
Implementazione dell'intelligenza artificiale
- Il giocatore è controllato da una Feedforward neural network.
- In caso di valore >0,5 [richiede carta], diversamente [si ferma].
- il numero di neuroni di ingresso è 38 - Punteggio del giocatore (da 2 a 20) e il punteggio del banco (da 2 a 20).
- Il numero di neuroni nascosti è 6(5 + 1 parziale).
- L'uscita della rete neurale determina se fermarsi o richiedere la carta.
Applicazioni reali
- Approvvigionamento di magazzino, sottoscorta e rottura di stock. Individuazione e previsione degli articoli che più facilmente vanno in esaurimento.
- Riconoscimento e correlazione delle immagini.
- Problemi di NLP (Natural Language Processing o Elaborazione del Linguaggio Naturale) per comprendere, predire e valutare il testo e le parole. Ricerca e similarità semantica per valutare e proporre correlazioni e suggerimenti tra parole e testi.

Utilizzare il campo di modifica testo per sostituire la stringa obiettivo.
Utilizzare il bottone "Epidemia" per limitare il numero dei minions.
Definizione del problema
- Ottenere il "miglior" esemplare della specie con risorse limitate.
- E' necessario utilizzare una funzione di verifica dell' "Obiettivo".
- In questo caso l'obiettivo è quello di ottenere la stringa specificata: "Cocce"
Regole del sistema
- Gli individui della popolazione si evolvono autonomamente.
- Il risorsa primaria "Cibo" è limitata.
- Rimangono in vita gli esemplari che possono usufruire della risorsa primaria.
- Esiste una durata massima della vita dell'individuo.
Implementazione dell'intelligenza artificiale
- Il sistema implementa un algoritmo genetico.
- Gli esemplari al contatto con altri si riproducono fondendo e combinando il loro DNA.
- Gli individui si muovono casualmente all'interno dell'area definita.
- Gli individui più forti rimangono in vita.
- Per garantire l'evoluzione viene effettuata una mutazione casuale.
Applicazioni reali
- Analisi e mappatura di ampie aree geografiche.
- Ottimizzazione spaziale di percorsi.
- In tutti i problemi in cui è possibile quantificare il valore di una soluzione; un algoritmo genetico infatti può eseguire una ricerca diretta all'interno dello spazio della soluzione.

Definizione del problema
- Ottenere un sistema di guida autonoma mediante l'apprendimento automatico dell'intelligenza del sistema di guida.
Regole del sistema
- Il percorso è fisso e viene prestabilito.
- L'auto deve percorrere il percorso senza toccare pareti o altri ostacoli.
Implementazione dell'intelligenza artificiale
- Le auto sono guidate da una Feedforward neural network.
- I pesi della rete vengono addestrati utilizzando un algoritmo genetico.
- Un'auto ha cinque sensori frontali che misurano la distanza dagli ostacoli in una determinata direzione.
- Le letture di questi sensori servono come input della rete neurale dell'auto.
- L'uscita della rete neurale determina la forza del motore e di svolta.
Applicazioni reali
- Sistemi di guida autonoma.
- Mappatura e selezione del miglior percorso.
- Robot taglia erba e pulizie.
- Taratura automatica sensori.