/// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         int hashCode = 41;
         if (Vehicles != null)
         {
             hashCode = hashCode * 59 + Vehicles.GetHashCode();
         }
         if (VehicleTypes != null)
         {
             hashCode = hashCode * 59 + VehicleTypes.GetHashCode();
         }
         if (Services != null)
         {
             hashCode = hashCode * 59 + Services.GetHashCode();
         }
         if (Shipments != null)
         {
             hashCode = hashCode * 59 + Shipments.GetHashCode();
         }
         if (Relations != null)
         {
             hashCode = hashCode * 59 + Relations.GetHashCode();
         }
         if (Algorithm != null)
         {
             hashCode = hashCode * 59 + Algorithm.GetHashCode();
         }
         if (Objectives != null)
         {
             hashCode = hashCode * 59 + Objectives.GetHashCode();
         }
         if (CostMatrices != null)
         {
             hashCode = hashCode * 59 + CostMatrices.GetHashCode();
         }
         if (Configuration != null)
         {
             hashCode = hashCode * 59 + Configuration.GetHashCode();
         }
         return(hashCode);
     }
 }