"Diejenigen, die die Vergangenheit vergessen, sind gezwungen sie zu wiederholen", Dynamische Programmierung
Die Dynamische Programmierung ist eine Methode, um ein komplexes Problem zu lösen, bei der dieses Problem in kleinere einfachere Unterprobleme aufgeteilt wird. Die Lösung dieser Unterprobleme wird nur einmal berechnet und sie wird in einer speziellen Datenstruktur im Hauptspeicher aufbewahrt (Array, Matrix, usw).
Jede Lösung dieser Unterprobleme ist indexiert in einer gewissen Weise, typischerweise über die Input-Werte des Problems, so dass das Wiederauffinden der Lösung einfach geschieht. Das nächste Mal, dass das Unterproblem wieder auftaucht, anstatt dass man die Lösung nochmals berechnet, wird sie einfach aus der Datenstruktur wieder geholt. So wird Rechenzeit gespart.
Zum Beispiel, die Erzeugung eines phylogenetischen Baums, einmal dass das DNA bekannt ist, kann einfach mit dynamischer Programmierung gemacht werden:
Klicke hier, um eine vollständige Liste der Probleme zu sehen, die mit dynamischer Programmierung gelöst werden können.
deep space computing AG ist in der Lage Probleme mit linearer Programmierung zu lösen. Wir verwenden GLPK (GNU Linear Programming Kit), um unsere Lösungen zu implementieren. Sobald lineare Löser, die auf GPUs basieren, zur Verfügung stehen werden, will deep space computing einer der ersten Lieferanten dieser Technologie werden, und sie zu ihren Kunden durch den Rechnerverbund anbieten.
Zentrum des Modells ist eine Zielfunktion, die über eine Region der möglichen Lösungen definiert wird. Die Zielfunktion ist linear und wird durch den Vektor c definiert.
Die Region der möglichen Lösungen ist ein konvexer Polyeder, der durch eine Menge von linearen Ungleichungen definiert und eingeschränkt wird. Zusätzliche lineare Gleichungen definieren Erhaltungsgesetze und aktuelle Zustände des Systems. Alle lineare Gleichungen und Ungleichungen werden mit der Matrix A und dem Vektor b definiert.
Der Algorithmus für die lineare Programmierung CPLEX, ursprünglich von IBM entwickelt, findet einen Punkt im Polyeder, in dem die Zielfunktion ihren maximalen Wert annimmt, angenommen dieser Punkt existiert überhaupt.
Bevor der Algorithmus startet, ist es nötig das Problem in einer "augmentierten" Form umzuformulieren. Diese Form fügt weitere "Slack"-Variablen dazu, um die Ungleichungen in Gleichungen umzuwandeln. Das Problem kann dann in folgender Block-Matrix Form geschrieben werden:
wobei xs sind die neu eingeführten Slack-Variablen und Z ist die Variable, die maximiert wird.
Hier ein kleiner Beispiel einer Optimierung eines Pumpspeicherkraftwerkes, die durch deep space mit GLPK geschrieben wurde:
deep space computing bietet zwei verschiedene Dienste rund um Umwelt Monitoring, eins ist über Parameter, die gesundheitsschädigend sein können und das andere ist über Hausautomation.
Umwelt Monitoring
deep space computing kann Haushaltsgeräte und Lebensräume kontrollieren und verifizieren, dass sie keine Gefahr für die Gesundheit darstellen.
Umweltparameter | Messgerät | Einheit | Ertragbare Werte | Typische Tests |
Radioaktivität durch Geiger Zähler |
microsievert pro Stunde |
|
Stube, Schlafraum, Küche, Estrich, Keller (Radon) |
|
Elektrisches Feld |
Volt pro Meter | 0-15 V/m | Mikrowelle, Induktionsherd, Computer Bildschirm, Fernseher, Schlafraum, Elektrische Linien und Steckdosen | |
Magnetisches Feld | wie vorherige Zeile | microTesla | 0-5 microTesla | wie vorherige Zeile |
Thermische Bilder | Celsius | Abhängig von Raum und Zweck |
Thermische Verluste identifizieren, Kontrolle von Komponenten in Geräten, die im 24 Stundenbetrieb laufen. |
Hausautomation
deep space computing hat Erfahrung über Domotik durch das Betreiben des Rechnerverbund. Die Firma bietet Dienste rund um komplizierte Hausautomationsaufgaben zu seinen Kunden mit dem Homematic system.
deep space computing AG baut Rechner mit mehreren Grafikkarten, die CUDA unterstützen, ein von Nvidia erfundenes Programmierungsmodell, das das parallele Programmieren unterstützt.
Folgende Software wird mitinstalliert und konfiguriert:
- Keras mit Google's Tensorflow 2.0 fürs Deep Learning
- GNU Linear Programming Kit für die Lineare Programmierung
- Die letzte Version von Ubuntu Linux oder Windows als Betriebssystem
- CUDA Drivers
Die meisten Rechner im Rechnerverbund können als CUDA Superrechner definiert werden, da sie mehrere Grafikkarten enthalten.
Simulation und Analyse planetarischer Umlaufbahnen
deep space computing hat eine Software entwickelt, um planetarische Umlaufbahnen zu simulieren, in dem er den Quelltext in C++ vom Project ORSA von Pasquale Tricarico auf Delphi umgeschreiben hat. Im unteren Bild sieht man die irreguläre Laufbahn von Iapetus rund um Saturn. Mehr Bilder und Details sind auf die Projektseite vorhanden.
Klimasimulation
deep space computing hat basierend auf einem Artikel von Science in School eine einfache Klimasimulation geschrieben. Im folgenden Bild sieht man die Aschen des Vulkanos Eyjafjallajökull, die sich nach Zentraleuropa bewegen und den Flugverkehr sperren. Mehr Details und Bilder sind auf die Projektseite.
Im unteren Bild beobachtet man einen Versuch, die CO2 Produktion über die industriellen Länder abzubilden. Man sieht auch, wie der Wind die CO2-Konzentration über die ganze Welt verteilt: