Без доступа к коду, как рецензент может подтвердить правильность результатов моделирования?

Последние несколько лет я просматриваю статьи для различных ведущих журналов и конференций. После всего этого опыта я могу сказать вам, что нет никакого способа подтвердить правильность результатов моделирования. Поэтому я обычно делаю замечания по конструкции, процедуре, математическому и аналитическому анализу.

В разделе результатов я могу задать некоторые вопросы, почему то или иное так, но как я могу судить, действительно ли было проведено моделирование или это просто сфабрикованные графики?

Этот вопрос пришел мне в голову, потому что я несколько раз наблюдал, как во время процесса рецензирования рецензент просил включить новые результаты, что, по моему мнению, требовало много кода и усилий для реализации, но автор отвечал в течение 7-10 дней с новыми результатами. и улучшенная статья.

Этот вопрос пришел мне в голову, потому что я несколько раз наблюдал, как во время процесса рецензирования рецензент просил включить новые результаты, что, по моему мнению, требовало много кода и усилий для реализации, но автор отвечал в течение 7-10 дней с новыми результатами. и улучшенная статья.
Чем это отличается от утверждения автором результатов эксперимента? Должен быть предоставлен протокол эксперимента, но нельзя ожидать, что рецензент проведет эксперимент еще раз, чтобы убедиться, что все получилось так, как сказали авторы. В любом случае автор может ошибаться или быть нечестным, но, по крайней мере, в случае эксперимента рецензент не узнает об этом.
@MBK: Что касается случая, который вы упоминаете в комментариях, вполне возможно, что авторы не начинали с нуля при реализации предложений рецензентов, а уже независимо рассмотрели эти предложения или что-то связанное, и поэтому имели значительное количество нужный код уже написан?
Как насчет того, чтобы просто поиграть с параметрами, чтобы увидеть, как меняются результаты? Экстремальные значения обязательно приведут к экстремальным результатам или различиям. Конечно, должна быть возможность внести свой вклад в симуляцию.
@MBK Что касается случая, который вы упоминаете в комментариях, я подозреваю, что вы просто не такой хороший программист, как те, кого вы просматривали. Я понимаю, как трудно признать, что другие программисты быстрее, особенно если эти другие люди, которых вы просматриваете (контролируете). Это человек, но нет абсолютно никаких оснований подозревать нечестную игру из того, что вы описали.
Имея доступ к коду, как рецензент может подтвердить правильность результатов моделирования? Выявление малозаметных ошибок (таких, которые обычно приводят к неправильным, а не странным результатам) — это навык, и вы не можете предположить, что рецензенты будут иметь его. Я припоминаю, что в каком-то моем коде возникала ошибка, которая отменялась в конечном результате (имела значение разница между индексами списка), пока мы не переделали код; прошло еще некоторое время, прежде чем мы поймали ошибку. Ваш последний абзац предлагает мошенничество, а не ошибку, и это совсем другая ситуация.
@Andrei Разница между быстрым и медленным программистом может составлять 1 неделю против 2 недель, что невозможно, что, как ожидается, будет реализовано через 3–4 месяца, а вы внедряете, получаете результаты, улучшаете рукопись и загружаете всего за неделю. Кроме того, я преподаю программирование, и я думаю, что я не так уж плох, как вы предполагаете :)
@DavidThornley Существует большая разница между повторным запуском программы моделирования (для чего может потребоваться много часов ЦП / ГП), то есть повторным запуском эксперимента, и проверкой кода, которая сродни проверке параметров и процедуры эксперимента. Тем не менее, это мои мысли как инженера-программиста в промышленности, а не как академика.
@MBK Очевидно, что трудно сказать наверняка, но, возможно, они уже реализовали новую функцию / функциональность - например, для другого будущего проекта. Возможно, у них даже были готовы эти результаты, и они планировали представить их в последующем документе, но приняли исполнительное решение перенести их в этот. Или, может быть, структура их кода особенно упростила его реализацию.
@DavidThornley Когда мы публикуем результаты экспериментов, мы должны подробно сообщать о методологии, вплоть до таких вещей, как компания, у которой были куплены материалы, и даже номер их производственной партии (партии). Таким образом, очевидная разница будет заключаться в том, что если вы не предоставляете исходный код, вы недостаточно подробно описали вычислительный эксперимент, чтобы воспроизвести его.

Ответы (9)

Есть ли у вас основания сомневаться в их правдивости или добросовестности? Являются ли их заявления неправдоподобными или весьма сомнительными, исходя из ваших знаний в этой области? Если в вашей области не принято публиковать код, я не думаю, что рецензент обязательно должен этого требовать, независимо от вашего отношения к публикации кода.

Авторы должны достаточно описать свою методологию, чтобы кто-то другой мог ее воспроизвести; таким образом, они подвергают свою репутацию риску, поскольку, если бы кто-то воспроизвел их подход, они получили бы те же результаты. Фальсификация результатов – очень серьезное обвинение. Существуют некоторые статистические подходы для проверки вероятности того, что данные будут сфабрикованы, но эффективность этого подхода зависит от сложности фабрикации, и этот вопрос лучше подходит для перекрестной проверки.

Если их работа имеет смысл в полевых условиях, в какой-то момент кто-то снова применит их подход. В науке обязательно есть доля веры в то, что люди делают то, что, по их словам, они сделали. Рецензент должен убедиться, что выводы статьи логически следуют из ее результатов, и что их методология описана и обоснована, но ему не нужно проверять или воспроизводить результаты. Как отмечает Дэвид Торнли в комментарии к другому ответу, даже просто запуск кода очень мало говорит вам об этих ключевых факторах, он только сообщает вам, есть ли вопиющая ложь или ошибка.

У вас есть основания сомневаться в их утверждениях? Ведь это работа любого исследователя?
@ user2768 Конечно, я имею в виду нечто большее, чем обычный скептицизм. Вы должны усомниться в их представленном подходе: если они говорят, что мы проверили X, выполнив Y, а вы знаете, что Y — неправильный способ проверки X, это другой вид сомнений, чем их утверждение, что мы проверили X, выполнив Y, и вы задаетесь вопросом, не на самом деле просто придумал это вместо того, чтобы когда-либо делать Y. Стандарт состоит в том, чтобы предоставить достаточно информации, чтобы кто-то другой мог ее воспроизвести; если кто-то сделал действительно замечательное заявление, есть больше причин требовать увидеть его код, чем если бы он демонстрировал постепенное улучшение.
Иногда, даже если код доступен и рецензент желает проверить его правильность, повторный запуск симуляции может оказаться нецелесообразным. В моей области статьи нередко сообщают о результатах моделирования на миллионы часов ЦП. Конечно, нельзя ожидать, что рецензент будет тратить значительную часть своей годовой квоты процессорного времени каждый раз, когда рецензирует статью. Поэтому я согласен с тем, что разумная степень доверия необходима.
@Miguel (Going OT) Можно ли с помощью таких вычислений с интенсивным использованием ЦП сгенерировать доказательство того, что вычисления были выполнены правильно? (Брайан Краузе и Фил Миллер, хорошая редакция.)
@user2768 user2768 Это зависит. Лучший ориентир — это эксперимент, но его может и не быть. В худшем случае симуляция является «правильной», а базовая физическая модель — нет. Если проблема важна/достаточно интересна, кто-то попытается воспроизвести результаты, используя свою собственную реализацию или физическую модель (как уже упоминалось здесь). Как правило, можно проверить, например, новый межатомный потенциал, воспроизведя известные экспериментальные свойства (плотность, коэффициент самодиффузии), а затем использовать указанный потенциал для предсказания неизвестных свойств (например, реакционных барьеров).
@BryanKrause Величина претензии не должна иметь значения; потому что это субъективно. Либо работа рецензента состоит в том, чтобы убедиться, что каждый шаг в статье логичен; и что у любого есть достаточно информации, чтобы попытаться воспроизвести шаги; или это для того, чтобы убедиться, что то, что было сделано, правда ... Я бы согласился с вами, это первое ... чтобы убедиться, что любой может воспроизвести эксперимент и что вывод имеет смысл. Это означает, что детали алгоритма должны быть включены, а код — нет.
@Miguel В такой ситуации проверка тем более важна . Почему вы доверяете такой сложной симуляции без каких-либо правдоподобных доказательств того, что она действительно работает так, как рекламируется? Вы не должны. Конечно, ваша работа как рецензента не будет состоять в том, чтобы повторно запускать симуляцию. Это вопрос к авторам: «Какие доказательства вы можете привести, чтобы убедить меня в том, что ваша симуляция верна?»
@UKMonkey Я не согласен с тем, что величина претензии полностью субъективна. Если бы кто-то написал статью о том, что употребление бананов лечит рак, я бы отнесся к этому гораздо более скептически, чем если бы они утверждали, что более высокое потребление бананов связано с 5-процентным снижением риска рака толстой кишки в продольном когортном исследовании. Рецензент был бы безответственным относиться к этим утверждениям совершенно одинаково, даже если бы для обоих были соблюдены надлежащие экспериментальные процедуры.
@BryanKrause Если они не субъективны, какой % рака толстой кишки необходимо вылечить бананами, чтобы его можно было классифицировать как заявление «высокой степени»? Конечно, это субъективно, и я уверен, что вы это знаете. Если вам нужны доказательства этого, некоторые люди верят, что Земля плоская; утверждение, что оно круглое, имеет большое значение. В то время как другим, это наоборот. Рецензент был бы безответственным в равной степени угрожать этим утверждениям, если бы ему были представлены ОДИНАКОВЫЕ доказательства для обоих; но это просто означает, что отсутствует логический шаг от свидетельства к заключению... который следует подобрать для любого случая.
«У вас есть основания сомневаться в их правдивости или добросовестности?» <- Да, тот факт, что они не опубликовали исходный код симуляции.

Вы не можете судить о том, действительно ли была проведена симуляция. Вот почему у нас были такие вещи, как скандал с Шёном — рецензенты этих рукописей тоже не обнаружили мошенничества.

Что вы можете сделать, так это провести «тест на запах». Возможен ли такой подход? Являются ли результаты разумными? Были ли какие-то явные упущения? Если вы не видите явных проблем с симуляцией, этого достаточно: рецензирование происходит после публикации.

Зачем рецензенту проводить «проверку на запах», а не просто требовать исходный код? Я имею в виду, что вы должны постоянно использовать «тест на запах» при рецензировании, но это не мешает вникать в детали.
@einpoklum Тест на запах, а не маленький тест - например, метафорически понюхайте и посмотрите, не заставляет ли вас что-то интуитивно думать, что это недействительно по какой-то причине. Тест на запах — это краткая, относительно поверхностная проверка на наличие очевидных ошибок или источников ошибок.
@NicHartley: Извините, я перепутал «е» с «а».

После всего этого опыта я могу сказать вам, что нет никакого способа подтвердить правильность результатов моделирования.

Это не обязательно верно. В некоторых случаях очень легко понять, что график не может быть правильным или, по крайней мере, был неправильно истолкован или истолкован. Я обнаружил такую ​​ошибку в одной из своих ранних статей и обнаружил ее в нескольких статьях, которые я просмотрел.

Доказать, что моделирование действительно было выполнено, непросто. Однако структура Open Science предназначена для упрощения проверки результатов как вычислительной, так и экспериментальной работы.

Ваш опыт заключается в подтверждении неправильности. До сих пор трудно подтвердить правильность.
Это больше похоже на комментарий к одному предложению вопроса, а не на ответ на основной вопрос.

В конце концов, я просматриваю статьи по науке о данных, где основной код имеет решающее значение. Я стал таким парнем во время обзоров, и вот что я прошу:

  1. Код должен быть доступен мне как рецензенту. Полная остановка.
  2. В коде должны быть тесты, которые я, как рецензент, могу запустить. Я не могу просмотреть код, чтобы проверить и убедиться, что он работает точно так, как рекламируется, но я могу увидеть, подходят ли тесты и проходят ли они, когда я запускаю его.
  3. Код должен иметь достаточно хорошее тестовое покрытие научных частей, а регрессионные тесты должны быть разумно обоснованы (т. е. мы ожидаем увидеть такой результат по причине X).
  4. Если вы заново изобрели колесо, вы должны объяснить, почему (даже если это объяснение состоит в том, что вы не знали, что его уже сделал кто-то другой)

Все они кажутся мне довольно разумными и решают многие проблемы с качеством кода. Большинство людей с хорошо разработанным кодом поразят их всех только благодаря непрерывным интеграционным тестам в репозитории GitHub, и я думаю, что больше нет необходимости нянчиться с людьми с плохо спроектированным кодом (а это слишком много).

Я не понимаю, как это отвечает на вопрос. Вопрос заключался в том, как мы можем подтвердить правильность результатов моделирования без кода, и ваш ответ: «Мне нужен код».
Если вы рецензент, «Мне нужен код» — это абсолютно правильный ответ, который вы можете дать. Это разумная просьба, даже если вы не можете использовать этот код для полного воспроизведения симуляции или анализа (это не ваша работа, а проверка того, что документ имеет базовый уровень правдоподобия). Это ничем не отличается от того, чтобы просить у биохимика лучшего экспериментального контроля.
@ CJ59, как вы определяете «плохо разработанный код»?
Если вы можете написать тесты, которые охватывают большую часть базы кода и большинство входных данных, подходящих для вашей задачи, ваш код, вероятно, хорошо спроектирован. Если ваши тесты вымучены и нелогичны, то ваш код, вероятно, плохо спроектирован. Если вы живете в 2019 году и не удосужились написать тесты для кода, который отправляете вместе со своей научной статьей, то [оскорбления удалены модератором].
Да, это то, что вы можете требовать как рецензент, но это не делает это ответом на этот вопрос.
Я прочитал вопрос как «Без проведения неоправданно сложного аудита кода, как вы можете судить о достоверности моделирования». Если кто-то категорически отказывается дать вам код для научной статьи, вам не нужно судить о достоверности симуляции — вы сразу ее отвергаете, [оскорбления удалены модератором]
Это хороший ответ. Лично я думаю, что это единственный правильный ответ. " Как рецензент может подтвердить правильность результатов моделирования "? Вы должны увидеть код . Это действительно очень просто. Люди, которые просят других исследователей доверять их результатам за чистую монету, не должны быть частью научных кругов.

нет возможности подтвердить правильность результатов моделирования.

Моделирование должно быть воспроизводимым, поэтому правильность можно проверить повторным запуском моделирования. Конечно, авторы могут не предоставить необходимый код, но тогда вы можете запросить код в рамках процесса проверки.

Непростая задача реализовать чей-то алгоритм для проверки правильности. Иногда реализация может занять 3-4 месяца
Я запросил код, и автор отказался сказать, что это противоречит их контракту о конфиденциальности проекта.
@MBK Я не рекомендую внедрять; рекомендую повторить. Если авторы не дадут повторить (отказав в доступе к коду), то я склонен отклонить, но посоветуюсь с редактором.
@user2768 user2768 Итак, если бы я провел некоторые симуляции с использованием программного обеспечения, на распространение которого у меня не было лицензии, я не смог бы опубликовать свои результаты?
@MBK Простое выполнение одного и того же кода на одних и тех же данных очень мало говорит вам без фактического изучения кода, чтобы убедиться, что он реализует алгоритм (ы) статьи. Это говорит вам, что автор(ы) не лгали о результатах напрямую, и это все.
@DavidThornley: Действительно, в принципе результаты, которые в значительной степени зависят от неопубликованного программного обеспечения, сами по себе не должны публиковаться. Публикация результатов должна позволить сообществу проверить их и использовать их.
@SylvainRibault Во многих областях исследований по разным причинам невозможно поделиться всеми необработанными данными. Не должно ли быть опубликовано ни одно из этих исследований? Должны ли мы сохранять и раздавать образцы крови всем, кто хочет проверить результаты исследования биомаркеров воспаления? Что, если процесс анализа уничтожит образец? Доверие — неотъемлемая часть академического исследования.
@Bryan Krause: Вопрос был о программном обеспечении, а не о необработанных данных или вещественных доказательствах.
@SylvainRibault Понятно, но, хотя вы можете аргументировать в пользу программного обеспечения с открытым исходным кодом, могут быть веские причины не распространять код бесплатно; Я думаю, что было бы недальновидно делать это жестким «нет» для их публикации и указывать, что такой уровень репликации невозможен в других областях, где нет проблем с их публикацией.
@Bryan Krause: Хорошо, но я бы провел различие (пусть даже не очень четкое) между данными и тем, как они обрабатываются. Программное обеспечение, как и формулы, имеет тенденцию быть на стороне обработки и должно быть более открытым. Кроме того, есть «публикация» в смысле обнародования и «публикация» в смысле строгой проверки. Мы должны иметь возможность обнародовать что-либо, но мы не должны заявлять, что мы проверили утверждение, когда проверка невозможна.
@SylvainRibault Да, но принять статью к публикации — это не то же самое, что проверить ее. Рецензент должен убедиться, что выводы статьи логически следуют из ее результатов, и что их методология описана и обоснована, но ему не нужно проверять или воспроизводить результаты. Как заметил выше Дэвид Торнли, даже простое выполнение кода очень мало говорит вам об этих ключевых факторах, оно только говорит вам, есть ли вопиющая ложь или ошибка.
@DavidThornley «Итак, если бы я провел некоторые симуляции с использованием программного обеспечения, на распространение которого у меня не было лицензии, я не смог бы опубликовать свои результаты?» — В идеале да. Это часть манифеста Open Science. Это, очевидно, зависит от области, но в моей области (геномика), если рукопись распространяется без исполняемого кода, я отклоняю ее. И, само собой разумеется, я далеко не единственный рецензент, который делает это.
@DavidThornley Я думаю, что рецензенты должны иметь доступ к коду, написанному авторами. Этот код является частью результата. Если это не так, то это не должно рекламироваться в газете. (Я понимаю, что рисовать линии здесь довольно сложно.) Непонятно, почему вы ссылаетесь на «программное обеспечение [без] лицензии на повторное распространение», потому что это не рассматривается здесь. Я понимаю, что рецензенты могут не иметь возможности запускать код без лицензии, это независимая проблема.
@user2768 user2768 Даже если программное обеспечение с открытым исходным кодом и нет проблем с лицензией, простая его установка и проверка правильности установки могут превратиться в большую трату времени. По моему опыту, большинство академического программного обеспечения зависит от локальной компьютерной системы и ее набора инструментов для разработки программного обеспечения, о котором никто не знал и не заботился, и, конечно же, нигде не документировал!
@alephzero Когда я просматриваю документы и мне нужен код, я обычно могу немедленно запустить код. Когда я не буду, я не буду запускать код.

Это неудачный артефакт истории и культуры, но академические круги все еще находятся в темных веках в отношении обмена исходным кодом. Серьезные исследователи вычислений часто предоставляют по крайней мере подробный алгоритм, а часто и код. Но дилетанты, которым приходилось учиться программировать «на работе», или люди, очень привязанные к своим путям и традициям, часто пренебрегают этим, и стандарты публикаций редко требуют этого, даже если вы думаете, что любой в здравом уме стал бы это делать. согласитесь, что весь научный код должен быть открытым (или, по крайней мере, доступным для рецензентов), если он заслуживает обсуждения.

К сожалению, устоявшаяся культура не предполагает совместного использования кода, хотя в аналогичном случае физических экспериментов предполагается совместное использование точного процесса вплоть до каждой детали метода и материала, чтобы его могли точно воспроизвести другие исследователи. Я подозреваю, что причина этого в том, что, по большому счету, компьютеры являются относительно новым инструментом науки, а возможность легкого обмена кодом появилась еще позже. Тем не менее, у нас уже более десяти лет есть вездесущий Интернет и хостинг кода с нулевыми усилиями, такой как Github, так что, если вы спросите меня, это чертово время. Но, похоже, инерция все же есть.

Последние несколько лет я просматриваю статьи для различных ведущих журналов и конференций. После всего этого опыта я могу сказать вам, что нет никакого способа подтвердить правильность результатов моделирования. Поэтому я обычно делаю замечания по конструкции, процедуре, математическому и аналитическому анализу.

Это лучшее, что вы можете сделать. Вы также можете попытаться интуитивно предположить, основываясь на приблизительном описании (если таковое имеется) вычислительного подхода, заслуживают ли доверия полученные результаты или нет. Но в конечном счете это невозможно знать наверняка.

Я стараюсь добавить немного ворчания в конце своих обзоров о выпуске исходного кода, хотя я не думаю, что это очень часто воспринимается всерьез.

В разделе результатов я могу задать некоторые вопросы, почему то или иное так, но как я могу судить, действительно ли было проведено моделирование или это просто сфабрикованные графики?

Ну, как вы это формулируете, вы не можете точно знать, сфабрикован ли какой-либо график или результат, если, возможно, вы лично не присутствовали во время проведения исследования. Неизбежно присутствует элемент доверия. Но без исходного кода, даже если вы ему доверяете, вы не можете предложить осмысленную критику некоторых вычислительных частей статьи. Очевидно, что вы все еще можете прокомментировать первоначальные предположения и выбранный подход. Вы можете прокомментировать, как интерпретируются результаты. Но сама реализация недосягаема, пока вы не увидите код. На самом деле, даже предоставления подробного алгоритма было бы недостаточно: реализация авторов может не обязательно точно соответствовать задуманному ими алгоритму.

Этот вопрос пришел мне в голову, потому что я несколько раз наблюдал, как во время процесса рецензирования рецензент просил включить новые результаты, что, по моему мнению, требовало много кода и усилий для реализации, но автор отвечал в течение 7-10 дней с новыми результатами. и улучшенная статья.

Я не думаю, что было бы справедливо подозревать только потому, что они сделали это слишком быстро. Они могут быть просто очень хороши в кодировании. Лично моя скорость разработки очень изменчива: иногда что-то просто щелкает, и я могу писать код очень быстро, иногда простые вещи занимают вечность. Они могут знать о более простых способах реализации изменений, чем вы думаете. Возможно, они уже написали что-то подобное в отдельной работе и смогли быстро перепрофилировать его.

Если бы кто-то фальсифицировал результаты, я думаю, они бы либо ответили сразу, потому что им все равно, либо подождали бы «достаточно долго», чтобы избежать подозрений. Если бы они вообще удосужились подождать, я не думаю, что они поставили бы под угрозу все предприятие, прождав слишком мало.

Некоторые начальники считают, что код имитационных моделей стоит денег. Однако (1) это случается редко, и (2) если бы мы хотели заработать много денег на программировании, мы бы занимались программным бизнесом, а не академическими кругами. Кроме того, как уже упоминалось, имитационные модели, которые не являются открытым исходным кодом, находятся за пределами научной области.

Чтобы работа моделирования была точно воспроизводимой, необходимо было бы иметь (а) код для моделирования и (б) начальное число для генератора псевдорамдона, используемого для запуска кода. Если код не является собственностью, у авторов нет веских причин скрывать эту информацию от рецензентов, даже если код не будет опубликован как часть статьи. Однако исследования моделирования, которые можно опубликовать, могут быть настолько обширными, что даже энергичный скептически настроенный рецензент не сможет повторить моделирование.

В какой-то степени многие симуляционные исследования могут быть самопроверочными. Когда это возможно, рецензенты должны настаивать на осуществимой внутренней верификации. На нетехническом языке вот несколько примеров того, что я имею в виду.

(1) Часто моделирование дает несколько результатов, некоторые из которых являются новыми, а некоторые легко получаются или общеизвестны, не прибегая к моделированию. Тогда, по крайней мере, рецензент может подтвердить, что последние результаты верны. Примерно так же моделирование может уточнить результаты, которые можно аппроксимировать только с помощью вероятностных или других математических вычислений. Затем рецензент может подтвердить, что результаты хотя бы приблизительно верны.

(2) Очень часто важной частью исследования моделирования может быть получение приблизительных границ, в пределах которых, вероятно (вероятность 95 %), лежат результаты моделирования. Если представляется возможным получить такие границы, а в рецензируемой статье они отсутствуют, то рецензент должен запросить их или объяснить их отсутствие.

Приложение: Это тривиальный пример, иллюстрирующий некоторые концепции в (1) и (2). Предположим, что пять игральных костей загружены так, что грани с 1 по 6 имеют соответствующие вероятности (1/12, 1/6, 1/6, 1/6, 1/6, 1/4) выпадения. Если выпали все пять, какова вероятность того, что сумма будет не менее 25? Моделирование в статистическом программном обеспечении R миллиона таких экспериментов с 5 кубиками показывает, что доля результатов с общим числом 25 или более составила 0,092903. Можно ли верить этому результату? Ответ: да, примерно в трех местах.

Смоделированный 95-процентный предел погрешности моделирования находится «в пределах 0,0006». Легко видеть, что средняя сумма равна 19,583, а соответствующий смоделированный результат равен 19,580. Разумное двухзначное нормальное приближение составляет 0,0922. Этот конкретный пример богат подтверждающими возможностями, но это лишь некоторые из них.

Примечание. Другая проблема заключается в том, что при использовании различного математического программного обеспечения эта задача может быть точно решена с помощью передовых комбинаторных методов. Один точный метод основан на этой странице , за исключением того, что наши кости предвзяты, и результаты не равновероятны. Сомнительно, следует ли публиковать результаты моделирования, если существует приемлемое точное решение. Одной из задач рецензента является выявление статей, которые не следует публиковать по этой причине.

Обычно воспроизводятся известные примеры, чтобы убедиться, что симуляция делает то, что заявлено. Затем дальнейшее моделирование показывает новые результаты, которые не могут быть воспроизведены другой группой, потому что они не использовали описанный метод или подход, описанный в статье/докладе.

Из-за краткости первая часть часто опускается в журнальных статьях и выступлениях на конференциях. Кандидатские диссертации содержат их чаще.

Одна из моих первых публикаций, она не содержит никакого прорыва, только цитируется из других, чтобы показать, что они соответствуют моим результатам.

Если бы я рецензировал статью, в значительной степени основанную на каком-то вычислительном анализе, но не предоставляющую код, я бы отклонил эту статью, если авторы не могли указать вескую причину: даже если бы они использовали проприетарные библиотеки, я бы d хотят увидеть вызовы, которые они сделали в эти библиотеки. Этого требуют многие журналы в моей области (геномика/биоинформатика).

Тем не менее, если симуляция работала в течение 2 месяцев на 10 000 ядер (или даже неделю на 200 ядрах), у меня не так много шансов воспроизвести даже с кодом. И у меня почти наверняка нет ни времени, ни денег, ни опыта, чтобы повторять лабораторные эксперименты в любой статье, которую я читал.

Я не думаю, что предоставление кода, хотя и является хорошей практикой, является защитой от нечестности. В конце концов, защиты от прямого мошенничества очень мало, и процесс проверки предназначен не для этой цели.

Возможно, у вас не будет возможности воспроизвести его сейчас , но учтите, что статья может представлять интерес через десятилетие или два.
Вероятность того, что любая базовая инфраструктура через два десятилетия будет совместима с кодом, написанным сейчас, довольно минимальна, если только она не упакована в виртуальную машину. Я бы скептически отнесся к тому, что даже сборка образа докера сейчас будет работать так же через 20 лет. Это реальная и постоянная проблема. См . software.ac.uk для примера людей, усердно работающих над решением этой нетривиальной проблемы.
Использование проприетарных библиотек не является веской причиной. То есть авторы могут показать код, который они написали, и сказать: «Скомпилируйте это с помощью libproprietarystuff».
именно это я и сказал
«Вероятность того, что эта компания, производящая реагенты, будет работать через два десятилетия, довольно минимальна. Я бы скептически отнесся к тому, что каталоги почтовых заказов будут такими же через 20 лет!»