0

سورس کد مسئله هشت یا n وزیر با الگوریتم ژنتیک

 
rezahashemian1374
rezahashemian1374
کاربر برنزی
تاریخ عضویت : مهر 1391 
تعداد پست ها : 254
محل سکونت : تهران

سورس کد مسئله هشت یا n وزیر با الگوریتم ژنتیک
دوشنبه 22 مهر 1392  7:43 AM

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace chess2
{
public 
partial class Form1 Form
{
int c 0;
public 
Form1()
{


InitializeComponent();
}
private 
int[] rand(int nint x)
{

Random random = new Random(DateTime.Now.Millisecond);
int t random.Next(0n);
int[] inta = new int[n];
int c;
string[] abc = new string[n]; ;
for (
int i 0ni++) { arandom.Next(0n); 1; while ((c) >= 0)
{
if (
inta[c] == t)
{

abc[i] = t.ToString();
goto a;

}

c++;
}
for (
int i2 0i2 <= ii2++)
{
if (
abc[i2] == t.ToString())
goto a;
}

inta[i] = t;
}
return 
inta;
}
private 
Double fib(int n)
{
if (
== 0)
return 
0;
if (
== 1)
return 
1;
Double tmp 0;
for (
int i 0<= ni++)
{

tmp += i;
}
return 
tmp 0.0;
}

private 
int[,] cross(int[] pop1int[] pop2int n)
{

int[,] pop_4_return = new int[2n];
for (
int c 02c++)
{
for (
int i 0ni++) { if ((2) > i)
{
if (
== 0)
{

pop_4_return[ci] = pop2[i];
}
else
{

pop_4_return[ci] = pop1[i];
}
}
else
{
if (
== 0)
{

pop_4_return[ci] = pop1[i];
}
else
{

pop_4_return[ci] = pop2[i];
}
}
}
}
return 
pop_4_return;
}
private 
Double fit(int[] nffint n)
{

int[,] inta = new int[nn];
int tmp 0fitness 0;
for (
int c 0nc++)
{

inta[cnff[c]] = 1;
}

for (
int i 0ni++)
{
for (
int ii 0ii nii++)
{
if (
inta[iii] == 1)
{

tmp ii;
goto a;
}
}

a:
for (
int i2 1i2 ni2++)
{
if (((
i2) < n))
if ((
tmp i2) < n)
if (
inta[i2tmp i2] == 1)
fitness++;
if (((
i2) < n)) if ((tmp i2) >= 0)
if (
inta[i2tmp i2] == 1)
fitness++;
if ((
i2) < n)
if (
inta[i2tmp] == 1)
fitness++;
}
}

Double fibonachi fib(1) + 0.0;
Double r 100 - (fitness * (100 fibonachi));
return 
r;
}
private 
int[,] pop_generator(int n)
{

int[,] inta = new int[nn];
int[] intb = new int[n];
intb rand(nc);
c++;
for (
int i 0ni++)
{

intb rand(nc);
while ((
fit(intbn)) < 50.0)
intb rand(nc); c++;
for (
int j 0nj++)
{

inta[ij] = intb[j];
}

c++;
}
return 
inta;
}
private 
int arr_to_var(int[] narrint n)
{

string nvar "";
for (
int i 0ni++)
{

nvar += narr[i].ToString();
}

Int32 n_for_return Int32.Parse(nvar);
return 
n_for_return;

}
private 
int[,] crossover(int[,] popint n)
{

int[,] pop_for_return = new int[nn];
int[,] crosstemp = new int[22];
int[] tmp1 = new int[n];
int[] tmp2 = new int[n];
for (
int i 0n+= 2)
{
for (
int j 0nj++)
{

tmp1[j] = pop[ij];
tmp2[j] = pop[1j];
}

crosstemp cross(tmp1tmp2n);
for (
int j2 0j2 nj2++)
{

pop_for_return[ij2] = crosstemp[0j2];
pop_for_return[1j2] = crosstemp[1j2];
}
}
return 
pop_for_return;
}
private 
void printc(int[] arr_4_printint n)
{

int[,] tmp = new int[nn];
for (
int i 0ni++)
tmp[arr_4_print[i], i] = 1;
for (
int i 0ni++)
{

label1.Text += "\n\r";
for (
int j 0nj++)
{
if (
tmp[ij] == 1)
label1.Text += "*";
else

label1.Text += "0";
}
}
}
private 
void Form1_Load(object senderEventArgs e)
{

}

private 
void button1_Click(object senderEventArgs e)
{

Int32 n Int32.Parse(textBox1.Text);
int[,] pop = new int[nn];
int[,] cros = new int[nn];
int[] tmp = new int[n];
pop pop_generator(n);
for (
int i 0ni++)
{
for (
int j 0nj++)
{

tmp[j] = pop[ij];
}
if (
fit(tmpn) == 100.0)
{

printc(tmpn);
goto a;
}
}

int comp 1;
int counter 0;
cros crossover(popn);
while (
comp == 1)
{

this.Text counter.ToString();
counter++;
label1.Text "";
for (
int i 0ni++)
{
for (
int j 0nj++)
{

label1.Text += cros[ij];
}

label1.Text += "\n\r";
}
for (
int i 0ni++)
{
for (
int j 0nj++)
{

tmp[j] = cros[ij];
}
if (
fit(tmpn) == 100.0)
{

printc(tmpn);
comp 0;
goto a;

}
}

cros crossover(crosn);
}

a:
this.Text "find";
}
}

Seyyed.Reza.Hashemian@Gmail.Com

دوستانی که سوالی دارند یا مایل به تماس هستند می توانند از اطلاعات بالا استفاده نمایند.

اگر هم تایپکی زدید و احتیاج به پاسخگویی سریع داشتید اطلاع دهید

تشکرات از این پست
siryahya
دسترسی سریع به انجمن ها