# Contact

Fabian Feitsch

Zeller Straße 14

97276 Margetshöchheim

Telephone 0931/30197763

When you are visiting this website, the following data is recorded: your IP-adress, your user agent, the site you requested and the time at which you did it. This is done by my provider in order to ensure the service and to defend attacks. Your IP-adress is anonymized after at most four weeks by deleting its last eight bits. The remaining data is kept by my provider for statistical reasons. It cannot be connected to your person any more.

```
package heuristic
func start(drops int, entry api.ClusterPortal, distances floatTriple) float64 {
if entry == api.AccessPoint {
return 0
}
return float64(drops+1)*(distances.inner) + float64(drops+1)*distances.toNext + float64(drops)*distances.toNext
}
func end(picks int, exit api.ClusterPortal, distances floatTriple) float64 {
if exit == api.ExitPoint {
return float64(picks+1) * distances.toNext
}
return float64(picks+1)*distances.toPrevious + float64(picks)*distances.toPrevious + float64(picks+1)*distances.inner + float64(picks+1)*distances.toNext
}
func transportCosts(distances floatTriple, hopper int, bestLeftRightTour float64, case3 bool) float64 {
if case3 {
return float64(hopper) * (distances.inner + distances.toNext)
}
carry := float64(hopper) * (bestLeftRightTour + distances.toNext)
extra := distances.toPrevious + (float64(hopper)+2)*distances.inner + (float64(hopper)+1)*distances.toNext
return math.Min(carry, extra)
}
func drivingDistanceOfTour(instance partialClusterInstance, tour []int) float64 {
distance := 0.0
lastRealLocation := tour[len(tour)-2]
if instance.start == api.AccessPoint {
distance = distance + instance.FromBorderPoints[tour[1]][0]
} else {
distance = distance + instance.FromBorderPoints[tour[1]][1]
}
if instance.target == api.AccessPoint {
distance = distance + instance.ToBorderPoints[lastRealLocation][0]
} else {
distance = distance + instance.ToBorderPoints[lastRealLocation][1]
}
for i := 2; i < len(tour)-1; i++ {
distance = distance + instance.Distances[tour[i-1]][tour[i]]
}
return distance
}
```