Недавно я совместно с некоторыми химиками написал статью (к сожалению, еще не в Интернете), которая, по сути, дала ответы на вопрос: «Что нужно химикам от компьютерных ученых?» Это включало решение теоретических задач, таких как комбинаторное перечисление и выборка определенных классов графов; и практические проблемы программирования, такие как реализации алгоритмов с открытым исходным кодом, которые в настоящее время реализованы только в дорогих пакетах программного обеспечения.
Это побуждает меня спросить: а как насчет этого поля? Существуют ли теоретические вопросы комбинаторики, анализа алгоритмов, для решения которых физике нужен теоретик-компьютерщик? Или как насчет создания практических инструментов, которые позволили бы физику-теоретику работать лучше: «Если бы у меня была программа, которая решала бы за меня такие задачи!»
Предназначен как вики сообщества.
Я думаю, что, возможно, некоторые из других ответов считают информатику синонимом вычислений. Я предполагаю, что это, возможно, не то, что вы имеете в виду, а скорее теоретическая информатика. Очевидно, существует огромное совпадение с квантовой обработкой информации, о котором, я думаю, вы уже хорошо знаете, поэтому я проигнорирую это.
Большая часть физики (включая квантовую физику) является непрерывной, поэтому используемый тип математики больше склонен к непрерывной математике (решение PDE, поиск геодезических и т. д.) по сравнению с дискретными структурами, изучаемыми в теоретической информатике. Таким образом, совпадений не так много. Статистическая механика, как правило, больше занимается дискретными структурами, поэтому здесь больше совпадений.
Одна огромная область совпадения на самом деле связана с вычислительной физикой, где люди занимаются вычислением определенных свойств физических систем. В частности, моделирование физических систем является огромной областью исследований, и большое внимание уделяется поиску эффективных алгоритмов моделирования физических систем. В частности, поиск квантовых основных состояний и моделирование квантовой динамики — это те области, в которых у меня есть самый непосредственный опыт. Достигнут значительный прогресс как с точки зрения доказательства результатов твердости (например, недавняя статья Скотта Аароснсона о сложности моделирования линейной оптики, QMA-полноты нахождения квантовых основных состояний даже весьма ограниченных систем , моделирования коммутирующих операторови т.д.), а также эффективные алгоритмы (например , match gates или теорема Gottesman-Knill ).
РЕДАКТИРОВАТЬ: Этот ответ конкретно с точки зрения очень ориентированных на вычисления областей, таких как теоретическая физика плазмы.
Большинство физиков умеют программировать, и на самом деле многие из них довольно хорошие программисты. Было бы трудно работать в современной физике, не умея программировать. К сожалению, многие из них также не очень хорошие программисты (я читал много кода на Фортране, где goto был основным методом управления потоком).
Всегда желательно иметь более быстрые алгоритмы, поэтому анализ алгоритмов полезен. Однако во многих случаях скорость алгоритма не является ограничивающим фактором, поэтому он не так полезен, как можно было бы надеяться. Подробнее об этом позже.
Одной вещью, которой я занимался в старшей школе в лаборатории, была разработка графических интерфейсов для существующих программ. В теоретической физике плазмы существует большое количество кодов, которые нужно запускать, чтобы получить некоторое представление о том, что происходит в реакторе. Разработка графического интерфейса для этого не так тривиальна, как вы думаете; интеграция ввода параметров, визуализация данных и хорошее соединение кодов на самом деле требуют некоторых знаний о том, что происходит физически. Это больше направлено на программистов, чем на компьютерщиков, но все же должно быть полезным.
Еще одна область, в которой вычислительной физике придется развиваться, — это теории, управляемые данными. Ученым-компьютерщикам это лучше известно как машинное обучение. Я просто приведу пример проекта, который я сделал, опять же по физике плазмы. При расчете турбулентного переноса для стеллараторов золотым стандартом являются так называемые гирокинетические симуляции. Они могут потреблять 100 миллионов часов ЦП и более и генерировать огромные объемы данных. Мой советник (в то время я был стажером) предложил изучить вывод файлов с помощью нейронных сетей. Идея заключалась в том, чтобы обучить нейронную сеть, используя как можно больше гирокинетических симуляций, а затем посмотреть, на что она способна. Мы ожидали, что он, вероятно, ничего не сможет сделать.
Всех существующих нейросетевых пакетов, как коммерческих, так и бесплатных, было недостаточно для того, что нам было нужно. Существуют встроенные симметрии и приближенные симметрии системы, которые часто неочевидны. Превратить это в способ работы нейронной сети было непросто. В конце концов я написал код полностью сам, просто внедрив столько физики, сколько смог. Это сработало на удивление хорошо, и я и мой советник подумали, что это будет очень интересное направление в будущем. К сожалению, выйти за рамки этого было за пределами моих способностей программирования и, вероятно, потребовался бы эксперт в области нейронных сетей, хорошо разбирающийся в физике плазмы.
Я не думаю, что можно создать код нейронной сети, который будет полезен для широкого круга дисциплин. Если бы существовал способ встроить симметрии в код, которому должна была бы следовать сеть, это было бы чрезвычайно полезно для теории, управляемой данными. Я предполагаю, однако, что каждый из них, вероятно, придется изготавливать отдельно. Это та область, в которой физики-теоретики (вычислители) и ученые-компьютерщики могут и, вероятно, должны больше сотрудничать. Нейронные сети, очевидно, тоже не единственная вещь; Я полагаю, что в таких областях, как вычислительная физика плазмы, теория, основанная на данных, переживет огромный бум, если мы сможем использовать машинное обучение с частью встроенной физики.
Вероятно, я должен добавить, что то, что я пытался сделать, было, строго говоря, не теорией, основанной на данных, а скорее теорией, основанной на моделировании. Настоящая теория, основанная на данных, будет использовать экспериментальные данные, но это гораздо более дорогостоящий вариант (учитывая, что каждая конфигурация соответствует созданию стелларатора стоимостью более 1 миллиарда долларов). По сути, это был экспериментальный проект.
Что касается скорости алгоритма, то в случае с физикой плазмы ограничивающим фактором не обязательно является возможность моделирования. Сегодня даже самые дорогостоящие модели, которые нас интересуют, могут быть выполнены на суперкомпьютерах. Так называемое «полное» моделирование потребует некоторого больше вычислений, что вряд ли когда-либо будет возможно. Промежуточная область до сих пор оказывалась довольно хаотичной, и не похоже, чтобы ответы значительно улучшились, просто случайным образом добавляя больше точек сетки к проблеме. Нам нужно сначала понять, что происходит в малых масштабах, а затем мы сможем применить это. Существует ряд методов для выполнения таких вычислений, таких как вышеупомянутое моделирование гирокинетики, но они, по сути, являются лишь нашим лучшим предположением и лишь приблизительно совпадают с экспериментом.
В стеллараторе турбулентный перенос критически зависит от геометрии геометрии реактора, и поэтому существует по существу бесконечное пространство параметров для исследования. По крайней мере, для пертурбативного изучения этого пространства параметров лучшим направлением, по-видимому, является гибридизация теории, основанной на данных / моделировании, с использованием машинного обучения. Наличие более быстрых кодов могло бы помочь, но неясно, приведут ли они нас в основном к правильной физике; скорее проблема, похоже, в том, что мы не знаем, как разработать такие алгоритмы, чтобы получить от них то, что мы хотим. Правда, это было несколько лет назад, и я не слежу за литературой, да и людей, занимающихся этим направлением, было всего несколько человек, так что не знаю, открыто ли оно еще.
Отказ от ответственности: я не очень хорошо знаком с литературой по численному анализу, поэтому вполне возможно, что проблемы, которые я упомяну, уже решены.
Возможно, это более банальное предложение, но я думаю, что лучшее программное обеспечение для численной дифференциальной (а в некоторых случаях и алгебраической) геометрии было бы потрясающе. Вероятно, это кажется «очевидным», и для многих это может быть уже решенной проблемой CS, но я лучше проиллюстрирую эту проблему примером.
Однажды мне пришлось рассмотреть какую-то 10-мерную метрику и решить упрощенную задачу на собственные значения: каково наименьшее собственное значение оператора Лапласа-Бельтрами, связанного с . Физическая значимость проблемы оказалась в том, что мы могли использовать дипольное приближение, которое зависит только от наименьшего ненулевого собственного значения. Потратив несколько недель на аналитические попытки найти это собственное значение, я решил попытаться сделать это численно. Мой консультант убедил меня, что численные инструменты для этого уже существуют и что это должна быть простая задача. К сожалению, три месяца спустя я понял, что было несколько программ с открытым исходным кодом/коммерческих программ, которые могли бы решить эту задачу, и, кроме того, было разработано несколько алгоритмов для аппроксимации УЧП несколько большей размерности (нелинейных). Я действительно верю, что численные методы существуют (я разговаривал с несколькими численными аналитиками в Куранте, которые сказали, что, по их мнению, эта проблема решена,
Я думаю, что, хотя физиков-теоретиков часто учат решать проблемы только аналитически, было бы неплохо получить некоторую интуицию на основе численных решений. Более того, существует множество алгоритмов таких математиков, как Роберт Грист, для вычисления важных инвариантов, таких как гомология Морзе, и я думаю, что было бы здорово, если бы мы смогли найти правильный баланс между информатикой и физикой для реализации таких методов. У меня есть некоторый опыт работы с CS и параллельным программированием, и я все еще чувствую, что две стороны (CS, теоретическая физика) настолько разобщены, что такие решения трудно реализовать.
Мой старый советник, физик, работающий в CS, написал статью, показывающую, что пространство-время категорически эквивалентно интервальным областям. Его зовут Панангаден. Домены полезны в cs как семантика для языков программирования. В каузальном подходе к квантовой гравитации (который я рассматриваю как общее место для уникальных форм новой актуальной физики) время больше похоже на логические часы, которые мы видим при анализе распределенного и параллельного анализа компьютерных систем. Некоторые аспекты cs полезны для новейших разработок в физике, таких как категориальная квантовая механика.
Математика для физики то же, что мастурбация для секса - Ричард Фейнман. Это означает, что в физике речь идет о взаимодействиях в реальном мире, а не о простых абстрактных концепциях. То же самое можно сказать и о науке по сравнению с инженерией: наука разрабатывает абстрактные инструменты, которые инженеры используют для представления моделей вычислений реального мира.
Информатика — это не наука, а инженерная дисциплина. Дело даже не в компьютерах; речь идет о моделировании вычислений. Компьютер — это среда, связывающая мысли с физикой в виде программ.
Наиболее очевидным навыком, который физик может извлечь из информатики, является знание алгоритмов и структур данных. Алгоритмы — это общие описания того, как выполнять конкретную задачу. Эти задачи могут быть выполнены с использованием многих алгоритмов. Все дело в том, чтобы решить задачу максимально лаконично, просто и эффективно. Знание алгоритмов помогает выбрать правильный алгоритм для правильной структуры данных. Структуры данных — это способы хранения данных. Примеры включают списки, массивы, числа, строки, векторы, матрицы и даже функции (если используемый язык позволяет использовать функции в качестве передаваемых данных). Теория категорий связана с математикой, физикой, типами данных и т. д. Все это взаимосвязано. Я предлагаю физикам выучить Haskell, чтобы сделать связь самостоятельно.
В общем, способность лучше решать реальные задачи — это то, что должна дать компьютерная наука. Программирование заставит любого ученого решать проблемы со скоростью электрона, а также облегчит анализ мыслей и моделей.
Программирование — это практическое занятие, так чего же вы ждете? Разгоните пальцы!
Каве
Джо Фицсаймонс
Логан М
Джо Фицсаймонс
Логан М
Джо Фицсаймонс