00001 00002 // // 00003 // This file is part of the VRPH software package for // 00004 // generating solutions to vehicle routing problems. // 00005 // VRPH was developed by Chris Groer (cgroer@gmail.com). // 00006 // // 00007 // (c) Copyright 2010 Chris Groer. // 00008 // All Rights Reserved. VRPH is licensed under the // 00009 // Common Public License. See LICENSE file for details. // 00010 // // 00012 00013 #ifndef _VRP_NODE_H 00014 #define _VRP_NODE_H 00015 00016 #define VRPTW 0 00017 #define MAX_NEIGHBORLIST_SIZE 75 00018 00019 class VRPNode 00020 { 00021 public: 00022 00023 double x; 00024 double y; 00025 double r; // For polar 00026 double theta; // coordinates 00027 int id; 00028 int demand; 00029 int *daily_demands; // For period VRPs 00030 int cluster; 00031 VRPNeighborElement neighbor_list[MAX_NEIGHBORLIST_SIZE]; 00032 00033 double service_time; 00034 // represents the time required at the node 00035 double *daily_service_times; // For period VRPs 00036 00037 double arrival_time; 00038 double start_tw; 00039 double end_tw;// Time windows 00040 00041 int num_days; // For multi-day VRPs 00042 00043 // Constructor 00044 VRPNode(); 00045 // Constructor for a d-day problem 00046 VRPNode(int d); 00047 // Destructor 00048 ~VRPNode(); 00049 00050 // Duplication 00051 void duplicate(VRPNode *N); 00052 void show(); 00053 00054 }; 00055 00056 #endif 00057