ࡱ> Root Entry*0_^ Contents Root Entry*0_^ِContents {\rtf1\ansi\ansicpg1252\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fswiss\fprq2 System;}{\f3\fmodern Courier New;}} {\colortbl\red0\green0\blue0;\red0\green175\blue0;\red0\green0\blue255;} \deflang1046\pard\plain\f3\fs20\cf2 MODEL\plain\f3\fs20\cf0 : \par \par \plain\f3\fs20\cf1 ! Problema de Roteamento de Ve\'edculos com frota homog\'eanea;\plain\f3\fs20\cf0 \par \par \plain\f3\fs20\cf1 !************************************;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf1 ! ATEN\'c7\'c3O: Formula\'e7\'f5es com mais do ;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf1 ! que 12 cidades poder\'e3o n\'e3o ser ;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf1 ! resolvidas em um tempo razo\'e1vel! ;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf1 !************************************;\plain\f3\fs20\cf0 \par \par \plain\f3\fs20\cf2 SETS\plain\f3\fs20\cf0 : \par \plain\f3\fs20\cf1 ! Q(I) \'e9 a quantidade de um produto requerido na cidade I;\plain\f3\fs20\cf0 \par CIDADES/\plain\f3\fs20\cf2 @ole\plain\f3\fs20\cf0 ('PRV7.XLS')/: Q; \par \par \plain\f3\fs20\cf1 ! D(I,J) \'e9 a dist\'e2ncia da cidade I \'e0 cidade J \par X(I,J) \'e9 uma vari\'e1vel 0-1: Ela vale 1 se o ve\'edculo faz a \par viagem da cidade I \'e0 cidade J e vale 0 caso contr\'e1rio \par Y(I,J) \'e9 a quantidade de fluxo da cidade I \'e0 cidade J;\plain\f3\fs20\cf0 \par MATRIZ(CIDADES, CIDADES): D, X, F; \par \plain\f3\fs20\cf2 ENDSETS\plain\f3\fs20\cf0 \par \par \plain\f3\fs20\cf2 DATA\plain\f3\fs20\cf0 : \par Q = \plain\f3\fs20\cf2 @ole\plain\f3\fs20\cf0 ('PRV7.XLS','demandas'); \par D = \plain\f3\fs20\cf2 @ole\plain\f3\fs20\cf0 ('PRV7.XLS','distancias'); \par VCAP = \plain\f3\fs20\cf2 @ole\plain\f3\fs20\cf0 ('PRV7.XLS','vcap'); \plain\f3\fs20\cf1 ! VCAP \'e9 a capacidade de um ve\'edculo;\plain\f3\fs20\cf0 \par NVEI = \plain\f3\fs20\cf2 @ole\plain\f3\fs20\cf0 ('PRV7.XLS','nvei'); \plain\f3\fs20\cf1 ! NVEI \'e9 o n\'famero m\'e1ximo dispon\'edvel de ve\'edculos;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 ENDDATA\plain\f3\fs20\cf0 \par \par \plain\f3\fs20\cf1 ! Minimize a dist\'e2ncia total percorrida;\plain\f3\fs20\cf0 \par [FO] \plain\f3\fs20\cf2 MIN\plain\f3\fs20\cf0 = \plain\f3\fs20\cf2 @SUM\plain\f3\fs20\cf0 (MATRIZ(I,J) | I #NE# J: D(I,J) * X(I,J)); \par \par \plain\f3\fs20\cf1 ! Um ve\'edculo n\'e3o viaja de uma cidade para ela mesma....;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @FOR\plain\f3\fs20\cf0 (CIDADES(J): \par X(J,J) = 0; \par ); \par \par \plain\f3\fs20\cf1 ! As vari\'e1veis X s\'e3o bin\'e1rias;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @FOR\plain\f3\fs20\cf0 (MATRIZ(I,J): \plain\f3\fs20\cf2 @BIN\plain\f3\fs20\cf0 (X(I,J))); \par \par \plain\f3\fs20\cf1 ! A uma cidade J s\'f3 chega um \'fanico ve\'edculo;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @FOR\plain\f3\fs20\cf0 (CIDADES(J) | J #NE# 1: \par \plain\f3\fs20\cf2 @SUM\plain\f3\fs20\cf0 (CIDADES(I): X(I,J)) = 1 \par ); \par \par \plain\f3\fs20\cf1 ! De uma cidade J s\'f3 sai um \'fanico ve\'edculo;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @FOR\plain\f3\fs20\cf0 (CIDADES(J) | J #NE# 1: \par \plain\f3\fs20\cf2 @SUM\plain\f3\fs20\cf0 (CIDADES(I): X(J,I)) = 1 \par ); \par \par \plain\f3\fs20\cf1 ! Ao passar por uma cidade I o ve\'edculo deve atender sua demanda, \par isto \'e9, deve deixar Q(I) unidades de produto na cidade I;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @FOR\plain\f3\fs20\cf0 (CIDADES(I) | I #NE# 1: \par \plain\f3\fs20\cf2 @SUM\plain\f3\fs20\cf0 (CIDADES(J): F(I,J)) - \plain\f3\fs20\cf2 @SUM\plain\f3\fs20\cf0 (MATRIZ(I,J): F(J,I)) = Q(I) \par ); \par \par \plain\f3\fs20\cf1 ! A quantidade de fluxo de I para J n\'e3o pode superar a capacidade \par do ve\'edculo;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @FOR\plain\f3\fs20\cf0 (MATRIZ(I,J): F(I,J) <= VCAP*X(I,J)); \par \par \plain\f3\fs20\cf1 ! O n\'famero de ve\'edculos que saem do dep\'f3sito deve ser NVEI, no m\'e1ximo;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @SUM\plain\f3\fs20\cf0 (CIDADES(J)| J #NE# 1: X(1, J)) <= NVEI; \par \par \plain\f3\fs20\cf1 ! O n\'famero de ve\'edculos que retornam ao dep\'f3sito deve ser NVEI, no m\'e1ximo;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @SUM\plain\f3\fs20\cf0 (CIDADES(J)| J #NE# 1: X(J, 1)) <= NVEI; \par \par \plain\f3\fs20\cf2 data\plain\f3\fs20\cf0 : \par \plain\f3\fs20\cf2 @ole\plain\f3\fs20\cf0 ('prv7.xls','solu\'e{\rtf1\ansi\ansicpg1252\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fswiss\fprq2 System;}{\f3\fmodern Courier New;}} {\colortbl\red0\green0\blue0;\red0\green175\blue0;\red0\green0\blue255;} \deflang1046\pard\plain\f3\fs20\cf2 MODEL\plain\f3\fs20\cf0 : \par \par \plain\f3\fs20\cf1 ! Problema de Roteamento de Ve\'edculos com frota homog\'eanea;\plain\f3\fs20\cf0 \par \par \plain\f3\fs20\cf1 !************************************;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf1 ! ATEN\'c7\'c3O: Formula\'e7\'f5es com mais do ;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf1 ! que 12 cidades poder\'e3o n\'e3o ser ;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf1 ! resolvidas em um tempo razo\'e1vel! ;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf1 !************************************;\plain\f3\fs20\cf0 \par \par \plain\f3\fs20\cf2 SETS\plain\f3\fs20\cf0 : \par \plain\f3\fs20\cf1 ! Q(I) \'e9 a quantidade de um produto requerido na cidade I;\plain\f3\fs20\cf0 \par CIDADES/\plain\f3\fs20\cf2 @ole\plain\f3\fs20\cf0 ('PRV7.XLS')/: Q; \par \par \plain\f3\fs20\cf1 ! D(I,J) \'e9 a dist\'e2ncia da cidade I \'e0 cidade J \par X(I,J) \'e9 uma vari\'e1vel 0-1: Ela vale 1 se o ve\'edculo faz a \par viagem da cidade I \'e0 cidade J e vale 0 caso contr\'e1rio \par Y(I,J) \'e9 a quantidade de fluxo da cidade I \'e0 cidade J;\plain\f3\fs20\cf0 \par MATRIZ(CIDADES, CIDADES): D, X, F; \par \plain\f3\fs20\cf2 ENDSETS\plain\f3\fs20\cf0 \par \par \plain\f3\fs20\cf2 DATA\plain\f3\fs20\cf0 : \par Q = \plain\f3\fs20\cf2 @ole\plain\f3\fs20\cf0 ('PRV7.XLS','demandas'); \par D = \plain\f3\fs20\cf2 @ole\plain\f3\fs20\cf0 ('PRV7.XLS','distancias'); \par VCAP = \plain\f3\fs20\cf2 @ole\plain\f3\fs20\cf0 ('PRV7.XLS','vcap'); \plain\f3\fs20\cf1 ! VCAP \'e9 a capacidade de um ve\'edculo;\plain\f3\fs20\cf0 \par NVEI = \plain\f3\fs20\cf2 @ole\plain\f3\fs20\cf0 ('PRV7.XLS','nvei'); \plain\f3\fs20\cf1 ! NVEI \'e9 o n\'famero m\'e1ximo dispon\'edvel de ve\'edculos;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 ENDDATA\plain\f3\fs20\cf0 \par \par \plain\f3\fs20\cf1 ! Minimize a dist\'e2ncia total percorrida;\plain\f3\fs20\cf0 \par [FO] \plain\f3\fs20\cf2 MIN\plain\f3\fs20\cf0 = \plain\f3\fs20\cf2 @SUM\plain\f3\fs20\cf0 (MATRIZ(I,J) | I #NE# J: D(I,J) * X(I,J)); \par \par \plain\f3\fs20\cf1 ! Um ve\'edculo n\'e3o viaja de uma cidade para ela mesma....;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @FOR\plain\f3\fs20\cf0 (CIDADES(J): \par X(J,J) = 0; \par ); \par \par \plain\f3\fs20\cf1 ! As vari\'e1veis X s\'e3o bin\'e1rias;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @FOR\plain\f3\fs20\cf0 (MATRIZ(I,J): \plain\f3\fs20\cf2 @BIN\plain\f3\fs20\cf0 (X(I,J))); \par \par \plain\f3\fs20\cf1 ! A uma cidade J s\'f3 chega um \'fanico ve\'edculo;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @FOR\plain\f3\fs20\cf0 (CIDADES(J) | J #NE# 1: \par \plain\f3\fs20\cf2 @SUM\plain\f3\fs20\cf0 (CIDADES(I): X(I,J)) = 1 \par ); \par \par \plain\f3\fs20\cf1 ! De uma cidade J s\'f3 sai um \'fanico ve\'edculo;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @FOR\plain\f3\fs20\cf0 (CIDADES(J) | J #NE# 1: \par \plain\f3\fs20\cf2 @SUM\plain\f3\fs20\cf0 (CIDADES(I): X(J,I)) = 1 \par ); \par \par \plain\f3\fs20\cf1 ! Ao passar por uma cidade I o ve\'edculo deve atender sua demanda, \par isto \'e9, deve deixar Q(I) unidades de produto na cidade I;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @FOR\plain\f3\fs20\cf0 (CIDADES(I) | I #NE# 1: \par \plain\f3\fs20\cf2 @SUM\plain\f3\fs20\cf0 (CIDADES(J): F(I,J)) - \plain\f3\fs20\cf2 @SUM\plain\f3\fs20\cf0 (MATRIZ(I,J): F(J,I)) = Q(I) \par ); \par \par \plain\f3\fs20\cf1 ! A quantidade de fluxo de I para J n\'e3o pode superar a capacidade \par do ve\'edculo;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @FOR\plain\f3\fs20\cf0 (MATRIZ(I,J): F(I,J) <= VCAP*X(I,J)); \par \par \plain\f3\fs20\cf1 ! O n\'famero de ve\'edculos que saem do dep\'f3sito deve ser NVEI, no m\'e1ximo;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @SUM\plain\f3\fs20\cf0 (CIDADES(J)| J #NE# 1: X(1, J)) <= NVEI; \par \par \plain\f3\fs20\cf1 ! O n\'famero de ve\'edculos que retornam ao dep\'f3sito deve ser NVEI, no m\'e1ximo;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @SUM\plain\f3\fs20\cf0 (CIDADES(J)| J #NE# 1: X(J, 1)) <= NVEI; \par \par \plain\f3\fs20\cf2 data\plain\f3\fs20\cf0 : \par \plain\f3\fs20\cf2 @ole\plain\f3\fs20\cf0 ('prv7.xls','solu\'e7\'e3o','fo','fluxo') = X, FO, F; \par \plain\f3\fs20\cf2 enddata\plain\f3\fs20\cf0 \par \par \plain\f3\fs20\cf2 END\plain\f3\fs20\cf0 \par \par }