Tutorial 1: M/M/n Service System Simulation Tutorial 2: M/M/n Simulation using Excel input file Tutorial 3: A Production/Inventory System Simulation
|
|
|
- August Thomas
- 10 years ago
- Views:
Transcription
1 SharpSim Tutorials Tutorial 1: M/M/n Service System Simulation Tutorial 2: M/M/n Simulation using Excel input file Tutorial 3: A Production/Inventory System Simulation Ali Emre Varol, Arda Ceylan, Murat M. Günal August *SharpSim can be downloaded at
2 Contents 1 Introduction Tutorial Creating a C# Project Adding SharpSim reference to your project Setting the simulation form Writing the model code State Change handlers Run Event state change Arrival Event state change Start Event state change EndService Event state change Terminate Event state change Creating an Entity: Customer Class Running the application Tutorial Setting the simulation form Writing the model code State Change handlers and Running the application Tutorial Problem Statement Event Graph of the System Creating Production/Inventory Model Setting the simulation form Creating the model State Change handlers Run Event state change Arrival Event state change StartProduction Event state change EndProduction Event state change Repair Event state change Failure Event state change Terminate Event state change Running the application References List of Code Boxes Code Box 2-1 using class in your example... 7 Code Box 2-2 Defining your simulation model objects... 7 Code Box 2-3 Instantiating the simulation object... 8 Code Box 2-4 Creating the events... 8 Code Box 2-5 Complete source code for Button Click event10 Code Box 2-6 Run Event state change handler Code Box 2-7 Arrival Event state change handler Code Box 2-8 Start Event state change handler i
3 Code Box 2-9 EndService Event state change handler Code Box 2-10 Terminate Event state change handler Code Box 2-11 Customer Class Code Box 3-1 using class in your example Code Box 3-2 Defining your simulation model objects Code Box 3-3 Instantiating the simulation object Code Box 4-1 using class in your example Code Box 4-2 Defining your simulation model objects Code Box 4-3 Instantiating the simulation object Code Box 4-4 Creating the events Code Box 4-5 Adding State Change Listeners Code Box 4-6 Instantiating Edges Code Box 4-7 Complete Source Code for Button Click Code Box 4-8 Run Event state change handler Code Box 4-9 Arrival Event state change handler Code Box 4-10 Start Production Event state change handler Code Box 4-11 EndProduction Event state change handler Code Box 4-12 Repair Event state change handler Code Box 4-13 Failure Event state change handler Code Box 4-14 Terminate Event state change handler ii
4 1 INTRODUCTION SharpSim is an open-source Discrete Event Simulation (DES) code library developed in C#. You can build simulation models using SharpSim by coding in C#. You can download SharpSim at SharpSim implements event scheduling DES world-view and therefore it is essential to understand how event scheduling works. One way to learn event scheduling is to start with Event Graphs (EGs). EGs are a way of conceptual representation of Event Scheduling world-view and there are two main components of an EG; nodes which represent events, and edges which represent transitions between events. A simple EG is given in Figure 1-1 which can be translated into the following sentence; If condition (i) is true at the instant event A occurs, then event B will immediately be scheduled to occur t time units in the future with variables k assigned the values j Figure 1-1 A Basic Event Graph Note that Event A and Event B are the events which occur in the system that is to be modelled, for example arrival of a customer, starting a service etc. SharpSim includes three main classes which are Simulation, Event, Edge and three secondary classes which are Entity, Resource and Stats, as shown in Figure 1-2. Please refer to SharpSim documentation for detailed explanation of these classes. Figure 1-2 Class structure of SharpSim Edge Class Entity Class Simulation Class C l a s s E d g e SharpSim C l a s s E n t i t y Stats Class S h a r p C l a s s S i m u Event Class l a t i o n Resource S Class i m C l a s s E v e n t C l a s s R e s o u r c 3
5 In this SharpSim tutorials set, three tutorials are given; Tutorial 1: M/M/n Service System Simulation, which is Example 2 in SharpSim pack, Tutorial 2: M/M/n Service System Simulation using Excel input file, which is Example 1 in SharpSim pack, and Tutorial 3: A Production/Inventory System Simulation, which is Example 3 in SharpSim pack. 2 TUTORIAL 1 In this tutorial a simple queuing system will be modelled using SharpSim. The Event Graph (EG) in Figure 2-1 has four events which represent start of simulation, arrival of customers, start of service, and end of service events in a queuing system. The variables are ID (arriving customers ID number), S (number of available servers), and C (Customer Entity). Figure 2-1 Event graph for M/M/n Queuing Model. The explanation of this EG is as follows; When the Run event occurs, set the ID to 1 (first customer s ID), the S to n (there are n servers) and create C (an instance of Customer object). Setting the attribute of Edge [1-2] to C is required to pass the C object to the next event. When the Arrival event occurs you first need to add the receiving Customer object to the next event s queue. Later you pull a Customer entity from the Start Event s queue and set this to the edge s attribute. Likewise, you need to create a new Customer instance and set it to the self loop attribute. Finally, you need to set the condition on edge between Arrival and Start events based on S (number of available servers). 4
6 2.1 Creating a C# Project When the Start event occurs, first customer in the Start event s queue is removed, since it is time for that customer to be served. Number of available servers decremented by one and the receiving customer entity is set as the parameter on the edge. This is to transfer the customer to the leave (end of service) event. Final event is Leave event. Executing a leave event means that a customer finished the service and therefore number of available servers (S) must be incremented by one and a new Start event must be scheduled. Scheduling a Start event is possible if number of customers waiting in the queue (Q) is non-zero. Q is the queue count of Start event (Event[3]). To build this model in SharpSim, first you need to create a C# project and include SharpSim library. Open a new Project (File/New Project) in Visual Studio 2010 (or any other C# compiler such as C# 2008 Express edition) Choose Windows Forms Application and name it as shown in Figure 2-2. Figure 2-2 Creating a C# project 2.2 Adding SharpSim reference to your project After creating the project right click on References tree item in the project explorer and choose Add reference. Click on 5
7 Browse tab and choose the SharpSim.dll file on your file system, as shown in Figure 2-3. Figure 2-3 Adding SharpSim.dll reference After adding the reference you must see SharpSim in your project explorer as shown in Figure 2-4. Note that if you want to use Excel inputs you also need to include the third party Excel library NExcel. Figure 2-4 Solution Explorer after adding SharpSim reference 2.3 Setting the simulation form Open the form in you project and add a rich text box and a button. In the code editor add the using statements as shown in Code Box 2-1 in the code section of your form. 6
8 Code Box 2-1 using class in your example using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using NExcel; using SharpSim; 2.4 Writing the model code Define the variables given in Code Box 2-2 in the global declarations section of your form. Note you must define every event and edge as seen in Figure 2-1. Code Box 2-2 Defining your simulation model objects public partial class Example2 : Form Simulation sim; Event erun; Event earrival; Event estart; Event eendservice; Event eterminate; Edge edge1_2; Edge edge2_2; Edge edge2_3; Edge edge3_4; Edge edge4_3; Simulation provides a simulation platform where all the elements of the model can interact with each other. Simulation class includes the main properties of the simulation such as future event list and simulation time and the mechanism which handles event scheduling algorithm. An Event represents a node in an Event Graph. An event is an occurrence which causes a state change in the system. An Edge represents an arc in an Event Graph. An edge is a connection line between two events. On the button click event, instantiate the SharpSim simulation object as in Code Box 2-3. Simulation class has two overloaded constructors. 7
9 Code Box 2-3 Instantiating the simulation object private void button1_click(object sender, EventArgs e) sim = new Simulation(true, 10, false); Tracklist : If true, executed events are shown on the Simulation form of SharpSim. Replication : Number of times the model will be replicated with the given configuration. Randomize Seed: If true, produces a new seed for each replication. Seed No : Is used as a seed for Random type variable. Instantiate the Events as shown in Code Box 2-4. The Event class has two overloaded constructors. You need to create every event seen in Figure 2-1. Note that the Terminate event does not exist in the EG but since an event to stop the model is required you explicitly need to add this event to your model code. Code Box 2-4 Creating the events erun = new Event("1", "Run", 1, 0); earrival = new Event("2", "Arrival", 4); estart = new Event("3", "Start", 2); eendservice = new Event("4", "EndService", 3); eterminate = new Event("5", "Terminate", 5, 50); No : Identification string of the event. Name : Name of the event. Priority : Priority of the event. Execution Time : Simulation time which the event will be executed After creating the events, you need to add State Change Listeners. State change listeners are related to C# event handling mechanism and help connect SharpSim events with C# form events, for example when the erun event occurs in SharpSim, Run method of 8
10 this form (which will be explained later) will be executed. //State change listeners Run(eRun); Arrival(eArrival); Start(eStart); EndService(eEndService); Terminate(eTerminate); Instantiate the Edges. You need to create every edge, the arrows between events, in Figure 2-1. The Edge class has three parameters; name, source event, and target event. edge1_2 = new Edge("1-2", erun, earrival); edge2_2 = new Edge("2-2", earrival, earrival); edge2_2.dist = "exponential"; edge2_2.mean = 5.0; edge2_3 = new Edge("2-3", earrival, estart); edge3_4 = new Edge("3-4", estart, eendservice); edge3_4.dist = "exponential"; edge3_4.mean = 5.0; edge4_3 = new Edge("4-3", eendservice, estart); Name SourceEvent TargetEvent : Name of the edge. : Arc's departing event. : Arc's arriving event The modeller can set the time distribution and the distribution parameters on an edge by setting its.dist and.mean properties. Complete source code for button click event is shown in Code Box 2-5. The penultimate line sim.createstats("2-4"); is written to collect statistics for the delay time between events 2 and 4. The delay between these two events means the total time of customers in the system. Final line sim.run() calls the main simulation run method and the simulation starts. 9
11 Code Box 2-5 Complete source code for Button Click event private void button1_click(object sender, EventArgs e) sim = new Simulation(true, 10, false); erun = new Event("1", "Run", 1, 0); earrival = new Event("2", "Arrival", 4); estart = new Event("3", "Start", 2); eendservice = new Event("4", "EndService", 3); eterminate = new Event("5", "Terminate", 5, 50); //State change listener // First do state changes and later event schedules (creating edge) Run(eRun); Arrival(eArrival); Start(eStart); EndService(eEndService); Terminate(eTerminate); //Create edge (event schedule) edge1_2 = new Edge("1-2", erun, earrival); edge2_2 = new Edge("2-2", earrival, earrival); edge2_2.dist = "exponential"; edge2_2.mean = 5.0; edge2_3 = new Edge("2-3", earrival, estart); edge3_4 = new Edge("3-4", estart, eendservice); edge3_4.dist = "exponential"; edge3_4.mean = 5.0; edge4_3 = new Edge("4-3", eendservice, estart); //collecting statistics sim.createstats("2-4"); //RUN THE SIMULATION sim.run(); 2.5 State Change handlers Run Event state change When a SharpSim event occurs, its corresponding method in the form is also executed. These methods are coded in the model file and inside these methods there are state change related codes, such as incrementing state variables and creating new entities. Inside a state change handler it is essential to write code inside evt.eventexecuted += delegate(object obj1, EventInfoArgs e)... block. Translation of the pseudo code in Figure 2-1 is; Set the ID variable to 1 which means that the very first arriving customer s ID will be 1. Set the S variable to 2 which means that we have initially 2 servers. 10
12 Create a new customer instance and, Set the edge between Event 1 and 2 parameter value to this new customer as shown in Code Box 2-6. Code Box 2-6 Run Event state change handler public void Run(Event evt) evt.eventexecuted += delegate(object obj1, EventInfoArgs e) //State changes will be written this section as shown below. ID = 1; S = 2; Customer customer = new Customer(ID); edge1_2.attribute = customer; ; Arrival Event state change On an Arrival event (Code Box 2-7); Add the arriving Customer to the Start event s queue. Set the attribute of the edge between events 2 and 3 to the first customer waiting in the Start event s queue. Increment the global variable ID by one. Create a new customer Set the self loop creating arrival event s edge attribute to this new customer Set the edge between events 2 and 3 condition to True, if the number of servers available is greater than 0, and False otherwise. Code Box 2-7 Arrival Event state change handler public void Arrival(Event evt) evt.eventexecuted += delegate(object obj1, EventInfoArgs e) //To implement parameter passing, first you need to push the parameter to the queue //and then pull the first customer in the queue (FIFO queue discipline) estart.queue.add(e.evnt.parameter); edge2_3.attribute = estart.queue[0]; ID++; Customer cust = new Customer(ID); edge2_2.attribute = cust; ; if (S > 0) edge2_3.condition = true; else edge2_3.condition = false; 11
13 2.5.3 Start Event state change On the Start event (Code Box 2-8); Remove the first customer in the Start Event s queue Decrement the number of servers available by one Set the attribute value of the edge between events 3 and 4. Code Box 2-8 Start Event state change handler public void Start(Event evt) evt.eventexecuted += delegate(object obj1, EventInfoArgs e) estart.queue.removeat(0); S--; edge3_4.attribute = e.evnt.parameter; ; EndService Event state change On the EndService event (Code Box 2-9); Increment the number of available servers by one If the number of customers waiting in the Start Event s queue then set the condition on edge between events 4 and 3 to false. This means that there is no one waiting to be served. Otherwise, set the condition to True and set the first customer in the Start Event s queue to the attribute of the edge between events 4 and 3. Add a statistics collection line Code Box 2-9 EndService Event state change handler public void EndService(Event evt) evt.eventexecuted += delegate(object obj1, EventInfoArgs e) S++; if (estart.queue.count() == 0) edge4_3.condition = false; else edge4_3.condition = true; edge4_3.attribute = estart.queue[0]; ; Stats.CollectStats("2-4", e.evnt.parameter.returninterval("2", "4")); 12
14 2.5.5 Terminate Event state change On the Terminate event () which is not in the event graph; Write a message to indicate that the replication is ended. Add the mean statistics to the global statistics dictionary. Code Box 2-10 Terminate Event state change handler public void Terminate(Event evt) evt.eventexecuted += delegate(object obj1, EventInfoArgs e) richtextbox1.text += "Replication No : " + Simulation.replicationNow + " ended." + "\n"; Stats.AddDataToStatsGlobalDictionary("2-4", Stats.Dictionary["2-4"].mean); ; 2.6 Creating an Entity: Customer Class SharpSim provides an abstract Entity class which can be extended to create model related entities. In our example the entities are customers and therefore a Customer class is created as shown in Code Box It is a simple class with only an id property. Code Box 2-11 Customer Class class Customer : Entity public Customer(int id) : base (id) this.identifier = id; 2.7 Running the application Select Program.cs on the right-side and double click it and be sure that the name of the form is written at Application.Run row as shown in Figure 2-5. Now, the model is ready to run. Build your application and run it. You will see two windows as seen in Figure
15 Figure 2-5 Program code Figure 2-6 Output windows 14
16 3 TUTORIAL 2 This tutorial is the second part of SharpSim tutorial series. As presented in Tutorial 1, you can build your models by instantiating your events and edges inside the code. This may be tedious when you have many events. SharpSim also provides methods to read event and edge information from an Excel file. This tutorial describes how a model of the EG given in Figure 2-1 is built using the Excel input file. As stated before, this tutorial is only different than tutorial 1 in terms of the inputs being read from an Excel file. For this reason you must also include a third party Excel library NExcel in your C# project. The DLL for NExcel is supplied with the SharpSim. Figure 3-1 Solution Explorer after adding SharpSim reference 3.1 Setting the simulation form Open the form in you project and add a rich text box, a button, and a OpenFileDialogbox. In the code editor add the using statements as shown in Code Box 2-1 in the code section of your form. Code Box 3-1 using class in your example using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using NExcel; using SharpSim; 15
17 3.2 Writing the model code Define the variables given in Code Box 2-2 in the global declarations section of your form. This time you do not need to define all events and edges here, since these will be read from Excel file. Code Box 3-2 Defining your simulation model objects public partial class Example1 : Form Simulation sim; int ID; int S; public Example1() InitializeComponent(); The constructor of the form includes a call to initialize components. On the button click event, insert the code in Code Box 2-3. Code Box 3-3 Instantiating the simulation object private void button1_click(object sender, EventArgs e) this.openfiledialog1.filename = "*.xls"; this.openfiledialog1.initialdirectory = Application.StartupPath; if (this.openfiledialog1.showdialog() == DialogResult.OK) //read the excel file string filename = openfiledialog1.filename; Workbook workbook = Workbook.getWorkbook(filename); sim = new Simulation(true, 3, true); sim.createevents(workbook.getsheet("events")); //State //State change change listeners listeners Run(sim.events["1"]); Arrival(sim.events["2"]); Start(sim.events["3"]); EndService(sim.events["4"]); Terminate(sim.events["5"]); sim.createedges(workbook.getsheet("edges")); sim.createstats(workbook.getsheet("stats")); sim.startsimulationthread(); 16
18 First two statements and the if statement are about opening the Excel file. You specify the file extension and the start-up path. The if statement checks whether the file chosen by the Open File Dialog exists. If the file opening is successful then a Workbook instance is created. This part comes from NExcel. As in tutorial 1, a simulation instance is created by specifying tracklist on/off, number of replications, and randomizing seed on/off. Sim.createEvents method is a SharpSim method. It reads the Events (or any other worksheet with the desired format) worksheet of the Excel file. The format of this worksheet is given below. The first row must include the labels; Event No, Name, Priority, and Exec.Time respectively. The first column is the integer identifier of events. The second column is a text area to name events. The third column is the priority (an event with bigger priority value is executed first). The last column is the time scheduled time of an event. If a value is given, at the beginning of the simulation, these events are added to the Future Event List (FEL). Others which have no Exec.Time value are the events that are scheduled during the simulation run. As in the first tutorial, you need to write state change listeners for every event. An event listener takes one argument of event type. You can directly specify an event from the simulation and using IDs. CreateEdges method reads the edges data from Edges worksheet. The first column is a text label for the edge. It includes IDs of the events as text. Following two columns are the names of source and the target events. Inter.Time is the time on the edge. Remember that you need to specify a time delay on edges. This means that when executing the source event after a delay of time the target event must be executed (in other words scheduled in the FEL). This column is to specify a deterministic time delay. Whereas in the following three columns you enter some values to specify stochastic time delays. In the Dist, you enter a distribution name. In Mean and Std.Dev you enter first two parameters of the distribution (if the distribution is 1-parameter-dist then you 17
19 enter the parameter value into the mean cell). Following distributions are included in version 1.1: "exponential", "normal", uniform", "gamma", "chisquare", "inversegamma", "weibull", "cauchy", "studentt", "laplace", "lognormal", "beta". Explanations of State Change Listeners are done in the previous tutorial. Note that State change listeners are related to C# event handling mechanism and help connect SharpSim events with C# form events, for example when the Run event occurs in SharpSim, Run method of this form will be executed. The links are done by sim.events["1"] lines in the code. The sim variable has an events collection and ID number as string is the key in this collection. 3.3 State Change handlers and Running the application All the state change handlers, the methods which are linked to simulation events, are the same as in the first tutorial. Creating the Entity class and running the application are explained in the first tutorial. 18
20 4 TUTORIAL 3 In this tutorial we present a generic model of a production/inventory system which is presented by Altiok and Melamed, The system to be modeled is a production facility which is subject to failures. There is one type of product. The products produced at this facility are stored in a warehouse. This generic model illustrates how an inventory control policy regulates flow of products between production and inventory facilities. First two tutorials used SharpSim v.1.0 however this tutorial is using SharpSim v.1.1. The main addition to this version is the addition of Cancelling Edge. Some other improvements as published at the official website are also made 4.1 Problem Statement The production system is composed of three stages; 1. Filling each container unit (e.g., bottles) 2. Sealing each unit 3. Placing labels on each unit. For modeling purposes, the processing times of individual stages are combined into a single-stage processing time. Figure 4-1 depicts a schematic diagram of the system (taken from Altiok and Melamed, 2007). Raw-materials are stored in a storage area and are used to produce the products in the production process. Finished products are sent to the warehouse. Customers arrive at the warehouse with product requests (demands), and if a request cannot be fully satisfied by on-hand inventory, the unsatisfied portion represents lost product order. Figure 4-1: A production/inventory system (taken Altiok and Melamed 2007) The following assumptions are made: There is always sufficient raw material in storage, so the process never starves. 19
21 Product processing is carried out in lots of 5 units, and finished lots are placed in the warehouse. Lot processing time is uniformly distributed between 10 and 20 minutes. The production process experiences random failures, which may occur at any point in time. Times between failures are exponentially distributed with a mean of 200 minutes, while repair times are normally distributed, with a mean of 90 minutes and a standard deviation of 45 minutes. Warehouse operations implement (r, R) inventory control policy. The warehouse has a capacity (target level) of R=500 units, so that the production process stops when the inventory in the warehouse reaches the target level. From this point and on, the production process becomes blocked and remains inactive until the inventory level drops to or below the reorder point r=150 units (the production process resumes as soon as the reorder level is downcrossed.) Note that this is a convenient policy when a resource needs to be shared among different types of products. For instance, when the production process becomes blocked, it may actually be assigned to another task or product that is not part of this system. The inter-arrival times between successive customers are uniformly distributed between 3 to 7 hours, and individual demand sizes are distributed uniformly between 50 and 100 units. For programming simplicity, demand sizes are allowed to be any real number in this range. On customer arrival, the inventory is immediately checked. If there is sufficient stock on hand, that demand is promptly satisfied. Otherwise, the unsatisfied portion of the demand is lost. Some typical performance measures of interest are: Average inventory level Percentage of customers whose demand is not completely satisfied Average lost demand size given that it is not completely satisfied 4.2 Event Graph of the System The event graph of the system described in the previous section is given in Figure 4-2, as it is crucial before building a SharpSim model. 20
22 Figure 4-2: Event Graph for production/inventory model The explanation of this EG is as follows; When the Run event occurs, set the ID to 1 (first customer s ID), the S to 1, the OH (On-hand inventory) to 250, the R (inventory position) to 500 and the r (reorder point) to 150. This is the initialization phase and Run event is a triggering event for the rest of the events. We need to set the conditions of Edge [1-2] and Edge [1-6] to true. When the Arrival event occurs you first need to increase ID by one and generate random D (demand) according to uniform distribution with parameters 50 and 100. Later you check on-hand inventory. If it is more than D, you satisfy the customer. Otherwise, LC (Lost Customer) incremented by one, calculate LQ (Lost Quantity) and set OH to 0. Finally, you need to set the condition on edge between Arrival and Start events based on S (number of available servers) and on-hand inventory. Note that <R, r> inventory model policy is: when on-hand inventory level hits r order up to R. When the StartProduction event occurs, number of available servers is decremented by one. When the EndProduction event occurs, number of available servers is incremented by one and on-hand incremented by five. Scheduling a Start event is possible if on-hand is less than R. 21
23 When the Failure event occurs, scheduled first EndProduction event in Future Event List (FEL) is deleted. Edge [6-4] is a cancelling edge and this is one of the new features of SharpSim. Also, number of available servers is decremented by one to cancel Start event condition. Schedule next Repair event. When the Repair event occurs, number of available servers is incremented by one. We mentioned creating C# Project, adding SharpSim as a reference and writing the model code using SharpSim in Tutorial 1. We will explore new properties of SharpSim, learn how to use them and some recommendations for users by creating production/inventory model at the following sections. Note that in this tutorial, as in Tutorial 1, Excel input is not used. 4.3 Creating Production/Inventory Model Setting the simulation form Add a form in your project and add a rich text box and a button. In the code editor add the using statements as shown in Code Box 2-1 in the code section of your form. Code Box 4-1 using class in your example using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using NExcel; using SharpSim; Creating the model Define the variables given in Code Box 2-2 in the global declarations section of your form. Note that you must define every event and edge as seen in Figure
24 Code Box 4-2 Defining your simulation model objects public partial class ProductionExample : Form Simulation sim; Event erun; Event earrival; Event estartproduction; Event eendproduction; Event erepair; Event efailure; Event eterminate; Edge edge1_2; Edge edge2_2; Edge edge2_3; Edge edge3_4; Edge edge4_3; Edge edge1_6; Edge edge5_3; Edge edge5_6; Edge edge6_5; Edge cedge6_4; //canceling edge On the button click event, instantiate the SharpSim simulation object as shown in Code Box 2-3. Code Box 4-3 Instantiating the simulation object private void button1_click(object sender, EventArgs e) sim = new Simulation(true, 10, false); Instantiate the Events as shown in Code Box 2-4. You need to create every event seen in Figure 4-2. Note that the Terminate event does not exist in the EG but since an event to stop the model is required, you explicitly need to add this event to your model code. Code Box 4-4 Creating the events erun = new Event("1", "Run", 1, 0); earrival = new Event("2", "Arrival", 6); estartproduction = new Event("3", "StartProduction", 4); eendproduction = new Event("4", "EndProduction", 5); erepair = new Event("5", "Repair", 2); efailure = new Event("6", "Failure", 3); eterminate = new Event("7", "Terminate", 7, ); 23
25 After creating the events, you need to add State Change Listeners. State change listeners are related to C# event handling mechanism and help connect SharpSim events with C# form events. For example, when the erun event occurs in SharpSim, Run method of this form (which will be explained later) will be executed. Code Box 4-5 Adding State Change Listeners //State change listeners Run(eRun); Arrival(eArrival); StartProduction(eStartProduction); EndProduction(eEndProduction); Repair(eRepair); Failure(eFailure); Terminate(eTerminate); Instantiate the Edges. You need to create every edge, the arrows between events, in Figure 4-2. Code Box 4-6 Instantiating Edges edge1_2 = new Edge("1-2", erun, earrival); //Version 1.1 property List<object> edge1_2dist = new List<object>(); edge1_2dist.add("uniform"); edge1_2dist.add(180.0); edge1_2dist.add(420.0); edge1_2.distribution = edge1_2dist; //Version 1.0 edge type //edge1_2.dist = "uniform"; //edge1_2.param1 = 180.0; //edge1_2.param2 = 420.0; 24
26 edge2_2 = new Edge("2-2", earrival, earrival); edge2_2.dist = "uniform"; edge2_2.param1 = 180.0; edge2_2.param2 = 420.0; edge2_3 = new Edge("2-3", earrival, estartproduction); edge3_4 = new Edge("3-4", estartproduction, eendproduction); edge3_4.dist = "uniform"; edge3_4.param1 = 10; edge3_4.param2 = 20; edge4_3 = new Edge("4-3", eendproduction, estartproduction); edge1_6 = new Edge("1-6", erun, efailure); edge1_6.dist = "exponential"; edge1_6.param1 = 200.0; edge5_3 = new Edge("5-3", erepair, estartproduction); edge5_6 = new Edge("5-6", erepair, efailure); edge5_6.dist = "exponential"; edge5_6.param1 = 200.0; edge6_5 = new Edge("6-5", efailure, erepair); edge6_5.dist = "normal"; edge6_5.param1 = 90.0; edge6_5.param2 = 45.0; //Version 1.1 property //Cancelling edge last parameter of edge indicates cancelling edge cedge6_4 = new Edge("6-4", efailure, eendproduction, true); As it s shown in Code Box 4-6, version 1.1 has an overloaded method for ComputeValue (in Edge.cs). Compute Value takes a List in which the first element is the distribution name. The modeler can set the time distribution and the distribution parameters on an edge by using these two overloaded methods. At version 1.1, following distributions are added to SharpSim library. o Exponential o Normal o Uniform o Gamma o Chi Square o Inverse Gamma o Weibull o Cauchy o Student T o Laplace o LogNormal o Beta At version 1.1, also, the cancelling edge mechanism is added to SharpSim. There is a boolean parameter in the Edge class as shown with a red circle in Code Box 4-6. This parameter is set to true for a cancelling edge. 25
27 Complete source code for button click event is shown in Code Box 4-7. Code Box 4-7 Complete Source Code for Button Click private void button1_click(object sender, EventArgs e) sim = new Simulation(false, 1000, false); erun = new Event("1", "Run", 1, 0); earrival = new Event("2", "Arrival", 6); estartproduction = new Event("3", "StartProduction", 4); eendproduction = new Event("4", "EndProduction", 5); erepair = new Event("5", "Repair", 2); efailure = new Event("6", "Failure", 3); eterminate = new Event("7", "Terminate", 7, ); //State change listener Run(eRun); Arrival(eArrival); StartProduction(eStartProduction); EndProduction(eEndProduction); Repair(eRepair); Failure(eFailure); Terminate(eTerminate); //Create edge (event schedule) edge1_2 = new Edge("1-2", erun, earrival); //Version 1.1 property List<object> edge1_2dist = new List<object>(); edge1_2dist.add("uniform"); edge1_2dist.add(180.0); edge1_2dist.add(420.0); edge1_2.distribution = edge1_2dist; //Version 1.0 edge type //edge1_2.dist = "uniform"; //edge1_2.param1 = 180.0; //edge1_2.param2 = 420.0; edge2_2 = new Edge("2-2", earrival, earrival); edge2_2.dist = "uniform"; edge2_2.param1 = 180.0; edge2_2.param2 = 420.0; edge2_3 = new Edge("2-3", earrival, estartproduction); edge3_4 = new Edge("3-4", estartproduction, eendproduction); edge3_4.dist = "uniform"; edge3_4.param1 = 10; edge3_4.param2 = 20; edge4_3 = new Edge("4-3", eendproduction, estartproduction); edge1_6 = new Edge("1-6", erun, efailure); edge1_6.dist = "exponential"; edge1_6.param1 = 200.0; edge5_3 = new Edge("5-3", erepair, estartproduction); edge5_6 = new Edge("5-6", erepair, efailure); edge5_6.dist = "exponential"; edge5_6.param1 = 200.0; edge6_5 = new Edge("6-5", efailure, erepair); edge6_5.dist = "normal"; edge6_5.param1 = 90.0; edge6_5.param2 = 45.0; //Version 1.1 property //Cancelling edge last parameter of edge indicates cancelling edge cedge6_4 = new Edge("6-4", efailure, eendproduction, true); sim.createstats("sohtimeaverage"); sim.createstats("unsatisfied Customer"); sim.createstats("lost Demand Size"); sim.createstats("total Customer"); sim.createstats("unsatisfied Ratio"); sim.run(); 26
28 sim.createstats("sohtimeaverage"); is written to collect statistics for the average on-hand inventory. Average on-hand inventory is a time weighted average. This type of statistics is also a new feature in version 1.1. Final line sim.run() calls the main simulation run method and the simulation starts. 4.4 State Change handlers Run Event state change When a SharpSim event occurs, its corresponding method in the form is also executed. These methods are coded in the model file and inside these methods there are state change related codes, such as incrementing state variables and creating new entities. Inside a state change handler, it is essential to write code inside evt.eventexecuted += delegate(object obj1, EventInfoArgs e)... block. Translation of the event graph in Figure 4-2 is as follows; Set the initial statistical data values to 0. Set variable S to 1, which means that we have initially 1 production machine. Set OnHand to 250, which means that initial value of on-hand inventory is 250. Also add this value to Stats dictionary. Set BatchSize to 5, which means that every production event will produce 5 products (in batches). Set r to 150, which means that reorder point is equal to 150. Set bigr to 500 which means that the system will produce up to 500. Code Box 4-8 Run Event state change handler public void Run(Event evt) evt.eventexecuted += delegate(object obj1, EventInfoArgs e) ID = 0; UnsatisfiedCustomer = 0; LostDemandSize = 0; S = 1; OnHand = 250; Stats.CollectStats("SOHtimeAverage", new double[2] Simulation.clock, OnHand ); BatchSize = 5; r = 150; bigr = 500; ; 27
29 4.4.2 Arrival Event state change On an Arrival event (Code Box 2-7); Increase Customer ID by one. Generate random demand. If the modeler requires to generate random numbers inside the model, rnd static variable in RandomGenerate class must be used, such as RandomGenerate.rnd.Next(50, 100);. C# s random number generator must NOT be used. Check the condition of OnHand inventory according to Demand, if it s available then sell them, otherwise; o Sell all OnHand then set it to 0. o Compute LostDemandSize o Increase UnsatisfiedCustomer by one. o Collect statistical data. Set the edge between events 2 and 3 condition to True, if OnHand is less than or equal to r and the number of servers available is greater than 0, and False otherwise. Code Box 4-9 Arrival Event state change handler public void Arrival(Event evt) evt.eventexecuted += delegate(object obj1, EventInfoArgs e) ID++; Demand = RandomGenerate.rnd.Next(50, 100); if (OnHand > Demand) OnHand -= Demand; Stats.CollectStats("SOHtimeAverage", new double[2] Simulation.clock, OnHand ); else LostDemandSize += Demand - OnHand; Stats.CollectStats("Lost Demand Size", LostDemandSize); OnHand = 0; Stats.CollectStats("SOHtimeAverage", new double[2] Simulation.clock, OnHand ); UnsatisfiedCustomer++; if ((OnHand<r) && (S > 0)) edge2_3.condition = true; else edge2_3.condition = false; ; StartProduction Event state change On the Start event (Code Box 2-8); Decrease the number of server available by one 28
30 Code Box 4-10 Start Production Event state change handler public void StartProduction(Event evt) evt.eventexecuted += delegate(object obj1, EventInfoArgs e) S--; ; EndProduction Event state change On the EndProduction event (Code Box 2-9); Increase the number of available servers by one. Add BatchSize to OnHand. Add a statistics collection line. If OnHand is less than bigr, set the condition on edge between events 4 and 3 to true. This means that the system will produce more products. Otherwise, set the condition to false Code Box 4-11 EndProduction Event state change handler public void EndProduction(Event evt) evt.eventexecuted += delegate(object obj1, EventInfoArgs e) S++; OnHand += BatchSize; Stats.CollectStats("SOHtimeAverage", new double[2] Simulation.clock, OnHand ); if (OnHand < bigr) edge4_3.condition = true; else edge4_3.condition = false; ; Repair Event state change On the Repair event (Code Box 4-12); Increase the number of available server. If OnHand is less than r, set the condition on edge between events 5 and 3 to true. This means that the system will start production. To schedule next failure, set the condition on edge between events 5 and 6 to true. 29
31 Code Box 4-12 Repair Event state change handler public void Repair(Event evt) evt.eventexecuted += delegate(object obj1, EventInfoArgs e) S++; if (OnHand < r) edge5_3.condition = true; else edge5_3.condition = false; edge5_6.condition = true; ; Failure Event state change On the Failure event (Code Box 4-13); Decrease the number of available server. Scheduled first EndProduction event in FEL is deleted. Edge [6-4] is a cancelling edge and this is one of the new features of SharpSim. To schedule next Repair event, set the condition on edge between events 6 and 5 to true. Code Box 4-13 Failure Event state change handler public void Failure(Event evt) evt.eventexecuted += delegate(object obj1, EventInfoArgs e) S--; cedge6_4.cancellingedge = true; edge6_5.condition = true; ; Terminate Event state change On the Terminate event (Code Box 4-14) which is not in the event graph; Write a message to indicate that the replication is ended. Add collected statistics to the global statistics dictionary. 30
32 Code Box 4-14 Terminate Event state change handler public void Terminate(Event evt) evt.eventexecuted += delegate(object obj1, EventInfoArgs e) unsatisfiedratio = (double) UnsatisfiedCustomer / ID; richtextbox1.text += "Replication No : " + Simulation.replicationNow + " ended." + "\n"; Stats.AddDataToStatsGlobalDictionary("SOHtimeAverage", Stats.Dictionary["SOHtimeAverage"].timeWeightedAverage); Stats.AddDataToStatsGlobalDictionary("Unsatisfied Customer", UnsatisfiedCustomer); Stats.AddDataToStatsGlobalDictionary("Total Customer", ID); Stats.AddDataToStatsGlobalDictionary("Lost Demand Size", Stats.Dictionary["Lost Demand Size"].mean); Stats.AddDataToStatsGlobalDictionary("Unsatisfied Ratio", unsatisfiedratio); ; 4.5 Running the application Select Program.cs on the right-side and double click it and be sure that the name of the form is written at Application.Run row as shown in Figure 2-5. Now, the model is ready to run. Build your application and run it. You will see two windows as seen in Figure 2-6. Figure 4-3 Program code 31
33 Figure 4-4 Output windows REFERENCES Altiok, T., B.Melamed, 2007, Simulation Modeling and Analysis with Arena, Elsevier. 32
Modeling Stochastic Inventory Policy with Simulation
Modeling Stochastic Inventory Policy with Simulation 1 Modeling Stochastic Inventory Policy with Simulation János BENKŐ Department of Material Handling and Logistics, Institute of Engineering Management
Conexión SQL Server C#
Conexión SQL Server C# Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
How To Develop A Mobile Application On Sybase Unwired Platform
Tutorial: Windows Mobile Application Development Sybase Unwired Platform 2.1 DOCUMENT ID: DC01285-01-0210-01 LAST REVISED: December 2011 Copyright 2011 by Sybase, Inc. All rights reserved. This publication
I A Form és a párbeszédablakok I.1. MessageBox osztály MessageBox.Show(szöveg[,cím[,gombok[,ikon[,defaultbutton]]]]);
I A Form és a párbeszédablakok I.1. MessageBox osztály MessageBox.Show(szöveg[,cím[,gombok[,ikon[,defaultbutton]]]]); szöveg, cím gomb ikon defaultbutton String - MessageBoxButtons.OK - MessageBoxIcon.Asterix.Error.OKCancel.Question
A Step by Step Guide for Building an Ozeki VoIP SIP Softphone
Lesson 3 A Step by Step Guide for Building an Ozeki VoIP SIP Softphone Abstract 2012. 01. 20. The third lesson of is a detailed step by step guide that will show you everything you need to implement for
Using the Bulk Export/Import Feature
Using the Bulk Export/Import Feature Through Bulksheet Export and Import, agencies have the ability to download complete campaign structures and statistics across multiple clients and providers, and to
ADOBE READER AND ACROBAT
ADOBE READER AND ACROBAT IFILTER CONFIGURATION Table of Contents Table of Contents... 1 Overview of PDF ifilter 11 for 64-bit platforms... 3 Installation... 3 Installing Adobe PDF IFilter... 3 Setting
IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules
IBM Operational Decision Manager Version 8 Release 5 Getting Started with Business Rules Note Before using this information and the product it supports, read the information in Notices on page 43. This
1: B asic S imu lati on Modeling
Network Simulation Chapter 1: Basic Simulation Modeling Prof. Dr. Jürgen Jasperneite 1 Contents The Nature of Simulation Systems, Models and Simulation Discrete Event Simulation Simulation of a Single-Server
CRM Setup Factory Installer V 3.0 Developers Guide
CRM Setup Factory Installer V 3.0 Developers Guide Who Should Read This Guide This guide is for ACCPAC CRM solution providers and developers. We assume that you have experience using: Microsoft Visual
SharePoint Wiki Redirect Installation Instruction
SharePoint Wiki Redirect Installation Instruction System Requirements: Microsoft Windows SharePoint Services v3 or Microsoft Office SharePoint Server 2007. License management: To upgrade from a trial license,
Word 2010: Mail Merge to Email with Attachments
Word 2010: Mail Merge to Email with Attachments Table of Contents TO SEE THE SECTION FOR MACROS, YOU MUST TURN ON THE DEVELOPER TAB:... 2 SET REFERENCE IN VISUAL BASIC:... 2 CREATE THE MACRO TO USE WITHIN
SPSS: Getting Started. For Windows
For Windows Updated: August 2012 Table of Contents Section 1: Overview... 3 1.1 Introduction to SPSS Tutorials... 3 1.2 Introduction to SPSS... 3 1.3 Overview of SPSS for Windows... 3 Section 2: Entering
1) After login WinTonenet Securities Trading System, a window named WinTonenet Securities Trading will be shown.
(A) BUY STOCKS WinTonenet Securities Trading Guidelines (2) TRANSACTION (STANDARD VERSION) 1) After login WinTonenet Securities Trading System, a window named WinTonenet Securities Trading will be shown.
NICK COLLIER - REPAST DEVELOPMENT TEAM
DATA COLLECTION FOR REPAST SIMPHONY JAVA AND RELOGO NICK COLLIER - REPAST DEVELOPMENT TEAM 0. Before We Get Started This document is an introduction to the data collection system introduced in Repast Simphony
INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3
INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3 Often the most compelling way to introduce yourself to a software product is to try deliver value as soon as possible. Simego DS3 is designed to get you
SIM User Guide. Version 8/06/2016
SIM User Guide Version 8/06/2016 This document describes the version 2.56 from June 2016, but also corresponds to previous or later versions. Simple Inventory Manager is an active software that is regularly
A QUICK OVERVIEW OF THE OMNeT++ IDE
Introduction A QUICK OVERVIEW OF THE OMNeT++ IDE The OMNeT++ 4.x Integrated Development Environment is based on the Eclipse platform, and extends it with new editors, views, wizards, and additional functionality.
INVENTORY MANAGEMENT
[email protected] [email protected] Phone: 084 4 8585 4587 INVENTORY MANAGEMENT PLATINUM VERSION USER GUIDE Version 1.4 1 Table of Contents 1. INTRODUCTION... 4 2. HOW TO USE... 9 2.1. Manage Suppliers...
Tutorial: Windows Mobile Application Development. Sybase Unwired Platform 2.1 ESD #2
Tutorial: Windows Mobile Application Development Sybase Unwired Platform 2.1 ESD #2 DOCUMENT ID: DC01285-01-0212-01 LAST REVISED: March 2012 Copyright 2012 by Sybase, Inc. All rights reserved. This publication
CHAPTER 10: WEB SERVICES
Chapter 10: Web Services CHAPTER 10: WEB SERVICES Objectives Introduction The objectives are: Provide an overview on how Microsoft Dynamics NAV supports Web services. Discuss historical integration options,
Jump-Start Tutorial For ProcessModel
Jump-Start Tutorial For ProcessModel www.blueorange.org.uk ProcessModel Jump-Start Tutorial This tutorial provides step-by-step instructions for creating a process model, running the simulation, and viewing
Technical Support Set-up Procedure
Technical Support Set-up Procedure How to Setup the Amazon S3 Application on the DSN-320 Amazon S3 (Simple Storage Service) is an online storage web service offered by AWS (Amazon Web Services), and it
BACKING UP A DATABASE
BACKING UP A DATABASE April 2011 Level: By : Feri Djuandi Beginner Intermediate Expert Platform : MS SQL Server 2008, Visual C# 2010 Pre requisites: Suggested to read the first part of this document series
Web Services API Developer Guide
Web Services API Developer Guide Contents 2 Contents Web Services API Developer Guide... 3 Quick Start...4 Examples of the Web Service API Implementation... 13 Exporting Warehouse Data... 14 Exporting
Instructions for creating a data entry form in Microsoft Excel
1 of 5 You have several options when you want to enter data manually in Excel. You can enter data in one cell, in several cells at the same time, or on more than one worksheet (worksheet/spreadsheet: The
Wellspring FAX Service 1 September 2015
Training Notes 1 September 2015 Wellspring Software, Inc., offers a Fax Service that can be used with PrintBoss from any computer that has internet access. Faxes are sent from PrintBoss through the internet
IBM Tivoli Network Manager 3.8
IBM Tivoli Network Manager 3.8 Configuring initial discovery 2010 IBM Corporation Welcome to this module for IBM Tivoli Network Manager 3.8 Configuring initial discovery. configuring_discovery.ppt Page
Microsoft Axapta Inventory Closing White Paper
Microsoft Axapta Inventory Closing White Paper Microsoft Axapta 3.0 and Service Packs Version: Second edition Published: May, 2005 CONFIDENTIAL DRAFT INTERNAL USE ONLY Contents Introduction...1 Inventory
Intellicus Enterprise Reporting and BI Platform
Intellicus Cluster and Load Balancing (Windows) Intellicus Enterprise Reporting and BI Platform Intellicus Technologies [email protected] www.intellicus.com Copyright 2014 Intellicus Technologies This
How To Manage Inventory In Commerce Server
4 The Inventory System Inventory management is a vital part of any retail business, whether it s a traditional brick-and-mortar shop or an online Web site. Inventory management provides you with critical
SmartConnect Users Guide
eone Integrated Business Solutions SmartConnect Users Guide Copyright: Manual copyright 2003 eone Integrated Business Solutions All rights reserved. Your right to copy this documentation is limited by
Deploying Microsoft Operations Manager with the BIG-IP system and icontrol
Deployment Guide Deploying Microsoft Operations Manager with the BIG-IP system and icontrol Deploying Microsoft Operations Manager with the BIG-IP system and icontrol Welcome to the BIG-IP LTM system -
Visual Basic. murach's TRAINING & REFERENCE
TRAINING & REFERENCE murach's Visual Basic 2008 Anne Boehm lbm Mike Murach & Associates, Inc. H 1-800-221-5528 (559) 440-9071 Fax: (559) 440-0963 [email protected] www.murach.com Contents Introduction
DPL. Portfolio Manual. Syncopation Software, Inc. www.syncopation.com
1 DPL Portfolio Manual Syncopation Software, Inc. www.syncopation.com Copyright 2009 Syncopation Software, Inc. All rights reserved. Printed in the United States of America. March 2009: First Edition.
Intellicus Cluster and Load Balancing (Windows) Version: 7.3
Intellicus Cluster and Load Balancing (Windows) Version: 7.3 Copyright 2015 Intellicus Technologies This document and its content is copyrighted material of Intellicus Technologies. The content may not
Arena Tutorial 1. Installation STUDENT 2. Overall Features of Arena
Arena Tutorial This Arena tutorial aims to provide a minimum but sufficient guide for a beginner to get started with Arena. For more details, the reader is referred to the Arena user s guide, which can
- 1 - intelligence. showing the layout, and products moving around on the screen during simulation
- 1 - LIST OF SYMBOLS, TERMS AND EXPRESSIONS This list of symbols, terms and expressions gives an explanation or definition of how they are used in this thesis. Most of them are defined in the references
Inventory Management System
UH Material Management Inventory Management System UH Warehouse Staff Documentation MarketPlace Procurement Coordinator One time set-up: You will need to should change your default tabs that display. These
Delivery Fleet Optimization with GIS Functionality Webinar
Delivery Fleet Optimization with GIS Functionality Webinar May 28, 2015 Tom Baggio 1. Problem Definition The webinar objectives is a step-by-step process of building a simulation model of an aircraft part
How To Set Up An Intellicus Cluster And Load Balancing On Ubuntu 8.1.2.2 (Windows) With A Cluster And Report Server (Windows And Ubuntu) On A Server (Amd64) On An Ubuntu Server
Intellicus Cluster and Load Balancing (Windows) Intellicus Enterprise Reporting and BI Platform Intellicus Technologies [email protected] www.intellicus.com Copyright 2014 Intellicus Technologies This
PROCEDURE INSERTION(NUM IN EMPLOYES.NUMEMP%TYPE, NOM VARCHAR2, PRENOM IN VARCHAR2, PPHOTO IN BLOB, SALAIRE IN NUMBER);
Le Package CREATE OR REPLACE PACKAGE GESTIONEMPLOYES AS DECLARATION DE LA VARIABLE DE TYPE REF CURSOR DECLARATION DES PROCÉDURES ET FONCTIONS TYPE EMPRESULTAT IS REF CURSOR; PROCEDURE INSERTION(NUM IN
Create a New Database in Access 2010
Create a New Database in Access 2010 Table of Contents OVERVIEW... 1 CREATING A DATABASE... 1 ADDING TO A DATABASE... 2 CREATE A DATABASE BY USING A TEMPLATE... 2 CREATE A DATABASE WITHOUT USING A TEMPLATE...
RA MODEL VISUALIZATION WITH MICROSOFT EXCEL 2013 AND GEPHI
RA MODEL VISUALIZATION WITH MICROSOFT EXCEL 2013 AND GEPHI Prepared for Prof. Martin Zwick December 9, 2014 by Teresa D. Schmidt ([email protected]) 1. DOWNLOADING AND INSTALLING USER DEFINED SPLIT FUNCTION
Creating a New Search
Getting Started The information search feature in AVImark allows the user to create and save queries to find specific information in the program. The Information Search in version 2010.4 and later now
Contents 1. Introduction... 3 2. Login... 4 3. Order Status... 5. 3.1 Search for pre-advice and orders... 5 3.2 View pre-advice or order...
Contents 1. Introduction... 3 2. Login... 4 3. Order Status... 5 3.1 Search for pre-advice and orders... 5 3.2 View pre-advice or order... 5 3.2.1 Coli... 7 3.2.2 Coli and Tracking and Tracing... 8 3.2.3
The Inventory Module. At its core, ecomdash is an inventory management system. Use this guide as a walkthrough to the Inventory module.
The Inventory Module At its core, ecomdash is an inventory management system. Use this guide as a walkthrough to the Inventory module. What can I do in the Inventory Module? View current inventory Add
Table and field properties Tables and fields also have properties that you can set to control their characteristics or behavior.
Create a table When you create a database, you store your data in tables subject-based lists that contain rows and columns. For instance, you can create a Contacts table to store a list of names, addresses,
G563 Quantitative Paleontology. SQL databases. An introduction. Department of Geological Sciences Indiana University. (c) 2012, P.
SQL databases An introduction AMP: Apache, mysql, PHP This installations installs the Apache webserver, the PHP scripting language, and the mysql database on your computer: Apache: runs in the background
2. Unzip the file using a program that supports long filenames, such as WinZip. Do not use DOS.
Using the TestTrack ODBC Driver The read-only driver can be used to query project data using ODBC-compatible products such as Crystal Reports or Microsoft Access. You cannot enter data using the ODBC driver;
Appendix A How to create a data-sharing lab
Appendix A How to create a data-sharing lab Creating a lab involves completing five major steps: creating lists, then graphs, then the page for lab instructions, then adding forms to the lab instructions,
WebSphere Business Monitor V7.0 Business space dashboards
Copyright IBM Corporation 2010 All rights reserved IBM WEBSPHERE BUSINESS MONITOR 7.0 LAB EXERCISE WebSphere Business Monitor V7.0 What this exercise is about... 2 Lab requirements... 2 What you should
Appointment Scheduler
EZClaim Appointment Scheduler User Guide Last Update: 11/19/2008 Copyright 2008 EZClaim This page intentionally left blank Contents Contents... iii Getting Started... 5 System Requirements... 5 Installing
Learn how to create web enabled (browser) forms in InfoPath 2013 and publish them in SharePoint 2013. InfoPath 2013 Web Enabled (Browser) forms
Learn how to create web enabled (browser) forms in InfoPath 2013 and publish them in SharePoint 2013. InfoPath 2013 Web Enabled (Browser) forms InfoPath 2013 Web Enabled (Browser) forms Creating Web Enabled
Notes on Excel Forecasting Tools. Data Table, Scenario Manager, Goal Seek, & Solver
Notes on Excel Forecasting Tools Data Table, Scenario Manager, Goal Seek, & Solver 2001-2002 1 Contents Overview...1 Data Table Scenario Manager Goal Seek Solver Examples Data Table...2 Scenario Manager...8
How To Create A Database In Araba
create database ARABA use ARABA create table arac ( plaka varchar(15), marka varchar(15), model varchar(4)) create table musteri ( tck varchar(11), ad varchar(15), soy varchar(15)) drop table kiralama
EVALUATION. WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration COPY. Developer
WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration Developer Web Age Solutions Inc. USA: 1-877-517-6540 Canada: 1-866-206-4644 Web: http://www.webagesolutions.com Chapter 6 - Introduction
Using SQL Server Management Studio
Using SQL Server Management Studio Microsoft SQL Server Management Studio 2005 is a graphical tool for database designer or programmer. With SQL Server Management Studio 2005 you can: Create databases
MyOra 3.0. User Guide. SQL Tool for Oracle. Jayam Systems, LLC
MyOra 3.0 SQL Tool for Oracle User Guide Jayam Systems, LLC Contents Features... 4 Connecting to the Database... 5 Login... 5 Login History... 6 Connection Indicator... 6 Closing the Connection... 7 SQL
Introduction. Continue to Step 1: Creating a Process Simulator Model. Goal: 40 units/week of new component. Process Simulator Tutorial
Introduction This tutorial places you in the position of a process manager for a specialty electronics manufacturing firm that makes small lots of prototype boards for medical device manufacturers. Your
Provider Electronic Solutions Software User s Guide
Vermont Title XIX Provider Electronic Solutions Software User s Guide HP ENTERPRISE SERVICES 312 HURRICANE LANE, STE 101 PO BOX 888 WILLISTON VT 05495 Table of Contents 1 Introduction... 2 1.1 Provider
Microsoft Access 2010 handout
Microsoft Access 2010 handout Access 2010 is a relational database program you can use to create and manage large quantities of data. You can use Access to manage anything from a home inventory to a giant
Talend Open Studio for MDM. Getting Started Guide 6.0.0
Talend Open Studio for MDM Getting Started Guide 6.0.0 Talend Open Studio for MDM Adapted for v6.0.0. Supersedes previous releases. Publication date: July 2, 2015 Copyleft This documentation is provided
RIT Installation Instructions
RIT User Guide Build 1.00 RIT Installation Instructions Table of Contents Introduction... 2 Introduction to Excel VBA (Developer)... 3 API Commands for RIT... 11 RIT API Initialization... 12 Algorithmic
Systems Programming & Scripting
Systems Programming & Scripting Lecture 6: C# GUI Development Systems Prog. & Script. - Heriot Watt Univ 1 Blank Form Systems Prog. & Script. - Heriot Watt Univ 2 First Form Code using System; using System.Drawing;
Tutorial: Creating a form that emails the results to you.
Tutorial: Creating a form that emails the results to you. 1. Create a new page in your web site Using the Wizard Interface. a) Choose I want to add a form that emails the results to me in the wizard. b)
How To Use Optimum Control EDI Import. EDI Invoice Import. EDI Supplier Setup General Set up
How To Use Optimum Control EDI Import EDI Invoice Import This optional module will download digital invoices into Optimum Control, updating pricing, stock levels and account information automatically with
LabVIEW Report Generation Toolkit for Microsoft Office
USER GUIDE LabVIEW Report Generation Toolkit for Microsoft Office Version 1.1.2 Contents The LabVIEW Report Generation Toolkit for Microsoft Office provides VIs and functions you can use to create and
WebSphere Business Monitor V6.2 Business space dashboards
Copyright IBM Corporation 2009 All rights reserved IBM WEBSPHERE BUSINESS MONITOR 6.2 LAB EXERCISE WebSphere Business Monitor V6.2 What this exercise is about... 2 Lab requirements... 2 What you should
How To Create A Powerpoint Intelligence Report In A Pivot Table In A Powerpoints.Com
Sage 500 ERP Intelligence Reporting Getting Started Guide 27.11.2012 Table of Contents 1.0 Getting started 3 2.0 Managing your reports 10 3.0 Defining report properties 18 4.0 Creating a simple PivotTable
A Comparison of System Dynamics (SD) and Discrete Event Simulation (DES) Al Sweetser Overview.
A Comparison of System Dynamics (SD) and Discrete Event Simulation (DES) Al Sweetser Andersen Consultng 1600 K Street, N.W., Washington, DC 20006-2873 (202) 862-8080 (voice), (202) 785-4689 (fax) [email protected]
Getting Started with Telerik Data Access. Contents
Contents Overview... 3 Product Installation... 3 Building a Domain Model... 5 Database-First (Reverse) Mapping... 5 Creating the Project... 6 Creating Entities From the Database Schema... 7 Model-First
How to build agent based models. Field service example
Simulation Modeling with AnyLogic: Agent Based, Discrete Event and System Dynamics Methods 1 How to build agent based models. Field service example Agent based modeling is the easiest modeling method.
Configuration Manager
After you have installed Unified Intelligent Contact Management (Unified ICM) and have it running, use the to view and update the configuration information in the Unified ICM database. The configuration
Michigan State University. Team Meijer. Tablet-Based Point-of-Sale System. Project Plan. Fall 2011
Michigan State University Team Meijer Tablet-Based Point-of-Sale System Project Plan Fall 2011 Meijer Contacts: Scott Pallas Murali Rajagopalan Team Members: Riti Adhi Peter Rifel Andrew Rockwell Mark
Quick Start Guide. Highly customizable automated trading Automate your trades according to rules and models you create.
POWER E*TRADE PRO EXCEL MANAGER Quick Start Guide We are pleased to announce the launch of Excel Manager, an exciting new feature in Power E*TRADE Pro that leverages the flexibility of Microsoft Excel
USER GUIDE Appointment Manager
2011 USER GUIDE Appointment Manager 0 Suppose that you need to create an appointment manager for your business. You have a receptionist in the front office and salesmen ready to service customers. Whenever
Building and Using Web Services With JDeveloper 11g
Building and Using Web Services With JDeveloper 11g Purpose In this tutorial, you create a series of simple web service scenarios in JDeveloper. This is intended as a light introduction to some of the
Download and Installation Instructions. Visual C# 2010 Help Library
Download and Installation Instructions for Visual C# 2010 Help Library Updated April, 2014 The Visual C# 2010 Help Library contains reference documentation and information that will provide you with extra
如 何 在 C#.2005 中 使 用 ICPDAS I/O Card 的 DLL 檔 案
如 何 在 C#.2005 中 使 用 ICPDAS I/O Card 的 DLL 檔 案 本 文 件 說 明 如 何 在 C#.Net 程 式 中 引 入 ICPDAS I/O Card 的 DLL 檔 案 [ 下 載 安 裝 DLL 驅 動 程 式 與 VC 範 例 程 式 ] 多 年 來, ICPDAS 完 整 的 提 供 了 全 系 列 PCI 與 ISA BUS I/O Card 在 Windows
Hands-On Lab. Web Development in Visual Studio 2010. Lab version: 1.0.0. Last updated: 12/10/2010. Page 1
Hands-On Lab Web Development in Visual Studio 2010 Lab version: 1.0.0 Last updated: 12/10/2010 Page 1 CONTENTS OVERVIEW... 3 EXERCISE 1: USING HTML CODE SNIPPETS IN VISUAL STUDIO 2010... 6 Task 1 Adding
Intellicus Enterprise Reporting and BI Platform
Intellicus Cluster and Load Balancer Installation and Configuration Manual Intellicus Enterprise Reporting and BI Platform Intellicus Technologies [email protected] www.intellicus.com Copyright 2012
Oracle Service Bus Examples and Tutorials
March 2011 Contents 1 Oracle Service Bus Examples... 2 2 Introduction to the Oracle Service Bus Tutorials... 5 3 Getting Started with the Oracle Service Bus Tutorials... 12 4 Tutorial 1. Routing a Loan
IBM DB2 XML support. How to Configure the IBM DB2 Support in oxygen
Table of Contents IBM DB2 XML support About this Tutorial... 1 How to Configure the IBM DB2 Support in oxygen... 1 Database Explorer View... 3 Table Explorer View... 5 Editing XML Content of the XMLType
Data Integration with Talend Open Studio Robert A. Nisbet, Ph.D.
Data Integration with Talend Open Studio Robert A. Nisbet, Ph.D. Most college courses in statistical analysis and data mining are focus on the mathematical techniques for analyzing data structures, rather
Create!form Folder Monitor. Technical Note April 1, 2008
Create!form Folder Monitor Technical Note April 1, 2008 2 FOLDERMONITOR Introduction Introduction FolderMonitor is a utility designed to automatically send spool files to printer queues at set schedules,
Arena 9.0 Basic Modules based on Arena Online Help
Arena 9.0 Basic Modules based on Arena Online Help Create This module is intended as the starting point for entities in a simulation model. Entities are created using a schedule or based on a time between
Microcontroller Systems. ELET 3232 Topic 8: Slot Machine Example
Microcontroller Systems ELET 3232 Topic 8: Slot Machine Example 1 Agenda We will work through a complete example Use CodeVision and AVR Studio Discuss a few creative instructions Discuss #define and #include
SharePoint List Filter Favorites Installation Instruction
SharePoint List Filter Favorites Installation Instruction System Requirements Microsoft Windows SharePoint Services v3 or Microsoft Office SharePoint Server 2007. License Management Click link in Organize
How To Sync Between Quickbooks And Act
QSalesData User Guide Note: In addition to this User Guide, we have an extensive Online Video Library that you can access from our website: www.qsalesdata.com/onlinevideos Updated: 11/14/2014 Installing
WA Manager Alarming System Management Software Windows 98, NT, XP, 2000 User Guide
WA Manager Alarming System Management Software Windows 98, NT, XP, 2000 User Guide Version 2.1, 4/2010 Disclaimer While every effort has been made to ensure that the information in this guide is accurate
MyOra 3.5. User Guide. SQL Tool for Oracle. Kris Murthy
MyOra 3.5 SQL Tool for Oracle User Guide Kris Murthy Contents Features... 4 Connecting to the Database... 5 Login... 5 Login History... 6 Connection Indicator... 6 Closing the Connection... 7 SQL Editor...
File Manager Pro User Guide. Version 3.0
File Manager Pro User Guide Version 3.0 Contents Introduction... 3 1.1. Navigation... 3 2. File Manager Pro... 5 2.1. Changing directories... 5 2.2. Deleting files... 5 2.3. Renaming files... 6 2.4. Copying
WEBFOCUS QUICK DATA FOR EXCEL
WEBFOCUS QUICK DATA FOR EXCEL BRIAN CARTER INFORMATION BUILDERS SUMMIT 2008 USERS CONFERENCE JUNE 2008 Presentation Abstract: Even with the growing popularity and evolvement of Business Intelligence products
Vim, Emacs, and JUnit Testing. Audience: Students in CS 331 Written by: Kathleen Lockhart, CS Tutor
Vim, Emacs, and JUnit Testing Audience: Students in CS 331 Written by: Kathleen Lockhart, CS Tutor Overview Vim and Emacs are the two code editors available within the Dijkstra environment. While both
Microsoft Excel 2013: Using a Data Entry Form
Microsoft Excel 2013: Using a Data Entry Form Using Excel's built in data entry form is a quick and easy way to enter data into an Excel database. Using the form allows you to: start a new database table
Lab 02 Working with Data Quality Services in SQL Server 2014
SQL Server 2014 BI Lab 02 Working with Data Quality Services in SQL Server 2014 Jump to the Lab Overview Terms of Use 2014 Microsoft Corporation. All rights reserved. Information in this document, including
