1 |
|
/* |
2 |
|
* Written by Doug Lea and Bill Scherer with assistance from members |
3 |
|
* of JCP JSR-166 Expert Group and released to the public domain, as |
4 |
< |
* explained at http://creativecommons.org/licenses/publicdomain |
4 |
> |
* explained at http://creativecommons.org/publicdomain/zero/1.0/ |
5 |
|
*/ |
6 |
|
|
7 |
|
import java.util.*; |
225 |
|
// Thread.sleep(100); |
226 |
|
|
227 |
|
long elapsed = stopTime - startTime; |
228 |
< |
double secs = (double)elapsed / 1000000000.0; |
228 |
> |
double secs = (double) elapsed / 1000000000.0; |
229 |
|
p.printSnapshot(secs); |
230 |
|
} |
231 |
|
|
300 |
|
*/ |
301 |
|
void printSnapshot(double secs) { |
302 |
|
int xs = totalExchanges(); |
303 |
< |
long rate = (xs == 0) ? 0L : (long)((secs * 1000000000.0) / xs); |
303 |
> |
long rate = (xs == 0) ? 0L : (long) ((secs * 1000000000.0) / xs); |
304 |
|
Chromosome bestc = subpops[0].chromosomes[0]; |
305 |
|
Chromosome worstc = bestc; |
306 |
|
for (int k = 0; k < subpops.length; ++k) { |
592 |
|
f += cities.distanceBetween(p, n); |
593 |
|
p = n; |
594 |
|
} |
595 |
< |
fitness = (int)(f / len); |
595 |
> |
fitness = (int) (f / len); |
596 |
|
} |
597 |
|
|
598 |
|
/** |
661 |
|
|
662 |
|
for (int i = 0; i < n; i++) { |
663 |
|
for (int j = 0; j < n; j++) { |
664 |
< |
double dx = (double)xPts[i] - (double)xPts[j]; |
665 |
< |
double dy = (double)yPts[i] - (double)yPts[j]; |
664 |
> |
double dx = (double) xPts[i] - (double) xPts[j]; |
665 |
> |
double dy = (double) yPts[i] - (double) yPts[j]; |
666 |
|
double dd = Math.hypot(dx, dy) / 2.0; |
667 |
|
long ld = Math.round(dd); |
668 |
|
distances[i][j] = (ld >= Integer.MAX_VALUE) ? |
669 |
< |
Integer.MAX_VALUE : (int)ld; |
669 |
> |
Integer.MAX_VALUE : (int) ld; |
670 |
|
} |
671 |
|
} |
672 |
|
} |
673 |
|
|
674 |
|
/** |
675 |
< |
* Returns the cached distance between a pair of cities |
675 |
> |
* Returns the cached distance between a pair of cities. |
676 |
|
*/ |
677 |
|
int distanceBetween(int i, int j) { |
678 |
|
return distances[i][j]; |
679 |
|
} |
680 |
|
|
681 |
|
// Scale ints to doubles in [0,1) |
682 |
< |
static final double PSCALE = (double)0x80000000L; |
682 |
> |
static final double PSCALE = (double) 0x80000000L; |
683 |
|
|
684 |
|
/** |
685 |
< |
* Return distance for points scaled in [0,1). This simplifies |
685 |
> |
* Returns distance for points scaled in [0,1). This simplifies |
686 |
|
* checking results. The expected optimal TSP for random |
687 |
|
* points is believed to be around 0.76 * sqrt(N). For papers |
688 |
|
* discussing this, see |
689 |
|
* http://www.densis.fee.unicamp.br/~moscato/TSPBIB_home.html |
690 |
|
*/ |
691 |
|
double unitDistanceBetween(int i, int j) { |
692 |
< |
double dx = ((double)xPts[i] - (double)xPts[j]) / PSCALE; |
693 |
< |
double dy = ((double)yPts[i] - (double)yPts[j]) / PSCALE; |
692 |
> |
double dx = ((double) xPts[i] - (double) xPts[j]) / PSCALE; |
693 |
> |
double dy = ((double) yPts[i] - (double) yPts[j]) / PSCALE; |
694 |
|
return Math.hypot(dx, dy); |
695 |
|
} |
696 |
|
|