亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tsp.java

?? ACO JAVA 應用JAVA編寫的解決TSP問題的源代碼。多多交流
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*----------------------------------------------------------------------  File    : TSP.java  Contents: a traveling salesman problem  Author  : Christian Borgelt  History : 19.11.2005 file created----------------------------------------------------------------------*/package acopt;import java.io.IOException;import java.io.InputStream;import java.io.File;import java.io.Reader;import java.util.Random;import util.Scanner;/*--------------------------------------------------------------------*/public class TSP {/*--------------------------------------------------------------------*/  /* --- constants --- */  private static final int BLKSIZE = 16;  /* --- instance variables --- */  protected int        size;    /* current number of vertices */  protected double[]   xs, ys;  /* coordinates of vertices */  protected double[][] dists;   /* distances between vertices */  protected boolean    sym;     /* flag for symmetric distances */  protected boolean    euclid;  /* flag for euclidean distances */  protected int[]      tour;    /* best (known) tour */  private   double     bbx, bby;/* bounding box of vertices */  private   double     bbw, bbh;/* (position and width and height) */  private   boolean    valid;   /* flag for valid bounding box */  /*------------------------------------------------------------------*/  public TSP () { this(BLKSIZE); }  public TSP (int size)  {                             /* --- create a traveling salesman p. */    this.size   = 0;            /* initialize the variables */    this.xs     = new double[size];    this.ys     = new double[size];    this.dists  = null;         /* do not create distance matrix yet */    this.euclid = true;         /* default: Euclidean distances */    this.sym    = true;         /* default: symmetric distances */    this.tour   = null;         /* there is no known (best) tour */    this.valid  = false;        /* the bounding box is not valid */  }  /* TSP() */  /*------------------------------------------------------------------*/  public TSP (int size, Random rand)  {                             /* --- create a traveling salesman p. */    this(size);                 /* initialize the variables, */    this.randomize(rand);       /* create random vertices, and */    this.makeDists(true);       /* calculate the distances */  }  /* TSP() */  /*------------------------------------------------------------------*/  private void resize (int size)  {                             /* --- resize coord. vectors */    int    k;                   /* current/new vector size */    double v[];                 /* buffer for reallocation */    k = this.size;              /* get the number of nodes to copy */    if (size < 0) size = k +((k < BLKSIZE) ? BLKSIZE : (k >> 1));    if (size < k) k = this.size = size;    System.arraycopy(this.xs, 0, v = new double[size], 0, k);    this.xs = v;                /* enlarge the x-coordinates vector */    System.arraycopy(this.ys, 0, v = new double[size], 0, k);    this.ys = v;                /* enlarge the y-coordinates vector */  }  /* resize() */  /*------------------------------------------------------------------*/  public int add (double x, double y)  {                             /* --- add a vertex */    if (this.size >= this.xs.length)      this.resize(-1);          /* resize the coord. vectors if nec. */    this.valid = false;         /* bounding box is no longer valid */    this.xs[this.size] = x;     /* set the coordinates */    this.ys[this.size] = y;     /* of the new vertex */    return this.size++;         /* and return its index */  }  /* add() */  /*------------------------------------------------------------------*/  public void randomize (Random rand)  {                             /* --- create random vertices */    for (int i = this.size = this.xs.length; --i >= 0; ) {      this.xs[i] = rand.nextDouble();      this.ys[i] = rand.nextDouble();    }                           /* set random coordinates */    this.valid = false;         /* bounding box is no longer valid */  }  /* randomize() */  /*------------------------------------------------------------------*/  public int    size   ()      { return this.size; }  public double getX   (int i) { return this.xs[i]; }  public double getY   (int i) { return this.ys[i]; }  public void   setPos (int i, double x, double y)  { this.xs[i] = x; this.ys[i] = y; }  /*------------------------------------------------------------------*/  public void transform (double scale, double xoff, double yoff)  {                             /* --- transform vertex coordinates */    for (int i = this.size; --i >= 0; ) {      this.xs[i] = this.xs[i] *scale +xoff;      this.ys[i] = this.ys[i] *scale +yoff;    }                           /* traverse and transform vertices */    this.valid = false;         /* bounding box is no longer valid */  }  /* transform() */  /*------------------------------------------------------------------*/  private void bbox ()  {                             /* --- compute bounding box */    int    i;                   /* loop variable */    double x, y;                /* coordinates of a vertex */    double xmax, ymax;          /* maximal x- and y-coordinates */    this.bbx = Double.MAX_VALUE; xmax = -Double.MAX_VALUE;    this.bby = Double.MAX_VALUE; ymax = -Double.MAX_VALUE;    for (i = this.xs.length; --i >= 0; ) {      x = this.xs[i];          /* traverse the vertices */      y = this.ys[i];          /* of the problem */      if (x < this.bbx) this.bbx = x;      if (x > xmax)     xmax     = x;      if (y < this.bby) this.bby = y;      if (y > ymax)     ymax     = y;    }                           /* find minimum and maximum coords. */    this.bbw = xmax -this.bbx;  /* compute the width and height */    this.bbh = ymax -this.bby;  /* of the bounding box */    this.valid = true;          /* the bounding box is now valid */  }  /* bbox() */  /*------------------------------------------------------------------*/  public double getX ()  { if (!this.valid) this.bbox(); return this.bbx; }  public double getY ()  { if (!this.valid) this.bbox(); return this.bby; }  public double getWidth ()  { if (!this.valid) this.bbox(); return this.bbw; }  public double getHeight ()  { if (!this.valid) this.bbox(); return this.bbh; }  /*------------------------------------------------------------------*/  public void makeDists (boolean calc)  {                             /* --- calculate distance matrix */    int    i, k;                /* loop variables */    double dx, dy;              /* coordinate-wise distances */    double v[];                 /* buffer for reallocation */    if (this.size < this.xs.length)      this.resize(this.size);   /* shrink the coord. vectors if poss. */    this.dists = new double[this.size][this.size];    if (!calc) return;          /* create the distance matrix */    for (i = this.size; --i >= 0; ) {      this.dists[i][i] = 0;     /* set diagonal elements to zero */      for (k = i; --k >= 0; ) { /* traverse the off-diagonal elements */        dx = this.xs[i] -this.xs[k];        dy = this.ys[i] -this.ys[k];        this.dists[i][k] = this.dists[k][i] = Math.sqrt(dx*dx +dy*dy);      }                         /* compute pairwise vertex distances */    }                           /* (Euclidian distances, symmetric) */    this.euclid = this.sym = true;  }  /* makeDists() */  /*------------------------------------------------------------------*/  public boolean isSymmetric ()

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜婷婷国产麻豆精品| 精品国产a毛片| 自拍偷拍亚洲激情| 91免费看片在线观看| 国产精品家庭影院| 日本二三区不卡| 亚洲成人午夜影院| 欧美一区二区在线免费播放 | 91视频一区二区| 亚洲欧美日韩一区| 884aa四虎影成人精品一区| 日本欧美在线看| 久久久久久久久久久久久久久99 | 26uuu久久天堂性欧美| 国产99久久久国产精品免费看| 中文字幕第一区综合| 91麻豆国产福利在线观看| 亚洲va韩国va欧美va| 欧美精品一区二区精品网| 福利一区福利二区| 亚洲高清久久久| 精品国产区一区| 91美女蜜桃在线| 久久精品国产一区二区三| 国产精品美女久久久久高潮| 欧美三级在线看| 国模冰冰炮一区二区| 亚洲欧美视频在线观看视频| 91精品国产高清一区二区三区蜜臀 | 不卡av在线免费观看| 午夜视频一区二区| 中文字幕欧美日本乱码一线二线| 精品污污网站免费看| 国产精品一区二区无线| 亚洲国产另类av| 欧美激情资源网| 欧美一区二区免费视频| 9人人澡人人爽人人精品| 麻豆精品新av中文字幕| 亚洲精品中文字幕在线观看| 久久久久久久电影| 欧美美女一区二区| 97se亚洲国产综合自在线不卡 | 婷婷开心激情综合| 国产精品婷婷午夜在线观看| 日韩一区国产二区欧美三区| 91久久精品国产91性色tv | 麻豆视频观看网址久久| 亚洲精品免费一二三区| 久久久99精品免费观看不卡| 欧美老女人在线| 91麻豆国产自产在线观看| 国产精品99久久久| 看电影不卡的网站| 亚洲成人精品一区二区| 亚洲精品高清在线| 国产精品久久久久久亚洲伦| 久久久久久久久一| 精品国内片67194| 欧美一区二区久久| 在线综合视频播放| 欧美日韩成人在线一区| 日本黄色一区二区| 97超碰欧美中文字幕| www.日韩大片| 成a人片亚洲日本久久| 国产乱人伦精品一区二区在线观看| 日本欧美大码aⅴ在线播放| 天天射综合影视| 亚洲成人av资源| 亚洲福利一二三区| 亚洲午夜av在线| 亚洲影视在线播放| 亚洲综合图片区| 亚洲va韩国va欧美va| 五月天欧美精品| 日韩成人精品视频| 欧美aⅴ一区二区三区视频| 日韩高清在线电影| 美女一区二区视频| 琪琪久久久久日韩精品| 久久成人久久爱| 国产一区二区三区四区在线观看 | 国产成人精品午夜视频免费| 国产成人h网站| www.在线成人| 色综合天天在线| 欧美日韩国产一级| 日韩情涩欧美日韩视频| 精品国产乱码久久| 日本一二三不卡| 亚洲色图丝袜美腿| 亚洲大片一区二区三区| 免费国产亚洲视频| 国产成都精品91一区二区三| 成人午夜视频在线| 色欧美片视频在线观看在线视频| 欧美性大战久久久久久久蜜臀| 欧美日韩国产高清一区二区| 欧美一区二区二区| 欧美国产视频在线| 一区二区三区免费在线观看| 日韩二区三区在线观看| 国产精品资源网站| 91蜜桃在线观看| 欧美一区二区久久| 欧美激情中文字幕一区二区| 一区二区三区蜜桃| 韩国成人在线视频| 日本精品免费观看高清观看| 777色狠狠一区二区三区| 久久毛片高清国产| 亚洲精品videosex极品| 日韩精品乱码免费| 成人一区二区三区在线观看| 欧美视频一二三区| 欧美mv日韩mv国产| 夜夜夜精品看看| 激情深爱一区二区| 在线中文字幕一区二区| 精品国产区一区| 亚洲成年人网站在线观看| 国产一区二区精品久久91| 在线观看日韩一区| 国产调教视频一区| 三级在线观看一区二区 | 一区二区不卡在线播放 | 一区二区三区四区中文字幕| 久久狠狠亚洲综合| 在线观看亚洲专区| 久久九九久久九九| 日韩黄色免费电影| 色综合天天综合色综合av| 国产丝袜欧美中文另类| 日韩电影在线免费观看| 一本色道久久加勒比精品 | 国产精品进线69影院| 精品夜夜嗨av一区二区三区| 欧美综合久久久| 国产精品毛片a∨一区二区三区| 青青草原综合久久大伊人精品优势| 91毛片在线观看| 国产精品美女久久久久久久网站| 老司机精品视频导航| 欧美三片在线视频观看 | 国产精品蜜臀av| 国产经典欧美精品| 日韩一区二区精品葵司在线| 亚洲人成在线观看一区二区| 国产精品99久久久| 精品国产乱码久久久久久久 | av一区二区三区四区| 久久老女人爱爱| 老司机免费视频一区二区三区| 欧美精品九九99久久| 亚洲国产成人精品视频| 一本久道久久综合中文字幕| 国产精品毛片a∨一区二区三区| 国产精品一级黄| 久久夜色精品一区| 捆绑调教一区二区三区| 亚洲一区二区偷拍精品| 欧美日韩综合在线| 亚洲美腿欧美偷拍| 91视视频在线观看入口直接观看www| 国产亚洲精品超碰| 国产激情一区二区三区桃花岛亚洲| 久久久精品影视| 国产精品18久久久久久久久久久久| 欧美一级片在线观看| 麻豆freexxxx性91精品| 欧美成人a视频| 韩国欧美国产1区| 国产午夜精品福利| 成人免费视频一区| 亚洲天堂av一区| 欧美丝袜自拍制服另类| 午夜国产精品一区| 日韩视频一区二区三区在线播放| 另类小说视频一区二区| 久久免费午夜影院| 成人教育av在线| 亚洲综合另类小说| 91.xcao| 韩国成人福利片在线播放| 国产精品无圣光一区二区| 色婷婷综合久久久中文字幕| 亚洲国产精品久久艾草纯爱| 日韩三级高清在线| 粉嫩aⅴ一区二区三区四区五区| 国产精品青草久久| 欧洲视频一区二区| 久久成人久久鬼色| 日韩一区中文字幕| 欧美日韩成人在线| 国产尤物一区二区在线| 中文字幕一区二区三区视频| 欧美三级日韩三级| 国产精品亚洲视频| 一区二区高清免费观看影视大全|