Автор работы: Пользователь скрыл имя, 26 Февраля 2011 в 12:33, курсовая работа
Актуальность работы. В последние годы интенсивно разрабатывается научное направление с названием «Природные вычисления» (Natural Computing), объединяющее математические методы, в которых заложены принципы природных механизмов принятия решений. Эти механизмы обеспечивают эффективную адаптацию флоры и фауны к окружающей среде на протяжении нескольких миллионов лет.
Введение..................................................................................................................3
Глава 1. Муравьиные алгоритмы.
1. Биологические принципы поведения муравьиной колонии.................5
2. Истории создания муравьиных алгоритмов...........................................7
3. Концепция муравьиных алгоритмов.................................. …………....9
4. Обобщённый алгоритм............................................... ...........................11
5. Этапы решения задачи при помощи муравьиных алгоритмов...........13
6. Достоинства и недостатки муравьиных алгоритмов...........................14
6.1. Достоинства:.........................................................................................14
6.2. Недостатки:...........................................................................................14
Глава 2. Применение муравьиных алгоритмов при решении задач оптимизации.
1.1. Применение муравьиных алгоритмов для задачи
коммивояжёра..............................................................................................16
1.2. Муравьиный алгоритм для задачи коммивояжёра в псевдокоде..............................................................................................................25
2.1. Задача оптимального распределения файлов в компьютерной сети……………………………………………………………………….…...28
2.2 Муравьиный алгоритм для задачи распределения файлов
в компьютерной сети в псевдокоде…………………………..…………29
Заключение………………...................................................................................32
Список использованной литературы...................................................................33
form1.StringGrid1.Cells[3,4]:=
form1.StringGrid1.Cells[3,5]:=
form1.StringGrid1.Cells[4,1]:=
form1.StringGrid1.Cells[4,2]:=
form1.StringGrid1.Cells[4,3]:=
form1.StringGrid1.Cells[4,5]:=
form1.StringGrid1.Cells[5,1]:=
form1.StringGrid1.Cells[5,2]:=
form1.StringGrid1.Cells[5,3]:=
form1.StringGrid1.Cells[5,4]:=
form1.StringGrid2.Cells[1,2]:=
form1.StringGrid2.Cells[1,3]:=
form1.StringGrid2.Cells[1,4]:=
form1.StringGrid2.Cells[1,5]:=
form1.StringGrid2.Cells[2,1]:=
form1.StringGrid2.Cells[2,3]:=
form1.StringGrid2.Cells[2,4]:=
form1.StringGrid2.Cells[2,5]:=
form1.StringGrid2.Cells[3,1]:=
form1.StringGrid2.Cells[3,2]:=
form1.StringGrid2.Cells[3,4]:=
form1.StringGrid2.Cells[3,5]:=
form1.StringGrid2.Cells[4,1]:=
form1.StringGrid2.Cells[4,2]:=
form1.StringGrid2.Cells[4,3]:=
form1.StringGrid2.Cells[4,5]:=
form1.StringGrid2.Cells[5,1]:=
form1.StringGrid2.Cells[5,2]:=
form1.StringGrid2.Cells[5,3]:=
form1.StringGrid2.Cells[5,4]:=
end;
end.
2.Листинг программы решения задачи распределения файлов в компьютерной сети в среде Delphi.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
StringGrid1: TStringGrid;
Label1: TLabel;
Memo2: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
label metka;
const m=5;
const n=3;
var t,i,k,j,number:integer;
pk,gk:string;
log,log1:boolean;
q,g,d,c_f,rec,sx,ps,ro,s,stay:
x,xrez,f:array[1..m,1..n] of integer;
p:array[1..m,1..n] of real;
fhelp,tay,b:array[1..n] of real;
v:array[1..n] of integer;
procedure TForm1.Button1Click(Sender: TObject);
begin
randomize;
t:=1; d:=100;
rec:=0.001;
ro:=0.01;
for j:=1 to n do begin
tay[j]:=0.01;
b[j]:=random(150);end;
{b[1]:=1000;b[2]:=1;b[3]:=1;}
for i:=1 to m do
for j:=1 to n do begin
f[i,j]:=random(10);
x[i,j]:=0;end;
for i:=1 to m do v[i]:=random(40)+1;
for j:=1 to n do begin
fhelp[j]:=0;
for i:=1 to m do
fhelp[j]:=fhelp[j]+f[i,j];end;
{-----------------methods
begin-------------------------
while (t<50) do
begin
for i:=1 to m do
for j:=1 to n do
x[i,j]:=0;
memo1.lines.add('t='+inttostr(
{---------razmeshenie faila--------------}
memo1.Clear;
for i:=1 to m do
begin
s:=0;
for j:=1 to n do
s:=s+fhelp[j]*tay[j];
ps:=0;
for j:=1 to n do
begin
p[i,j]:=(tay[j]*fhelp[j])/(s);
str(p[i,j]:3:3,pk);
memo1.lines.add(pk);
ps:=ps+p[i,j]*100;
end;
{generation g}
log:=false;
while (log=false) do begin
g:=(random(99)+1);
memo1.lines.add('g='+
number:=0;
q:=p[i,1]*100; {writeln('qb',q:4:2);}
if (g>0)and(g<q) then begin number:=1;log:=true;end;
for j:=1 to n-1 do
begin
if (g>q)and(g<(p[i,j+1]*100+q)) then
begin
number:=j+1;log:=true;
end;
q:=q+p[i,j+1]*100;
{writeln('q=',q:4:2);}
end;
x[i,number]:=1;
log1:=true;
for j:=1 to n do
begin
sx:=0;
for k:=1 to m do sx:=sx+v[k]*x[k,j];
if (sx>b[j]) then log1:=false;
end;
if (log1=false) then
begin log:=false; x[i,number]:=0;end;
memo1.lines.add('num='+
{readln;}
end;{-------------end generation g----------}
//writeln('-------------');
x[i,number]:=1;
tay[number]:=(1-ro)*tay[
stay:=0;
for j:=1 to n do stay:=stay+tay[j];
for j:=1 to n do tay[j]:=(1-ro)*tay[j]+stay/d;
end;{---------------end
i----------------------}
c_f:=0;
for k:=1 to m do
for j:=1 to n do
c_f:=c_f+(f[k,j]*v[k]*x[k,j]);
if c_f>rec then begin
for k:=1 to m do
for j:=1 to n do
xrez[k,j]:=x[k,j];
rec:=c_f;end;
memo1.lines.add('c_f='+
t:=t+1;
end;
stringgrid1.ColCount:=n+1;
stringgrid1.RowCount:=m+1;
for i:=1 to m do begin
for j:=1 to n do
form1.StringGrid1.Cells[j,i]:=
//memo1.lines.add(floattostr(
end;
memo2.lines.add('-------------
for i:=1 to m do
//i:=1;
memo2.lines.add('ves ' + inttostr(i) + ' faila='+floattostr(v[i]));
memo2.lines.add('-------------
for j:=1 to n do
//j:=1;
memo2.Lines.Add('ves ' + inttostr(j) + ' yzla=' + floattostr(b[j]));
memo2.lines.add ('c_f='+floattostr(rec));
end;
end.
Информация о работе Применение муравьиных алгоритмов при решении задач оптимизации