algoritmo do caxeiro viajante

Iniciado por sousas2, 26 de Junho de 2018, 22:32

tópico anterior - próximo tópico

sousas2

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

zekkerj

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