"Coloro che non ricordano il passato sono condannati a ripeterlo", Programmazione Dinamica"
La Programmazione Dinamica è un metodo per risolvere problemi complessi spezzandoli in problemi più piccoli e più semplici. La risoluzione di questi sottoproblemi viene fatta soltanto una volta ed i loro risultati vengono salvati in una struttura dati in memoria (con un array, una matrice, etc.)
Ognuno di questi sottoproblemi è indicizzato in un qualche modo, tipicamente basandosi sui parametri di input, in modo da facilitarne il ritrovamento. Quindi, la prossima volta che lo stesso sottoproblema si ripresenta, invece di ricalcolarne la sua soluzione, si può facilmente ritrovarla nella struttura dati in memoria, risparmiando così tempo computazionale.
Ad esempio, la creazione di un albero filogenetico partendo dal DNA si può calcolare facilmente con la Programmazione Dinamica:
Clicca qui per una lista completa di problemi che possono essere risolti con la Programmazione Dinamica.
deep space computing AG è in grado di implementare soluzioni a problemi che possono essere risolti con la programmazione lineare. Usiamo GLPK (GNU Linear Programming Kit) per implementare le nostre soluzioni. Appena saranno disponibili Risolutori Lineari che gireranno su GPU, deep space computing sarà trai i primi ad offrirle ai propri clienti attraverso il Cluster di Calcolo.
Centro del modello è una funzione obiettivo espressa sopra una regione ammissibile. La funzione obiettivo è lineare ed è espressa coi coefficienti del vettore c .
La regione ammissibile è un politopo (poliedro in n dimensioni) convesso con la stessa dimensionalità di c , vincolata da un insieme di disequazioni che rappresentano il limite del modello. Altre equazioni lineari definiscono leggi di conservazione e stati correnti del sistema. Tutte le equazioni e disequazioni lineari sono espresse con la matrice A e il vettore b.
L'algoritmo di programmazione lineare chiamato CPLEX, originariamente sviluppato da IBM, trova un punto nel politopo dove la funzione obiettivo ha il suo valore massimo, se questo punto esiste.
Prima di lanciare l'algoritmo, è necessario convertire il problema nella sua forma aumentata. Questa forma introduce variabli delle variabili non negative "slack" per rimpiazzare le disequazioni con uguaglianze. Il problema si può allora riscrivere nella seguente forma matematica:
dove xs sono le variabli slack e Z è la variabile da massimizzare.
Qui un semplice esempio di un'ottimizzazione lineare scritta da deep space con GLPK per un problema di ottimizzazione di centrali idroelettriche:
deep space computing offre due servizi attorno al monitoring ambientale. Uno per controllare che l'ambiente vitale di una persona sia salutare e l'altro di domotica per automatizzare la casa.
Monitoring Ambientale
deep space computing può controllare elettrodomestici e spazi abitativi e verificare che i seguenti paramentri ambientali non presentino alcun pericolo per la salute degli esseri viventi che abitano un edificio.
Parametro Ambientale | Apparecchio di Misura | Unità | Zona accettabile | Controlli tipici |
Radioattività col contatore Geiger |
microsievert all'ora |
|
Salotto, Stanze, Soffitta, Cantina (Radon) |
|
Campo Elettrico |
Volt al Metro | 0-15 V/m | Forno a microonde, Fornelli a induzione, Schermo del computer, Televisione, Dormitorio, Linee e prese elettriche | |
Campo Magnetico | come sopra | microTesla | 0-5 microTesla | come sopra |
Immagini Termiche | Celsius | A seconda di spazio abitativo o scopo | Identificazione di perdite di calore in un edificio, Controllo dei componenti di apparecchi e macchine che lavorano in continuazione |
Automazione della Casa
deep space computing ha esperienza di domotica perché ha automatizzato la gestione del Cluster di Calcolo. Essa offre servizi di automazione avanzati per la casa col sistema Homematic.
deep space computing AG builds costruisce computers che supportano CUDA, un modello di programmazione inventato da Nvidia per la programmazione parallela.
Il software installato include:
- Keras con Google's Tensorflow 2.0 abilitato al Deep Learning
- GNU Linear Programming Kit per la Programmazione Lineare
- L'ultima versione di Ubuntu Linux o di Windows come sistema operativo
- I driver CUDA
La maggior parte dei computers nel Cluster di Calcolo possono essere definiti come Supercomputers CUDA, in quanto essi contengono più carte grafiche di ultima generazione.
Analisi, Ricostruzione e Simulazione di Orbite
deep space computing ha sviluppato un software per simulare le orbite planetarie portando del codice C++ del progetto ORSA di Pasquale Tricarico a codice Delphi. Nello screenshot sottostante è possibile vedere l'orbita irregolare di Iapeto attorno a Saturno. Più screenshots e dettagli sono disponibili sulla pagina del progetto.
Simulazione Climatica
deep space computing ha sviluppato un software per simulare il clima basato su di un articolo di Science in School. Nello screenshot sotto si vedono le ceneri del vulcano Eyjafjallajökull che si muovono verso l'Europa Centrale bloccandone il traffico aereo. Più screenshots e dettagli sono disponibili sulla pagina del progetto.
E in questo altro screenshot si vede un tentativo di modellare la produzione di CO2 sopra i paesi industriali e come il vento sparge la concentrazione di CO2 sul globo: