Ich habe kürzlich zusammen mit einigen Chemikern ein Papier verfasst (leider noch nicht online), das im Wesentlichen Antworten auf die Frage gab: "Was brauchen Chemiker von Informatikern?" Dazu gehörte die Lösung theoretischer Probleme wie kombinatorische Aufzählung und das Sampling bestimmter Klassen von Graphen; und praktische Programmierprobleme, wie Open-Source-Implementierungen von Algorithmen, die derzeit nur in teuren Softwarepaketen implementiert sind.
Das motiviert mich zu fragen: Was ist mit diesem Feld? Gibt es theoretische Probleme der Kombinatorik, der Algorithmenanalyse, für deren Lösung die Physik einen theoretischen Informatiker braucht? Oder wie wäre es mit der Schaffung praktischer Werkzeuge, die es einem theoretischen Physiker ermöglichen würden, eine bessere Arbeit zu leisten: "Wenn ich nur ein Programm hätte, das diese Art von Problem für mich löst!"
Als Community-Wiki gedacht.
Ich denke, vielleicht nehmen einige der anderen Antworten Informatik als Synonym für Berechnung. Ich schätze, das ist vielleicht nicht das, was Sie meinen, sondern eher die theoretische Informatik. Es gibt offensichtlich eine große Überschneidung mit der Quanteninformationsverarbeitung, von der ich denke, dass Sie sich bereits bewusst sind, also werde ich das ignorieren.
Ein Großteil der Physik (einschließlich der Quantenphysik) ist kontinuierlich, daher tendiert die Art der verwendeten Mathematik eher zu kontinuierlicher Mathematik (Lösen von PDEs, Auffinden von Geodäten usw.) im Vergleich zu den diskreten Strukturen, die in der theoretischen Informatik untersucht werden. Daher gibt es nicht so viele Überschneidungen. Die statistische Mechanik beschäftigt sich eher mit diskreten Strukturen, daher gibt es dort mehr Überschneidungen.
Ein großes Überschneidungsgebiet liegt tatsächlich in der Computerphysik, wo sich Menschen mit der Berechnung bestimmter Eigenschaften physikalischer Systeme befassen. Insbesondere die Simulation physikalischer Systeme ist ein riesiges Forschungsgebiet, und es wird viel Wert darauf gelegt, effiziente Algorithmen für die Simulation physikalischer Systeme zu finden. Insbesondere das Auffinden von Quantengrundzuständen und die Simulation der Quantendynamik sind diejenigen, mit denen ich die direkteste Erfahrung habe. Sowohl in Bezug auf den Nachweis von Härteergebnissen wurden ziemlich viele Fortschritte erzielt (z. B. Scott Aaronsons jüngste Arbeit über die Härte der Simulation linearer Optiken, die QMA-Vollständigkeit des Auffindens von Quantengrundzuständen selbst von ziemlich eingeschränkten Systemen , die Simulation von Pendeloperatorenetc.) sowie effiziente Algorithmen (zum Beispiel Match Gates , oder Theorem von Gottesman-Knill ).
BEARBEITEN: Diese Antwort ist speziell aus der Perspektive sehr rechnerorientierter Bereiche wie der theoretischen Plasmaphysik.
Die meisten Physiker können programmieren, und tatsächlich sind viele ziemlich gute Programmierer. Es wäre schwierig, in der modernen Physik zu arbeiten, ohne programmieren zu können. Leider sind viele auch keine besonders guten Programmierer (ich habe viele Fortran-Codes gelesen, in denen goto die primäre Methode der Flusskontrolle war).
Es ist immer wünschenswert, schnellere Algorithmen zu haben, und daher ist die Algorithmusanalyse nützlich. In vielen Fällen ist die Algorithmusgeschwindigkeit jedoch nicht der begrenzende Faktor, sodass sie nicht so nützlich ist, wie man hoffen könnte. Dazu später mehr.
Eine Sache, die ich in der High School in einem Labor gemacht habe, war im Wesentlichen die Entwicklung von GUIs für bestehende Programme. In der theoretischen Plasmaphysik gibt es eine große Anzahl von Codes, die man laufen lässt, um eine Vorstellung davon zu bekommen, was im Reaktor vor sich geht. Die Entwicklung einer GUI dafür ist nicht so trivial, wie Sie vielleicht denken; Die Integration von Parametereingabe, Datenvisualisierung und die Verknüpfung der Codes auf nette Weise erfordert tatsächlich einige Kenntnisse darüber, was physikalisch vor sich geht. Dies richtet sich eher an Programmierer als an Informatiker, sollte aber dennoch nützlich sein.
Ein weiterer Bereich, in den sich die Computerphysik begeben muss, ist die Richtung datengetriebener Theorien. Informatiker kennen das besser als maschinelles Lernen. Ich gebe Ihnen nur ein Beispiel für ein Projekt, das ich durchgeführt habe, wieder in Plasmaphysik. Bei der Berechnung des turbulenten Transports für Stellaratoren sind sogenannte gyrokinetische Simulationen der Goldstandard. Diese können 100 Millionen CPU-Stunden oder mehr verbrauchen und riesige Datenmengen erzeugen. Mein Berater (ich war damals Praktikant) schlug vor, die Ausgabe der Dateien mit neuronalen Netzen zu untersuchen. Die Idee war, ein neuronales Netzwerk mit so vielen gyrokinetischen Simulationen wie möglich zu trainieren und dann zu sehen, was es tun kann. Wir erwarteten, dass es wahrscheinlich nicht viel von irgendetwas tun könnte.
Alle vorhandenen Pakete für neuronale Netze, sowohl kommerzielle als auch kostenlose, reichten für unsere Anforderungen nicht aus. Es gibt eingebaute Symmetrien und ungefähre Symmetrien für das System, die oft nicht offensichtlich sind. Dies in eine Funktionsweise eines neuronalen Netzwerks zu übersetzen, war nicht einfach. Am Ende habe ich den Code komplett selbst geschrieben, indem ich einfach so viel von der Physik hineingetan habe, wie ich konnte. Es funktionierte überraschend gut, und sowohl mein Berater als auch ich dachten, dass dies eine sehr interessante Richtung für die Zukunft sein würde. Leider überstiegen meine Programmierfähigkeiten die Möglichkeiten, darüber hinauszugehen, und es würde wahrscheinlich einen Experten für neuronale Netze erfordern, der sich mit Plasmaphysik auskannte.
Ich erwarte nicht, dass man einen neuronalen Netzwerkcode herstellen könnte, der für einen breiten Bereich von Disziplinen nützlich wäre. Wenn es eine Möglichkeit gäbe, Symmetrien in den Code einzubauen, denen das Netzwerk folgen müsste, wäre das für die datengesteuerte Theorie äußerst nützlich. Ich würde jedoch vermuten, dass jeder wahrscheinlich einzeln hergestellt werden müsste. Dies ist ein Bereich, in dem theoretische (Computer-)Physiker und Informatiker wahrscheinlich stärker zusammenarbeiten können und sollten. Neuronale Netze sind offensichtlich auch nicht das einzige; Ich könnte mir vorstellen, dass in Bereichen wie der computergestützten Plasmaphysik die datengesteuerte Theorie einen großen Aufschwung erleben würde, wenn wir maschinelles Lernen mit einem Teil der eingebauten Physik verwenden könnten.
Ich sollte wahrscheinlich hinzufügen, dass ich streng genommen keine datengetriebene Theorie, sondern eher eine simulationsgetriebene Theorie anstrebte. Echte datengesteuerte Theorie würde experimentelle Daten verwenden, aber dies ist bei weitem die kostspieligere Option (da jede Konfiguration dem Bau eines Stellarators im Wert von über 1 Milliarde USD entspricht). Es war im Wesentlichen ein Proof-of-Concept-Projekt.
Was die Algorithmusgeschwindigkeit betrifft, so ist im Fall der Plasmaphysik der begrenzende Faktor nicht unbedingt die Fähigkeit, die Simulationen durchzuführen. Selbst die kostspieligsten Simulationen, an denen wir interessiert sind, können heute vernünftig auf Supercomputern durchgeführt werden. Sogenannte "vollständige" Simulationen würden einige erfordern mehr Berechnung, was wahrscheinlich nie machbar sein wird. Die Region dazwischen hat sich bisher als ziemlich chaotisch erwiesen, und es scheint nicht, dass die Antworten sich wesentlich verbessern, indem man einfach zufällig mehr Gitterpunkte auf das Problem wirft. Wir müssen zuerst verstehen, was im Kleinen passiert, und dann können wir das anwenden. Es gibt eine Reihe von Techniken, um solche Berechnungen durchzuführen, wie die oben erwähnten gyrokinetischen Simulationen, aber diese sind im Wesentlichen nur unsere beste Vermutung und stimmen nur ungefähr mit dem Experiment überein.
In einem Stellarator hängt der turbulente Transport entscheidend von der Geometrie der Reaktorgeometrie ab, und als solche gibt es im Wesentlichen einen unendlich dimensionalen Parameterraum zu erforschen. Zumindest um diesen Parameterraum perturbativ zu untersuchen, scheint die beste Richtung eine hybridisierte daten-/simulationsgetriebene Theorieentwicklung unter Verwendung von maschinellem Lernen zu sein. Schnellere Codes würden helfen, aber es ist nicht klar, ob sie uns grundsätzlich zur richtigen Physik bringen würden; Das Problem scheint vielmehr zu sein, dass wir nicht sicher sind, wie wir solche Algorithmen entwickeln sollen, um das zu bekommen, was wir von ihnen wollen. Zugegeben, das ist schon einige Jahre her, und ich habe die Literatur nicht mitverfolgt, und es gab nur wenige Leute, die diese Richtung verfolgten, also weiß ich nicht, ob es noch offen ist.
Haftungsausschluss: Ich bin mit der Literatur zur numerischen Analysis nicht sehr vertraut, daher ist es durchaus möglich, dass die Probleme, die ich erwähnen werde, bereits gelöst sind.
Vielleicht ist dies ein banalerer Vorschlag, aber ich denke, dass eine bessere Software für numerische differentielle (und in einigen Fällen algebraische) Geometrie erstaunlich wäre. Dies erscheint wahrscheinlich "offensichtlich" und für viele Leute könnte dies bereits ein gelöstes CS-Problem sein, aber ich möchte dieses Problem lieber mit einem Beispiel veranschaulichen.
Ich musste einmal eine 10-dimensionale Metrik berücksichtigen und lösen Sie ein vereinfachtes Eigenwertproblem: Womit ist der niedrigste Eigenwert des Laplace-Beltrami-Operators verbunden? . Als physikalische Relevanz des Problems stellte sich heraus, dass wir eine Dipol-ähnliche Näherung verwenden könnten, die nur vom niedrigsten Nicht-Null-Eigenwert abhängt. Nachdem ich einige Wochen damit verbracht hatte, diesen Eigenwert analytisch zu finden, beschloss ich, es numerisch zu versuchen. Mein Berater hatte mich davon überzeugt, dass die numerischen Werkzeuge dafür vorhanden sein würden und dass es sich um ein einfaches Problem handeln sollte. Unglücklicherweise erkannte ich drei Monate später, dass es nur wenige Open-Source-/kommerzielle Programme gab, die diese Aufgabe erledigen konnten, und darüber hinaus gab es nur wenige Algorithmen, die entwickelt wurden, um etwas höherdimensionale (nichtlineare) PDEs zu approximieren. Ich glaube, dass die numerischen Methoden existieren (ich habe mit einigen numerischen Analysten bei Courant gesprochen, die sagten, sie glaubten, dass dieses Problem gelöst sei,
Ich denke, während theoretische Physiker oft darauf trainiert sind, Dinge nur analytisch zu lösen, wäre es schön, etwas Intuition aus den numerischen Lösungen zu gewinnen. Darüber hinaus gibt es viele Algorithmen von Mathematikern wie Robert Ghrist zur Berechnung wichtiger Invarianten wie der Morse-Homologie, und ich denke, es wäre großartig, wenn wir das richtige Gleichgewicht zwischen Informatik und Physik finden könnten, um solche Techniken zu implementieren. Ich habe einige Hintergrundkenntnisse in CS und paralleler Programmierung und habe immer noch das Gefühl, dass die beiden Seiten (CS, theoretische Physik) so voneinander getrennt sind, dass es schwierig ist, solche Lösungen zu implementieren.
Mein alter Berater, ein Physiker, der in CS arbeitete, schrieb eine Arbeit, die zeigte, dass Raumzeiten kategorisch äquivalent zu Intervalldomänen sind. Sein Name ist Panangaden. Domänen sind in CS als Semantik für Programmiersprachen nützlich. In kausalen Ansätzen zur Quantengravitation (die ich allgemein für einzigartige Formen neuartiger, relevanter Physik nehme) sieht die Zeit viel mehr wie logische Uhren aus, die wir in der Analyse verteilter und gleichzeitiger Computersystemanalysen sehen. Einige Aspekte von cs sind nützlich für die neuesten Dinge, die in der Physik gemacht werden, wie die kategorische Quantenmechanik.
Mathematik ist für die Physik, was Masturbation für Sex ist - Richard Feynman. Dies bedeutet, dass es in der Physik um reale Interaktionen im Gegensatz zu einfachen abstrakten Konzepten geht. Dasselbe gilt für Wissenschaft versus Ingenieurwesen: Die Wissenschaft entwickelt abstrakte Werkzeuge, die Ingenieure verwenden, um reale Rechenmodelle darzustellen.
Informatik ist keine Wissenschaft, sondern eine Ingenieurdisziplin. Es geht nicht einmal um Computer; es geht um Modellrechnungen. Der Computer ist das Medium, das Gedanken in Form von Programmen an die Physik bindet.
Die offensichtlichste Fähigkeit, die ein Physiker von der Informatik profitieren würde, ist das Wissen über Algorithmen und Datenstrukturen. Algorithmen sind allgemeine Beschreibungen der Durchführung einer bestimmten Aufgabe. Diese Aufgaben können mit vielen Algorithmen ausgeführt werden. Es geht darum, die Aufgabe möglichst prägnant, einfach und effizient zu lösen. Kenntnisse über Algorithmen helfen bei der Auswahl des richtigen Algorithmus für die richtige Datenstruktur. Datenstrukturen sind Möglichkeiten zum Speichern von Daten. Beispiele hierfür sind Listen, Arrays, Zahlen, Strings, Vektoren, Matrizen und sogar Funktionen (wenn die verwendete Sprache die Verwendung von Funktionen als zu übertragende Daten zulässt). Bei der Kategorientheorie geht es um Mathematik, Physik, Datentypen usw. Es ist alles miteinander verbunden. Ich schlage vor, dass Physiker Haskell lernen, um die Verbindung selbst herzustellen.
Zusammenfassend lässt sich sagen, dass die Fähigkeit der Informatik die Fähigkeit hat, besser darin zu sein, reale Probleme zu lösen. Programmieren wird jeden Wissenschaftler dazu bringen, Probleme mit der Geschwindigkeit eines Elektrons zu lösen, während es einfacher wird, Gedanken und Modelle zu überprüfen.
Programmieren ist praktisch, also worauf warten Sie noch? Lass deine Finger laufen!
Kaveh
Joe Fitzsimons
Logan M
Joe Fitzsimons
Logan M
Joe Fitzsimons