Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача коммивояжера, кратчайший обход всех объектов 
:(
    Опции темы
Ruff18
Дата 11.6.2004, 17:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











[color=darkblue][/color]
А где можно качнуть решение задачи о комивояжёре на С++ или Paskale ? thumbs-up.gif
  Вверх
Graf Zeppelin
Дата 25.6.2004, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 28.3.2004

Репутация: нет
Всего: 1



/*
Решение Задачи Коммивояжера методом Монте-Карло
Лебедев Сергей 21.06.2004
*/
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
#include <alloc.h>
#include <graphics.h>

int x[255],y[255];

int minimum(long dis[1000],int n)
{
unsigned long i,tmp,f;
tmp=800;
for (i=0;i<n;i++)
{
if (dis[i]<=tmp)
{
f=i;
tmp=dis[f];
}
}
return(f);
}

long viability(char *string,char n)
{
char i;
long viability=0;
viability=max(abs(x[string[0]]-x[string[n-1]]),abs(y[string[0]]-y[string[n-1]]));
for (i=0;i<n-1;i++)
{
viability+=max(abs(x[string[i]]-x[string[i+1]]),abs(y[string[i]]-y[string[i+1]]));
}
return(viability);
}


void inversion(char *string, char n)
{
char i,j,k,*tmp;
i=random(n);
j=random(n);
tmp=malloc((abs(i-j)+1)*sizeof(char));
for (k=min(i,j);k<=max(i,j);k++)
{
*(tmp+k-min(i,j))=*(string+k);
}

for (k=min(i,j);k<=max(i,j);k++)
{
*(string+k)=*(tmp+max(i,j)-k);
}
free(tmp);
}

void main(void)
{
long dis[255];
char string[255],elite[255],chk[255];
char i,j,k,l,n=100;
unsigned int s=0;
int graphdriver,graphmode;
detectgraph(&graphdriver,&graphmode);
initgraph(&graphdriver,&graphmode,"C:\\TC\\BGI");

randomize();
clrscr();
cleardevice();
for (i=0;i<n;i++)
{
x[i]=random(getmaxx());
y[i]=random(getmaxy());
}

for (l=0;l<n;l++)
{
chk[l]=0;
}
l=0;
//LazyFrog-algorithm
for (j=1;j<n;j++)
{
for (i=0;i<n;i++)
{
if ((chk[i]!=1)&&(i!=l))
{
dis[i]=max(abs(x[i]-x[l]),abs(y[i]-y[l]));
}
else
{
dis[i]=2000;
}
}
chk[l]=1;
k=minimum(dis,n);
setcolor(RED);
string[j]=k;
l=k;
}
string[0]=0;
for (i=0;i<n;i++)
{
putpixel(x[i],y[i],GREEN);
}
for (i=0;i<n;i++)
{
// string[i]=i;
elite[i]=string[i];
}
do
{
for (i=0;i<n;i++)
{
string[i]=elite[i];
}
inversion(&string,n);
if (viability(&string,n)<viability(&elite,n))
{
for (i=0;i<n;i++)
{
elite[i]=string[i];
// printf("%3d",elite[i]);
}
// printf(": Elite\n");
s=0;
}
s++;
}while (s<pow(2,15));
printf("%d \nPress Any Key",viability(&elite,n));
getch();
cleardevice();
for (i=0;i<n-1;i++)
{
setcolor(BLUE);
line(x[elite[i]],y[elite[i]],x[elite[i+1]],y[elite[i+1]]);
}
line(x[elite[0]],y[elite[0]],x[elite[n-1]],y[elite[n-1]]);

for (i=0;i<n;i++)
{
putpixel(x[i],y[i],GREEN);
}

getch();
closegraph();
}
--------------------
Jah, help me!
PM MAIL   Вверх
neutrino
Дата 31.7.2004, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Я писал прогу для генетиков, как раз решение той же задачи, только на генах в ДНК.

Присоединённый файл ( Кол-во скачиваний: 83 )
Присоединённый файл  TSP_Heuristics.zip


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
IgorMAN
Дата 14.8.2006, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 14.8.2006

Репутация: нет
Всего: нет



Добрый день уважаемые програмисты!!! А есть у кого-нибудь решение задачи коммивояжера методом ГА в ручную(на бумаге), с 4 или 5 городами??? Если есть то скиньте на [email protected]
Пожалуйсто не игнорируйте мое сообщение, от него может зависеть будущее моего обучения. smile 
PM MAIL   Вверх
Magister Y0da
Дата 12.1.2007, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зелёненький
*


Профиль
Группа: Участник
Сообщений: 235
Регистрация: 30.11.2004

Репутация: 2
Всего: 2



Graf Zeppelin, а можешь выложить скаченное http://www.codeproject.com/cpp/tspapp.asp?
--------------------
PM MAIL ICQ   Вверх
DAGON
Дата 17.5.2007, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 17.5.2007

Репутация: нет
Всего: нет



Народ плиз есть у когонить листинг жадного алгоритма на паскеле или ВБ если есть плиз скиньте на мыло [email protected]
Буду очень благодарен
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0838 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.