Artificial Intelligence - هوش مصنوعی

Artificial Intelligence - هوش مصنوعی (http://artificial.ir/intelligence/)
-   الگوریتم ژنتیک(Genetic Algorithm) (http://artificial.ir/intelligence/forum24.html)
-   -   حل مسائل به کمک الگوريتم ژنتيک! (http://artificial.ir/intelligence/thread561.html)

Astaraki ۰۷-۲۸-۱۳۸۸ ۰۵:۲۲ بعد از ظهر

حل مسائل به کمک الگوريتم ژنتيک!
 
1(ها)ضميمه
حل مسائل به کمک الگوريتم ژنتيک!

yas kalantari ۱۰-۴-۱۳۸۹ ۱۱:۲۶ قبل از ظهر

سلام ،پروژه آماده برای زمانبندی کلاسها با الگوریتم ژنتیک با سی شارپ می خواستم

salmanmirzaei ۱۱-۲۱-۱۳۸۹ ۰۵:۰۸ بعد از ظهر

سلام دوستان.
توضیح کلی در باره مساله n وزیر میخواستم.اینکه برای حل مساله چه کارهایی باید انجام بدم،یه شرح کامل میخوام.
لطفاکمک کنید.

kala ۱۲-۱۵-۱۳۸۹ ۱۰:۲۰ قبل از ظهر

یک checkboard 10 *10 با چهار رنگ سبز, آبی, قرمز و نارنجی که شکل آن در کتاب الگوریتم ژنتیک peter spijker آمده حل آن به روش الگوریتم ژنتیک را می خواستم.

سبا ۰۱-۲۶-۱۳۹۰ ۰۴:۰۷ بعد از ظهر

کمککککککککککککککککککککک
با سلام من یک تمرین دارم که باید با الگوریتم ژنتیک حل بشه ممنون میشم کمکم کنید چون من هیچی بلد نیستم، سوال اینه:
حل با استفاده از الگوریتم ژنتیک
یک مربع 4*4 در نظر گرفته و اعداد 1 تا 15 را طوری روی ان جایگزین کنید که مجموع سطرها و ستون ها برابر 24 شود.

HojjatJafary ۰۱-۲۶-۱۳۹۰ ۰۵:۵۴ بعد از ظهر

3210
7654
111098
15141312


فرض کنید خانه های جدول شما به صورت بالا شماره گذاری شده باشد. جدول شما از این به بعد یک کروموزوم نام دارد.شما مجموعه ای از این کروموزومها دارید که به آن جمعیت می گویند. مقدار آن دلبخواه است.(لیستی از جدولها)
ابتدا یک جمعیت را به صورت تصادفی تولید کنید.
برنامه شما باید یک حلقه کلی داشته باشد که به آن تولید نسل می گویند باید تعداد تکرار آن را محدود به یک عدد دلبخواه کنید که اگر پاسخ یافت نشده حلقه تمام شود. یک شرط اصلی هم در این حلقه وجود دارد و آن این است که تابع fitness شما به مقدار مطلوب رسید است و شما باید جواب را چاپ کنید.
درون این حلقه یک حلقه دیگر وجود دارد که جمعیت جدید را به روش زیر می سازد:
دو کروموزوم (یا شخص) را به صورت تصادفی انتخاب کنید و عمل CrossOver را روی آنها انجام دهید و سپس عمل mutate را انجام دهید. در پایان آنها را به لیست جدیدی اضافه کنید. وقتی جمعیت جدید شما هم اندازه جمعیت قدیم شد.
جمعیت قدیم را پاک کنید و مراحل را با جمعیت جدید تکرار کنید.
تابع fitness هما تابعی است که شما باید جدول خود را ارزیابی کنید که مثلا مجموع سطرها و ستون ها ۲۴ است یا خیر. مقدار بازگشتی این تابع باید با توجه به نزدیک بودن به جواب تعیین شود. مثلا هربار که مجموع سطری یا ستونی ۲۴ شد آن را یک امتیاز تلقی کنید که در این صورت پاسخ نهایی می شود ۸ امتیاز.

بیان جزيیات با این شیوه مشکل است. کمی جستجو کنید ، امیدوارم پاسخ مشکلاتان را پیدا کنید.
موفق باشید.

سبا ۰۱-۲۶-۱۳۹۰ ۰۸:۰۳ بعد از ظهر

خیلی ممنون که اینقدر سریع جوابمو دادید
یک سوال برای جواب این جور مسایل حتما باید شبه کدی نوشت ؟ یا بیان منطق اینکه چطور ga این مسیله رو حل میکنه کافیه؟
ولی کلا اوضاعم خیلی افتضاحه هیچی بلد نیستم نمیدونم چه کنم با این درس هوش و الگوریتم هاش

HojjatJafary ۰۱-۲۶-۱۳۹۰ ۱۰:۴۳ بعد از ظهر

خیلی متوجه منظورتون نشدم
ولی من این الگوریتم رو چند سال پیش پیاده سازی کرده بودم و برای پاسخ دادن به شما کدم رو که به زبان سی پلاس پلاس بود مرور کردم تا پاسخم دقیق تر باشه.
شبه کدهایی که کتابهایی مثل راسل دارن خیلی کلی هست و زمان پیاده سازی خیلی نکات رو باید در نظر بگیرید.
ولی تلاش خودت رو بکن، بدون تلاش نه تنها هوش بلکه هیچ چیز دیگه ای رو یاد نمی گیری.

0251_0611 ۰۳-۸-۱۳۹۰ ۰۴:۵۷ بعد از ظهر

سلام تو رو خدا کمکم کنید
پنج شنبه ارائه پروژه دارم مسئله tsp با الگوریتم ژنتیک به زبان c یا c++
اینم ایمیلم :
mer30_topak@yahoo.com

alipoo ۰۴-۱۷-۱۳۹۰ ۱۲:۱۹ بعد از ظهر

با عرض سلام

من تابع fitness برای 8 وزیر را در Matlab می خواستم تا بتونم با ژنتیک حلش کنم

ممنون

farnadi ۰۵-۱۵-۱۳۹۰ ۰۴:۴۲ بعد از ظهر

سلام تورو خدا کمکم کنید من پیاده سازی دارم برای مقاله
A novel ACO–GA hybrid algorithm for feature selection in protein function prediction
این ایمیلم است اگه میتونید بهم خبر بدید تا هفته دیگه باید بدم
farnadbozorgi@yahoo.com
merrrrrrrciiiiiiii

aseman delam ۰۵-۱۶-۱۳۹۰ ۰۹:۳۰ قبل از ظهر

سلام
من در مورد زمانبندی انتخاب واحد یه دانشکده با الگوریتم ژنتبک ازتون کمک می خواستم
خواهش می کنم کمکم کنید!

tokfathos ۰۶-۲۰-۱۳۹۰ ۰۳:۴۷ بعد از ظهر

سلام
من کد الگوریتم ژنتیک برای بهینه سازی association rule می خواهم.
با سپاس

m.shh ۰۷-۲-۱۳۹۰ ۰۵:۴۹ قبل از ظهر

سلام
پروژه پایانی من الگوریتم ژنتیکه . من کد حل N Queen In C# With GA و TSP IN Mathlab with GA گذاشتم تو پروژه ام حالا استاد راهنما گفته باید حتما بلاک به بلاک کد ها را براش توضیح فارسی بذاری . من هم هیچ بلد نیستم . یه روز دو روز هم بیشتر فرصت ندارم . تورو خدا یکی کمک کنه.

A ) N Queen In C# With GA

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 n, int x)
{
Random random = new Random(x + DateTime.Now.Millisecond);
int t = random.Next(0, n);
int[] inta = new int[n];
int c;
string[] abc = new string[n]; ;
for (int i = 0; i < n; i++) { a: t = random.Next(0, n); c = 1; while ((i - c) >= 0)
{
if (inta[i - c] == t)
{
abc[i] = t.ToString();
goto a;

}
c++;
}
for (int i2 = 0; i2 <= i; i2++)
{
if (abc[i2] == t.ToString())
goto a;
}
inta[i] = t;
}
return inta;
}
private Double fib(int n)
{
if (n == 0)
return 0;
if (n == 1)
return 1;
Double tmp = 0;
for (int i = 0; i <= n; i++)
{
tmp += i;
}
return tmp + 0.0;
}

private int[,] cross(int[] pop1, int[] pop2, int n)
{
int[,] pop_4_return = new int[2, n];
for (int c = 0; c < 2; c++)
{
for (int i = 0; i < n; i++) { if ((n / 2) > i)
{
if (c == 0)
{
pop_4_return[c, i] = pop2[i];
}
else
{
pop_4_return[c, i] = pop1[i];
}
}
else
{
if (c == 0)
{
pop_4_return[c, i] = pop1[i];
}
else
{
pop_4_return[c, i] = pop2[i];
}
}
}
}
return pop_4_return;
}
private Double fit(int[] nff, int n)
{
int[,] inta = new int[n, n];
int tmp = 0, fitness = 0;
for (int c = 0; c < n; c++)
{
inta[c, nff[c]] = 1;
}

for (int i = 0; i < n; i++)
{
for (int ii = 0; ii < n; ii++)
{
if (inta[i, ii] == 1)
{
tmp = ii;
goto a;
}
}
a:
for (int i2 = 1; i2 < n; i2++)
{
if (((i + i2) < n))
if ((tmp + i2) < n)
if (inta[i + i2, tmp + i2] == 1)
fitness++;
if (((i + i2) < n)) if ((tmp - i2) >= 0)
if (inta[i + i2, tmp - i2] == 1)
fitness++;
if ((i + i2) < n)
if (inta[i + i2, tmp] == 1)
fitness++;
}
}
Double fibonachi = fib(n - 1) + 0.0;
Double r = 100 - (fitness * (100 / fibonachi));
return r;
}
private int[,] pop_generator(int n)
{
int[,] inta = new int[n, n];
int[] intb = new int[n];
intb = rand(n, c);
c++;
for (int i = 0; i < n; i++)
{
intb = rand(n, c);
while ((fit(intb, n)) < 50.0)
intb = rand(n, c); c++;
for (int j = 0; j < n; j++)
{
inta[i, j] = intb[j];
}
c++;
}
return inta;
}
private int arr_to_var(int[] narr, int n)
{
string nvar = "";
for (int i = 0; i < n; i++)
{
nvar += narr[i].ToString();
}
Int32 n_for_return = Int32.Parse(nvar);
return n_for_return;

}
private int[,] crossover(int[,] pop, int n)
{
int[,] pop_for_return = new int[n, n];
int[,] crosstemp = new int[2, 2];
int[] tmp1 = new int[n];
int[] tmp2 = new int[n];
for (int i = 0; i < n; i += 2)
{
for (int j = 0; j < n; j++)
{
tmp1[j] = pop[i, j];
tmp2[j] = pop[i + 1, j];
}
crosstemp = cross(tmp1, tmp2, n);
for (int j2 = 0; j2 < n; j2++)
{
pop_for_return[i, j2] = crosstemp[0, j2];
pop_for_return[i + 1, j2] = crosstemp[1, j2];
}
}
return pop_for_return;
}
private void printc(int[] arr_4_print, int n)
{
int[,] tmp = new int[n, n];
for (int i = 0; i < n; i++)
tmp[arr_4_print[i], i] = 1;
for (int i = 0; i < n; i++)
{
label1.Text += "\n\r";
for (int j = 0; j < n; j++)
{
if (tmp[i, j] == 1)
label1.Text += "*";
else
label1.Text += "0";
}
}
}
private void Form1_Load(object sender, EventArgs e)
{

}

private void button1_Click(object sender, EventArgs e)
{
Int32 n = Int32.Parse(textBox1.Text);
int[,] pop = new int[n, n];
int[,] cros = new int[n, n];
int[] tmp = new int[n];
pop = pop_generator(n);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
tmp[j] = pop[i, j];
}
if (fit(tmp, n) == 100.0)
{
printc(tmp, n);
goto a;
}
}
int comp = 1;
int counter = 0;
cros = crossover(pop, n);
while (comp == 1)
{
this.Text = counter.ToString();
counter++;
label1.Text = "";
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
label1.Text += cros[i, j];
}
label1.Text += "\n\r";
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
tmp[j] = cros[i, j];
}
if (fit(tmp, n) == 100.0)
{
printc(tmp, n);
comp = 0;
goto a;

}
}
cros = crossover(cros, n);
}
a:
this.Text = "find";
}
}
}


B ) TSP IN Mathlab with GA

clear;clc

matris=rand(50,50);
matris=round(matris*1)+1;
siz=size(matris);
for i=1:siz(2)
for j=1:siz(2)
% m(i,j)=m(j,i);
if i==j
matris(i,j)=0;
end
end
end

qtybest=10;
n=siz(2);
N=100;
F=n+1;
C=40;
M=60;
for i = 1:N
for j= 1 :n
pop (i,j)=j;
end

for i2=1:n
r1=round(rand*(n-1))+1;
r2=round(rand*(n-1))+1;
t=pop(i,r1);
pop(i,r1)=pop(i,r2);
pop(i,r2)=t;
end
end
k=1;
for i=1:N
pop(i,F)=Fitness(pop(i,1:n ),siz(2),matris);
end
while( pop(1,F) ~= siz(2)-1 )
Plot(k)=pop(1,F);
k=k+1;
for i=N+1:N+C
r1=round(rand*(N-1))+1;
pop(i,1:n)=Crossover(pop(r1,1:n),siz(2) );
end
for i=N+C+1:N+C+M
r1=round(rand*(N-1))+1;
pop(i,1:n)=Mutation(pop(r1,1:n),siz(2));
end
for i=N+1:N+C+M
pop(i,F)=Fitness(pop(i,1:n ),siz(2),matris);
end
pop1=Selection(pop,N+M+C,N,F);
pop2=Sort(pop,F,N+C+M);
for i=1:qtybest
pop3(i,1:F)=pop2(i,1:F);
end
for i=qtybest+1:N
pop3(i,1:F)=pop1((i-qtybest),1:F);
end
pop=pop3;
fasele=pop(1,F)
generation=k
clear pop1;clear pop2; clear pop3
for i = 1:siz(2)-1
x(i)=matris(pop(1,i),pop(1,i+1));
end
x(F)=pop(1,F);
end
plot(Plot);
function ret=Selection(pop,L,n,F)
for i=1:n
r1=round(rand*(L-1))+1;
r2=round(rand*(L-1))+1;
if pop(r1,F)<pop(r2,F)
P(i,1:F)=pop(r1,1:F);
else
P(i,1:F)=pop(r2,1:F);
end
end
ret=P;
function ret=Crossover(A,si)
r=round(rand*(si-1))+1;
for i=1:r
B(i)=A(i);
end
j=si;
for i=r+1:si
B(i)=A(j);
j=j-1;
end
ret=B;
function ret=Mutation(A,si)
r1=round(rand*(si-1))+1;
B=A;
r2=round(rand*(si-1))+1;
B(r1)=A(r2);
B(r2)=A(r1);
ret=B;
function ret=Fitness(A,si,matris1)
x=0;
for i = 1:si-1
x=x+matris1(A(i),A(i+1));
end
ret=x;
function ret=Sort(P,b,N)
for i=1:N
for j=i+1:N
if (P(i,b)>P(j,b))
T(1:b)=P(i,1:b);
P(i,1:b)=P(j,1:b);
P(j,1:b)=T(1:b);
end
end
end
ret=P;

masoud1368 ۰۹-۱۶-۱۳۹۰ ۱۰:۵۵ قبل از ظهر

مثال
 
سلام دوستان
می خواستم بدونم می توانید کد برنامه های این مثال رو بهم بدهید ؟
max f(x) = x^2 بازه ی x بین صفر تا 63 و n=6 می باشد .

aramx ۰۲-۴-۱۳۹۱ ۱۰:۱۵ بعد از ظهر

سلام.كسي در مورد رنگ آميزي گراف u500 10 با الگوريتم ژنتيك چيزي اگه ميدونه راهنمايي كنه لطفا:) ممنون

انریکو ۰۲-۵-۱۳۹۱ ۰۹:۳۸ قبل از ظهر

جون خودتون اگه در مورد حل معادله درجه 2 با استفاده از الگوریتم ژنتیک میدونه بگه دیگه

0251_0611 ۰۲-۹-۱۳۹۱ ۰۵:۰۴ بعد از ظهر

alipooجان عزیزم برای تابع fitness یه مسئله اول کروموزوم هاشو تشکیل بده بعد ارزشیابی کن تا بتونی به itness دلخواهت برسی

0251_0611 ۰۲-۹-۱۳۹۱ ۰۵:۰۸ بعد از ظهر

max f(x) = x^2
n کجای این مسئله جایگذاری میشه؟

golesorkh ۰۲-۲۹-۱۳۹۱ ۰۵:۰۳ بعد از ظهر

سودوكو
 
نقل قول:

نوشته اصلي بوسيله reyhane (پست 1886)
حل مسائل به کمک الگوريتم ژنتيک!

سلام
ميشه حل مسئله تشريحي برنامه سودوكو را با الگوريتم ژنتيك با زبان سي شارپ برام بفرستيد اين مدتي خيلي وقتمو گرفته اگه كمكم كنيد ممنون ميشم چون واقعا بهش احتياج دارم.

persia star ۰۲-۳۰-۱۳۹۱ ۰۶:۳۴ بعد از ظهر

باسلام لطفا باالگوریتم ژنتیک موتورdcرو راه اندازی کنید

seda ۰۴-۲۷-۱۳۹۱ ۰۶:۳۹ بعد از ظهر

سلام کسی در مورد حل مسیله ضریب ماتریس ها با کمک الگوریتم ژنتیک داره ؟اگه دارید کمکم کنید . ممنون

md_azizian ۰۴-۲۷-۱۳۹۱ ۰۸:۴۴ بعد از ظهر

نقل قول:

نوشته اصلي بوسيله seda (پست 25260)
سلام کسی در مورد حل مسیله ضریب ماتریس ها با کمک الگوریتم ژنتیک داره ؟اگه دارید کمکم کنید . ممنون

سلام دوست عزیز
مسئله ضریب ماتریس ها چیه؟:confused:
یه کم توضیح بیشتر بده:9:

reza2014w ۰۴-۳۱-۱۳۹۱ ۰۴:۱۱ بعد از ظهر

سلام من یه پروژه دارم که زمانبندی کلاس های درسی با الگوریتم زنتیکه .کسی تو سی شارپ کدشو داره به من بده یا منو راهنمایی کنه اردس ایمیلم هم هست jjjabc122@yahoo.com

3ta ۰۵-۳-۱۳۹۱ ۰۸:۰۵ قبل از ظهر

سلام توروخدا میشه کد تابعxبه توان2 + 6x-3با الگوریتم ژنتیک بهم بگین؟ خیلی ضروریه

n67 ۰۵-۲۵-۱۳۹۱ ۰۳:۵۷ بعد از ظهر

سلام دوستان
موضوع پایان نامه من درباره خوشه بندی با استفاده از الگوریتم ژنتیک میباشد
اگر مطالبی پیرامون این موضوع دارید لینکش را برایم قرار دهید ممنون میشم

parisa.mardani69 ۰۶-۲۰-۱۳۹۱ ۰۲:۰۹ قبل از ظهر

سلام دوستان
وقتتون بخیر
اگه مقاله ای در رابطه با حل مسئله tsp با الگوریتم ژنتیک دارید که به صورت مسئله ی حل شده باشه مثلا آبرسانی یا گازرسانی و اینجور مسائل لطفا برام بفرستید
mardani.parisa@yahoo.com


زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۸:۳۴ بعد از ظهر ميباشد.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.