PDA

View Full Version : سوال: الگوريتم ژنتيکی موازی برای حل مسئله درخت جستجوی دودويی بهينه با مالتی پاسکال



ka1_fire
پنج شنبه 29 دی 1390, 00:36 صبح
یه سوالی داشتم از محضر اساتید الگوریتم زیر الگوريتم ژنتيکی موازی برای حل مسئله درخت جستجوی دودويی بهينه با مالتی پاسکال هست من قصد دارم این الگوریتم رو در زبان دیگری موازی سازی کنم اساتیدی که مالتی پاسکال بلدند لطفآ یه توضیحی بدن که در این الگوریتم چه کارهایی انجام شده و موازی سازی به چه شکلی پیاده سازی شده چون من مالتی پاسکال بلد نیستم و نمیدونم چی به چیه. پیشاپیش از راهنمای هاتون متشکرم.
input(n, p)
input(popsizepercent, maxgen, pcross, pmutate, seed)
fork forall i := 1 to n do
fork a[i, i – 1] := 0
fork r[t, i – 1] := 0
fork w[i, i] := p[i]
fork a[i, i] := p[i]
r[i, i] := i
fork a[n, n + 1] := 0
r[n, n + 1] := 0
join
join
for d := 1 to n – 1 do
forall i := 1 to n – d do
j := i + d
k := SGA(i, j)
fork r[i, j] := k
w[i, j] := w[i, j – 1] + w[j, j]
a[i, j] := a[i, k – 1] + a[k + 1, j] + w[i, j]
SGA(i, j):
popsize := (j – i + 1) * popsizepercent / 100
lchrom := log j + 1
gen := 0
initialize(gen)
repeat
gen := gen + 1
generate(gen)
k := min(individuals)
oldpop := newpop
until gen = maxgen
return(k)
generate(gen):
j:=1
repeat
fork mate1 := fitness_and_select(oldpop)
mate2 := fitness_and_select(oldpop)
join
fork newpop[j] :=
crossover_and_mutation(mate1, mate2, pcross,
pmutate)
newpop[j + 1] :=
crossover_and_mutation(mate1, mate2, pcross, pmutate)
join
j := j + 2
until j > popsize
make_c(i, j, l):
k := r[i, j]
if k <> 0 then
fork c[k] := l
fork make_c(i, k – 1, l + 1)
make_c(k + 1, j, l +1)
t := a[1, n]
output(c, t)

ka1_fire
یک شنبه 02 بهمن 1390, 16:46 عصر
کسی نظری نداره؟!!!