У меня есть очень большой файл, содержащий список информации о посылках. Я смоделировал каждую посылку как агент с уникальными свойствами в моей модели. Всего имеется 2,3 млн. Посылок.
Проблема в том, что если я прочитал все посылки и создал их как агенты за один раз во время установки, он будет занимать большой объем памяти и потенциально вызовет OOM на начальных нескольких отметках. Поэтому мне нужно изменить стратегию импорта данных и создания агентов в пакетном режиме во время прогона моделирования.
мои данные выглядят, например, в этой форме: первый столбец - время прибытия в минутах, а второй - атрибут для каждой посылки. Я запускаю свою имитационную модель один тик = одну минуту, поэтому все посылки с одинаковой минутой прибытия будут активированы для определенных действий, и после их завершения они умрут
arr_time property
94 T6
197 T4
202 T4
252 T6
252 T6
252 T4
252 T6
252 T6
252 T6
252 T6
252 T6
252 T6
252 T6
252 T6
252 T6
252 T6
252 T6
252 T6
252 T6
252 T6
252 T6
252 T6
252 T6
252 T6
252 T6
665 T4
665 T6
665 T6
665 T6
665 T6
665 T4
846 T4
1355 T4
1407 T6
1411 T6
1426 T6
1426 T6
1426 T6
1426 T6
фактический файл намного больше, чем этот. Вместо того, чтобы читать их по одному за раз, я хотел бы прочитать файл несколько раз во время симуляции, например, запускайте команду чтения файла каждые 120 тиков (минут), чтобы прочитать данные за следующие 120 минут и создать агентов, которые прибывают в этот период. Таким образом, общее количество агентов в моем мире моделирования может быть уменьшено, чтобы предотвратить «Недостаточно памяти», особенно при выполнении параллельных запусков. (Кстати, я предпочитаю чтение файлов с файлами .txt)