"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

  • Kosmische Strahlung: 1 millisievert/Jahr 
  • Zusätzlich erlaubte Strahldose: 2 millisievert/Jahr durch andere Faktoren
  • Maximale Strahldose für einen Mitarbeiter eines Kernkraftwerkes: 20 millisievert pro Jahr

 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:

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: