ࡱ> Root Entry*0_^#5"_ Contents  Root Entry*0_^``"_ Contents    !"#$%&'()*+,-./0123456\'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\cf2 data\plain\f3\fs20\cf0 : \par \plain\f3\fs20\cf2 @text\plain\f3\fs20\cf0 ('solucao.txt') = x; \par \plain\f3\fs20\cf2 @text\plain\f3\fs20\cf0 ('fo.txt') = fo; \par \plain\f3\fs20\cf2 enddata\plain\f3\fs20\cf0 \par \par \par \par \par } {\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fswiss\fprq2 System;}{\f3\fmodern\fprq2 Courier New;}} {\colortbl\red0\green0\blue0;\red0\green175\blue0;\red0\green0\blue255;} \deflang1046\pard\plain\f3\fs20\cf2 data\plain\f3\fs20\cf0 : \par n = @file('dados-PRV-51c.txt'); \par \plain\f3\fs20\cf2 enddata\plain\f3\fs20\cf0 \par \par \plain\f3\fs20\cf2 sets\plain\f3\fs20\cf0 : \par cidades / 1 .. n/: coord_x, coord_y, demanda; \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 coord_x = @file('dados-PRV-51c.txt'); \par coord_y = @file('dados-PRV-51c.txt'); \par \plain\f3\fs20\cf2 enddata\plain\f3\fs20\cf0 \par \par \plain\f3\fs20\cf2 @for\plain\f3\fs20\cf0 (cidades(i): \par \plain\f3\fs20\cf2 @for\plain\f3\fs20\cf0 (cidades(j) | j #ge# i: \par d(i,j) = ( (coord_x(j) - coord_x(i))^2 + (coord_y(j) - coord_y(i))^2 )^(0.5) ); \par \plain\f3\fs20\cf2 @for\plain\f3\fs20\cf0 (cidades(j) | j #lt# i: \par d(i,j) = d(j,i) )); \par \par \par \plain\f3\fs20\cf2 data\plain\f3\fs20\cf0 : \par demanda = @file('dados-PRV-51c.txt'); \par capVeic = @file('dados-PRV-51c.txt'); \par \plain\f3\fs20\cf2 enddata\plain\f3\fs20\cf0 \par \par [fo] \plain\f3\fs20\cf2 min\plain\f3\fs20\cf0 = \plain\f3\fs20\cf2 @sum\plain\f3\fs20\cf0 (matriz(i,j): d(i,j)*x(i,j)); \par \par \plain\f3\fs20\cf1 ! De cada cidade k, exceto o dep\'f3sito, s\'f3 sai um \'fanico ve\'edculo;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @for\plain\f3\fs20\cf0 (cidades(k) | k #NE# 1: \plain\f3\fs20\cf2 @sum\plain\f3\fs20\cf0 (cidades(j): x(k,j)) = 1); \par \par \plain\f3\fs20\cf1 ! A cada cidade k, exceto o dep\'f3sito, s\'f3 chega um \'fanico ve\'edculo;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @for\plain\f3\fs20\cf0 (cidades(k) | k #NE# 1: \plain\f3\fs20\cf2 @sum\plain\f3\fs20\cf0 (cidades(i): x(i,k)) = 1); \par \par \plain\f3\fs20\cf1 ! O n\  !"#$%&'()*+,-./0123456\'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\cf2 data\plain\f3\fs20\cf0 : \par \plain\f3\fs20\cf2 @text\plain\f3\fs20\cf0 ('solucao.txt') = x; \par \plain\f3\fs20\cf2 @text\plain\f3\fs20\cf0 ('fo.txt') = fo; \par \plain\f3\fs20\cf2 enddata\plain\f3\fs20\cf0 \par \par \par \par \par } {\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fswiss\fprq2 System;}{\f3\fmodern\fprq2 Courier New;}} {\colortbl\red0\green0\blue0;\red0\green175\blue0;\red0\green0\blue255;} \deflang1046\pard\plain\f3\fs20\cf2 data\plain\f3\fs20\cf0 : \par n = @file('dados-PRV-51c.txt'); \par \plain\f3\fs20\cf2 enddata\plain\f3\fs20\cf0 \par \par \plain\f3\fs20\cf2 sets\plain\f3\fs20\cf0 : \par cidades / 1 .. n/: coord_x, coord_y, demanda; \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 coord_x = @file('dados-PRV-51c.txt'); \par coord_y = @file('dados-PRV-51c.txt'); \par \plain\f3\fs20\cf2 enddata\plain\f3\fs20\cf0 \par \par \plain\f3\fs20\cf2 @for\plain\f3\fs20\cf0 (cidades(i): \par \plain\f3\fs20\cf2 @for\plain\f3\fs20\cf0 (cidades(j) | j #ge# i: \par d(i,j) = ( (coord_x(j) - coord_x(i))^2 + (coord_y(j) - coord_y(i))^2 )^(0.5) ); \par \plain\f3\fs20\cf2 @for\plain\f3\fs20\cf0 (cidades(j) | j #lt# i: \par d(i,j) = d(j,i) )); \par \par \par \plain\f3\fs20\cf2 data\plain\f3\fs20\cf0 : \par demanda = @file('dados-PRV-51c.txt'); \par capVeic = @file('dados-PRV-51c.txt'); \par \plain\f3\fs20\cf2 enddata\plain\f3\fs20\cf0 \par \par [fo] \plain\f3\fs20\cf2 min\plain\f3\fs20\cf0 = \plain\f3\fs20\cf2 @sum\plain\f3\fs20\cf0 (matriz(i,j): d(i,j)*x(i,j)); \par \par \plain\f3\fs20\cf1 ! De cada cidade i, exceto o dep\'f3sito, s\'f3 sai um \'fanico ve\'edculo;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @for\plain\f3\fs20\cf0 (cidades(i) | i #NE# 1: \plain\f3\fs20\cf2 @sum\plain\f3\fs20\cf0 (cidades(j): x(i,j)) = 1); \par \par \plain\f3\fs20\cf1 ! A cada cidade j, exceto o dep\'f3sito, 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: \plain\f3\fs20\cf2 @sum\plain\f3\fs20\cf0 (cidades(i): x(i,j)) = 1); \par \par \plain\f3\fs20\cf1 ! O n\'famero de ve\'edculos que saem do dep\'f3sito deve ser igual \par ao n\'famero de ve\'edculos que chegam ao dep\'f3sito;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @sum\plain\f3\fs20\cf0 (cidades(j): x(1, j)) = \plain\f3\fs20\cf2 @sum\plain\f3\fs20\cf0 (cidades(j): x(j, 1)); \par \par \plain\f3\fs20\cf1 ! Ao passar por uma cidade j, exceto o dep\'f3sito, o ve\'edculo deve atender a demanda \par dessa cidade, isto \'e9, deve deixar demanda(j) unidades de produto na cidade j;\plain\f3\fs20\cf0 \p'famero de ve\'edculos que saem do dep\'f3sito deve ser igual \par ao n\'famero de ve\'edculos que chegam ao dep\'f3sito;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @sum\plain\f3\fs20\cf0 (cidades(k): x(1, k)) = \plain\f3\fs20\cf2 @sum\plain\f3\fs20\cf0 (cidades(k): x(k, 1)); \par \par \plain\f3\fs20\cf1 ! Ao passar por uma cidade k, exceto o dep\'f3sito, o ve\'edculo deve atender a demanda \par dessa cidade, isto \'e9, deve deixar demanda(j) unidades de produto na cidade j;\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): f(i,j)) - \plain\f3\fs20\cf2 @sum\plain\f3\fs20\cf0 (cidades(i): f(j,i) ) = demanda(j) ); \par \par \plain\f3\fs20\cf1 ! O fluxo m\'e1ximo em cada aresta n\'e3o pode superar a capacidade do ve\'edculo;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @for\plain\f3\fs20\cf0 (matriz(i,j): f(i,j) <= (capVeic)*x(i,j)); \par \par \plain\f3\fs20\cf1 ! As vari\'e1veis x s\'e3o binar \plain\f3\fs20\cf2 @for\plain\f3\fs20\cf0 (cidades(k) | k #ne# 1: \par \plain\f3\fs20\cf2 @sum\plain\f3\fs20\cf0 (cidades(i): f(i,k)) - \plain\f3\fs20\cf2 @sum\plain\f3\fs20\cf0 (cidades(i): f(k,i) ) = demanda(k) ); \par \par \plain\f3\fs20\cf1 ! O fluxo m\'e1ximo em cada aresta n\'e3o pode superar a capacidade do ve\'edculo;\plain\f3\fs20\cf0 \par \plain\f3\fs20\cf2 @for\plain\f3\fs20\cf0 (matriz(i,j): f(i,j) <= (capVeic)*x(i,j)); \par \par \plain\f3\fs20\cf1 ! As vari\'e1veis x s\'e3o bin