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

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

?? greedycrossoverhibrid2optengine.java

?? Traveling Salesman Problem Java Genetic Algorithm Solution, Hope all enjoy it.
?? JAVA
字號:
/*
 * $Source: f:/cvs/prgm/tsp/src/org/saiko/ai/genetics/tsp/engines/crossoverHibrid2opt/GreedyCrossoverHibrid2OptEngine.java,v $
 * $Id: GreedyCrossoverHibrid2OptEngine.java,v 1.2 2005/08/23 23:18:04 dsaiko Exp $
 * $Date: 2005/08/23 23:18:04 $
 * $Revision: 1.2 $
 * $Author: dsaiko $
 *
 * Traveling Salesman Problem genetic algorithm.
 * This source is released under GNU public licence agreement.
 * dusan@saiko.cz
 * http://www.saiko.cz/ai/tsp/
 * 
 * Change log:
 * $Log: GreedyCrossoverHibrid2OptEngine.java,v $
 * Revision 1.2  2005/08/23 23:18:04  dsaiko
 * Finished.
 *
 * Revision 1.1  2005/08/22 22:13:52  dsaiko
 * Packages rearanged
 *
 * Revision 1.1  2005/08/22 22:08:51  dsaiko
 * Created engines with heuristics
 *
 * Revision 1.1  2005/08/13 15:02:09  dsaiko
 * build task
 *
 * Revision 1.1  2005/08/12 23:52:17  dsaiko
 * Initial revision created
 *
 */

package org.saiko.ai.genetics.tsp.engines.crossoverHibrid2opt;

import org.saiko.ai.genetics.tsp.City;
import org.saiko.ai.genetics.tsp.TSPChromosome;
import org.saiko.ai.genetics.tsp.engines.crossover.GreedyCrossoverEngine;
import org.saiko.ai.genetics.tsp.engines.simpleUnisexMutatorHibrid2Opt.SimpleUnisexMutatorHibrid2OptEngine;

/**
 * @author Dusan Saiko (dusan@saiko.cz)
 * Last change $Date: 2005/08/23 23:18:04 $
 * 
 * Extends the GreedyCrossover engine by providing heuristics to extend greedy crossover mutation
 * 
 * For the population modification, GreeadyCrossover algorithm is taken and adapted
 * from org.jgap.impl.GreedyCrossover
 *
 * For heuristics, the 2opt mutation is used, as described at http://www.gcd.org/sengoku/docs/arob98.pdf
 * 
 * @see org.saiko.ai.genetics.tsp.engines.simpleUnisexMutatorHibrid2Opt.SimpleUnisexMutatorHibrid2OptEngine
 * @see org.jgap.impl.GreedyCrossover
 * @see org.saiko.ai.genetics.tsp.engines.crossover.GreedyCrossoverEngine
 * @see #getChild(TSPChromosome) 
 * @see org.saiko.ai.genetics.tsp.TSPEngine
 */
public class GreedyCrossoverHibrid2OptEngine extends GreedyCrossoverEngine {

   /** String containing the CVS revision. **/
   @SuppressWarnings("hiding")
   public final static String  CVS_REVISION = "$Revision: 1.2 $";

   
   /**
    * Creates child from two parents using GreeadyCrossover algorithm.
    * It creates child from parent1+parent2; parent2+parent1; mutated parent1 and mutated parent2
    * 
    * @see #getChild(TSPChromosome, TSPChromosome)
    * @see SimpleUnisexMutatorHibrid2OptEngine#mutate(City[])
    * @param parent1 
    * @param parent2 
    */
   @Override
   protected void getChild(TSPChromosome parent1, TSPChromosome parent2) {
	  //greedy crossover and random mutation
      City child1[]=parent1.getCities().clone();
      City child2[]=parent2.getCities().clone();
      City child3[]=haveSex(parent1, parent2);
      City child4[]=haveSex(parent2, parent1);
      City child5[]=child3.clone();
      City child6[]=child4.clone();
      
      mutate(child1);
      mutate(child2);
      //mutate(child3);
      //mutate(child4);
      mutate(child5);
      mutate(child6);

      //2opt heuristics
      heuristics2opt(child1);
      heuristics2opt(child2);
      heuristics2opt(child3);
      heuristics2opt(child4);
      heuristics2opt(child5);
      heuristics2opt(child6);

      population.add(new TSPChromosome(child1));
      population.add(new TSPChromosome(child2));
      population.add(new TSPChromosome(child3));
      population.add(new TSPChromosome(child4));
      population.add(new TSPChromosome(child5));
      population.add(new TSPChromosome(child6));
   }
   
   /**
    * Creates childs as heuristics optimalizations of chromosome
    * the algorithm is described at described at http://www.gcd.org/sengoku/docs/arob98.pdf
    * and used at http://www.zlote.jabluszko.net/tsp/
    * @param cities - chromosome to be optimalized
 	*/
   public static void heuristics2opt(City[] cities) {
       boolean done = false;
       int count = cities.length;
       for(int k = 0; k < count && !done; k++)
       {
           done = true;
           for(int i = 0; i < count; i++)
           {
               for(int j = i + 2; j < count; j++)
                   if(
                      cities[i].distance(cities[(i + 1) % count]) + cities[j].distance(cities[(j + 1) % count]) 
                		   > 
                   	  cities[i].distance(cities[j]) + cities[(i + 1) % count].distance(cities[(j + 1) % count])
                   )
                   {
                       City tmp = cities[(i + 1) % count];
                       cities[(i + 1) % count] = cities[j];
                       cities[j] = tmp;
                       reverse(cities, i + 2, j - 1);
                       done = false;
                   }
           }
       }
   }
   
   /**
    * Part of heuristics optimalizations of chromosome
    * taken from code at http://www.zlote.jabluszko.net/tsp/
    * @param cities - chromosome to be optimalized
    * @param startIndex 
    * @param stopIndex 
 	*/
   public static void reverse(City[] cities, int startIndex, int stopIndex)
   {
       if(startIndex >= stopIndex || startIndex >= cities.length || stopIndex < 0)
           return;
       for(; startIndex < stopIndex; stopIndex--)
       {
           City tmp = cities[startIndex];
           cities[startIndex] = cities[stopIndex];
           cities[stopIndex] = tmp;
           startIndex++;
       }

   }
   
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美岛国在线观看| 一本大道久久a久久精二百| 欧美一级二级在线观看| 五月激情丁香一区二区三区| 欧美日韩一级视频| 青草av.久久免费一区| 日韩欧美国产一二三区| 精品一区二区三区视频| 国产精品丝袜久久久久久app| 99久久精品国产毛片| 一区二区三区久久久| 8x8x8国产精品| 国产一区三区三区| 国产精品进线69影院| 欧日韩精品视频| 秋霞成人午夜伦在线观看| 国产婷婷色一区二区三区| 成人免费电影视频| 亚洲综合视频网| 欧美成人精品二区三区99精品| 岛国一区二区三区| 亚洲高清免费观看| 久久综合给合久久狠狠狠97色69| 99视频超级精品| 日韩中文字幕区一区有砖一区| 2019国产精品| 色偷偷一区二区三区| 久久99日本精品| 亚洲色图欧美偷拍| 日韩精品在线网站| 色婷婷狠狠综合| 国产一区二区精品久久99| 一区二区三区免费在线观看| 精品国产伦一区二区三区观看体验 | 欧美xxxx老人做受| 不卡视频一二三四| 麻豆极品一区二区三区| 亚洲三级在线免费观看| 日韩一级高清毛片| 91美女片黄在线观看91美女| 久久99精品久久久久婷婷| 亚洲男人的天堂av| 久久久精品免费网站| 欧美区视频在线观看| av网站免费线看精品| 国产一区免费电影| 午夜精品久久久久影视| 一区二区中文视频| 国产亚洲制服色| 日韩欧美在线影院| 欧美三区在线视频| 91精品福利视频| 丁香婷婷综合五月| 韩国av一区二区三区| 亚洲成a人v欧美综合天堂下载| 国产精品麻豆一区二区| 精品欧美久久久| 日韩欧美一区二区在线视频| 欧美中文字幕一区二区三区亚洲| 成人午夜激情视频| 国产精品99久久久久久久vr | 中文字幕av在线一区二区三区| 日韩亚洲欧美成人一区| 欧美日韩第一区日日骚| 色一区在线观看| 日本丶国产丶欧美色综合| www.欧美色图| 不卡免费追剧大全电视剧网站| 国产麻豆精品在线观看| 国内久久婷婷综合| 麻豆91免费看| 老司机午夜精品| 久久97超碰国产精品超碰| 另类人妖一区二区av| 免费成人美女在线观看| 免费成人性网站| 裸体一区二区三区| 狂野欧美性猛交blacked| 美女www一区二区| 老鸭窝一区二区久久精品| 狠狠色综合色综合网络| 国产一二三精品| 懂色av一区二区在线播放| 成人黄色在线网站| 91丨porny丨在线| 欧洲一区二区av| 51精品秘密在线观看| 欧美一级理论片| 久久色成人在线| 日本一区二区三区在线不卡| 亚洲国产高清在线| 亚洲男人的天堂网| 午夜国产精品一区| 极品少妇xxxx偷拍精品少妇| 国产剧情av麻豆香蕉精品| 成人手机电影网| 一本到高清视频免费精品| 欧美三级中文字幕| 日韩欧美国产一区二区三区 | 亚洲第四色夜色| 蜜臀av亚洲一区中文字幕| 国产精品888| 99精品偷自拍| 欧美日韩mp4| 久久日韩粉嫩一区二区三区| 国产欧美日本一区视频| 亚洲色图清纯唯美| 日本免费在线视频不卡一不卡二| 国产一区二区女| 日本高清不卡aⅴ免费网站| 欧美一区二区三区视频免费播放| 欧美精品一区二区不卡| 国产精品久久久久永久免费观看| 亚洲已满18点击进入久久| 免费成人av在线| eeuss鲁一区二区三区| 欧美视频三区在线播放| www成人在线观看| 亚洲综合色噜噜狠狠| 国产在线一区观看| 日本精品一区二区三区高清| 日韩欧美国产综合| 亚洲区小说区图片区qvod| 毛片不卡一区二区| 91视频国产观看| xfplay精品久久| 夜夜精品浪潮av一区二区三区| 韩国av一区二区三区在线观看| 色悠悠亚洲一区二区| 久久久久久久久久久99999| 亚洲综合视频在线观看| 国产白丝网站精品污在线入口| 欧美麻豆精品久久久久久| 国产精品久线在线观看| 免费国产亚洲视频| 欧美在线一二三| 国产亚洲欧美日韩日本| 秋霞国产午夜精品免费视频| 色婷婷综合激情| 国产偷国产偷亚洲高清人白洁| 日韩国产一二三区| 色香蕉成人二区免费| 日本一区二区三区视频视频| 麻豆精品一区二区综合av| 欧美亚洲日本一区| 亚洲视频免费在线观看| 国产精品一级片在线观看| 日韩欧美色综合| 图片区小说区国产精品视频| 91丝袜国产在线播放| 中文在线一区二区| 国产在线精品一区二区| 91精品国产一区二区三区蜜臀| 亚洲国产精品人人做人人爽| av电影天堂一区二区在线观看| 久久久久久久久久美女| 久久99热国产| 欧美mv日韩mv国产网站app| 婷婷丁香久久五月婷婷| 欧美日韩一级大片网址| 一区二区三区精品在线观看| 99久久国产综合色|国产精品| 欧美激情一区三区| 国产成人在线视频播放| 国产偷v国产偷v亚洲高清| 国产福利一区二区三区视频| 精品久久国产老人久久综合| 极品销魂美女一区二区三区| 欧美成人三级在线| 久久精品72免费观看| 欧美xxxx老人做受| 久草这里只有精品视频| 久久亚洲精华国产精华液| 国产麻豆精品久久一二三| 国产欧美日韩另类视频免费观看| 国产乱码精品1区2区3区| 国产欧美一区二区精品婷婷| 国产99精品在线观看| 国产精品短视频| 91高清在线观看| 午夜伦欧美伦电影理论片| 日韩亚洲欧美高清| 国内精品久久久久影院色| 国产片一区二区| 91免费国产视频网站| 一区二区三区小说| 欧美丰满少妇xxxxx高潮对白 | 91麻豆精品一区二区三区| 亚洲精品中文字幕乱码三区| 欧美丝袜丝nylons| 久久成人18免费观看| 久久精品夜色噜噜亚洲a∨| 成人黄色av电影| 亚洲成人免费观看| 亚洲精品一区二区三区影院| 成人黄色av电影| 天天影视涩香欲综合网| 久久久综合精品| 91在线国内视频| 奇米一区二区三区|