Разработка имитационной модели процессов для исследуемого объекта "Департамент стратегического планирования Вологодской области"

Значение и актуальность теории массового обслуживания, теории временных рядов. Логико-математическое описание моделируемой системы. Разработка формализованной схемы объекта моделирования. Разработка блок-схем программных блоков и основной программы.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 27.10.2017
Размер файла 5,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

18. Рыжиков, Ю.И. Имитационное моделирование. Теория и технология / Ю.И.Рыжиков. - СПб.: Корона-принт, 2004. - 367 с.

19. Бражик, А.Н. Имитационное моделирование: возможности GPSS World / А.Н.Бражик. - СПб.: РЕНОМЕ, 2006. - 439 с.

20. О стратегии социально-экономического развития Вологодской области на период до 2030 года: постановление Правительства Вологодской области от 17.10.2016 №920 // Вестник Вологодской области. - 2016. - 17 октября - с.2-95.

ПРИЛОЖЕНИЯ

Приложение А

Научная статья из сборника материалов межрегиональной конференции

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

В данной работе была поставлена задача по реализации и соблюдению основных процессов в имитационной модели управленческого объекта «Департамент стратегического планирования области» на первоначальном этапе его исследования.

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

Определив источники поступления информации от отделов (управлений) изучаемого организационно-управленческого объекта, изобразим их схематично. Формы представления определяются внутренними регламентами и локальными нормативно-правовыми документами, указанными в общем перечне регионального и федерального законодательства.

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

Для выполнения автоматизации и определения временных (вероятностных) характеристик исследуемого объекта было выбрано программное средство GPSS - программу имитационного моделирования, получившую своё распространение в 1961 году. Она оказалась наиболее удачной и продолжает своё существование в настоящее время, используется под современными операционными системами на персональных компьютерах. В ходе своей модернизации она получила обновленное название - GPSS World (рис.1).

Окно программы GPSS World в процессе моделирования

В ходе анализа и синтеза изучаемого объекта были определены основные характеристики и критерии для реализации имитационной модели:

1) количество сотрудников Департамента;

2) размер бюджета и финансовых средства Департамента;

3) время исполнения одной задачи в каждом управлении;

4) количество задач, выполняемых каждым управлением, в течение рабочего дня;

5) количество и частота поступаемых обращений от граждан в приемную Департамента;

6) исполнение регламентирующих документов по оценке регулирующего воздействия.

Основными блоками, используемыми в построении модели, являются GENERATE, TERMINATE, TRANSFER, ADVANCE, QUEUE и RETURN.

Каждый блок содержит в себе конкретные цифровые показатели и средние величины по выполнению одного процесса в единицу времени. Таким образом это упростит представление модели и позволит сократить время на обработку «очередей» в информационном потоке. В данном случае построение модели также можно сравнить с построением системы массового обслуживания с очередями (СМО). В данном методе исследования также необходимо отметить, что полученная визуализация может корректироваться на любом этапе её обработки.

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

Приложение Б

Листинг модели (программный код)

package документооборотдсп;

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 java.awt.Graphics2D;

import java.awt.geom.AffineTransform;

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.presentation.UtilitiesDrawing.*;

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.presentation.*;

import com.anylogic.libraries.processmodeling.*;

import java.awt.geom.Arc2D;

public class Main extends Agent

{

// Параметры

@AnyLogicInternalCodegenAPI

private static Map<String, IElementDescriptor> elementDesciptors_xjal = null;

@AnyLogicInternalCodegenAPI

@Override

public Map<String, IElementDescriptor> getElementDesciptors() {

if (elementDesciptors_xjal == null) {

elementDesciptors_xjal = createElementDescriptors(super.getElementDesciptors(), Main.class);

}

return elementDesciptors_xjal;

}

@AnyLogicCustomProposalPriority(type = AnyLogicCustomProposalPriority.Type.STATIC_ELEMENT)

public static final Scale scale = new Scale( 10.0 );

@Override

public Scale getScale() {

return scale;

}

// События

@AnyLogicInternalCodegenAPI

public EventTimeout _chart_autoUpdateEvent_xjal = new EventTimeout(this);

@AnyLogicInternalCodegenAPI

public EventTimeout _chart1_autoUpdateEvent_xjal = new EventTimeout(this);

@Override

@AnyLogicInternalCodegenAPI

public String getNameOf( EventTimeout _e ) {

if( _e == _chart_autoUpdateEvent_xjal ) return "chart auto update event";

if( _e == _chart1_autoUpdateEvent_xjal ) return "chart1 auto update event";

return super.getNameOf( _e );

}

@Override

@AnyLogicInternalCodegenAPI

public EventTimeout.Mode getModeOf( EventTimeout _e ) {

if ( _e == _chart_autoUpdateEvent_xjal ) return EVENT_TIMEOUT_MODE_CYCLIC;

if ( _e == _chart1_autoUpdateEvent_xjal ) return EVENT_TIMEOUT_MODE_CYCLIC;

return super.getModeOf( _e );

}

@Override

@AnyLogicInternalCodegenAPI

public double getFirstOccurrenceTime( EventTimeout _e ) {

double _t;

if ( _e == _chart_autoUpdateEvent_xjal ) {

_t =

0

;

_t = toModelTime( _t, SECOND );

return _t;

}

if ( _e == _chart1_autoUpdateEvent_xjal ) {

_t =

0

;

_t = toModelTime( _t, SECOND );

return _t;

}

return super.getFirstOccurrenceTime( _e );

}

@Override

@AnyLogicInternalCodegenAPI

public double evaluateTimeoutOf( EventTimeout _e ) {

double _t;

if( _e == _chart_autoUpdateEvent_xjal) {

_t =

1

;

_t = toModelTime( _t, SECOND );

return _t;

}

if( _e == _chart1_autoUpdateEvent_xjal) {

_t =

1

;

_t = toModelTime( _t, SECOND );

return _t;

}

return super.evaluateTimeoutOf( _e );

}

@Override

@AnyLogicInternalCodegenAPI

public void executeActionOf( EventTimeout _e ) {

if ( _e == _chart_autoUpdateEvent_xjal ) {

chart.updateData();

return;

}

if ( _e == _chart1_autoUpdateEvent_xjal ) {

chart1.updateData();

return;

}

super.executeActionOf( _e );

}

public AgentAnimationSettings getAnimationSettingsOf( Agent ao ) {

return super.getAnimationSettingsOf( ao );

}

public String getNameOf( AgentList<?> aolist ) {

return super.getNameOf( aolist );

}

public AgentAnimationSettings getAnimationSettingsOf( AgentList<?> aolist ) {

return super.getAnimationSettingsOf( aolist );

}

/**

* Создает экземпляр вложенного объекта<br>

* <i>Пользователь не должен вызывать этот метод</i>

*/

protected com.anylogic.libraries.processmodeling.Source<Inquiry> instantiate_source_xjal() {

com.anylogic.libraries.processmodeling.Source<Inquiry> _result_xjal = new com.anylogic.libraries.processmodeling.Source<Inquiry>( getEngine(), this, null ) {

@Override

public double interarrivalTime( ) {

return _source_interarrivalTime_xjal( this );

}

@AnyLogicInternalCodegenAPI

public TimeUnits getUnitsForCodeOf_interarrivalTime() {

return SECOND;

}

@Override

public Agent newEntity( ) {

return _source_newEntity_xjal( this );

}

@Override

public void onExit( Inquiry agent ) {

_source_onExit_xjal( this, agent );

}

};

return _result_xjal;

}

/**

private void setupParameters_source_xjal( final com.anylogic.libraries.processmodeling.Source<Inquiry> self ) {

setupParameters_source_xjal( self, null );

}

/**

* Инициализация экземпляра вложенного объекта<br>

* Пользователь не должен вызывать этот метод

*/

@AnyLogicInternalCodegenAPI

private void create_source_xjal( com.anylogic.libraries.processmodeling.Source<Inquiry> self ) {

create_source_xjal(self, null );

}

*/

private void setupParameters_source_xjal( final com.anylogic.libraries.processmodeling.Source<Inquiry> self, TableInput _t ) {

self.arrivalType =

self.INTERARRIVAL_TIME

;

self.rate = self._rate_DefaultValue_xjal();

self.rateSchedule = self._rateSchedule_DefaultValue_xjal();

self.modifyRate = self._modifyRate_DefaultValue_xjal();

self.arrivalSchedule = self._arrivalSchedule_DefaultValue_xjal();

self.setAgentParametersFromDB = self._setAgentParametersFromDB_DefaultValue_xjal();

self.databaseTable = self._databaseTable_DefaultValue_xjal();

self.multipleEntitiesPerArrival = self._multipleEntitiesPerArrival_DefaultValue_xjal();

self.limitArrivals = self._limitArrivals_DefaultValue_xjal();

self.maxArrivals = self._maxArrivals_DefaultValue_xjal();

self.locationType = self._locationType_DefaultValue_xjal();

self.locationXYZInNetwork = self._locationXYZInNetwork_DefaultValue_xjal();

self.enableCustomStartTime = self._enableCustomStartTime_DefaultValue_xjal();

self.startTime = self._startTime_DefaultValue_xjal();

self.addToCustomPopulation = self._addToCustomPopulation_DefaultValue_xjal();

self.pushProtocol = self._pushProtocol_DefaultValue_xjal();

self.discardHangingEntities = self._discardHangingEntities_DefaultValue_xjal();

}

/**

* Инициализация экземпляра вложенного объекта<br>

* Пользователь не должен вызывать этот метод

*/

@AnyLogicInternalCodegenAPI

private void create_source_xjal( com.anylogic.libraries.processmodeling.Source<Inquiry> self, TableInput _t ) {

self.create();

}

/**

* Создает экземпляр вложенного объекта<br>

* <i>Пользователь не должен вызывать этот метод</i>

*/

protected com.anylogic.libraries.processmodeling.Delay<Inquiry> instantiate_delay_xjal() {

com.anylogic.libraries.processmodeling.Delay<Inquiry> _result_xjal = new com.anylogic.libraries.processmodeling.Delay<Inquiry>( getEngine(), this, null ) {

@Override

public double delayTime( Inquiry agent ) {

return _delay_delayTime_xjal( this, agent );

}

@AnyLogicInternalCodegenAPI

public TimeUnits getUnitsForCodeOf_delayTime() {

return SECOND;

}

};

return _result_xjal;

}

/**

private void setupParameters_delay_xjal( final com.anylogic.libraries.processmodeling.Delay<Inquiry> self ) {

setupParameters_delay_xjal( self, null );

}

/**

* Инициализация экземпляра вложенного объекта<br>

* Пользователь не должен вызывать этот метод

*/

@AnyLogicInternalCodegenAPI

private void create_delay_xjal( com.anylogic.libraries.processmodeling.Delay<Inquiry> self ) {

create_delay_xjal(self, null );

}

* Инициализация параметров экземпляра вложенного объекта<br>

* Пользователь не должен вызывать этот метод

*/

private void setupParameters_delay_xjal( final com.anylogic.libraries.processmodeling.Delay<Inquiry> self, TableInput _t ) {

self.type = self._type_DefaultValue_xjal();

self.capacity = self._capacity_DefaultValue_xjal();

self.maximumCapacity = self._maximumCapacity_DefaultValue_xjal();

self.entityLocation =

node

;

self.pushProtocol = self._pushProtocol_DefaultValue_xjal();

self.restoreEntityLocationOnExit = self._restoreEntityLocationOnExit_DefaultValue_xjal();

self.forceStatisticsCollection = self._forceStatisticsCollection_DefaultValue_xjal();

}

/**

@AnyLogicInternalCodegenAPI

private void create_delay_xjal( com.anylogic.libraries.processmodeling.Delay<Inquiry> self, TableInput _t ) {

self.create();

}

/**

* Создает экземпляр вложенного объекта<br>

* <i>Пользователь не должен вызывать этот метод</i>

*/

protected com.anylogic.libraries.processmodeling.Sink<Inquiry> instantiate_sink_xjal() {

com.anylogic.libraries.processmodeling.Sink<Inquiry> _result_xjal = new com.anylogic.libraries.processmodeling.Sink<Inquiry>( getEngine(), this, null ) {

@Override

public void onEnter( Inquiry agent ) {

_sink_onEnter_xjal( this, agent );

}

};

return _result_xjal;

}

/**

* Инициализация параметров экземпляра вложенного объекта<br>

* Пользователь не должен вызывать этот метод

*/

private void setupParameters_sink_xjal( final com.anylogic.libraries.processmodeling.Sink<Inquiry> self ) {

setupParameters_sink_xjal( self, null );

}

/**

* Инициализация экземпляра вложенного объекта<br>

* Пользователь не должен вызывать этот метод

*/

@AnyLogicInternalCodegenAPI

private void create_sink_xjal( com.anylogic.libraries.processmodeling.Sink<Inquiry> self ) {

create_sink_xjal(self, null );

}

/**

* Инициализация параметров экземпляра вложенного объекта<br>

* Пользователь не должен вызывать этот метод

*/

private void setupParameters_sink_xjal( final com.anylogic.libraries.processmodeling.Sink<Inquiry> self, TableInput _t ) {

}

/**

* Инициализация экземпляра вложенного объекта<br>

* Пользователь не должен вызывать этот метод

*/

@AnyLogicInternalCodegenAPI

private void create_sink_xjal( com.anylogic.libraries.processmodeling.Sink<Inquiry> self, TableInput _t ) {

self.create();

}

/**

* Создает экземпляр вложенного объекта<br>

* <i>Пользователь не должен вызывать этот метод</i>

*/

protected com.anylogic.libraries.processmodeling.Queue<Inquiry> instantiate_queue_xjal() {

com.anylogic.libraries.processmodeling.Queue<Inquiry> _result_xjal = new com.anylogic.libraries.processmodeling.Queue<Inquiry>( getEngine(), this, null );

return _result_xjal;

}

/**

* Инициализация параметров экземпляра вложенного объекта<br>

* Пользователь не должен вызывать этот метод

*/

private void setupParameters_queue_xjal( final com.anylogic.libraries.processmodeling.Queue<Inquiry> self ) {

setupParameters_queue_xjal( self, null );

}

/**

* Инициализация экземпляра вложенного объекта<br>

* Пользователь не должен вызывать этот метод

*/

@AnyLogicInternalCodegenAPI

private void create_queue_xjal( com.anylogic.libraries.processmodeling.Queue<Inquiry> self ) {

create_queue_xjal(self, null );

}

/**

* Инициализация параметров экземпляра вложенного объекта<br>

* Пользователь не должен вызывать этот метод

*/

private void setupParameters_queue_xjal( final com.anylogic.libraries.processmodeling.Queue<Inquiry> self, TableInput _t ) {

self.capacity =

50

;

self.maximumCapacity = self._maximumCapacity_DefaultValue_xjal();

self.entityLocation =

path

;

self.queuing = self._queuing_DefaultValue_xjal();

self.enableTimeout = self._enableTimeout_DefaultValue_xjal();

self.enablePreemption = self._enablePreemption_DefaultValue_xjal();

self.restoreEntityLocationOnExit = self._restoreEntityLocationOnExit_DefaultValue_xjal();

self.forceStatisticsCollection =

true

;

}

@AnyLogicInternalCodegenAPI

private void drawModelElements_Connectors_xjal(Panel _panel, Graphics2D _g, boolean _publicOnly, boolean _isSuperClass ) {

if (!_publicOnly) {

drawConnector( _panel, _g, _connector2_pointsX_xjal, _connector2_pointsY_xjal, false );

}

if (!_publicOnly) {

drawConnector( _panel, _g, _connector_pointsX_xjal, _connector_pointsY_xjal, false );

}

if (!_publicOnly) {

drawConnector( _panel, _g, _connector4_pointsX_xjal, _connector4_pointsY_xjal, false );

}

}

/**

* Инициализация экземпляра вложенного объекта<br>

* Пользователь не должен вызывать этот метод

*/

@AnyLogicInternalCodegenAPI

private void create_queue_xjal( com.anylogic.libraries.processmodeling.Queue<Inquiry> self, TableInput _t ) {

self.create();

}

private double _source_interarrivalTime_xjal( final com.anylogic.libraries.processmodeling.Source<Inquiry> self ) {

double _value;

_value =

exponential( 1/120.0 )

;

return _value;

}

private Agent _source_newEntity_xjal( final com.anylogic.libraries.processmodeling.Source<Inquiry> self ) {

Agent _value;

_value =

new документооборотдсп.Inquiry()

;

return _value;

}

private void _source_onExit_xjal( final com.anylogic.libraries.processmodeling.Source<Inquiry> self, Inquiry agent ) {

inquiry.time_vxod=time()

;

}

private double _delay_delayTime_xjal( final com.anylogic.libraries.processmodeling.Delay<Inquiry> self, Inquiry agent ) {

double _value;

_value =

exponential(1/600.0 )

;

return _value;

}

private void _sink_onEnter_xjal( final com.anylogic.libraries.processmodeling.Sink<Inquiry> self, Inquiry agent ) {

time_obrabotki.add(time()-entity.time_vxod);

;

}

// Области

public ViewArea _origin_VA = new ViewArea( this, "[Нач. координат]", 0, 0, 1000.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 int _chart = 1;

@AnyLogicInternalCodegenAPI

protected static final int _chart1 = 2;

@AnyLogicInternalCodegenAPI

protected static final int _path = 3;

@AnyLogicInternalCodegenAPI

protected static final int _node = 4;

/** Internal constant, shouldn't be accessed by user */

@AnyLogicInternalCodegenAPI

protected static final int _SHAPE_NEXT_ID_xjal = 5;

/**

* Идентификатор группы presentation верхнего уровня

*/

@AnyLogicInternalCodegenAPI

protected static final int _presentation = 0;

@AnyLogicInternalCodegenAPI

public boolean isPublicPresentationDefined() {

return true;

}

/**

* Идентификатор группы icon верхнего уровня

*/

@AnyLogicInternalCodegenAPI

protected static final int _icon = -1;

@AnyLogicInternalCodegenAPI

private void _initialize_network_xjal() {

network.addAll(path, node);

network.initialize();

}

@AnyLogicInternalCodegenAPI

private static MarkupSegment[] _path_segments_xjal() {

return new MarkupSegment[] {

new MarkupSegmentLine( 30.0, 140.0, 0.0, 80.0, 140.0, 0.0 ),

new MarkupSegmentArc( 80.0, 140.0, 0.0, 60.0, 200.0, 0.0, 1.5707963267948966, 4.71238898038469, 1.0000000000000002,

80.0, 156.66666666666666, 16.666666666666668, -1.5707963267948966, 3.7850937623830783,

60.0, 183.33333333333334, 16.666666666666668, -0.9272952180016125, -3.785093762383077 ),

new MarkupSegmentLine( 60.0, 200.0, 0.0, 260.0, 170.0, 0.0 ), };

}

/**

* <i>Пользователь не должен вызывать этот метод</i>

*/

@AnyLogicInternalCodegenAPI

private double _chart_DataItem0Value() {

return

delay.statsUtilization.mean()

;

}

/**

* <i>Пользователь не должен вызывать этот метод</i>

*/

@AnyLogicInternalCodegenAPI

private double _chart1_DataItem0Value() {

return

queue.statsSize.mean()

;

}

@AnyLogicInternalCodegenAPI

private void _node_SetDynamicParams_xjal( RectangularNode shape ) {

shape.setFillColor(

delay.size()>0?red:green

);

}

};

path = new Path( this, SHAPE_DRAW_2D3D, true, true, PATH_DASHEDLINE, dodgerBlue, 2.0, null, node, _path_segments_xjal() );

}

@AnyLogicInternalCodegenAPI

private void _createPersistentElementsAP0_xjal() {

{

List<DataItem> _items = new ArrayList<DataItem>( 1 );

_items.add( new DataItem() {

@Override

public void update() {

setValue( _chart_DataItem0Value() );

}

});

List<String> _titles = new ArrayList<String>( 1 );

_titles.add( "SERVERdepartament" );

List<Color> _colors = new ArrayList<Color>( 1 );

_colors.add( lime );

chart = new BarChart(

{

List<DataItem> _items = new ArrayList<DataItem>( 1 );

_items.add( new DataItem() {

@Override

public void update() {

setValue( _chart1_DataItem0Value() );

}

});

List<String> _titles = new ArrayList<String>( 1 );

_titles.add( "queue Length" );

List<Color> _colors = new ArrayList<Color>( 1 );

_colors.add( maroon );

chart1 = new BarChart(

}

}

}

return super.getNameOfShape_xjal( _shape );

}

@AnyLogicInternalCodegenAPI

protected static final int[] _connector2_pointsX_xjal = {

240, 340 };

@AnyLogicInternalCodegenAPI

protected static final int[] _connector2_pointsY_xjal = {

90, 90 };

@AnyLogicInternalCodegenAPI

protected static final int[] _connector_pointsX_xjal = {

90, 50 };

@AnyLogicInternalCodegenAPI

protected static final int[] _connector_pointsY_xjal = {

90, 90 };

@AnyLogicInternalCodegenAPI

protected static final int[] _connector4_pointsX_xjal = {

130, 200 };

@AnyLogicInternalCodegenAPI

protected static final int[] _connector4_pointsY_xjal = {

90, 90 };

@AnyLogicInternalCodegenAPI

private void drawModelElements_EmbeddeObjects_xjal(Panel _panel, Graphics2D _g, boolean _publicOnly, boolean _isSuperClass ) {

// Embedded object "source"

if (!_publicOnly) {

drawEmbeddedObjectModel( _panel, _g, 0, 40, 15, 20, "source", this.source );

}

// Embedded object "delay"

if (!_publicOnly) {

drawEmbeddedObjectModel( _panel, _g, 140, 40, 60, 20, "delay", this.delay );

}

// Embedded object "sink"

if (!_publicOnly) {

drawEmbeddedObjectModel( _panel, _g, 290, 40, 45, 20, "sink", this.sink );

}

// Embedded object "queue"

if (!_publicOnly) {

drawEmbeddedObjectModel( _panel, _g, 20, 40, 65, 20, "queue", this.queue );

}

}

@AnyLogicInternalCodegenAPI

private void drawModelElements_Connectors_xjal(Panel _panel, Graphics2D _g, boolean _publicOnly, boolean _isSuperClass ) {

if (!_publicOnly) {

drawConnector( _panel, _g, _connector2_pointsX_xjal, _connector2_pointsY_xjal, false );

}

if (!_publicOnly) {

drawConnector( _panel, _g, _connector_pointsX_xjal, _connector_pointsY_xjal, false );

}

if (!_publicOnly) {

drawConnector( _panel, _g, _connector4_pointsX_xjal, _connector4_pointsY_xjal, false );

}

@Override

@AnyLogicInternalCodegenAPI

public void drawModelElements( Panel _panel, Graphics2D _g, boolean _publicOnly, boolean _isSuperClass ) {

super.drawModelElements( _panel, _g, _publicOnly, true );

drawModelElements_EmbeddeObjects_xjal( _panel, _g, _publicOnly, _isSuperClass );

drawModelElements_Connectors_xjal( _panel, _g, _publicOnly, _isSuperClass );

drawModelElements_AgentLinks_xjal( _panel, _g, _publicOnly, _isSuperClass );

}

@AnyLogicInternalCodegenAPI

private boolean onClickModelAt_EmbeddedObjects_xjal( Panel _panel, double _x, double _y, int _clickCount, boolean _publicOnly, boolean _isSuperClass ) {

if ( source.onClickIconAt( _x - 0, _y - 40, true ) ) {

if ( _clickCount == 2 ) {

_panel.browseAgent_xjal( _x, _y, this, "source" );

} else {

_panel.addInspect( _x, _y, this, "source" );

}

return true;

}

if ( delay.onClickIconAt( _x - 140, _y - 40, true ) ) {

if ( _clickCount == 2 ) {

_panel.browseAgent_xjal( _x, _y, this, "delay" );

} else {

_panel.addInspect( _x, _y, this, "delay" );

}

return true;

}

if ( sink.onClickIconAt( _x - 290, _y - 40, true ) ) {

if ( _clickCount == 2 ) {

_panel.browseAgent_xjal( _x, _y, this, "sink" );

} else {

_panel.addInspect( _x, _y, this, "sink" );

}

return true;

@AnyLogicInternalCodegenAPI

private boolean onClickModelAt_AgentLinks_xjal( Panel _panel, double _x, double _y, int _clickCount, boolean _publicOnly, boolean _isSuperClass ) {

if ( modelElementContains(_x, _y, 50, -50) ) {

_panel.addInspect_xjal( 50, -50, this, "connections", Panel.INSPECT_CONNECTIONS_xjal );

return true;

}

return false;

}

@Override

@AnyLogicInternalCodegenAPI

public boolean onClickModelAt( Panel _panel, double _x, double _y, int _clickCount, boolean _publicOnly, boolean _isSuperClass ) {

if ( onClickModelAt_EmbeddedObjects_xjal( _panel, _x, _y, _clickCount, _publicOnly, _isSuperClass ) ) { return true; }

if ( onClickModelAt_AgentLinks_xjal( _panel, _x, _y, _clickCount, _publicOnly, _isSuperClass ) ) { return true; }

return super.onClickModelAt( _panel, _x, _y, _clickCount, _publicOnly, true );

}

@AnyLogicInternalCodegenAPI

private void setupReferences_xjal() {

}

@Override

@AnyLogicInternalCodegenAPI

public void doCreate() {

super.doCreate();

instantiatePopulations_xjal();

setupPlainVariables_Main_xjal();

_createPersistentElementsAP0_xjal();

presentation = new ShapeTopLevelPresentationGroup( Main.this, true, 0, 0, 0, 0, path, node, chart, chart1 );

icon = new ShapeGroup( Main.this, true, 0, 0, 0 );

_initialize_network_xjal();

instantiatePopulations_xjal();

setupParameters_source_xjal( source );

create_source_xjal( source );

setupParameters_delay_xjal( delay );

create_delay_xjal( delay );

setupParameters_sink_xjal( sink );

create_sink_xjal( sink );

setupParameters_queue_xjal( queue );

create_queue_xjal( queue );

delay.out.connect( sink.in ); // connector2

queue.in.connect( source.out ); // connector

queue.out.connect( delay.in ); // connector4

setupInitialConditions_xjal( Main.class );

}

@Override

@AnyLogicInternalCodegenAPI

public void doStart() {

super.doStart();

_chart_autoUpdateEvent_xjal.start();

_chart1_autoUpdateEvent_xjal.start();

source.start();

delay.start();

sink.start();

queue.start();

* <em>This method isn't designed to be called by user and may be removed in future releases.</em>

@AnyLogicInternalCodegenAPI

private void setupPlainVariables_Main_xjal() {

}

@AnyLogicInternalCodegenAPI

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;

}

@Override

@AnyLogicInternalCodegenAPI

public boolean isLoggingToDB(EventOriginator _e) {

if ( _e == _chart_autoUpdateEvent_xjal ) return false;

if ( _e == _chart1_autoUpdateEvent_xjal ) return false;

return super.isLoggingToDB( _e );

_createPersistentElementsAP0_xjal();

presentation = new ShapeTopLevelPresentationGroup( Inquiry.this, true, 0, 0, 0,

delay.out.connect( sink.in ); // connector2

queue.in.connect( source.out ); // connector

queue.out.connect( delay.in ); // connector4

setupInitialConditions_xjal( Inquiry.class );

}

@AnyLogicInternalCodegenAPI

public void setupExt_xjal(AgentExtension _ext) {

// Инициализация свойств агентов

if ( _ext instanceof ExtAgentWithSpatialMetrics && _ext instanceof ExtWithSpaceType ) {

double _value;

_value =

10

;

@AnyLogicInternalCodegenAPI

@Override

public void doFinish() {

source.doFinish();

super.doFinish();

delay.doFinish();

super.doFinish();

sink.doFinish();

super.doFinish();

queue.doFinish();

super.doFinish();

}

}

Размещено на Allbest.ru

...

Подобные документы

  • Понятие стратегического планирования, разработка схем программных блоков и основной программы. Структурная схема имитационной модели, создание модели на языке моделирования General Purpose Simulation System. Математическое описание моделируемой системы.

    дипломная работа [2,6 M], добавлен 12.08.2017

  • Определение назначения и описание функций имитационных моделей стохастических процессов систем массового обслуживания. Разработка модели описанной системы в виде Q-схемы и программы на языке GPSS и C#. Основные показатели работы имитационной модели.

    курсовая работа [487,4 K], добавлен 18.12.2014

  • Математическое описание имитационной модели. Описание блок-схемы алгоритма. Анализ полученных результатов имитационного моделирования. Сопоставление полученных результатов для разработанных моделей. Математическое описание аналитического моделирования.

    курсовая работа [306,5 K], добавлен 25.03.2015

  • Понятие, основные задачи и функции общей теории систем как науки. Формулирование требований к системе, разработка концептуальной модели системы на примере системы массового обслуживания (СМО). Проектирование имитационной модели, ее реализация и испытание.

    курсовая работа [131,3 K], добавлен 27.12.2010

  • Методика системного исследования реальной динамической сложной системы посредством разработки ее имитационной модели. Разработка программы реализации алгоритма имитационного моделирования системы массового обслуживания "Интернет-провайдерская фирма".

    курсовая работа [2,0 M], добавлен 20.01.2010

  • Системы, описывающие массовое обслуживание. Разработка системы массового обслуживания для магазинов. Постановка в очередь, порядок обслуживания, выбывание из очереди, периодичность попадания в нее. Описание программного модуля, листинг программы.

    курсовая работа [171,8 K], добавлен 20.01.2010

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

    курсовая работа [860,4 K], добавлен 24.12.2013

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

    курсовая работа [4,0 M], добавлен 28.05.2013

  • Система GPSS World как мощная универсальная среда моделирования как дискретных, так и непрерывных процессов, предназначенная для профессионального моделирования самых разнообразных процессов и систем. Системы массового обслуживания. Листинг программы.

    курсовая работа [499,6 K], добавлен 25.12.2013

  • Описание модели в терминах PDEVS формализма с дискретными событиями DEJaView. Исследование принципов функционирования простейших моделей теории массового обслуживания, разработка ее алгоритма функционирования. Сущность терминов PDEVS под DEJaView.

    курсовая работа [219,1 K], добавлен 31.10.2009

  • Практические навыки системного исследования реальной динамической сложной системы на основе построения ее имитационной модели. Автоматизация работы по расчету эффективности системы массового обслуживания с понятным интерфейсом. Выбор алгоритма решения.

    курсовая работа [1,0 M], добавлен 18.08.2009

  • Создание математической модели системы массового обслуживания на примере банка. Разработка имитационной модели на языке программирования С++. Блок-схема программы, перевод модели на язык программирования. Верификация и валидация имитационной модели.

    курсовая работа [630,5 K], добавлен 01.06.2015

  • Проблемы и этапы построения имитационной модели системы массового обслуживания. Оценка результатов схем, построенных на Visual Basic и GPSSV. Анализ исходных данных и выбор недостающих, составление таблицы определений и построение блок-схем и диаграмм.

    курсовая работа [204,1 K], добавлен 24.06.2011

  • Необходимость создания моделируемой системы. Описание моделируемой системы и задание моделирования. Структурная схема модели системы. Блок–диаграмма. Текст программы. Описание текста программы. Результаты моделирования. Эксперимент, его результаты.

    курсовая работа [35,9 K], добавлен 19.11.2007

  • Проектирование напряженно-деформированного состояния объекта при граничных условиях. Разработка концептуальной модели и расчетной схемы объекта анализа. Выбор и краткое описание программных и технических средств. Интерпретация результатов моделирования.

    дипломная работа [439,8 K], добавлен 18.08.2009

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

    курсовая работа [1,4 M], добавлен 01.06.2016

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

    курсовая работа [164,8 K], добавлен 18.12.2011

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

    курсовая работа [761,6 K], добавлен 22.01.2012

  • Направления деятельности ООО "Тирион" и разработка модели "AS-IS" функционирования магазина по обслуживанию покупателей. Возможности табличного процессора MS Excel. Описание интерфейса и физической структуры программного обеспечения имитационной модели.

    курсовая работа [990,6 K], добавлен 13.12.2011

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

    курсовая работа [194,5 K], добавлен 30.10.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.