ÐÏࡱá>þÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ*0_šîÏ»òÀð^ QS2NÎ € Contentsÿÿÿÿÿÿÿÿÿÿÿÿf ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ*0_šîÏ»òÀð^P]?:N΀ Contentsÿÿÿÿÿÿÿÿÿÿÿÿ^ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿýÿÿÿþÿÿÿ þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  !"#$%þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì‹{\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fnil\fcharset0 Courier New;}} {\colortbl ;\red0\green0\blue255;\red0\green0\blue0;\red0\green175\blue0;} \viewkind4\uc1\pard\cf1\f0\fs32 model\cf2 : \par \cf1 sets\cf2 : \par V / \cf1 @ole\cf2 ('PRVc.xls','cidades')/: q, coord_x, coord_y; \par matriz(V, V): c, \cf3 ! Matriz de dist\'e2ncias;\cf2 \par x, \cf3 ! x(i, j) = 1 se o arco (i,j) fizer parte da solu\'e7\'e3o;\cf2 \par f; \cf3 ! Fluxo de i para j;\cf2 \par \cf1 endsets\cf2 \par \par \cf1 data\cf2 : \par q, cap = \cf1 @ole\cf2 ('PRVc.xls','demanda','capVeic'); \par coord_x, coord_y = \cf1 @ole\cf2 ('PRVc.xls','coord_x','coord_y'); \par \cf1 enddata\cf2 \par \par \cf1 @for\cf2 (V(i): \par \cf1 @for\cf2 (V(j): \par c(i,j) = \cf1 @sqrt\cf2 ( (coord_x(i) - coord_x(j))^2 + \par (coord_y(i) - coord_y(j))^2 ))); \par \par \par [fo] \cf1 min\cf2 = \cf1 @sum\cf2 (V(i): \par \cf1 @sum\cf2 (V(j): c(i,j)*x(i,j))); \par \par \cf3 ! De cada cliente i, exceto o dep\'f3sito, s\'f3 sai um \'fanico ve\'edculo;\cf2 \par \cf1 @for\cf2 (V(i) | i #NE# 1: \cf1 @sum\cf2 (V(j): x(i,j)) = 1); \par \par \cf3 ! A cada cliente j, exceto o dep\'f3sito, s\'f3 chega um \'fanico ve\'edculo;\cf2 \par \cf1 @for\cf2 (V(j) | j #NE# 1: \cf1 @sum\cf2 (V(i): x(i,j)) = 1); \par \par \cf3 ! 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;\cf2 \par \cf1 @sum\cf2 (V(j): x(1, j)) = \cf1 @sum\cf2 (V(i): x(i, 1)); \par \par \cf3 ! Ao passar por um cliente k, exceto o dep\'f3sito, o ve\'edculo deve atender a q \par desse cliente, isto \'e9, deve deixar q(k) unidades de produto no cliente k;\cf2 \par \cf1 @for\cf2 (V(k) | k #ne# 1: \par \cf1 @sum\cf2 (V(i): f(i,k)) - \cf1 @sum\cf2 (V(i): f(k,i) ) = q(k) ); \par \par \cf3 ! O fluxo m\'e1ximo em cada aresta n\'e3o pode superar a capacidade do ve\'edculo;\cf2 \par \cf1 @for\cf2 (matriz(i,j): f(i,j) <= (cap)*x(i,j)); \par \par \cf3 ! As vari\'e1veis x s\'e3o bin\'e1rias;\cf2 \par \cf1 @for\cf2 (matriz(i,j): \cf1 @bin\cf2 (x(i,j))); \par \par \cf1 data\cf2 : \par \cf1 @ole\cf2 ('PRVc.xls','solucao','fo') = x, fo; \par \cf1 enddata\cf2 \par \par \par \cf1 end\cf2 \par go \par \par \par } par } \par \cf1 end\cf2 \par go \par \par \par }   !"#$%þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì‹{\rtf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fnil\fcharset0 Courier New;}} {\colortbl ;\red0\green0\blue255;\red0\green0\blue0;\red0\green175\blue0;} \viewkind4\uc1\pard\cf1\f0\fs32 model\cf2 : \par \cf1 sets\cf2 : \par V / \cf1 @ole\cf2 ('PRVc.xls','cidades')/: q, coord_x, coord_y; \par matriz(V, V): c, \cf3 ! Matriz de dist\'e2ncias;\cf2 \par x, \cf3 ! x(i, j) = 1 se o arco (i,j) fizer parte da solu\'e7\'e3o;\cf2 \par f; \cf3 ! Fluxo de i para j;\cf2 \par \cf1 endsets\cf2 \par \par \cf1 data\cf2 : \par q, cap = \cf1 @ole\cf2 ('PRVc.xls','demanda','capVeic'); \par coord_x, coord_y = \cf1 @ole\cf2 ('PRVc.xls','coord_x','coord_y'); \par \cf1 enddata\cf2 \par \par \cf1 @for\cf2 (V(i): \par \cf1 @for\cf2 (V(j): \par c(i,j) = \cf1 @sqrt\cf2 ( (coord_x(i) - coord_x(j))^2 + \par (coord_y(i) - coord_y(j))^2 ))); \par \par \par [fo] \cf1 min\cf2 = \cf1 @sum\cf2 (V(i): \par \cf1 @sum\cf2 (V(j): c(i,j)*x(i,j))); \par \par \cf3 ! De cada cliente i, exceto o dep\'f3sito, s\'f3 sai um \'fanico ve\'edculo;\cf2 \par \cf1 @for\cf2 (V(i) | i #NE# 1: \cf1 @sum\cf2 (V(j): x(i,j)) = 1); \par \par \cf3 ! A cada cliente j, exceto o dep\'f3sito, s\'f3 chega um \'fanico ve\'edculo;\cf2 \par \cf1 @for\cf2 (V(j) | j #NE# 1: \cf1 @sum\cf2 (V(i): x(i,j)) = 1); \par \par \cf3 ! 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;\cf2 \par \cf1 @sum\cf2 (V(j): x(1, j)) = \cf1 @sum\cf2 (V(i): x(i, 1)); \par \par \cf3 ! Ao passar por um cliente k, exceto o dep\'f3sito, o ve\'edculo deve atender a q \par desse cliente, isto \'e9, deve deixar q(k) unidades de produto no cliente k;\cf2 \par \cf1 @for\cf2 (V(k) | k #ne# 1: \par \cf1 @sum\cf2 (V(i): f(i,k)) - \cf1 @sum\cf2 (V(i): f(k,i) ) = q(k) ); \par \par \cf3 ! O fluxo m\'e1ximo em cada aresta n\'e3o pode superar a capacidade do ve\'edculo;\cf2 \par \cf1 @for\cf2 (matriz(i,j): f(i,j) <= (cap)*x(i,j)); \par \par \cf3 ! As vari\'e1veis x s\'e3o bin\'e1rias;\cf2 \par \cf1 @for\cf2 (matriz(i,j): \cf1 @bin\cf2 (x(i,j))); \par \par \cf1 data\cf2 : \par \cf1 @ole\cf2 ('PRVc.xls','solucao','fo', 'f') = x, fo, f; \par \cf1 enddata\cf2 \par \par \par \cf1 end\cf2 \par go \par \par \par } \par \cf1 end\cf2 \par go \par \par \par }