Question: MODIFY THESE CODES TO RUN ON AMPLE AND ANSWER THE FOLLOWING QUESTIONS BASED ON THAT Project aim: Since the AGVs move only along the x

MODIFY THESE CODES TO RUN ON AMPLE AND ANSWER THE FOLLOWING QUESTIONS BASED ON THAT
Project aim: Since the AGVs move only along the x,y-axes, the distance between two locations in the warehouses is given by the Manhattan distance, i.e. the `1 norm, where the distance between two points (x (1), y(1)) and (x (2), y(2)) is defined as ||x (1), y(1))(x(2), y(2))||=|x(1) x (2)|+|y(1) y(2)|.
Our objective, which we intend to minimise, is a weighted combination of the total distance of the rack from their assigned AGV (with weight \alpha 1=1), the total distance of the rack from their assigned workstation (with weight \alpha 1=1.3), and the total number of orders that will be left unfulfilled (with weight \alpha 1=3).(Note that it makes sense to assign larger weight in the objective to the distance the
AGV travel when carrying a rack, since they will be slower and consume more energy.)
Building an integrated order-dispatching system: Currently House.AI has a legacy system to assign orders to workstations. They would like to explore the benefit of integrating the order-dispatching decision into the AGV-dispatching model. In this
second part of the project, the task is to include the assignment of orders to workstations in the optimisation model. How does the integrated model compare to the previous one? What is the difference in cost? How many more orders are fulfilled?
MODEL:
# The sets
set Racks; # Set of racks
set AGVs; # Set of AGVs
set Workstations; # Set of workstations
# Parameters
param rack_location{Racks} symbolic;
param rack_status{Racks} symbolic;
param agv_location{AGVs} symbolic;
param workstation_location{Workstations} symbolic;
param sku_inventory{Racks,1..10}>=0;
param demands{Workstations,1..40}>=0;
param berths{Workstations}>=0;
# Decision variables
var AssignRackToAGV{Racks, AGVs} binary;
var AssignRackToWorkstation{Racks, Workstations} binary;
# Objective function
param alpha1 :=1; # Weight for rack-AGV distance
param alpha2 :=1.3; # Weight for rack-workstation distance
param alpha3 :=1; # Weight for unfulfilled orders
minimize TotalDistance:
alpha1* sum{r in Racks, a in AGVs} AssignRackToAGV[r, a]* abs(rack_location[r]- agv_location[a])+
alpha2* sum{r in Racks, w in Workstations} AssignRackToWorkstation[r, w]* abs(rack_location[r]- workstation_location[w])+
alpha3* sum{w in Workstations, sku in 1..40} max(0, demands[w, sku]- sum{r in Racks} AssignRackToWorkstation[r, w]* sku_inventory[r, sku]);
# Constraints
subject to RackAssignmentConstraint:
forall{r in Racks} sum{a in AGVs} AssignRackToAGV[r, a]=1;
subject to WorkstationAssignmentConstraint:
forall{r in Racks} sum{w in Workstations} AssignRackToWorkstation[r, w]=1;
subject to BerthConstraint{w in Workstations}:
sum{r in Racks} AssignRackToWorkstation[r, w]<= berths[w];
``````````````````````````````````````````````````````````````````````````````````````
DATA:
param rack_location:=
R1"103" "stationary"
R2"105" "stationary"
R3"107" "stationary"
R4"109" "stationary"
R5"1011" "stationary"
R6"1013" "stationary"
R7"1015" "stationary"
R8"1017" "stationary"
R9"1019" "stationary"
R10"1021" "stationary"
R11"1023" "stationary"
R12"1025" "stationary"
R13"00" "AGV7"
R14"1029" "stationary"
until
R80"1033" "stationary"
param agv_location:=
AGV1"1522" "active"
AGV2"91" "idle"
AGV3"2518" "active"
AGV4"111" "idle"
AGV5"121" "idle"
AGV6"181" "idle"
AGV7"3511" "active"
AGV8"201" "idle"
AGV9"211" "idle"
AGV10"1540" "active"
AGV11"281" "idle"
AGV12"291" "idle"
AGV13"301" "idle"
AGV14"523" "active"
AGV15"321" "idle"
AGV16"381" "idle"
AGV17"391" "idle"
AGV18"4539" "active"
AGV19"411" "idle"
AGV20"421" "idle"
;
param workstation_location:=
W1"00"
W2"050"
W3"500"
W4"5050"
;
param sku_inventory: S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16 S17 S18 S19 S20 S21 S22 S23 S24 S25 S26 S27 S28 S29 S30 S31 S32 S33 S34 S35 S36 S37 S38 S39 S40:=
R17519 until S40
R2201510 until S40
the rows continues until R80 each with S1 to S40 column data;
param demands: S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16 S17 S18 S19 S20 S21 S22 S23 S24 S25 S26 S27 S28 S29 S30 S31 S32 S33 S34 S35 S36 S37 S38 S39 S40:=
W116131101 until S40
W223684 until S40
W321591021 until S40
W4492291021 until S40 ;
param berths:=
W14
W25
W37
W49;

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related General Management Questions!