370 likes | 382 Views
Learn about efficient arc routing for door-to-door deliveries in network analysis. Explore variations, constraints, and solutions to optimize routes. Understand link data, multiple depots, and passes for effective routing.
E N D
Routing and Logistics Arc Routing
Introduction • Arc routing problems involve the development of routes that efficiently traverse a set of links in a network. • Scheduling efficient routes for reading water or electric meters • Creating routes for delivering mail or for making other door-to-door deliveries (phone books, flyers, etc.) • Collecting trash or recyclable materials at curbside
Introduction • As with most other network analysis procedures, the arc routing procedure lets you minimize the deadhead distance, time, or any other network variable. • Arc routing problems have many interesting variations. Here are few examples: • Some streets may not require service. In other cases, service is only required on one side of a street. • Multiple trips may be required on a street. A snow plow, for example, might have to pass down a street two or even three times in each direction to clear snow from all lanes of the road. • One-way streets may require two passes. A street sweeper, for example, needs to traverse a one-way street twice, once to clean the curb on the left side of the street, and once to clean the curb on the right side.
Introduction • There are some complex arc routing problems that are not handled by the standard TransCAD arc routing procedure, such as when a single trip down a street can service both sides of the street. • A garbage truck, for example, can zigzag down a street collecting trash from houses on both sides in a single trip. This type of routing problem requires the routing for solid waste collection procedure described later.
Introduction • The general arc routing procedure also does not account for when special constraints apply in the development of routes. • For example, if certain streets must be visited before others, or if there are special work rules or regulations that restrict the routes. • In some cases, these situations can be handled by manipulating the input data. • In other instances, custom solutions may be required.
About the Arc Routing Procedure • In an arc routing problem, people or vehicles are dispatched from on or more depots to traverse a set of service links. The result of an arc routing problem is a set of one or more routes that cover all the service links with a minimal amount of deadheading(the links in the route where no deliveries are made.). • Before doing arc routing, you need to consider: • Link data that vary by direction • Identifying the links to be served • Handling of multiple passes • Routing with multiple depots
Link Data that Vary by Direction • Often there are differences in the characteristics or service requirements on the two sides of a street. • The number of houses to be served may be different on one side of the street than on the other side. The deadhead travel time or cost may be different if the street is located on a hill, since travel in one direction is easy but travel in the other direction is hard. • To represent these differences, the line layer must include two fields for every variable of interest, one indicating the applicable value in the forward topological direction along each link, and the other containing the applicable value in the reverse topological direction along each link.
Identifying the Links to be Served • The most important input to the arc routing procedure is information on which links or line features need to be served. In general, there are three possibilities for each link: • The link does not need to be served at all (e.g., there are no houses located anywhere along the street) • The link needs service on one side only (e.g., the houses are located only on the north side of the street) • The link needs service on both sides.
Identifying the Links to be Served • You identify links to be serviced using a variable called the service flag. Values for the service flag are normally stored in two fields called AB Service and BA service. • When you use the arc routing procedure, you enter a service code. • The procedure finds all the links (or sides of the links) whose service flag matches the service code, and creates the route accordingly.
Identifying the Links to be Served • You may also want to use different service flags to divide the line layer into parts( for example, territories or days of the week), each of which should be routed separately. • Note: If you want to create multiple routes in a single step, you need to assign links to a depot.
Handling of Multiple Passes • In most arc routing problems, each link needs to be serviced only once in each direction. However, there are special circumstances that require multiple passes. • The arc routing procedure lets you choose three options for the number of passes: • Normal • Both Curbs • User Specified
Preparing Data for Arc Routing • To use the arc routing procedure, you must do the following: • Create a line layer and corresponding node layer • Prepare the required link data (service flag, deadhead cost, etc.) • Create a network from the line layer, including all the relevant attributes • Select the nodes or intersections that identify the location of the depot or depots
Fields in the Line Layer • The line layer must have the following fields: • ID (integer) • Dir (integer) • Cost (real) • Service Flag (integer) • Depending upon the options you choose for routing, several additional fields my be required: • Passes (integer) • Depot (integer) • Service Load (real) • Deadhead Load (real) • Name (integer or string)
Fields in the Node Layer • The node layer needs to contain only one field: • ID (integer) • Depending upon the options you choose for routing, several additional fields may be required: • Workload (integer) • Shifts (integer) • Name (integer or string)
Solving the Arc Routing Problem • To solve the arc routing problem, you need to: • Open or create a map containing the required line and node layers • Open or create a network file • Create a selection set containing the node or nodes that represent the depot locations • Choose the depot and network settings, the pass method, and other options • The arc routing procedure displays a repot file, ARPW.REP, which lists the input files and settings that were used and provides summary information about the resulting vehicle routes.
Solving the Arc Routing Problem • The procedure can also produce the following output files: • A text file containing the itinerary of each vehicle • A route system to show the routes as a layer on a map
Creating Workload Shifts • A problem that is often associated with arc routing is that of balancing the work that is assigned to different individuals or vehicles. Here are some examples: • In a solid waste collection application, you might need to split a route into parts that can be serviced by five different vehicles or crews. • In postal or other delivery applications, you might want to determine the number of persons or vehicles that are needed if the work is broken into four-hour blocks.
Creating Workload Shifts • The arc routing procedure uses a post-processing step to solve this related problem. First, the procedure finds an efficient route for the entire set of service links. Then it takes the route and divides it into parts that are called shifts. • You break a route into shifts based on an attribute of the route. For example: • You might want the weight of solid waste collected by each vehicle to be approximately equal • You might want each courier to deliver no more than a certain number of phone books • The measure that is used to split a route into shifts is called the workload.
To Create Shifts Four hours (240 minute) shifts
Creating Route Service Directions from Routes • After analyzing the routes generated by the arc-routing procedure, you may occasionally need to modify one or more of the routes for some reason. • You can create an updated itinerary file from a modified route in a route system. To do so, you must provide the following: • A modified route system, with a selection set containing the route for which you wish to generate directions ( you can get directions for one route at a time) • The underlying line layer of the route system • The layer containing the set of depots • A network containing all of the service attributes required for solving the arc routing procedure
To Create an Updated Itinerary File from a Modified Route Use select tool to select on route
The itinerary report will list only links with different names The itinerary report will list every link in the route with a unique ID
Routing for Solid Waste Collection • The solid waste collection routing procedure is designed to create efficient routes for service vehicles by solving a specific variation of the arc routing problem. • This variation includes the ability to service both sides of the street in one pass. This type of service is sometimes referred to as meandering, because the person or vehicle providing the service meanders back and forth as the link is traversed. • In addition, the procedure attempts to minimize the number of undesirable turns, especially U-turns, to maximize safety.
Inputs • A geographic database of links and nodes for the highways or streets in the service area. (The link and node database must contain attributes including service time, deadhead time, weight, service type, and district, additional data may be necessary.) • A selection set of seeds (starting nodes) for the Routes
Preparing Data for Solid Waste Collection Routing • To run the solid waste collection routing procedure, you must do the following • Prepare a line geographic file. • Prepare the required link data (service type, workload, etc.) • Create a network from the line layer, including all the relevant attributes • Select the nodes or intersections that identify the seed locations. The seed locations indicate the starting points for the routes.
The line layer must have the following fields: ID (integer) Dir (integer) Service Time (real) Deadhead Time (real) Weight (real) Service Type (real) District (integer) The following is a summary of the optional fields: Shift Workload (integer) Service Load (real) Deadhead Load (real) Name (integer or string) Fields in the Line Layer
Node Layer • The node layer needs to contain only one field: • ID (integer) • However, if you wish to refer to the seeds by a user-defined name in the itinerary reports, you may want to include one additional field: • Name (integer or string) • You must create a selection set of the nodes that you will use as seeds.
Network File • You create the network file just as you would for any other routing or logistics problem. • The network must contain all the service links, as well as any links that can be used in deadheading. • When you create the network, you must choose to include the link fields for service time, deadhead time, weight, service type, district, service load, deadhead load, and workload.
Solving the Solid Waste Collection Routing Problem (SOLID WASTE.Map) • Open or create a map contining the required line and node layers. • Open or create the network file. • If you have not already done so, create a selection set containing the node or nodes that represent the seed locations.
Technical Notes on Arc Routing • Euler established that in order to traverse every link in a directed network exactly once and return to the starting point, every node in the network must have the same number of incoming and outgoing links. • It is possible that some problems will prove infeasible if there are outright prohibitions on certain types of turning movements.