![]() |
|
|
![]()
|
|
| Ruff18 |
|
|||
|
Unregistered |
[color=darkblue][/color]
А где можно качнуть решение задачи о комивояжёре на С++ или Paskale ? |
|||
|
||||
| Graf Zeppelin |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 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! |
|||
|
||||
| neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Я писал прогу для генетиков, как раз решение той же задачи, только на генах в ДНК.
Присоединённый файл ( Кол-во скачиваний: 83 )
TSP_Heuristics.zip-------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
| IgorMAN |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 14.8.2006 Репутация: нет Всего: нет |
Добрый день уважаемые програмисты!!! А есть у кого-нибудь решение задачи коммивояжера методом ГА в ручную(на бумаге), с 4 или 5 городами??? Если есть то скиньте на [email protected]
Пожалуйсто не игнорируйте мое сообщение, от него может зависеть будущее моего обучения. |
|||
|
||||
| Magister Y0da |
|
|||
![]() Зелёненький ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 30.11.2004 Репутация: 2 Всего: 2 |
Graf Zeppelin, а можешь выложить скаченное http://www.codeproject.com/cpp/tspapp.asp?
--------------------
|
|||
|
||||
| DAGON |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 17.5.2007 Репутация: нет Всего: нет |
Народ плиз есть у когонить листинг жадного алгоритма на паскеле или ВБ если есть плиз скиньте на мыло [email protected]
Буду очень благодарен |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |