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

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

?? nqueenrunner.java

?? This is a java implementation for solving NQueen problem using genetic algorithm.Enjoy it!
?? JAVA
字號:
package ir.ac.iust.evoalgs.nqueen;

import java.util.List;
import java.util.Random;

import org.apache.log4j.Logger;

public class NQueenRunner {

	protected static int MAX_ITER = 10000;
	protected static int POPULATION_SIZE = 25;
	protected static int DIM = 24;
	private static Logger logger = Logger.getLogger(NQueenRunner.class);

	public static void main(String[] args) {
		for (int i = 1; i <= 20; i++) {
//			DIM = 4*i;
			IGeneticNQueenSolver solver = new GeneticNQueenSolver();
			solver.setSolutionHelper(new INQueenSolutionHelper() {

				@Override
				public double getCrossOverProb() {
					return 0.9;
				}

				@Override
				public double getMutationProb() {
					return 0.3;
				}

				@Override
				public int[] getTheBest(List<Gene> population) {

					Gene theBest = null;
					double minCost = Double.MAX_VALUE;
					for (Gene gene : population) {
						double tmp = 0;
						if ((tmp = getCost(gene)) <= minCost) {
							minCost = tmp;
							theBest = gene;
						}
					}

					return theBest.getString();
				}

				@Override
				public boolean hasBeenEnded(List<Gene> population, int iterNo) {

					if (iterNo >= MAX_ITER) {
						return true;
					}

					double cost = Double.MAX_VALUE;
					for (Gene gene : population) {
						double tmpCost = getCost(gene);
						if (tmpCost < cost) {
							cost = tmpCost;
							if (cost == 0)
								break;
						}
					}

					return cost == 0;
				}

				@Override
				public void initPopulation(List<Gene> population) {
					for (int i = 0; i < POPULATION_SIZE; i++)
						population.add(new Gene(DIM, true));
				}

				@Override
				public void onCompelete(NQueenProblem problem, NQueenSolution solution, int iterCnt) {
					logger.info("$ITER $COST".replace("$ITER", "" + iterCnt).replace("$COST",
									"" + getCost(new Gene(solution.getResult()))));
//					logger.info("{$ITER} : {$COST} : $P has been solved with $S.".replace("$P", problem.toString())
//							.replace("$S", solution.toString()).replace("$ITER", "" + iterCnt).replace("$COST",
//									"" + getCost(new Gene(solution.getResult()))));
				}

				@Override
				public void onProgress(int[] theBest, int iterNo) {
//					if (iterNo == 0) {
//						StringBuffer sb = new StringBuffer("");
//						sb.append(getCost(new Gene(theBest))).append(" is the best at start.");
//						logger.info(sb.toString());
//					}
				}

				@Override
				public Gene selectParent(List<Gene> population) {
					Random rand = new Random();
					int rand1 = rand.nextInt(POPULATION_SIZE);
//					int rand2 = rand.nextInt(POPULATION_SIZE);
//					int rand3 = rand.nextInt(POPULATION_SIZE);
//					int rand4 = rand.nextInt(POPULATION_SIZE);

					Gene g1 = population.get(rand1);
//					Gene g2 = population.get(rand2);
//					Gene g3 = population.get(rand3);
//					Gene g4 = population.get(rand4);

//					double cost1 = getCost(g1);
//					double cost2 = getCost(g2);
//					double cost3 = getCost(g3);
//					double cost4 = getCost(g4);

//					return (cost1 <= cost2 && cost1 <= cost3 && cost1 <= cost4) ? g1 : (cost2 <= cost1 && cost2 <= cost3 && cost2 <= cost4) ? g2 : cost3 <= cost4 ? g3 : g4;
					return g1;
				}

				@Override
				public void replacment(List<Gene> population, Gene[] genes) {
					for (Gene gene : genes) {
						double cost = getCost(gene);

						int worstIdx = -1;
						double tmpCost = 0;
						for (int i = 0; i < POPULATION_SIZE; i++) {
							double c1 = getCost(population.get(i));

							if (c1 > tmpCost) {
								tmpCost = c1;
								worstIdx = i;
							}
						}

						if (cost < getCost(population.get(worstIdx))) {
							population.remove(worstIdx);
							population.add(worstIdx, gene);
						}
					}
				}

				@Override
				public int getSleepSize() {
					return POPULATION_SIZE / 2;
				}
			});

			solver.solve(new NQueenProblem(DIM));
		}
	}

	protected static double getCost(Gene gene) {
		int dim = gene.getString().length;

		// diagonal collision
		int diag1Collision = 0;
		for (int j = 0; j < dim; j++) {
			int tmpCollision = 0;
			for (int i = 0; i <= j; i++) {
				if (gene.getString()[i] == (j - i)) {
					tmpCollision++;
				}
			}
			diag1Collision += (tmpCollision > 0 ? (tmpCollision - 1) : 0);
		}

		// XX revise shod
		int diag2Collision = 0;
		for (int j = dim - 1; j > 0; j--) {
			int tmpCollision = 0;
			for (int i = dim - 1; i >= j; i--) {
				if (gene.getString()[i] == (j + dim - 1 - i)) {
					tmpCollision++;
				}
			}
			diag2Collision += (tmpCollision > 0 ? (tmpCollision - 1) : 0);
		}

		int diag3Collision = 0;
		for (int j = 0; j < dim; j++) {
			int tmpCollision = 0;
			for (int i = dim - 1; i >= dim - 1 - j; i--) {
				if (gene.getString()[i] == (i + j - dim + 1)) {
					tmpCollision++;
				}
			}
			diag3Collision += (tmpCollision > 0 ? (tmpCollision - 1) : 0);
		}

		// XX revise shod
		int diag4Collision = 0;
		for (int j = dim - 1; j > 0; j--) {
			int tmpCollision = 0;
			for (int i = 0; i <= dim - 1 - j; i++) {
				if (gene.getString()[i] == (j + i)) {
					tmpCollision++;
				}
			}
			diag4Collision += (tmpCollision > 0 ? (tmpCollision - 1) : 0);
		}

		return diag1Collision + diag2Collision + diag3Collision + diag4Collision;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷av一区| 精品在线观看视频| 中文字幕欧美日韩一区| 久久蜜臀精品av| 国产在线精品一区二区夜色 | 国产欧美视频在线观看| 欧美区视频在线观看| 91色婷婷久久久久合中文| caoporen国产精品视频| 99久久国产综合精品女不卡| 成人一区二区三区视频在线观看| 国产精品99久久久久久久vr| 国内精品伊人久久久久av影院| 国产自产高清不卡| 国产成人在线视频网址| 成人黄色软件下载| 91一区二区三区在线观看| 在线观看视频欧美| 555www色欧美视频| 欧美成人在线直播| 中文字幕免费一区| 亚洲人成电影网站色mp4| 成人黄色在线网站| 99久久久久久| 欧美一三区三区四区免费在线看| 日韩免费视频线观看| 国产蜜臀av在线一区二区三区| 中文子幕无线码一区tr| 亚洲影视在线播放| 精品一二三四区| 色综合天天综合| 日韩欧美一区电影| 国产精品久久久久久久久久免费看 | 国产美女娇喘av呻吟久久| 成人午夜大片免费观看| 在线观看中文字幕不卡| 91精品国产综合久久精品图片 | 99久久精品国产麻豆演员表| 欧美色手机在线观看| 日韩欧美中文字幕一区| 18欧美乱大交hd1984| 日韩av网站免费在线| 懂色av中文字幕一区二区三区| 日本韩国一区二区三区| 亚洲精品一区二区三区香蕉| 1区2区3区国产精品| 捆绑调教一区二区三区| 9久草视频在线视频精品| 欧美理论电影在线| 国产精品久久久久久久裸模| 六月婷婷色综合| 欧美色图在线观看| 亚洲视频在线一区观看| 国产一二精品视频| 7777精品伊人久久久大香线蕉经典版下载 | 欧美肥妇free| 中文字幕一区二区不卡| 激情综合网最新| 欧美日韩精品一二三区| 中文字幕一区二区在线观看| 国产乱码精品一区二区三区av | 日韩一二在线观看| 一区二区三区影院| 成人黄色电影在线| 久久色视频免费观看| 日本系列欧美系列| 欧美日韩亚洲综合在线 | 日韩制服丝袜av| 欧美性生活大片视频| 亚洲免费观看高清| av在线不卡网| 亚洲欧洲日韩在线| 成人动漫av在线| 国产日韩影视精品| 国产成人亚洲综合a∨婷婷图片| 日韩区在线观看| 精品亚洲欧美一区| 精品美女被调教视频大全网站| 色哦色哦哦色天天综合| 亚洲女同一区二区| 91行情网站电视在线观看高清版| 亚洲欧美日韩人成在线播放| caoporen国产精品视频| 中文字幕一区二区三区在线观看 | 久久精品无码一区二区三区| 精品一区二区在线免费观看| 精品国产伦一区二区三区免费| 久热成人在线视频| 久久综合九色综合欧美98| 国产在线播精品第三| 欧美国产日韩在线观看| 成人app在线| 一区二区久久久| 欧美精品久久99久久在免费线 | www.欧美色图| 亚洲人快播电影网| 这里只有精品视频在线观看| 狠狠色综合日日| 亚洲欧洲av在线| 欧美亚洲国产一卡| 日产国产高清一区二区三区| 久久久久99精品国产片| 99精品久久只有精品| 亚洲午夜久久久久久久久电影院| 欧美一区日韩一区| 国产91精品入口| 亚洲成人av一区二区| 欧美成人伊人久久综合网| 成人精品一区二区三区中文字幕| 一区二区在线电影| 欧美刺激午夜性久久久久久久| 精品久久一区二区三区| 国产精品 欧美精品| 国产成人午夜高潮毛片| 综合在线观看色| 欧美一级理论性理论a| 粉嫩13p一区二区三区| 亚洲中国最大av网站| 精品国产第一区二区三区观看体验| 99r精品视频| 精品在线一区二区三区| 亚洲欧美另类久久久精品| 91精品免费在线| 色综合 综合色| 国产精品影视在线观看| 天堂成人国产精品一区| 国产精品美女久久久久aⅴ国产馆| 欧美日韩国产精选| 91色九色蝌蚪| 国产传媒欧美日韩成人| 日本91福利区| 一级特黄大欧美久久久| 国产精品视频一二三区| 精品久久久久一区二区国产| 欧美日韩成人综合在线一区二区| 成人免费看黄yyy456| 91精品国产综合久久小美女| 91片黄在线观看| 成人av网站在线观看免费| 国产一区二区三区在线观看精品| 午夜电影网亚洲视频| 一区二区三区资源| 国产精品国产自产拍高清av| 久久久久久亚洲综合| 日韩欧美一区在线| 日韩欧美一区二区不卡| 欧美日韩小视频| 91成人免费电影| 色欧美乱欧美15图片| 91网站视频在线观看| 91在线看国产| av不卡免费在线观看| 91在线视频播放| 91老师片黄在线观看| 色综合亚洲欧洲| 欧美一a一片一级一片| 色94色欧美sute亚洲线路一ni| 99精品热视频| 色哟哟一区二区在线观看| 色综合天天视频在线观看| 99久久综合99久久综合网站| 91小视频免费观看| 91麻豆自制传媒国产之光| 91麻豆国产福利在线观看| 欧美三级中文字| 91精品婷婷国产综合久久竹菊| 制服丝袜亚洲网站| 精品国产亚洲一区二区三区在线观看| 日韩欧美一级在线播放| 久久品道一品道久久精品| 国产精品久久免费看| 日韩理论片网站| 亚洲成a人v欧美综合天堂下载| 日本最新不卡在线| 国产成人一区在线| 色www精品视频在线观看| 欧美日韩色一区| 精品国产乱码久久久久久久久| 国产三级欧美三级日产三级99| 亚洲图片另类小说| 香蕉成人伊视频在线观看| 韩国精品主播一区二区在线观看 | 精品噜噜噜噜久久久久久久久试看| 欧美一卡二卡在线观看| 久久久久久97三级| 一区二区三区加勒比av| 美女视频网站久久| 豆国产96在线|亚洲| 欧美日韩一区在线观看| 久久女同精品一区二区| 亚洲愉拍自拍另类高清精品| 久久99国内精品| 色综合激情久久| 精品久久久三级丝袜| 亚洲综合在线免费观看| 韩国av一区二区三区| 欧美色爱综合网| 亚洲欧洲无码一区二区三区| 免费一级片91| 欧洲一区二区三区免费视频|