Fill This Form To Receive Instant Help

Help in Homework
trustpilot ratings
google ratings


Homework answers / question archive / 1 Introduction 1

1 Introduction 1

Computer Science

1 Introduction

1.1 Presentation of the Problem

The company Orinoco has the project of creating a new retail shop based on an innovative business model: With the help of an artificial intelligence (hence the name of the company), the clients select the products from their smartphone via a dedicated app. The products are then picked up in a fully automated warehouse and delivered to the clients. The stockage and the destockage of products is realized by a fleet of autonomous robots. This makes it possible to reduce costs and to let the shop open 24 hours a day and 7 days a week.

Your job is to design a Python program that simulates the operation of the warehouse. The objective of these simulations is to determine if the project is feasible and to answer questions such as:

  • How many robots are actually needed to ensure seamless operations?
  • How long does it takes on average to unload a delivery truck?
  • How long does a client wait on average to get its order delivered?

Figure 1 shows the floor map such a warehouse.

For the sake of simplicity, the warehouse is divided into cells. Grayed cells are storage places (shelves). White cells are those in which robots can move. The two black cells represent places

 

2

3

4

6

7

9

Is

1 L
12

14
16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1`

4

 

 

 

 

1'

4

 

I

 

 

t

-,L

 

 

 

 

t`

J.

 

 

.

 

 

 

 

 

.

.

 

 

 

 

,

 

 

 

 

 

 

.

 

 

 

 

 

 

Ar-

1

 

 

 

 

t

1

 

 

 

 

t

1

 

 

 

 

t

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<—

4-

4-

4-

4-

4-

4-

4-

4-

4-

4-

4-

4-

4-

4-

4-

4-

4-

4-

4-

4-

4-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1-

1

 

 

 

 

4

t

 

 

 

 

4

t

 

 

 

 

4

11/4

 

 

 

 

4

 

 

 

 

 

4

t

 

'

 

 

4

t

 

 

 

 

4

11/4

 

 

 

 

4

11

 

 

 

 

4-

t

 

 

 

 

4

t

 

 

 

 

4,

11/4

 

 

 

 

4

11/4

 

 

 

 

4-

t

 

 

 

 

4

t

 

 

 

 

4

T

 

 

 

 

.4

T

 

 

 

 

4-

-7

 

 

 

 

4

t

 

I

 

4

11/4

 

 

 

 

4

T

 

 

 

 

4

'1/4

 

 

 

 

 

 

 

j

 

-Jr

11/4

 

 

 

 

4

11/4

 

 

 

I           2         3         4                    i          7                   '0       10       11       12       11       14      15       16       1 i              11#              19 20,            21    2. 2         24

Figure 1: Floor map of a warehouse

 

where products are loaded and unloaded on robots. Some of the white cells contains an arrow. They correspond to the routes of robots.

As an illustration, consider that a robot must take a product from cell (0,8) and bring it. to the storage cell (13, 14). The route of this robot is (0, 8), (1, 8),... (15, 8), (15, 9),... (15, 14), (14, 14). From cell (14, 14), the robot unloads the product into the cell (13, 14). It can then come back to its base by the route (14, 14), (15, 14), (16, 14), (16, 13),... (16, 9), (15, 9),... (1, 9), (0, 9).

Here follows a number of additional characteristics of the operation of the warehouse.

  1. Orinoco has a catalog of about different 120 products. Each product is referred to by a code. It has a weight ranging from 2 to 40 kilos. Most of the products weight however less than 10 kilos.
  2. Each storage cell contains two shelves. A shelf contains only products of one type. More­over, the total weights of products stored on a shelf cannot exceed 100kg.
  3. A robot can carry products of only one type at a time, but no more than 40kg. It take 120 seconds for a robot to load and to unload a product.
  4. It takes 10 seconds for a robot to move to the next cell. It can move to the next cell of its route at time t if there was no robot on the cell at time t — 1 and if no other robot has booked the cell at time t. A priority rule is defined so that when two or more robots are both willing to go to the same cell, only one gets the right to go.
  5. Trucks are delivering products to the warehouse. A truck can contain up to 20 tons of products.

Theoretically, dimensioning the operation of the warehouse can be consider as a mathematical

problem. Nevertheless, stating this problem is far from easy. Moreover, the solution space is so big that any attempt of a complete exploration is vain. It remains that the operation of the warehouse can be simulated and that the feasibility of the project can be tested via these simulations. This is the purpose of this assignment.

1. You must provide your program together with a small document explaining how it is orga­nized, what it is doing (which functionalities are implemented) and reporting experiments you have performed with it_

Please write this! And please write a lot of comments in the code so I can try to understand the code! 2 Simulation

The first series of tasks aims at designing a simulator of the operation of the warehouse. it consists of the following tasks.

2.1 Data structures to represent the warehouse

To simulate the operation of the warehouse, we need to create dedicated data structures making it possible to describe each category of objects involved in the simulation process, including:

  • Type of products and catalogs;
  • Products;
  • Deliveries;

 

  • Robots;
  • Cells (storage cells, route cells, loading/unloading cells);
  • The warehouse itself;
  • Client orders.

Task 1. Data structures: Design classes to manage entities involved in the simulation process.

Task 2. Use cases: Design methods to create (possibly at random) catalogs and truck loads. Design methods to create warehouse from high level parameters, e.g. number of alleys, size of alleys...

The class Warehouse should manage (most of the) others according to the factory design pattern, i.e. that all cells, products, catalogs... must be created (and possibly deleted) via methods of that class.

Task 3. Interface: Design a class Printer in charge of printing out all information related to the warehouse and its operation.

Hint: You should better start with reduced versions of the problem, i.e. small warehouse, catalog, truck load, number of robots...

2.2 Simulator

We shall now implement a of the operation of the warehouse. The key idea is that at each time t, each robot of the warehouse is in a certain state. Depending on this state and the global state of the warehouse, the robot performs an action that changes possibly its state. The state of a robot is determined, among other factors, by:

  • Its location;
  • Its current objective and route;
  • The products it may carry;

The simulator works by discrete steps, considering each robot in turn, and making it evolve according to its state, and reiterating this process until the mission time is reached. Moreover, the simulator manages the products that are delivered by trucks and the orders of clients. If there is a client order and a robot is available, i.e. located in the zone (0,8), (0,9), then it is sent to pick up the orderered product. Similarly, if a product has been delivered and there is an available robot, then it is sent to stock the product at the appropriate storage location. Recall that a robot can carry several products of the same type, in the limit of 40kg.

Task 4. Design a simulator.

Hint: You may design methods to:

  • Insert new products in the list of products delivered to the warehouse.
  • Insert new client orders.
  • Calculate the route of a robot from the delivery cell (0, 8) to a storage cell and the route back to cell (0, 9).

 

  • Decide the next action of a robot, given its location, its route...
  • Implement one step of the simulation process.
  • Finally, implement the simulation process itself.

Test your implementation by loading "by hand" at various dates product deliveries and client orders, then by looking at how the system evolves.

3 Experiments

Using your simulator, assess the feasibility of the project. To do so, we may try:

  • Different rates of delivery of new products and different rates of client orders.
  • Different number of robots.
  • Possibly different warehouse sizes.

You have thus to design an experimental protocol and to automatize it. Task 5. Design:

  • A class Optimizer to implement your experimental protocol.
  • Add methods to your printer to print out the description and the results.

pur-new-sol

Purchase A New Answer

Custom new solution created by our subject matter experts

GET A QUOTE

Answer Preview

The project as well as the experiment results in the README.md file.