3 / 3 / 1 Регистрация: 11.11.2019 Сообщений: 127 Записей в блоге: 2 |
|
1 |
|
Ошибка при выполнении дискретного события25.10.2021, 15:08. Показов 4460. Ответов 7
Здравствуйте Делаю учебный пример. Создал модель. При запуске получаю ошибку: Подробности смотрите в Консоли В консоли: Файл во вложении В чем у меня ошибка?
0 |
3 / 3 / 1 Регистрация: 11.11.2019 Сообщений: 127 Записей в блоге: 2 |
|
25.10.2021, 17:23 [ТС] |
2 |
Нашел вот эту тему на SO: https://stackoverflow.com/ques… t-to-class
0 |
58 / 43 / 14 Регистрация: 21.01.2019 Сообщений: 191 |
|
25.10.2021, 17:53 |
3 |
Сообщение было отмечено Baumanetc как решение Решение Все понятно — используется класс, не обладающий полями, а именно — agent.enteredSystem = time(); это класс Customer. Миниатюры
1 |
58 / 43 / 14 Регистрация: 21.01.2019 Сообщений: 191 |
|
25.10.2021, 17:57 |
4 |
Сначала посмотрите «было_так.jpg» а потом «а_нужно_так.jpg».
0 |
3 / 3 / 1 Регистрация: 11.11.2019 Сообщений: 127 Записей в блоге: 2 |
|
25.10.2021, 19:27 [ТС] |
5 |
Спасибо, Artemhol, все работает
0 |
58 / 43 / 14 Регистрация: 21.01.2019 Сообщений: 191 |
|
25.10.2021, 19:34 |
6 |
Спасибо за повышение репутации.
0 |
0 / 9 / 0 Регистрация: 28.11.2015 Сообщений: 454 |
|
25.05.2023, 10:11 |
7 |
Та же фигня. Это происходит из за связи блока dropoff с блоком «размещение_в_месте_хранения_контейнеров_по_3D_структуре» внутри области ПРОСМОТРА «ЖДкранЛогика»
0 |
0 / 9 / 0 Регистрация: 28.11.2015 Сообщений: 454 |
|
25.05.2023, 10:15 |
8 |
кАК УДАЛИТЬ СООБЩЕНИЕ
0 |
3 / 3 / 1 Регистрация: 11.11.2019 Сообщений: 119 Записей в блоге: 2 |
|
1 |
|
Ошибка при выполнении дискретного события25.10.2021, 15:08. Показов 2816. Ответов 5
Здравствуйте Делаю учебный пример. Создал модель. При запуске получаю ошибку: Подробности смотрите в Консоли В консоли: Файл во вложении В чем у меня ошибка?
__________________ 0 |
3 / 3 / 1 Регистрация: 11.11.2019 Сообщений: 119 Записей в блоге: 2 |
|
25.10.2021, 17:23 [ТС] |
2 |
Нашел вот эту тему на SO: https://stackoverflow.com/ques… t-to-class 0 |
58 / 43 / 14 Регистрация: 21.01.2019 Сообщений: 191 |
|
25.10.2021, 17:53 |
3 |
Сообщение было отмечено Baumanetc как решение Решение Все понятно — используется класс, не обладающий полями, а именно — agent.enteredSystem = time(); это класс Customer. Миниатюры
1 |
58 / 43 / 14 Регистрация: 21.01.2019 Сообщений: 191 |
|
25.10.2021, 17:57 |
4 |
Сначала посмотрите «было_так.jpg» а потом «а_нужно_так.jpg». 0 |
3 / 3 / 1 Регистрация: 11.11.2019 Сообщений: 119 Записей в блоге: 2 |
|
25.10.2021, 19:27 [ТС] |
5 |
Спасибо, Artemhol, все работает 0 |
58 / 43 / 14 Регистрация: 21.01.2019 Сообщений: 191 |
|
25.10.2021, 19:34 |
6 |
Спасибо за повышение репутации. 0 |
Для решения сложных аналитических задач используют моделирование. Суть метода заключается в создании модели реального объекта, процесса или явления на основании его поведения. Построенную модель исследователи помещают в конкретные условия и получают интересующую информацию. В случае с бизнесом, это позволяет экономить ресурсы и деньги, а также оценивать риски событий.
Содержание
- Что это такое?
- Как установить?
- Что делать если «ошибка при выполнении дискретного события»?
- Как создать простую модель?
- Модель перекрестка
- Пакеты программ, их отличия и стоимость
Что это такое?
Программное обеспечение AnyLogic — удобный инструмент для имитационного моделирования в сфере бизнеса. Программа используется во множестве индустрий, включая логистику, производство, складское дело, нефтяную и газовые промышленности.
Имитационное моделирование облегчает поиск обоснований для принятия управленческих решений.
Умение работать с AnyLogic или схожими программными продуктами обязательное требование для таких профессий, как инженер и бизнес-аналитик.
Главной особенностью программы является простота и удобство использования. Благодаря графической среде моделирования создавать объекты исследования и управлять ими не составляет труда. Моделирование в AnyLogic построено на объектно-ориентированном принципе. Любая модель состоит из ряда объектов, каждый из которых имеет свои функции и взаимодействует с окружающей средой.
Предлагаем посмотреть видео о программе AnyLogic:
Как установить?
Для того чтобы скачать и установить программу AnyLogic, следует выполнить ряд простых действий:
- Зайти на официальный сайт и нажать на кнопку «Скачать» в правом верхнем углу.
- Выбрать интересующую версию программы и повторно нажать «Скачать».
- Загрузить установочный файл, предварительно указав операционную систему устройства.
Программа корректно работает на операционных системах Windows, начиная с 7 версии, Mac OS X и Linux, в том числе Ubuntu.
После проделанных шагов начнется скачивание файла. Объем файла до 1 Гб, поэтому процедура загрузки занимается всего несколько минут. Для запуска установки необходимо дважды нажать на загруженный файл, чтобы запустился «Мастер установки». Следуйте всем инструкциям, чтобы успешно завершить установку.
Из основных шагов стоит выделить:
- принятие лицензионного соглашения;
- настроика директории установки и языка программы.
После этого начнется копирование файлов, а по завершению автоматически откроется «Мастер активации». Пользователям предлагается два варианта:
- использовать купленный ключ для активации программы;
- запросить ознакомительный ключ для временного бесплатного доступа.
В случае с платной версией программы достаточно ввести код активации и можно начинать работу. Но для ознакомительной версии необходимо запросить ключ активации, заполнить личные данные и ввести действующий адрес электронной почты, на которое придет сообщение с кодом.
Скачивать программу лучше с официального сайта компании.
Что делать если «ошибка при выполнении дискретного события»?
Одной из самых распространенных проблем, с которыми сталкиваются пользователи программы AnyLogic, является ошибка при выполнении дискретного события. Как правило, причина заключается в том, что следующий блок модели не может принять заявку.
Прочитайте официальную документацию о принципах формирования заявок (агентов).
Для того чтобы избавиться от ошибки, достаточно добавить блок очереди queue или увеличить его вместительность в настройках агента. Как вариант, можно увеличить лимит до бесконечности.
Как создать простую модель?
В нижеописанном примере рассмотрим пример модели обслуживания клиентов в терминале. Алгоритм работы простой — клиент подходит к устройству, выполняет рад действий и уходит. Для создания модели необходимо:
- Создать новую модель, указав ее имя, месторасположение и единицы модельного времени.
- Создать диаграмму, добавив нужные блоки из библиотеки моделирования процессов.
- Настроить параметры блоков, такие как интенсивность прибытия, вместимость очереди и время задержки.
- Запустить модель и проверить ее работоспособность.
В нашем случае достаточно использование четырех блоков:
- Source — генерирует агентов нужного типа, в нашем случае клиентов, которым нужен доступ к терминалу.
- Queue — очередь из агентов, которым нужен доступ к объекту. Если очередь заполнена, агент уничтожается.
- Delay — задерживает агентов на указанный период, другими словами блок симулирует время работы с терминалом.
- Sink — уничтожает агентов после всех моделируемых действий.
Для запуска созданной модели достаточно нажать на кнопку запустить, расположенную в панели инструментов. Начнется симуляция процесса в режиме реального времени.
Временем моделирования можно управлять с помощью кнопок «Замедлить» и «Ускорить».
Модель перекрестка
Для создания модели перекрестка необходимо выделить основные характеристики события. Как правило, любое пересечение дорог регулируется светофорами, а в часы пик — возникают пробки и замедляется скорость движения.
Для создания модели необходимы следующие блоки:
- Source — создание машин с заданным интервалом.
- 2 Queue — очередь машин перед светофором.
- 2 Conveyor — перемещает агентов с заданными промежутками между ними, сохраняя порядок следования.
- Hold — останавливает агентов моделирования.
- Sink — конец жизни моделируемого агента.
Для симуляции светофора используют стейтчарт, который создается с помощью «Диаграммы состояний». Можно настроить действие (изменение цвета), время сохранения состояния, возможность двигаться, скорость передвижения, замедление в случае включения желтого света и т.д.
Пакеты программ, их отличия и стоимость
Компания AnyLogic предлагает клиентам три версии программы, каждая из которых подходит для решения конкретных нужд и задач. Отличаются они функциональными возможностями. Ниже подробно рассмотрим каждую из них.
- Версия «Personal Learning Edition» подходит для студентов и новичков, которые хотят освоить программу. Доступ ко всем функциям бесплатный, но их количество ограничено. Программа предоставляет многоподходное моделирование, интеграцию с ГИС-картами, все доступные библиотеки, а также 2D и 3D анимацию. Помимо этого бесплатная версия работает с базами данных и текстовыми файлами, позволяет проводить эксперименты, экспорт моделей в AnyLogic Cloud и базовую отладку.
- Версия «University Researcher» предназначена для использования в открытых университетских исследованиях. Помимо функций студенческой программы, пользователям доступны расширенные возможности. Среди основных следует выделить:
- неограниченный размер моделей;
- техническая поддержка;
- доступ к отраслевым библиотекам;
- возможность работы с любыми базами данных;
- дополнительные эксперименты, включая оптимизацию, калибровку, анализ чувствительности и т.д.;
- экспорт приватных моделей в облачную версию.
- Версия «Professional» подходит для коммерческих компаний и государственных организаций. Все вышеперечисленные функции доступны в программе. Также владельцам профессиональной лицензии доступно следующее:
- дополнительные элементы анимированного управления;
- экспорт моделей и результатов в сторонние приложения;
- сохранение и восстановления состояния объектов;
- импорт чертежей в САПР;
- расширенные функции отладки.
Чтобы узнать стоимость интересующей версии, необходимо оставить заявку на сайте компании. Программа для начинающих доступна бесплатно, остальные версии имеют 60 дней пробного использования.
Программа AnyLogic упрощает работу аналитиков и инженеров. Благодаря графическому интерфейсу создание и настройка моделей не требует много времени, а полученные данные легко анимировать и визуализировать. Имитационное моделирование выгодно любому бизнесу, ведь для вместо экспериментов на реальной системе можно использовать компьютер и уже на основе полученного результата принимать решения.
Я делаю проект для учебы. Существует агент с двумя переменными, которые принимают значение True или False с помощью функции randomTrue (). Построение проекта ошибок не выявляет. При запуске выдает ошибку при выполнении дискретного события: NullPointerException. В систему не было введено ни одного агента. На источнике 0. Я попытался сменить агентов, изменил randomTrue () на randomFalse (), но безрезультатно. Какие есть варианты?
NullPointerException
java.lang.NullPointerException
at com.anylogic.engine.Utilities.randomTrue(Unknown Source)
at bank.Document.<init>(Document.java:78)
at bank.Main._doc_enter_newEntity_xjal(Main.java:978)
at bank.Main.access$0(Main.java:975)
at bank.Main$1.newEntity(Main.java:312)
at com.anylogic.libraries.processmodeling.Source.inject(Unknown Source)
at com.anylogic.libraries.processmodeling.Source.executeActionOf(Unknown Source)
at com.anylogic.engine.EventTimeout.execute(Unknown Source)
at com.anylogic.engine.Engine.i(Unknown Source)
at com.anylogic.engine.Engine.if(Unknown Source)
at com.anylogic.engine.Engine.e(Unknown Source)
at com.anylogic.engine.Engine$n.run(Unknown Source)
package bank; import java.io.Serializable; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Currency; import java.util.Date; import java.util.Enumeration; import java.util.HashMap; import java.util.HashSet; import java.util.Hashtable; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; import java.util.Locale; import java.util.Map; import java.util.PriorityQueue; import java.util.Random; import java.util.Set; import java.util.SortedMap; import java.util.SortedSet; import java.util.Stack; import java.util.Timer; import java.util.TreeMap; import java.util.TreeSet; import java.util.Vector; import java.awt.Color; import java.awt.Font; import com.anylogic.engine.connectivity.ResultSet; import com.anylogic.engine.connectivity.Statement; import com.anylogic.engine.elements.*; import com.anylogic.engine.markup.Network; import com.anylogic.engine.Position; import com.anylogic.engine.markup.PedFlowStatistics; import com.anylogic.engine.markup.DensityMap; import static java.lang.Math.*; import static com.anylogic.engine.UtilitiesArray.*; import static com.anylogic.engine.UtilitiesCollection.*; import static com.anylogic.engine.presentation.UtilitiesColor.*; import static com.anylogic.engine.HyperArray.*; import com.anylogic.engine.*; import com.anylogic.engine.analysis.*; import com.anylogic.engine.connectivity.*; import com.anylogic.engine.database.*; import com.anylogic.engine.gis.*; import com.anylogic.engine.markup.*; import com.anylogic.engine.routing.*; import com.anylogic.engine.presentation.*; import com.anylogic.engine.gui.*; import com.anylogic.libraries.modules.markup_descriptors.*; import com.anylogic.libraries.processmodeling.*; import com.anylogic.libraries.material_handling.*; import java.awt.geom.Arc2D; public class Document extends Agent { // Parameters // Plain Variables public final boolean is_simple = randomTrue(0.6) ; public final boolean has_critical_errors = randomTrue(0.1) ; @AnyLogicInternalCodegenAPI private static Map<String, IElementDescriptor> elementDesciptors_xjal = createElementDescriptors( Document.class ); @AnyLogicInternalCodegenAPI @Override public Map<String, IElementDescriptor> getElementDesciptors() { return elementDesciptors_xjal; } @AnyLogicCustomProposalPriority(type = AnyLogicCustomProposalPriority.Type.STATIC_ELEMENT) public static final Scale scale = new Scale( 10.0 ); @Override public Scale getScale() { return scale; } /** Internal constant, shouldn't be accessed by user */ @AnyLogicInternalCodegenAPI protected static final int _STATECHART_COUNT_xjal = 0; // View areas public ViewArea _origin_VA = new ViewArea( this, "[Origin]", 0, 0, 1500.0, 600.0 ); @Override @AnyLogicInternalCodegenAPI public int getViewAreas(Map<String, ViewArea> _output) { if ( _output != null ) { _output.put( "_origin_VA", this._origin_VA ); } return 1 + super.getViewAreas( _output ); } @AnyLogicInternalCodegenAPI protected static final Pair<String, Color>[] _person_customColors_xjal = new Pair[] { new Pair<String, Color>( "Material__3__Surf", null ), new Pair<String, Color>( "Material__5__Surf", null ), new Pair<String, Color>( "Material__6__Surf", null ), new Pair<String, Color>( "Material__2__Surf", null ), new Pair<String, Color>( "Material__4__Surf", null ), new Pair<String, Color>( "Material__1__Surf", null ), }; @AnyLogicInternalCodegenAPI protected static final int _person = 1; /** Internal constant, shouldn't be accessed by user */ @AnyLogicInternalCodegenAPI protected static final int _SHAPE_NEXT_ID_xjal = 2; @AnyLogicInternalCodegenAPI public boolean isPublicPresentationDefined() { return true; } @AnyLogicInternalCodegenAPI public boolean isEmbeddedAgentPresentationVisible( Agent _a ) { return super.isEmbeddedAgentPresentationVisible( _a ); } @AnyLogicInternalCodegenAPI private void _initialize_level_xjal() { level.addAll(person); } protected Shape3DObject person; protected com.anylogic.engine.markup.Level level; private com.anylogic.engine.markup.Level[] _getLevels_xjal; @Override public com.anylogic.engine.markup.Level[] getLevels() { return _getLevels_xjal; } @AnyLogicInternalCodegenAPI private void _createPersistentElementsBP0_xjal() { person = new Shape3DObject( Document.this, SHAPE_DRAW_2D3D, true, 0.0, 0.0, 0.0, 0.0, 1.0, true, "/bank/", "3d/person.dae", OBJECT_3D_YZX_AXIS_ORDER, OBJECT_3D_INTERNAL_LIGHTING_OFF, false, -5.0, -4.0, 7.0, 7.0, null, _person_customColors_xjal ); } @AnyLogicInternalCodegenAPI private void _createPersistentElementsAP0_xjal() { } @AnyLogicInternalCodegenAPI private void _createPersistentElementsBS0_xjal() { } // Static initialization of persistent elements private void instantiatePersistentElements_xjal() { level = new com.anylogic.engine.markup.Level(this, "level", SHAPE_DRAW_2D3D, 0.0, true, true); _getLevels_xjal = new com.anylogic.engine.markup.Level[] { level }; _createPersistentElementsBP0_xjal(); } protected ShapeTopLevelPresentationGroup presentation; protected ShapeModelElementsGroup icon; @Override @AnyLogicInternalCodegenAPI public ShapeTopLevelPresentationGroup getPresentationShape() { return presentation; } @Override @AnyLogicInternalCodegenAPI public ShapeModelElementsGroup getModelElementsShape() { return icon; } /** * Constructor */ public Document( Engine engine, Agent owner, AgentList<? extends Document> ownerPopulation ) { super( engine, owner, ownerPopulation ); instantiateBaseStructureThis_xjal(); } @AnyLogicInternalCodegenAPI public void onOwnerChanged_xjal() { super.onOwnerChanged_xjal(); setupReferences_xjal(); } @AnyLogicInternalCodegenAPI public void instantiateBaseStructure_xjal() { super.instantiateBaseStructure_xjal(); instantiateBaseStructureThis_xjal(); } @AnyLogicInternalCodegenAPI private void instantiateBaseStructureThis_xjal() { instantiatePersistentElements_xjal(); setupReferences_xjal(); } @AnyLogicInternalCodegenAPI private void setupReferences_xjal() { } /** * Simple constructor. Please add created agent to some population by calling goToPopulation() function */ public Document() { } @Override @AnyLogicInternalCodegenAPI public void doCreate() { super.doCreate(); // Assigning initial values for plain variables setupPlainVariables_Document_xjal(); // Dynamic initialization of persistent elements _createPersistentElementsAP0_xjal(); _initialize_level_xjal(); level.initialize(); presentation = new ShapeTopLevelPresentationGroup( Document.this, true, 0, 0, 0, 0 , level ); icon = new ShapeModelElementsGroup( Document.this, getElementProperty( "bank.Document.icon", IElementDescriptor.MODEL_ELEMENT_DESCRIPTORS ) ); icon.setIconOffsets( 0.0, 0.0 ); // Port connectors with non-replicated objects // Creating replicated embedded objects setupInitialConditions_xjal( Document.class ); // Dynamic initialization of persistent elements _createPersistentElementsBS0_xjal(); } @Override @AnyLogicInternalCodegenAPI public void doStart() { super.doStart(); } /** * Assigning initial values for plain variables<br> * <em>This method isn't designed to be called by user and may be removed in future releases.</em> */ @AnyLogicInternalCodegenAPI public void setupPlainVariables_xjal() { setupPlainVariables_Document_xjal(); } /** * Assigning initial values for plain variables<br> * <em>This method isn't designed to be called by user and may be removed in future releases.</em> */ @AnyLogicInternalCodegenAPI private void setupPlainVariables_Document_xjal() { } // User API ----------------------------------------------------- @AnyLogicInternalCodegenAPI public static LinkToAgentAnimationSettings _connections_commonAnimationSettings_xjal = new LinkToAgentAnimationSettingsImpl( false, black, 1.0, LINE_STYLE_SOLID, ARROW_NONE, 0.0 ); public LinkToAgentCollection<Agent, Agent> connections = new LinkToAgentStandardImpl<Agent, Agent>(this, _connections_commonAnimationSettings_xjal); @Override public LinkToAgentCollection<? extends Agent, ? extends Agent> getLinkToAgentStandard_xjal() { return connections; } @AnyLogicInternalCodegenAPI public void drawLinksToAgents(boolean _underAgents_xjal, LinkToAgentAnimator _animator_xjal) { super.drawLinksToAgents(_underAgents_xjal, _animator_xjal); if ( _underAgents_xjal ) { _animator_xjal.drawLink( this, connections, true, true ); } } public AgentList<? extends Document> getPopulation() { return (AgentList<? extends Document>) super.getPopulation(); } public List<? extends Document> agentsInRange( double distance ) { return (List<? extends Document>) super.agentsInRange( distance ); } }
[модель запуска]: https://i.stack.imgur.com/8vGA4.jpg
I am running a model with a method that writes output in a CSV file using the CodeValue class. Every time the model runs, I get the message: Annotation processing got disabled, since it requires a 1.6 compliant JVM
. Most of the time, everything works fine. However, I get this error sometimes: error during model destruction: truncated class file
. When the error occurs, nothing is written in the CSV files.
AnyLogic 8 Personal Learning Edition 8.7.7
Build: 8.7.7.202109242327 x64
Annotation processing got disabled, since it requires a 1.6 compliant JVM Exception during discrete event execution: Truncated class file ---------- 1. ERROR in /fertility_bmi/Expression_1_xjal.java (at line 1) package fertility_bmi; ^ The type com.anylogic.engine.markup.PedFlowStatistics cannot be resolved. It is indirectly referenced from required .class files ---------- 2. ERROR in /fertility_bmi/Expression_1_xjal.java (at line 43) import com.anylogic.engine.markup.PedFlowStatistics; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The import com.anylogic.engine.markup.PedFlowStatistics cannot be resolved ---------- 2 problems (2 errors) java.lang.ClassFormatError: Truncated class file at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:877) at com.anylogic.engine.internal.q.b.j(Unknown Source) at com.anylogic.engine.internal.q.b.loadClass(Unknown Source) at com.anylogic.engine.internal.q.a.j(Unknown Source) at com.anylogic.engine.internal.o.b.j(Unknown Source) at com.anylogic.engine.Utilities.executeExpression(Unknown Source) at com.anylogic.engine.Utilities.executeExpression(Unknown Source) at com.anylogic.engine.database.CodeValue.execute(Unknown Source) at fertility_bmi.ExportOutput.getValues(ExportOutput.java:144) at fertility_bmi.Main.executeActionOf(Main.java:981) at com.anylogic.engine.EventTimeout.execute(Unknown Source) at com.anylogic.engine.Engine.j(Unknown Source) at com.anylogic.engine.Engine.runFast(Unknown Source) at com.anylogic.engine.Engine.runFast(Unknown Source) at com.anylogic.engine.ExperimentParamVariation$j.n(Unknown Source) at com.anylogic.engine.f$j.run(Unknown Source) Annotation processing got disabled, since it requires a 1.6 compliant JVM ---------- 1. ERROR in /fertility_bmi/Expression_1_xjal.java (at line 1) package fertility_bmi; ^ The type com.anylogic.engine.Engine cannot be resolved. It is indirectly referenced from required .class files ---------- 1 problem (1 error) Exception during discrete event execution: Truncated class file java.lang.ClassFormatError: Truncated class file at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:877) at com.anylogic.engine.internal.q.b.j(Unknown Source) at com.anylogic.engine.internal.q.b.loadClass(Unknown Source) at com.anylogic.engine.internal.q.a.j(Unknown Source) at com.anylogic.engine.internal.o.b.j(Unknown Source) at com.anylogic.engine.Utilities.executeExpression(Unknown Source) at com.anylogic.engine.Utilities.executeExpression(Unknown Source) at com.anylogic.engine.database.CodeValue.execute(Unknown Source) at fertility_bmi.ExportOutput.getValues(ExportOutput.java:144) at fertility_bmi.Main.executeActionOf(Main.java:981) at com.anylogic.engine.EventTimeout.execute(Unknown Source) at com.anylogic.engine.Engine.j(Unknown Source) at com.anylogic.engine.Engine.runFast(Unknown Source) at com.anylogic.engine.Engine.runFast(Unknown Source) at com.anylogic.engine.ExperimentParamVariation$j.n(Unknown Source) at com.anylogic.engine.f$j.run(Unknown Source) Annotation processing got disabled, since it requires a 1.6 compliant JVM Annotation processing got disabled, since it requires a 1.6 compliant JVM Annotation processing got disabled, since it requires a 1.6 compliant JVM Annotation processing got disabled, since it requires a 1.6 compliant JVM Annotation processing got disabled, since it requires a 1.6 compliant JVM Annotation processing got disabled, since it requires a 1.6 compliant JVM Error: Error in the model during iteration 68 java.lang.RuntimeException: Error in the model during iteration 68 at com.anylogic.engine.ExperimentParamVariation$j.n(Unknown Source) at com.anylogic.engine.f$j.run(Unknown Source)
Any ideas on how to deal with this?
I am running a model with a method that writes output in a CSV file using the CodeValue class. Every time the model runs, I get the message: Annotation processing got disabled, since it requires a 1.6 compliant JVM
. Most of the time, everything works fine. However, I get this error sometimes: error during model destruction: truncated class file
. When the error occurs, nothing is written in the CSV files.
AnyLogic 8 Personal Learning Edition 8.7.7
Build: 8.7.7.202109242327 x64
Annotation processing got disabled, since it requires a 1.6 compliant JVM
Exception during discrete event execution:
Truncated class file
----------
1. ERROR in /fertility_bmi/Expression_1_xjal.java (at line 1)
package fertility_bmi;
^
The type com.anylogic.engine.markup.PedFlowStatistics cannot be resolved. It is indirectly referenced from required .class files
----------
2. ERROR in /fertility_bmi/Expression_1_xjal.java (at line 43)
import com.anylogic.engine.markup.PedFlowStatistics;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The import com.anylogic.engine.markup.PedFlowStatistics cannot be resolved
----------
2 problems (2 errors)
java.lang.ClassFormatError: Truncated class file
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:877)
at com.anylogic.engine.internal.q.b.j(Unknown Source)
at com.anylogic.engine.internal.q.b.loadClass(Unknown Source)
at com.anylogic.engine.internal.q.a.j(Unknown Source)
at com.anylogic.engine.internal.o.b.j(Unknown Source)
at com.anylogic.engine.Utilities.executeExpression(Unknown Source)
at com.anylogic.engine.Utilities.executeExpression(Unknown Source)
at com.anylogic.engine.database.CodeValue.execute(Unknown Source)
at fertility_bmi.ExportOutput.getValues(ExportOutput.java:144)
at fertility_bmi.Main.executeActionOf(Main.java:981)
at com.anylogic.engine.EventTimeout.execute(Unknown Source)
at com.anylogic.engine.Engine.j(Unknown Source)
at com.anylogic.engine.Engine.runFast(Unknown Source)
at com.anylogic.engine.Engine.runFast(Unknown Source)
at com.anylogic.engine.ExperimentParamVariation$j.n(Unknown Source)
at com.anylogic.engine.f$j.run(Unknown Source)
Annotation processing got disabled, since it requires a 1.6 compliant JVM
----------
1. ERROR in /fertility_bmi/Expression_1_xjal.java (at line 1)
package fertility_bmi;
^
The type com.anylogic.engine.Engine cannot be resolved. It is indirectly referenced from required .class files
----------
1 problem (1 error)
Exception during discrete event execution:
Truncated class file
java.lang.ClassFormatError: Truncated class file
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:877)
at com.anylogic.engine.internal.q.b.j(Unknown Source)
at com.anylogic.engine.internal.q.b.loadClass(Unknown Source)
at com.anylogic.engine.internal.q.a.j(Unknown Source)
at com.anylogic.engine.internal.o.b.j(Unknown Source)
at com.anylogic.engine.Utilities.executeExpression(Unknown Source)
at com.anylogic.engine.Utilities.executeExpression(Unknown Source)
at com.anylogic.engine.database.CodeValue.execute(Unknown Source)
at fertility_bmi.ExportOutput.getValues(ExportOutput.java:144)
at fertility_bmi.Main.executeActionOf(Main.java:981)
at com.anylogic.engine.EventTimeout.execute(Unknown Source)
at com.anylogic.engine.Engine.j(Unknown Source)
at com.anylogic.engine.Engine.runFast(Unknown Source)
at com.anylogic.engine.Engine.runFast(Unknown Source)
at com.anylogic.engine.ExperimentParamVariation$j.n(Unknown Source)
at com.anylogic.engine.f$j.run(Unknown Source)
Annotation processing got disabled, since it requires a 1.6 compliant JVM
Annotation processing got disabled, since it requires a 1.6 compliant JVM
Annotation processing got disabled, since it requires a 1.6 compliant JVM
Annotation processing got disabled, since it requires a 1.6 compliant JVM
Annotation processing got disabled, since it requires a 1.6 compliant JVM
Annotation processing got disabled, since it requires a 1.6 compliant JVM
Error:
Error in the model during iteration 68
java.lang.RuntimeException: Error in the model during iteration 68
at com.anylogic.engine.ExperimentParamVariation$j.n(Unknown Source)
at com.anylogic.engine.f$j.run(Unknown Source)
Any ideas on how to deal with this?
I have been trying to fix a NullPointerException for awhile now and I am completely stumped. It is occurring in a ‘seize’ block, but I cannot determine what exactly is causing it.
I have a feeling it could be the code I have inputted into the seize block due to the fact that I am a beginner.
I am trying to seize another agent and send it to different parts of the world via a parameter within the ‘order’ agent that contains a value from 1 to 8.
On seize unit I have the following code:
if (agent.missionLocation <= 1); KC30resource1.moveTo(main.AsiaRegion.randomPointInside());
{
if (agent.missionLocation <= 2); KC30resource1.moveTo(main.AfricaRegion.randomPointInside());
}
{
if (agent.missionLocation <= 3); KC30resource1.moveTo(main.MiddleeastRegion.randomPointInside());
}
{
if (agent.missionLocation <= 4); KC30resource1.moveTo(main.EuropeRegion.randomPointInside());
}
{
if (agent.missionLocation <= 5); KC30resource1.moveTo(main.NAmericaRegion.randomPointInside());
}
{
if (agent.missionLocation <= 6); KC30resource1.moveTo(main.SAmericaRegion.randomPointInside());
}
{
if (agent.missionLocation <= 7); KC30resource3.moveTo(main.AustraliaNzRegion.randomPointInside());
}
{
if (agent.missionLocation <= 8); KC30resource2.moveTo(main.PacificRegion.randomPointInside());
}
Could this be the reason why it is happening?
Exception during discrete event execution:
NullPointerException
java.lang.NullPointerException
at com.anylogic.libraries.processmodeling.Seize.a(Unknown Source)
at com.anylogic.libraries.processmodeling.Seize.a(Unknown Source)
at com.anylogic.libraries.processmodeling.Seize.a(Unknown Source)
at com.anylogic.libraries.processmodeling.Seize.a(Unknown Source)
at com.anylogic.libraries.processmodeling.Seize.a(Unknown Source)
at com.anylogic.libraries.processmodeling.Seize.a(Unknown Source)
at com.anylogic.libraries.processmodeling.Seize.a(Unknown Source)
at com.anylogic.libraries.processmodeling.Seize$16.a(Unknown Source)
at com.anylogic.libraries.processmodeling.Seize$16.action(Unknown Source)
at com.anylogic.libraries.processmodeling.AsynchronousExecutor_xjal.executeActionOf(Unknown Source)
at com.anylogic.engine.EventTimeout.execute(Unknown Source)
at com.anylogic.engine.Engine.f(Unknown Source)
at com.anylogic.engine.Engine.gj(Unknown Source)
at com.anylogic.engine.Engine.e(Unknown Source)
at com.anylogic.engine.Engine$m.run(Unknown Source)
Expected results are that the unit will fly to the GISregion specified in the code. Each ‘MoveTo’ block for each region is connect to the Seize block.
Thank you in advance.
Я пытаюсь построить новую модель в AnyLogic и получаю следующую ошибку:
Я действительно хватаюсь за соломинку, чтобы определить, что происходит не так, поскольку в окне проблемы нет ошибок. Единственное, о чем я могу думать, это то, что некоторое время назад я скопировал агентов и классы из старых моделей в эту. Однако модель компилировалась и запускалась после копирования-вставки, поэтому, если это связано, то это очень отложенная ошибка. У кого-нибудь есть идеи?
другой маршрут в Flask Python
Flask — это фреймворк, который поддерживает веб-приложения. В этой статье я покажу, как мы можем использовать @app .route в flask, чтобы иметь другую…
Принцип подстановки Лискова
Принцип подстановки Лискова (LSP) — это принцип объектно-ориентированного программирования, который гласит, что объекты суперкласса должны иметь…
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Ответы
1
Ответ принят как подходящий
Я нашел ответ: это проблема AnyLogic RunConfiguration. Чтобы исправить это, я сделал следующее:
- Я проверил
ignore
на всех моих агентах и классах. - Я пытался построить модель; как и ожидалось,
RunConfiguration
не может быть собран, поскольку у него больше нет агента верхнего уровня. - Я снял отметку с
ignore
на всех моих агентах и классах и далRunConfiguration
нового агента верхнего уровня. - Внутренне это изменяет
RunConfiguration
ActiveObjectClassId
, что по какой-то причине решает проблему.
Надеюсь, это вам тоже поможет!
Другие вопросы по теме
Для решения сложных аналитических задач используют моделирование. Суть метода заключается в создании модели реального объекта, процесса или явления на основании его поведения. Построенную модель исследователи помещают в конкретные условия и получают интересующую информацию. В случае с бизнесом, это позволяет экономить ресурсы и деньги, а также оценивать риски событий.
Содержание
- Что это такое?
- Как установить?
- Что делать если «ошибка при выполнении дискретного события»?
- Как создать простую модель?
- Модель перекрестка
- Пакеты программ, их отличия и стоимость
Что это такое?
Программное обеспечение AnyLogic — удобный инструмент для имитационного моделирования в сфере бизнеса. Программа используется во множестве индустрий, включая логистику, производство, складское дело, нефтяную и газовые промышленности.
Имитационное моделирование облегчает поиск обоснований для принятия управленческих решений.
Умение работать с AnyLogic или схожими программными продуктами обязательное требование для таких профессий, как инженер и бизнес-аналитик.
Главной особенностью программы является простота и удобство использования. Благодаря графической среде моделирования создавать объекты исследования и управлять ими не составляет труда. Моделирование в AnyLogic построено на объектно-ориентированном принципе. Любая модель состоит из ряда объектов, каждый из которых имеет свои функции и взаимодействует с окружающей средой.
Предлагаем посмотреть видео о программе AnyLogic:
Как установить?
Для того чтобы скачать и установить программу AnyLogic, следует выполнить ряд простых действий:
- Зайти на официальный сайт и нажать на кнопку «Скачать» в правом верхнем углу.
- Выбрать интересующую версию программы и повторно нажать «Скачать».
- Загрузить установочный файл, предварительно указав операционную систему устройства.
Программа корректно работает на операционных системах Windows, начиная с 7 версии, Mac OS X и Linux, в том числе Ubuntu.
После проделанных шагов начнется скачивание файла. Объем файла до 1 Гб, поэтому процедура загрузки занимается всего несколько минут. Для запуска установки необходимо дважды нажать на загруженный файл, чтобы запустился «Мастер установки». Следуйте всем инструкциям, чтобы успешно завершить установку.
Из основных шагов стоит выделить:
- принятие лицензионного соглашения;
- настроика директории установки и языка программы.
После этого начнется копирование файлов, а по завершению автоматически откроется «Мастер активации». Пользователям предлагается два варианта:
- использовать купленный ключ для активации программы;
- запросить ознакомительный ключ для временного бесплатного доступа.
В случае с платной версией программы достаточно ввести код активации и можно начинать работу. Но для ознакомительной версии необходимо запросить ключ активации, заполнить личные данные и ввести действующий адрес электронной почты, на которое придет сообщение с кодом.
Скачивать программу лучше с официального сайта компании.
Что делать если «ошибка при выполнении дискретного события»?
Одной из самых распространенных проблем, с которыми сталкиваются пользователи программы AnyLogic, является ошибка при выполнении дискретного события. Как правило, причина заключается в том, что следующий блок модели не может принять заявку.
Прочитайте официальную документацию о принципах формирования заявок (агентов).
Для того чтобы избавиться от ошибки, достаточно добавить блок очереди queue или увеличить его вместительность в настройках агента. Как вариант, можно увеличить лимит до бесконечности.
Как создать простую модель?
В нижеописанном примере рассмотрим пример модели обслуживания клиентов в терминале. Алгоритм работы простой — клиент подходит к устройству, выполняет рад действий и уходит. Для создания модели необходимо:
- Создать новую модель, указав ее имя, месторасположение и единицы модельного времени.
- Создать диаграмму, добавив нужные блоки из библиотеки моделирования процессов.
- Настроить параметры блоков, такие как интенсивность прибытия, вместимость очереди и время задержки.
- Запустить модель и проверить ее работоспособность.
В нашем случае достаточно использование четырех блоков:
- Source — генерирует агентов нужного типа, в нашем случае клиентов, которым нужен доступ к терминалу.
- Queue — очередь из агентов, которым нужен доступ к объекту. Если очередь заполнена, агент уничтожается.
- Delay — задерживает агентов на указанный период, другими словами блок симулирует время работы с терминалом.
- Sink — уничтожает агентов после всех моделируемых действий.
Для запуска созданной модели достаточно нажать на кнопку запустить, расположенную в панели инструментов. Начнется симуляция процесса в режиме реального времени.
Временем моделирования можно управлять с помощью кнопок «Замедлить» и «Ускорить».
Модель перекрестка
Для создания модели перекрестка необходимо выделить основные характеристики события. Как правило, любое пересечение дорог регулируется светофорами, а в часы пик — возникают пробки и замедляется скорость движения.
Для создания модели необходимы следующие блоки:
- Source — создание машин с заданным интервалом.
- 2 Queue — очередь машин перед светофором.
- 2 Conveyor — перемещает агентов с заданными промежутками между ними, сохраняя порядок следования.
- Hold — останавливает агентов моделирования.
- Sink — конец жизни моделируемого агента.
Для симуляции светофора используют стейтчарт, который создается с помощью «Диаграммы состояний». Можно настроить действие (изменение цвета), время сохранения состояния, возможность двигаться, скорость передвижения, замедление в случае включения желтого света и т.д.
Пакеты программ, их отличия и стоимость
Компания AnyLogic предлагает клиентам три версии программы, каждая из которых подходит для решения конкретных нужд и задач. Отличаются они функциональными возможностями. Ниже подробно рассмотрим каждую из них.
- Версия «Personal Learning Edition» подходит для студентов и новичков, которые хотят освоить программу. Доступ ко всем функциям бесплатный, но их количество ограничено. Программа предоставляет многоподходное моделирование, интеграцию с ГИС-картами, все доступные библиотеки, а также 2D и 3D анимацию. Помимо этого бесплатная версия работает с базами данных и текстовыми файлами, позволяет проводить эксперименты, экспорт моделей в AnyLogic Cloud и базовую отладку.
- Версия «University Researcher» предназначена для использования в открытых университетских исследованиях. Помимо функций студенческой программы, пользователям доступны расширенные возможности. Среди основных следует выделить:
- неограниченный размер моделей;
- техническая поддержка;
- доступ к отраслевым библиотекам;
- возможность работы с любыми базами данных;
- дополнительные эксперименты, включая оптимизацию, калибровку, анализ чувствительности и т.д.;
- экспорт приватных моделей в облачную версию.
- Версия «Professional» подходит для коммерческих компаний и государственных организаций. Все вышеперечисленные функции доступны в программе. Также владельцам профессиональной лицензии доступно следующее:
- дополнительные элементы анимированного управления;
- экспорт моделей и результатов в сторонние приложения;
- сохранение и восстановления состояния объектов;
- импорт чертежей в САПР;
- расширенные функции отладки.
Чтобы узнать стоимость интересующей версии, необходимо оставить заявку на сайте компании. Программа для начинающих доступна бесплатно, остальные версии имеют 60 дней пробного использования.
Программа AnyLogic упрощает работу аналитиков и инженеров. Благодаря графическому интерфейсу создание и настройка моделей не требует много времени, а полученные данные легко анимировать и визуализировать. Имитационное моделирование выгодно любому бизнесу, ведь для вместо экспериментов на реальной системе можно использовать компьютер и уже на основе полученного результата принимать решения.
I’m doing a project for studying. There is an agent with 2 variables that take the value True or False using the randomTrue() function.
The construction of the project does not reveal errors. At startup, it throws an error when executing a discrete event:NullPointerException. Not a single agent was entered into the system. On source 0.
I tried to change agents, changed randomTrue() to randomFalse(), with no results.
What are the options?
NullPointerException
java.lang.NullPointerException
at com.anylogic.engine.Utilities.randomTrue(Unknown Source)
at bank.Document.<init>(Document.java:78)
at bank.Main._doc_enter_newEntity_xjal(Main.java:978)
at bank.Main.access$0(Main.java:975)
at bank.Main$1.newEntity(Main.java:312)
at com.anylogic.libraries.processmodeling.Source.inject(Unknown Source)
at com.anylogic.libraries.processmodeling.Source.executeActionOf(Unknown Source)
at com.anylogic.engine.EventTimeout.execute(Unknown Source)
at com.anylogic.engine.Engine.i(Unknown Source)
at com.anylogic.engine.Engine.if(Unknown Source)
at com.anylogic.engine.Engine.e(Unknown Source)
at com.anylogic.engine.Engine$n.run(Unknown Source)
package bank;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Currency;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Locale;
import java.util.Map;
import java.util.PriorityQueue;
import java.util.Random;
import java.util.Set;
import java.util.SortedMap;
import java.util.SortedSet;
import java.util.Stack;
import java.util.Timer;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.Vector;
import java.awt.Color;
import java.awt.Font;
import com.anylogic.engine.connectivity.ResultSet;
import com.anylogic.engine.connectivity.Statement;
import com.anylogic.engine.elements.*;
import com.anylogic.engine.markup.Network;
import com.anylogic.engine.Position;
import com.anylogic.engine.markup.PedFlowStatistics;
import com.anylogic.engine.markup.DensityMap;
import static java.lang.Math.*;
import static com.anylogic.engine.UtilitiesArray.*;
import static com.anylogic.engine.UtilitiesCollection.*;
import static com.anylogic.engine.presentation.UtilitiesColor.*;
import static com.anylogic.engine.HyperArray.*;
import com.anylogic.engine.*;
import com.anylogic.engine.analysis.*;
import com.anylogic.engine.connectivity.*;
import com.anylogic.engine.database.*;
import com.anylogic.engine.gis.*;
import com.anylogic.engine.markup.*;
import com.anylogic.engine.routing.*;
import com.anylogic.engine.presentation.*;
import com.anylogic.engine.gui.*;
import com.anylogic.libraries.modules.markup_descriptors.*;
import com.anylogic.libraries.processmodeling.*;
import com.anylogic.libraries.material_handling.*;
import java.awt.geom.Arc2D;
public class Document extends Agent
{
// Parameters
// Plain Variables
public final
boolean
is_simple =
randomTrue(0.6)
;
public final
boolean
has_critical_errors =
randomTrue(0.1)
;
@AnyLogicInternalCodegenAPI
private static Map<String, IElementDescriptor> elementDesciptors_xjal = createElementDescriptors( Document.class );
@AnyLogicInternalCodegenAPI
@Override
public Map<String, IElementDescriptor> getElementDesciptors() {
return elementDesciptors_xjal;
}
@AnyLogicCustomProposalPriority(type = AnyLogicCustomProposalPriority.Type.STATIC_ELEMENT)
public static final Scale scale = new Scale( 10.0 );
@Override
public Scale getScale() {
return scale;
}
/** Internal constant, shouldn't be accessed by user */
@AnyLogicInternalCodegenAPI
protected static final int _STATECHART_COUNT_xjal = 0;
// View areas
public ViewArea _origin_VA = new ViewArea( this, "[Origin]", 0, 0, 1500.0, 600.0 );
@Override
@AnyLogicInternalCodegenAPI
public int getViewAreas(Map<String, ViewArea> _output) {
if ( _output != null ) {
_output.put( "_origin_VA", this._origin_VA );
}
return 1 + super.getViewAreas( _output );
}
@AnyLogicInternalCodegenAPI
protected static final Pair<String, Color>[] _person_customColors_xjal = new Pair[] {
new Pair<String, Color>( "Material__3__Surf", null ),
new Pair<String, Color>( "Material__5__Surf", null ),
new Pair<String, Color>( "Material__6__Surf", null ),
new Pair<String, Color>( "Material__2__Surf", null ),
new Pair<String, Color>( "Material__4__Surf", null ),
new Pair<String, Color>( "Material__1__Surf", null ),
};
@AnyLogicInternalCodegenAPI
protected static final int _person = 1;
/** Internal constant, shouldn't be accessed by user */
@AnyLogicInternalCodegenAPI
protected static final int _SHAPE_NEXT_ID_xjal = 2;
@AnyLogicInternalCodegenAPI
public boolean isPublicPresentationDefined() {
return true;
}
@AnyLogicInternalCodegenAPI
public boolean isEmbeddedAgentPresentationVisible( Agent _a ) {
return super.isEmbeddedAgentPresentationVisible( _a );
}
@AnyLogicInternalCodegenAPI
private void _initialize_level_xjal() {
level.addAll(person);
}
protected Shape3DObject person;
protected com.anylogic.engine.markup.Level level;
private com.anylogic.engine.markup.Level[] _getLevels_xjal;
@Override
public com.anylogic.engine.markup.Level[] getLevels() {
return _getLevels_xjal;
}
@AnyLogicInternalCodegenAPI
private void _createPersistentElementsBP0_xjal() {
person = new Shape3DObject(
Document.this, SHAPE_DRAW_2D3D, true, 0.0, 0.0, 0.0, 0.0,
1.0, true, "/bank/",
"3d/person.dae", OBJECT_3D_YZX_AXIS_ORDER, OBJECT_3D_INTERNAL_LIGHTING_OFF, false, -5.0, -4.0,
7.0, 7.0, null, _person_customColors_xjal );
}
@AnyLogicInternalCodegenAPI
private void _createPersistentElementsAP0_xjal() {
}
@AnyLogicInternalCodegenAPI
private void _createPersistentElementsBS0_xjal() {
}
// Static initialization of persistent elements
private void instantiatePersistentElements_xjal() {
level = new com.anylogic.engine.markup.Level(this, "level", SHAPE_DRAW_2D3D, 0.0, true, true);
_getLevels_xjal = new com.anylogic.engine.markup.Level[] {
level };
_createPersistentElementsBP0_xjal();
}
protected ShapeTopLevelPresentationGroup presentation;
protected ShapeModelElementsGroup icon;
@Override
@AnyLogicInternalCodegenAPI
public ShapeTopLevelPresentationGroup getPresentationShape() {
return presentation;
}
@Override
@AnyLogicInternalCodegenAPI
public ShapeModelElementsGroup getModelElementsShape() {
return icon;
}
/**
* Constructor
*/
public Document( Engine engine, Agent owner, AgentList<? extends Document> ownerPopulation ) {
super( engine, owner, ownerPopulation );
instantiateBaseStructureThis_xjal();
}
@AnyLogicInternalCodegenAPI
public void onOwnerChanged_xjal() {
super.onOwnerChanged_xjal();
setupReferences_xjal();
}
@AnyLogicInternalCodegenAPI
public void instantiateBaseStructure_xjal() {
super.instantiateBaseStructure_xjal();
instantiateBaseStructureThis_xjal();
}
@AnyLogicInternalCodegenAPI
private void instantiateBaseStructureThis_xjal() {
instantiatePersistentElements_xjal();
setupReferences_xjal();
}
@AnyLogicInternalCodegenAPI
private void setupReferences_xjal() {
}
/**
* Simple constructor. Please add created agent to some population by calling goToPopulation() function
*/
public Document() {
}
@Override
@AnyLogicInternalCodegenAPI
public void doCreate() {
super.doCreate();
// Assigning initial values for plain variables
setupPlainVariables_Document_xjal();
// Dynamic initialization of persistent elements
_createPersistentElementsAP0_xjal();
_initialize_level_xjal();
level.initialize();
presentation = new ShapeTopLevelPresentationGroup( Document.this, true, 0, 0, 0, 0 , level );
icon = new ShapeModelElementsGroup( Document.this, getElementProperty( "bank.Document.icon", IElementDescriptor.MODEL_ELEMENT_DESCRIPTORS ) );
icon.setIconOffsets( 0.0, 0.0 );
// Port connectors with non-replicated objects
// Creating replicated embedded objects
setupInitialConditions_xjal( Document.class );
// Dynamic initialization of persistent elements
_createPersistentElementsBS0_xjal();
}
@Override
@AnyLogicInternalCodegenAPI
public void doStart() {
super.doStart();
}
/**
* Assigning initial values for plain variables<br>
* <em>This method isn't designed to be called by user and may be removed in future releases.</em>
*/
@AnyLogicInternalCodegenAPI
public void setupPlainVariables_xjal() {
setupPlainVariables_Document_xjal();
}
/**
* Assigning initial values for plain variables<br>
* <em>This method isn't designed to be called by user and may be removed in future releases.</em>
*/
@AnyLogicInternalCodegenAPI
private void setupPlainVariables_Document_xjal() {
}
// User API -----------------------------------------------------
@AnyLogicInternalCodegenAPI
public static LinkToAgentAnimationSettings _connections_commonAnimationSettings_xjal = new LinkToAgentAnimationSettingsImpl( false, black, 1.0, LINE_STYLE_SOLID, ARROW_NONE, 0.0 );
public LinkToAgentCollection<Agent, Agent> connections = new LinkToAgentStandardImpl<Agent, Agent>(this, _connections_commonAnimationSettings_xjal);
@Override
public LinkToAgentCollection<? extends Agent, ? extends Agent> getLinkToAgentStandard_xjal() {
return connections;
}
@AnyLogicInternalCodegenAPI
public void drawLinksToAgents(boolean _underAgents_xjal, LinkToAgentAnimator _animator_xjal) {
super.drawLinksToAgents(_underAgents_xjal, _animator_xjal);
if ( _underAgents_xjal ) {
_animator_xjal.drawLink( this, connections, true, true );
}
}
public AgentList<? extends Document> getPopulation() {
return (AgentList<? extends Document>) super.getPopulation();
}
public List<? extends Document> agentsInRange( double distance ) {
return (List<? extends Document>) super.agentsInRange( distance );
}
}
[run model] : https://i.stack.imgur.com/8vGA4.jpg
Я делаю проект для учебы. Существует агент с двумя переменными, которые принимают значение True или False с помощью функции randomTrue (). Построение проекта ошибок не выявляет. При запуске выдает ошибку при выполнении дискретного события: NullPointerException. В систему не было введено ни одного агента. На источнике 0. Я попытался сменить агентов, изменил randomTrue () на randomFalse (), но безрезультатно. Какие есть варианты?
NullPointerException
java.lang.NullPointerException
at com.anylogic.engine.Utilities.randomTrue(Unknown Source)
at bank.Document.<init>(Document.java:78)
at bank.Main._doc_enter_newEntity_xjal(Main.java:978)
at bank.Main.access$0(Main.java:975)
at bank.Main$1.newEntity(Main.java:312)
at com.anylogic.libraries.processmodeling.Source.inject(Unknown Source)
at com.anylogic.libraries.processmodeling.Source.executeActionOf(Unknown Source)
at com.anylogic.engine.EventTimeout.execute(Unknown Source)
at com.anylogic.engine.Engine.i(Unknown Source)
at com.anylogic.engine.Engine.if(Unknown Source)
at com.anylogic.engine.Engine.e(Unknown Source)
at com.anylogic.engine.Engine$n.run(Unknown Source)
package bank;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Currency;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Locale;
import java.util.Map;
import java.util.PriorityQueue;
import java.util.Random;
import java.util.Set;
import java.util.SortedMap;
import java.util.SortedSet;
import java.util.Stack;
import java.util.Timer;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.Vector;
import java.awt.Color;
import java.awt.Font;
import com.anylogic.engine.connectivity.ResultSet;
import com.anylogic.engine.connectivity.Statement;
import com.anylogic.engine.elements.*;
import com.anylogic.engine.markup.Network;
import com.anylogic.engine.Position;
import com.anylogic.engine.markup.PedFlowStatistics;
import com.anylogic.engine.markup.DensityMap;
import static java.lang.Math.*;
import static com.anylogic.engine.UtilitiesArray.*;
import static com.anylogic.engine.UtilitiesCollection.*;
import static com.anylogic.engine.presentation.UtilitiesColor.*;
import static com.anylogic.engine.HyperArray.*;
import com.anylogic.engine.*;
import com.anylogic.engine.analysis.*;
import com.anylogic.engine.connectivity.*;
import com.anylogic.engine.database.*;
import com.anylogic.engine.gis.*;
import com.anylogic.engine.markup.*;
import com.anylogic.engine.routing.*;
import com.anylogic.engine.presentation.*;
import com.anylogic.engine.gui.*;
import com.anylogic.libraries.modules.markup_descriptors.*;
import com.anylogic.libraries.processmodeling.*;
import com.anylogic.libraries.material_handling.*;
import java.awt.geom.Arc2D;
public class Document extends Agent
{
// Parameters
// Plain Variables
public final
boolean
is_simple =
randomTrue(0.6)
;
public final
boolean
has_critical_errors =
randomTrue(0.1)
;
@AnyLogicInternalCodegenAPI
private static Map<String, IElementDescriptor> elementDesciptors_xjal = createElementDescriptors( Document.class );
@AnyLogicInternalCodegenAPI
@Override
public Map<String, IElementDescriptor> getElementDesciptors() {
return elementDesciptors_xjal;
}
@AnyLogicCustomProposalPriority(type = AnyLogicCustomProposalPriority.Type.STATIC_ELEMENT)
public static final Scale scale = new Scale( 10.0 );
@Override
public Scale getScale() {
return scale;
}
/** Internal constant, shouldn't be accessed by user */
@AnyLogicInternalCodegenAPI
protected static final int _STATECHART_COUNT_xjal = 0;
// View areas
public ViewArea _origin_VA = new ViewArea( this, "[Origin]", 0, 0, 1500.0, 600.0 );
@Override
@AnyLogicInternalCodegenAPI
public int getViewAreas(Map<String, ViewArea> _output) {
if ( _output != null ) {
_output.put( "_origin_VA", this._origin_VA );
}
return 1 + super.getViewAreas( _output );
}
@AnyLogicInternalCodegenAPI
protected static final Pair<String, Color>[] _person_customColors_xjal = new Pair[] {
new Pair<String, Color>( "Material__3__Surf", null ),
new Pair<String, Color>( "Material__5__Surf", null ),
new Pair<String, Color>( "Material__6__Surf", null ),
new Pair<String, Color>( "Material__2__Surf", null ),
new Pair<String, Color>( "Material__4__Surf", null ),
new Pair<String, Color>( "Material__1__Surf", null ),
};
@AnyLogicInternalCodegenAPI
protected static final int _person = 1;
/** Internal constant, shouldn't be accessed by user */
@AnyLogicInternalCodegenAPI
protected static final int _SHAPE_NEXT_ID_xjal = 2;
@AnyLogicInternalCodegenAPI
public boolean isPublicPresentationDefined() {
return true;
}
@AnyLogicInternalCodegenAPI
public boolean isEmbeddedAgentPresentationVisible( Agent _a ) {
return super.isEmbeddedAgentPresentationVisible( _a );
}
@AnyLogicInternalCodegenAPI
private void _initialize_level_xjal() {
level.addAll(person);
}
protected Shape3DObject person;
protected com.anylogic.engine.markup.Level level;
private com.anylogic.engine.markup.Level[] _getLevels_xjal;
@Override
public com.anylogic.engine.markup.Level[] getLevels() {
return _getLevels_xjal;
}
@AnyLogicInternalCodegenAPI
private void _createPersistentElementsBP0_xjal() {
person = new Shape3DObject(
Document.this, SHAPE_DRAW_2D3D, true, 0.0, 0.0, 0.0, 0.0,
1.0, true, "/bank/",
"3d/person.dae", OBJECT_3D_YZX_AXIS_ORDER, OBJECT_3D_INTERNAL_LIGHTING_OFF, false, -5.0, -4.0,
7.0, 7.0, null, _person_customColors_xjal );
}
@AnyLogicInternalCodegenAPI
private void _createPersistentElementsAP0_xjal() {
}
@AnyLogicInternalCodegenAPI
private void _createPersistentElementsBS0_xjal() {
}
// Static initialization of persistent elements
private void instantiatePersistentElements_xjal() {
level = new com.anylogic.engine.markup.Level(this, "level", SHAPE_DRAW_2D3D, 0.0, true, true);
_getLevels_xjal = new com.anylogic.engine.markup.Level[] {
level };
_createPersistentElementsBP0_xjal();
}
protected ShapeTopLevelPresentationGroup presentation;
protected ShapeModelElementsGroup icon;
@Override
@AnyLogicInternalCodegenAPI
public ShapeTopLevelPresentationGroup getPresentationShape() {
return presentation;
}
@Override
@AnyLogicInternalCodegenAPI
public ShapeModelElementsGroup getModelElementsShape() {
return icon;
}
/**
* Constructor
*/
public Document( Engine engine, Agent owner, AgentList<? extends Document> ownerPopulation ) {
super( engine, owner, ownerPopulation );
instantiateBaseStructureThis_xjal();
}
@AnyLogicInternalCodegenAPI
public void onOwnerChanged_xjal() {
super.onOwnerChanged_xjal();
setupReferences_xjal();
}
@AnyLogicInternalCodegenAPI
public void instantiateBaseStructure_xjal() {
super.instantiateBaseStructure_xjal();
instantiateBaseStructureThis_xjal();
}
@AnyLogicInternalCodegenAPI
private void instantiateBaseStructureThis_xjal() {
instantiatePersistentElements_xjal();
setupReferences_xjal();
}
@AnyLogicInternalCodegenAPI
private void setupReferences_xjal() {
}
/**
* Simple constructor. Please add created agent to some population by calling goToPopulation() function
*/
public Document() {
}
@Override
@AnyLogicInternalCodegenAPI
public void doCreate() {
super.doCreate();
// Assigning initial values for plain variables
setupPlainVariables_Document_xjal();
// Dynamic initialization of persistent elements
_createPersistentElementsAP0_xjal();
_initialize_level_xjal();
level.initialize();
presentation = new ShapeTopLevelPresentationGroup( Document.this, true, 0, 0, 0, 0 , level );
icon = new ShapeModelElementsGroup( Document.this, getElementProperty( "bank.Document.icon", IElementDescriptor.MODEL_ELEMENT_DESCRIPTORS ) );
icon.setIconOffsets( 0.0, 0.0 );
// Port connectors with non-replicated objects
// Creating replicated embedded objects
setupInitialConditions_xjal( Document.class );
// Dynamic initialization of persistent elements
_createPersistentElementsBS0_xjal();
}
@Override
@AnyLogicInternalCodegenAPI
public void doStart() {
super.doStart();
}
/**
* Assigning initial values for plain variables<br>
* <em>This method isn't designed to be called by user and may be removed in future releases.</em>
*/
@AnyLogicInternalCodegenAPI
public void setupPlainVariables_xjal() {
setupPlainVariables_Document_xjal();
}
/**
* Assigning initial values for plain variables<br>
* <em>This method isn't designed to be called by user and may be removed in future releases.</em>
*/
@AnyLogicInternalCodegenAPI
private void setupPlainVariables_Document_xjal() {
}
// User API -----------------------------------------------------
@AnyLogicInternalCodegenAPI
public static LinkToAgentAnimationSettings _connections_commonAnimationSettings_xjal = new LinkToAgentAnimationSettingsImpl( false, black, 1.0, LINE_STYLE_SOLID, ARROW_NONE, 0.0 );
public LinkToAgentCollection<Agent, Agent> connections = new LinkToAgentStandardImpl<Agent, Agent>(this, _connections_commonAnimationSettings_xjal);
@Override
public LinkToAgentCollection<? extends Agent, ? extends Agent> getLinkToAgentStandard_xjal() {
return connections;
}
@AnyLogicInternalCodegenAPI
public void drawLinksToAgents(boolean _underAgents_xjal, LinkToAgentAnimator _animator_xjal) {
super.drawLinksToAgents(_underAgents_xjal, _animator_xjal);
if ( _underAgents_xjal ) {
_animator_xjal.drawLink( this, connections, true, true );
}
}
public AgentList<? extends Document> getPopulation() {
return (AgentList<? extends Document>) super.getPopulation();
}
public List<? extends Document> agentsInRange( double distance ) {
return (List<? extends Document>) super.agentsInRange( distance );
}
}
[модель запуска]: https://i.stack.imgur.com/8vGA4.jpg