ࡱ>  Root Entry*0_^nI Contentsm Root Entry*0_^8IContentsm  !{\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 ('PRV.xls','V')/: demanda; \par matriz(V, V): d, \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 demanda, d, cap = \cf1 @ole\cf2 ('PRV.xls','demanda','distancia','cap'); \par \cf1 enddata\cf2 \par \par [fo] \cf1 min\cf2 = \cf1 @sum\cf2 (V(i): \par \cf1 @sum\cf2 (V(j): d(i,j)*x(i,j))); \par \par \cf3 ! De cada v\'e9rtice i, exceto o primeiro, 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 v\'e9rtice j, exceto o primeiro, 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(j): x(j, 1)); \par \par \cf3 ! Ao passar por um v\'e9rtice k, exceto o primeiro, o ve\'edculo deve atender a demanda \par desse v\'e9rtice, isto \'e9, deve deixar demanda(k) unidades de produto no v\'e9rtice 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) ) = demanda(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 (V(i): \par \cf1 @for\cf2 (V(j): f(i,j) <= (cap)*x(i,j))); \par \par \cf3 ! As vari\'e1veis x s\'e3o bin\'e1rias;\cf2 \par \cf1 @for\cf2 (V(i): \par \cf1 @for\cf2 (V(j): \cf1 @bin\cf2 (x(i,j)))); \par \par \cf1 data\cf2 : \par \cf  !{\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 ('PRV.xls','V')/: demanda; \par matriz(V, V): d, \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 demanda, d, cap = \cf1 @ole\cf2 ('PRV.xls','demanda','distancia','cap'); \par \cf1 enddata\cf2 \par \par [fo] \cf1 min\cf2 = \cf1 @sum\cf2 (V(i): \par \cf1 @sum\cf2 (V(j): d(i,j)*x(i,j))); \par \par \cf3 ! De cada v\'e9rtice i, exceto o primeiro, 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 v\'e9rtice j, exceto o primeiro, 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(j): x(j, 1)); \par \par \cf3 ! Ao passar por um v\'e9rtice k, exceto o primeiro, o ve\'edculo deve atender a demanda \par desse v\'e9rtice, isto \'e9, deve deixar demanda(k) unidades de produto no v\'e9rtice 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) ) = demanda(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 (V(i): \par \cf1 @for\cf2 (V(j): f(i,j) <= (cap)*x(i,j))); \par \par \cf3 ! As vari\'e1veis x s\'e3o bin\'e1rias;\cf2 \par \cf1 @for\cf2 (V(i): \par \cf1 @for\cf2 (V(j): \cf1 @bin\cf2 (x(i,j)))); \par \par \cf1 data\cf2 : \par \cf1 @ole\cf2 ('PRV.xls','x','fo') = x, fo; \par \cf1 enddata\cf2 \par \par \par \cf1 end\cf2 \par } ar } \par } \par \par \cf1 end\cf2 \par \par } ar \par \par \cf1 end\cf2 \par \par } \cf1 sets\cf2 : \par cidades / \cf1 @ole\cf2 ('prv(R).xls','cidades')/: demanda; \par matriz(cidades, cidades): dist, \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 1 @ole\cf2 ('PRV.xls','x','fo') = x, fo; \par \cf1 enddata\cf2 \par \par \par \cf1 end\cf2 \par } ar } \par } \par \par \cf1 end\cf2 \par \par } ar \par \par \cf1 end\cf2 \par \par } \cf1 sets\cf2 : \par cidades / \cf1 @ole\cf2 ('prv(R).xls','cidades')/: demanda; \par matriz(cidades, cidades): dist, \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