# CSCI203 Data Structures and Algorithms

SCSSE, University of Wollongong; CSCI203 Data Structures and Algorithms

CSCI203 Data Structures and Algorithms

Spring 2016

Assignment 2

(Due 11:59 PM Fri 9th September)

Objectives

Design and implement a discrete event simulation

Choose and implement appropriate data structures

Adapt standard algorithms to a speci c problem

You should write a single program which simulates the queuing and service of customers under two di erent

queuing strategies and compare the results.

Program

discrete event

simulations, one for each strategy. Each simulation should

start at time 0 and run until all customers have been served.

The two queueing strategies are as follows:

1. Use a single queue from which each server will take the next customer as soon as the server becomes

available.

2. Use a queue for each server. Customers will choose the server with the shortest queue on arrival and

will not move from queue to queue.

Data Structures and Algorithms

Part of the purpose of this subject is to gain an in-depth understanding of data structures and algorithms.

As such, all programming tasks in this subject require you to

choose appropriate data structures and

algorithms

, and to

implement them yourself

. You may not take advantage of any built in data structures

more complex than an array, but instead should provide your own implementation. The use of STL, Java

Collection, or any collection framework in your language of choice, is disallowed. If you use any references

other than the lecture notes, ensure you cite them or you may receive 0 for plagiarism. A clear comment

1

Write a text le named readme. Include clear instructions on how to compile and run your algorithm.

Ensure that your program compiles and runs correctly on ubuntu, in the lab. If your program does not

compile, it will receive 0 marks. If it doesn’t run according to the speci cation, you will receive very few

marks. You may also include a make le if you wish.

Analysis

Once your program is complete, you should run it for some sample scanarios and examine the results.

Write a le named analysis.pdf containing a discussion the di erences you observe in statistics between

the two queueing strategies. Which strategy is most ecient?

Input

le name

from

standard input

,

and run each simulation using the named le as the input le.

The input le has the following format:

The number of servers.

A set of lines each consisting of a customer arrival time followed by the corresponding service time.

Times are in seconds, from the start of the simulation. Although a sample input le has been provided,

your program should still run sucessfully substantially larger inputs.

Output

Output should be to standard output.

For each of the two simulations the output should consist of the following data, clearly labelled:

Number of people served.

Time that the last customer nished being served (total simulation time).

Average service time (note this should depend only on the input le).

Average time a customer spends in queue.

Maximum time a customer spends in queue.

Average length of queue in any given second. For each queue and in total for the multi-queue version

of the simulation.

Maximum Length of queue. For each queue and in total for the multi-queue version of the simulation.

Total idle time for each server.

Get a 15 % discount on an order above \$ 100
Use the following coupon code :
BEST22
error: Content is protected !!