Я создал в Python моделирование дискретных событий, которое принимает заданное количество входов, которые в настоящее время хранятся в таблице базы данных, и производит вывод, который также хранится в базе данных (SQLite). Я реализовал возможность запуска нескольких репликаций (так как есть некоторая случайность в симуляции) с заданным набором входов. Теперь я хочу иметь возможность запускать симуляцию с несколькими наборами входов без необходимости вручную изменять входы после каждого прогона. Однако я не уверен, как наилучшим образом достичь этого.Метод автоматизации сеансов моделирования
Мое настоящее мышление заключается в создании сценария, который может создать файл JSON, содержащий входы для каждого прогона. Например:
Входные данные таблицы (предельно упрощен для объяснения):
id name input 1 input 2
1 Entity 1 67 red
2 Entity 2 54 blue
JSON, например (снова упрощена, чтобы соответствовать выше входа):
{"simulation inputs":[
{"run 1":
"replications": 100,
"entity 1": "name of entity"
{
"input 1": 67,
"input 2": "red"
}
"entity 2": "a different entity of same class with different values"
{
"input 1": 54,
"input 2": "blue"
}
},
{"run 2":
"replications": 100,
"entity 1": "name of entity"
{
"input 1": 69,
"input 2": "red"
}
"entity 2": "a different entity of same class with different values"
{
"input 1": 54,
"input 2": "blue"
}
},
{"run 3":
"replications": 100,
"entity 1": "name of entity"
{
"input 1": 71,
"input 2": "red"
}
"entity 2": "a different entity of same class with different values"
{
"input 1": 54,
"input 2": "blue"
}
},
]}
В соответствии с приведенной выше примере, который содержит информация для трех прогонов, где один вход настраивается для каждого запуска - вход 1 для объекта 1. В реальной ситуации может быть большое количество изменений в входах, для которых в каждом файле конфигурации будет 1 запись запуска в файле конфигурации. Программа Python будет запускаться через список в файле JSON, используя определенные значения в качестве входов для этого конкретного запуска. Выходы сохраняются в базе данных. Каждый из объектов является экземпляром того же класса с разными значениями для входов.
Является ли вышеупомянутый разумным подход? Если нет каких-либо других подходов? Если да, то есть реализация такой функциональности или схожей, где бы я ни могла использовать в качестве отправной точки?
У меня был хороший поиск, но, возможно, поскольку я не знаком с терминологией конфигурационного файла, не смог найти подходящего ответа.
примечание: отредактировано, чтобы лучше представлять тип входных данных, которые будут использоваться.
Большое спасибо.
Какая БД вы используете для хранения ваших входов? Вы можете получить все строки из своей таблицы в виде простого словаря и перебрать его для запуска всех симуляций. –
Я использую SQLite. Пример, который я дал, был довольно прост. Я отредактировал его, чтобы лучше отражать входные данные, которые будут меняться, а также включить пример некоторых входных данных. – Pete
Для этого нет общего решения, написания пользовательских сценариев для перебора наборов входных данных и сопоставления вывода - задача, ориентированная на платформу и модель. – pjs