|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.12.2010, 23:59 | #1 |
Новичок
Джуниор
Регистрация: 07.12.2010
Сообщений: 1
|
FreeBasic, задача Коммивояжера, метод Монте-Карло
Есть задача на ФБ, готовая, но в ней ошибка. Она не хочет выдавать ответ, постоянно считает путь, а на кратчайшем не останавливается. Кажется, что не прописана двойная точность, но я не понимаю что это.
Пожалуйста, помогите исправить и если не трудно, нужно еще построить проверку, при условии что города расположены по кругу и построить две зависимости: Длина пути от времени счета, количество городов от длины пути. DEFDBL A-Z DECLARE SUB INIT (X(),Y(),N,R(),V()) DECLARE SUB SUMDIST (V(),N,R(),L) DECLARE SUB PICTURE (X(),Y(),V(),N) DECLARE SUB MONTECARLO (R(),V(),N,L,T) N=40 DIM X(N),Y(N),V(N),R(N,N) CALL INIT(X(),Y(),N,R(),V()) CALL SUMDIST(V(),N,R(),L) T=1 DO LOCATE 1,1: PRINT T,L:T=0.94*T FOR I=1 TO N*1000 CALL MONTECARLO (R(),V(),N,L,T) NEXT I CALL PICTURE (X(),Y(),V(),N) LOOP SUB INIT (X(),Y(),N,R(),V()) SCREEN 20 VIEW (10,10)-(740,740) WINDOW (-1,-1)-(1,1) FOR I=1 TO N X(I)=2*RND-1 Y(I)=2*RND-1 NEXT I FOR I=1 TO N:FOR J=1 TO N R(I,J)=SQR((X(I)-X(J))^2+(Y(I)-Y(J))^2) NEXT I:NEXT J FOR I=1 TO N V(I)=I NEXT I END SUB SUB SUMDIST (V(),N,R(),L) FOR I=1 TO N-1 L=L+R(V(I),V(I+1)) NEXT I L=L+R(V(1),V(N)) END SUB SUB PICTURE (X(),Y(),V(),N) CLS 'Очистить экран FOR I=1 TO N CIRCLE (X(I),Y(I)),0.01,14 NEXT I FOR I=1 TO N-1 LINE (X(V(I)),Y(V(I)))-(X(V(I+1)),Y(V(I+1))) NEXT I LINE (X(V(1)),Y(V(1)))-(X(V(N)),Y(V(N))) END SUB SUB MONTECARLO (R(),V(),N,L,T) I=INT(N*RND+1) DO: J=INT(N*RND+1):LOOP UNTIL I<>J NI=V(J):NJ=V(I) V(I)=NI:V(J)=NJ CALL SUMDIST(V(),N,R(),Lf) dL=Lf-L IF dL>0 THEN IF EXP(-dL/T)<RND THEN V(I)=NJ:V(J)=NI:EXIT SUB L=Lf END SUB |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
задача коммивояжера метод ветвей и границ | AngelMarik | Помощь студентам | 0 | 04.11.2010 12:03 |
Метод Монте-Карло.Освещение. Делфи,С++ | pavlucios | Помощь студентам | 0 | 22.09.2010 02:29 |
Метод Монте-Карло | LiptonICE | Помощь студентам | 6 | 07.05.2010 20:37 |
интегралы и метод монте-карло | byte916 | Помощь студентам | 2 | 19.01.2010 16:13 |
Метод Монте-Карло литература или примеры программ на С++ или С | MIKI | Помощь студентам | 2 | 09.12.2008 13:33 |