Autor Tópico: algoritmo do caxeiro viajante  (Lida 5864 vezes)

Offline sousas2

  • Usuário Ubuntu
  • *
  • Mensagens: 1
    • Ver perfil
algoritmo do caxeiro viajante
« Online: 26 de Junho de 2018, 22:32 »
olá pessoal, preciso de um algoritmo de caxeiro viajante para resolver a questão abaixo

Considere uma região com 8 cidades localizadas por:
- Cidade 1 – (7,4)
- Cidade 2 – (4,3)
- Cidade 3 – (4,4)
- Cidade 4 – (1,3)
- Cidade 5 – (2,4)
- Cidade 6 – (5,1)
- Cidade 7 – (2,3)
- Cidade 8 – (3,7)
a) Detemine a ordem de visitação que resulta no menor caminho considerando a volta pra casa
(caminho cíclico).
b) Determine a ordem de visitação que resulta no menor caminho considerando que o caminho
deve começar na cidade 1 e terminar na cidade 8.

Que use o mesmo randômico do que foi usado nessa questão que calcula (pi/4)

PROGRAM pi_calculator

IMPLICIT none
INTEGER :: i,n,clock,np,ns,nc
INTEGER,ALLOCATABLE:: seed(:)
REAL(KIND=8)::r,x,y,pi 

! Initializing random number generation!
CALL RANDOM_SEED(size=n)                    !
ALLOCATE(seed(n))                                       !
CALL SYSTEM_CLOCK(count=clock)        !
DO i=1,n                                                            !
  seed(i)=clock+(i-1)*37                                !
END DO                                                            !
CALL RANDOM_SEED(put=seed)              !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 np=10000000
ns=np
nc=0
DO i=1,np
  CALL RANDOM_NUMBER(x)
  x=2.0D0*x-1.0D0
  CALL RANDOM_NUMBER(y)
  y=2.0D0*y-1.0D0
  r=DSQRT(x*x+y*y)
  IF(r.le.1.0D0) nc=nc+1
END DO

pi=DFLOAT(nc)/DFLOAT(ns)
WRITE(*,*) 'PI=',pi


END PROGRAM pi_calculator

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re:algoritmo do caxeiro viajante
« Resposta #1 Online: 27 de Junho de 2018, 20:24 »
Oi @souza2, que linguagem é essa?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D