FUNCTION: dvtsp_ga_basic calculates the minimum delivery time for a truck and
% multiple (nu) drones to deliver n parcels where each drone is capable of
% working in tandem with the truck to deliver only one parcel.
% System parameters for the drones are:
% kappa = drone range,
% alpha = drone speed as a factor of truck speed (1)
% nu = number of drones assigned to assist the truck.
% Given a graph G(V,E) with vertices V and edges E, the algorithm routes
% the truck ~optimally by assigning drones while routing the truck.
% For any operation (launch, delivery, rendezvous), one or up to nu drones
% may be assigned deliveries within range such that they can rendezvous
% back with the truck at the truck's next delivery location.
% population size
% number of iterations
% xy coordinates
% alpha: max speed of drone as a factor of truck speed
% kappa: max range of drone (i.e. km)
% nu: max number of drones assigned to a truck
% minimum ~optimal time based on distance with speed=1
% truck route
% drone route
% Evolutionary Algorithm (EA) uses uses a tournament mutation approach.
% Example of inputs:
% nStops = 20; % Number of delivery stops for truck-and-drones
% popSize = 500; % Size of the population of trials for mutation.
% numIter = 3500; % Number of iterations of GA; iteration budget.
% alpha = 2; % Speed of drone as a factor of truck
% kappa = 10; % Range of drone (i.e. 10 km)
% nu = 4; % Max number of drones assigned to truck
% xy = 50*rand([nStops,2]); % coordinates of stops
Robert Rich (2020). dvtsp_ga_basic :Truck, Multi-drone Evolutionary Routing Prob (https://www.mathworks.com/matlabcentral/fileexchange/73368-dvtsp_ga_basic-truck-multi-drone-evolutionary-routing-prob), MATLAB Central File Exchange. Retrieved .
Updated default values
Updated the cost function for wrap to depot and zero out graph each iteration
graph change to end of node
Allows for last node in sequence to be assigned to drone.
fixed over counting truck time at end of sequence
Cleared random number generator
Updated cost function
Comments on the cost function
Minor change in input
Minor change in cost function
Changed cost function to fix 'end-of-tour' issue