Question: Check this model, it should gave the output for AGV assignment such that one AGV can carry only one rack. Please check your answer before

Check this model, it should gave the output for AGV assignment such that one AGV can carry only one rack. Please check your answer before sending. I have already tried the solutions such as changing (<=) to (=) or using only one constraint for AGV. In all those cases there is zero assignment of AGV which is not true.
Also answer the upcoming question at the end of the model.
MODEL:
# The sets
set Racks; # Set of racks
set AGVs; # Set of AGVs
set Workstations; # Set of workstations
set SKUs; # Set of SKUs
set Axes={"x","y"}; # Set of axes
# Parameters
param rack_location{Racks, Axes}; # Rack location
param rack_status{Racks} binary; # Rack status, 0 for stationary and 1 otherwise
param agv_location{AGVs, Axes}; # AGV location
param agv_status{AGVs} binary; # AGV status, 0 for idle and 1 for active
param workstation_location{Workstations, Axes}; # Workstation location
param sku_inventory{Racks, SKUs}>=0; # SKU inventory
param demands{Workstations, SKUs}>=0; # Demands
param berths{Workstations}>=0; # Berths
# Decision variables
var AssignRackToAGV{Racks, AGVs} binary; # Rack to AGV assignment
var AssignRackToWorkstation{Racks, Workstations} binary; # Rack to workstation assignment
# Objective function
param alpha1 :=1; # Weight for rack-AGV distance
param alpha2 :=1.3; # Weight for rack-workstation distance
param alpha3 :=3; # Weight for unfulfilled orders
minimize TotalDistance:
alpha1* sum{r in Racks, a in AGVs, ax in Axes} AssignRackToAGV[r, a]* abs(rack_location[r, ax]- agv_location[a, ax])+
alpha2* sum{r in Racks, w in Workstations, ax in Axes} AssignRackToWorkstation[r, w]* abs(rack_location[r, ax]- workstation_location[w, ax])+
alpha3* sum{w in Workstations, s in SKUs} max(0, demands[w, s]- sum{r in Racks} AssignRackToWorkstation[r, w]* sku_inventory[r, s]);
# Constraints
subject to RackAssignmentConstraint{r in Racks}:
sum{a in AGVs} AssignRackToAGV[r, a]<=1;
subject to AGVAssignmentConstraint{r in Racks}:
sum{a in AGVs} AssignRackToAGV[r, a]=1;
subject to WorkstationAssignmentConstraint{r in Racks}:
sum{w in Workstations} AssignRackToWorkstation[r, w]<=1;
subject to BerthConstraint{r in Racks}:
sum{w in Workstations} AssignRackToWorkstation[r, w]<= sum{w in Workstations} berths[w];
QUESTION: 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?

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!