• Nenhum resultado encontrado

No apêndice 4 é apresentado e descrito o código fonte do modelo elaborado na

linguagem de programação matemática MPL. Em seguida, o código fonte completo

é apresentado de forma contínua. O modelo de programação é apresentado por

partes onde os trechos do código fonte são mostrados com o estilo de fonte de texto

puro e sem formatação, para diferenciar do restante da redação deste trabalho e

caracterizar a indentação. As partes do código de programação MPL são:

TITLE espaço reservado a inserir o título do modelo;

OPTIONS espaço reservado para identificar bases de dados opcionais;

INDEX espaço reservado à definição das variáveis do modelo através

de índices;

DATA espaço reservado à entrada de dados do modelo;

VARIABLES espaço reservado à declaração de variáveis do modelo;

MACROS espaço reservado ao tratamento dos dados do modelo;

MODEL espaço reservado à declaração da função objetivo;

BOUNDS espaço reservado à definição de limites superior e inferior sobre

as variáveis do modelo;

END declaração de finalização do código do modelo.

A principal vantagem observada durante a modelagem em MPL foi a capacidade

de combinação de vetores que possibilitou reduzir o número de variáveis de decisão

do modelo.

Durante a modelagem, na seção INDEX, foram atribuídos dois vetores

principais, um destinado a identificar todas as escavações, denominado “corte”, e

outro destinado a todos os aterros, denominado “aterro”. O cruzamento destes dois

grandes vetores deu origem a matriz “QuantMat” que combina todas as escavações

com todos os aterros possíveis dentro do modelo, conforme declaração

“QuantMat[corte,aterro]”. Esta matriz define a posição (ou o endereço) das iterações

que deverão ocorrer, conforme planilhas elaboradas anteriormente no MS Excel

para a entrada de dados.

Mas isto ainda não é suficiente, pois é preciso que o MPL diferencie cada grupo

de escavação e cada grupo de aterro. Diante disto, foram definidos quatro vetores

derivados do vetor “corte” e quatro vetores derivados do vetor “aterro”.

Dentro do vetor “corte”, o vetor “matcaterro[corte]” lista todos os materiais que

podem compor a construção de um corpo de aterro; o vetor “matcfinal[corte]” lista

apenas os materiais que podem compor a construção de camada final; o vetor

“matbfora[corte]” lista todos os materiais que podem ser destinados aos bota-foras,

ou seja, lista todos os cortes obrigatórios; e, o vetor “emprestimo[corte]” lista a

relação de empréstimos.

Dentro do vetor “aterro”, o vetor “caterro[aterro]” lista a relação de corpos de

aterro a serem construídos; o vetor “cfinal[aterro]” lista a relação de camadas finais a

serem construídas; o vetor “botafora[aterro]” lista a relação de locais para bota-fora;

e, o vetor “vaterro[aterro]” lista a relação de corpos de aterros e camadas finais a

serem construídos.

A combinação destes sub-vetores possibilitará definir apenas as variáveis

referente a iterações válidas, deixando de criar, por exemplo, a iteração entre

materiais escavados de qualidade inferior com camadas de aterro que exigem uma

qualidade superior a do material disponibilizado. Também deixará de considerar

iterações entre empréstimos e bota-foras. Isto é uma grande contribuição para a

redução do número de variáveis de decisão do modelo.

A combinação do vetor “matcaterro[corte]” com o vetor “caterro[aterro]” definirá

na seção VARIABLES a matriz “QtdCAterro[corte,aterro]” que dará origem apenas

às variáveis de decisão referentes as quantidades de material que poderão ser

destinadas em cada iteração para a construção de cada corpo de aterro.

A combinação dos vetores “matcfinal[corte]” e “cfinal[aterro]” definirá na seção

VARIABLES a matriz “QtdCFinal[corte,aterro]” que dará origem apenas às variáveis

de decisão referentes as quantidades de materiais que poderão ser destinadas em

cada iteração para a construção de cada camada final.

A combinação dos vetores “matbfora[corte]” e “botafora[aterro]” definirá na seção

VARIABLES a matriz “QtdBFora[corte,aterro]” que dará origem apenas às variáveis

de decisão referentes às quantidades de materiais que poderão ser destinadas em

cada iteração para a construção de cada bota-fora.

Outra participação fundamental da criação destes sub-vetores está na

declaração das restrições do modelo de otimização. Na seção DATA, o vetor

“matbfora[corte]” foi utilizado para criar o vetor “VolCorte[matbfora]” que carregou os

volumes de cada corte obrigatório. Na seção SUBJECT TO foi indicado que a

restrição “TotalCorte[matbfora]” (que é o somatório das quantidades de cada

elemento do vetor “matbfora[corte]” nas matrizes de variáveis de decisão

“QtdCAterro[aterro]”, “QtdCFinal[aterro]” e “QtdBFora[aterro]” dentro da matriz

“QuantMat”) devem ser iguais às quantidades do vetor “VolCorte[matbfora]”; ou seja,

foi indicado que os cortes obrigatórios devem ser executados na sua totalidade,

verificando apenas as iterações válidas para o problema. Visualizando em planilha,

pode-se dizer que esta restrição verifica se o somatório de cada linha de escavação

é igual ao volume a ser escavado.

Ainda na seção DATA, o vetor “vaterro[aterro]” foi utilizado para criar o vetor

“VolAterro[vaterro]” que carregou os volumes de cada de aterro ou camada final. Na

seção SUBJECT TO foi indicado que a restrição “TotalAterro[vaterro]” (que é o

somatório das quantidades de cada elemento do vetor “vaterro[aterro]” nas matrizes

de variáveis de decisão “QtdCAterro[corte]”, “QtdCFinal[corte]” e “QtdBFora[corte]”

dentro da matriz “QuantMat”) devem ser iguais as quantidades do vetor

finais obrigatórias devem ser executados na sua totalidade, verificando apenas as

iterações válidas para o problema. Visualizando em planilha, pode-se dizer que esta

restrição verifica se o somatório de cada coluna de aterro é igual ao volume a ser

aterrado.

Continuando na seção DATA, o vetor “emprestimo[corte]” foi utilizado para criar

o vetor “VolEmprestimo[emprestimo]” que carregou a capacidade em volume de

cada empréstimo disponível. Na seção SUBJECT TO foi indicado que a restrição

“TotalEmprestimo[emprestimo]” (que é o somatório das quantidades de cada

elemento do vetor “emprestimo[corte]” nas matrizes de variáveis de decisão

“QtdCAterro[aterro]”, “QtdCFinal[aterro]” e “QtdBFora[aterro]” dentro da matriz

“QuantMat”) devem ser menores ou iguais as quantidades do vetor

“VolEmprestimo[emprestimo]”; ou seja, foi indicado que os empréstimos disponíveis

podem ser explorados até o limite de sua capacidade, verificando apenas as

iterações válidas para o problema. Visualizando em planilha, pode-se dizer que esta

restrição verifica se o somatório de cada linha de escavação de empréstimo é menor

ou igual ao volume disponível para ser escavado.

Finalizando a seção DATA, o vetor “botafora[aterro]” foi utilizado para criar o

vetor “VolBotafora[botafora]” que carregou a capacidade em volume de cada

bota-fora. Na seção SUBJECT TO foi indicado que a restrição “TotalBotafora[botafora]”

(que é o somatório das quantidades de cada elemento do vetor “botafora[aterro]” nas

matrizes de variáveis de decisão “QtdCAterro[corte]”, “QtdCFinal[corte]” e

“QtdBFora[corte]” dentro da matriz “QuantMat”) devem ser menores ou iguais as

quantidades do vetor “VolBotafora[botafora]”; ou seja, foi indicado que as

construções dos bota-foras devem ser executados até o limite de sua capacidade,

verificando apenas as iterações válidas para o problema. Visualizando em planilha,

pode-se dizer que esta restrição verifica se o somatório de cada coluna de aterro é

menor ou igual à capacidade do bota-fora.

A programação deste modelo em MPL é bastante simples do ponto de vista da

pesquisa operacional, porém, do ponto de vista da engenharia de estradas, este

modelo de otimização é bem prático e auxiliará na solução de um problema que

pode ser transformado, de forma simples, em um sistema linear com um grande

número de variáveis e equações, possível de ser resolvido matematicamente.

A precisão do resultado deste modelo está condicionada à precisão e

quantidade de dados utilizados para abastecê-lo. De nada adiantará sua aplicação

se as informações necessárias forem obtidas de forma precária, imprecisas ou

insuficientes. Quanto maior a riqueza de detalhes levantados do projeto de

geometria e da caracterização dos materiais, mais representativo da realidade o

resultado será.

No capítulo seguinte algumas aplicações deste modelo serão apresentadas. No

capítulo posterior os resultados obtidos serão analisados e comentados.

5 APLICAÇÕES DO MODELO DE OTIMIZAÇÃO

Neste capítulo será apresentada a aplicação do modelo de programação linear

desenvolvido no capítulo anterior, baseado na revisão bibliográfica apresentada nos

capítulos 2 e 3. A aplicação será demonstrada em dois exemplos denominados em

estudo reduzido e estudo expandido, ambos referentes ao mesmo trecho de projeto.

O estudo reduzido consiste em aplicar o modelo de otimização com no máximo

300 variáveis de decisão e no máximo 300 restrições, limitações da versão para

estudantes do “MPL for Windows” e do solucionador CPLEX 300. Para isto, os

volumes dos segmentos de escavação e aterro foram acumulados em trechos com

até 6 estacas de extensão (120 metros).

O estudo expandido será aplicado sem a preocupação de quantas variáveis de

decisão ou restrições o modelo vai gerar. Os volumes dos segmentos de escavação

e aterro serão avaliados de estaca a estaca, reduzindo a extensão por segmento em

20 metros. Nesta aplicação do modelo será gerado um número muito maior de

variáveis de decisão e de restrições para o mesmo trecho do estudo reduzido.

Consequentemente, a precisão das DMTs será muito maior que na aplicação

anterior, tendendo a melhorar os resultados obtidos. Nesta aplicação a versão do

“MPL for Windows” e o solucionador “CoinMP” não apresentam limitações quanto ao

número de variáveis de decisão ou de restrições.

Em diversas simulações de comparação, tanto o CPLEX 300 quanto o CoinMP,

encontraram exatamente o mesmo valor para a função objetivo. O CPLEX 300 tem a

vantagem de apresentar os dados para análise de pós-otimização completos e

precisos. Como desvantagem, o CPLEX 300 é restrito a 300 variáveis de decisão e

300 restrições, impossibilitando seu uso para a demonstração do modelo expandido.

O CoinMP tem a vantagem de ser um software de código livre e não possuir

limitação de variáveis de decisão e restrições, porém, não apresenta todos os dados

para análise de pós otimização. Esta desvantagem impede a demonstração

completa de como interpretar os intervalos em que o modelo poderá sofrer

alterações sem que a estrutura da solução ótima mude, ou seja, sem que a posição

das quantidades encontradas seja alterada para outras iterações.

As matrizes da aplicação inicial do modelo de otimização de terraplenagem

utilizando o MS Excel e o SOLVER estão apresentadas no apêndice 1.

Com os resultados destas duas aplicações e da aplicação constante do

apêndice 1, no capítulo seguinte poderá ser feito um comparativo dos resultados

otimizados em função do custo unitário por serviço com o resultado do projeto

elaborado em função do momento de transporte.

Para estas aplicações do modelo de otimização de distribuição de materiais de

terraplenagem, foram utilizados dados de um trecho de uma rodovia que foi

construída no estado do Rio de Janeiro.

O trecho selecionado tem aproximadamente 1,68 km de extensão em pista

dupla. Para possibilitar a comparação do resultado do modelo otimizado em função

do menor custo com o que foi projetado pelo método convencional em função do

menor momento de transporte, o critério para a escolha deste trecho foi que os

volumes a serem analisados deveriam estar todos contidos em um segmento

contínuo da distribuição dos materiais, não havendo iteração com outros trechos.

É importante frisar que o lote do projeto de onde este trecho foi selecionado

possui aproximadamente 20 km de extensão, diversas interseções e vários trechos

possuem vias locais (ou vias marginais) adjacentes. Os dados da cubação não

correspondem à primeira versão deste projeto e podem ter sofrido alguma

adequação durante a execução da obra por interferências ou condicionantes que

não foram previstas em projeto. Durante a pesquisa e solicitação de dados para

estudo, o “as built” da obra não estava disponível. O responsável pela consultoria

pediu que, se possível, a obra não seja identificada.

Os dados utilizados para esta aplicação do modelo proposto foram os volumes

das escavações e dos aterros obtidos da planilha de cubação do projeto; os

resultados dos ensaios de CBR e expansão foram obtidos do relatório de estudos

geotécnicos; e, os dados dos empréstimos e bota-foras mais próximos ao trecho

selecionado. No relatório deste projeto consta que a distribuição de materiais de

terraplenagem foi elaborada pelo método de Brückner, sendo fornecida apenas a

planilha de distribuição. A planilha de custos unitários do SICRO 2 utilizada para a

aplicação do modelo e depois para a comparação com os dados obtidos do projeto

foi a de setembro de 2014 com desoneração, o que certamente apresentará um

execução da obra. Os valores utilizados para o preenchimento dos custos foram

buscados da tabela de custos unitários do SICRO-2, com desoneração, de setembro

de 2014, seção 2 – construção rodoviária, páginas 7, 8, 9 e 41, conforme Anexo 1.

A aplicação deste modelo não tem a finalidade de elaborar o orçamento da obra,

pois este é composto por vários outros itens e não é o objeto deste trabalho. Diante

disto, a utilização do custo unitário dos serviços é apenas um critério para a decisão

da alternativa de projeto que se está avaliando.

Na primeira aplicação, as tabelas de entrada de dados e apresentação dos

parâmetros de sensibilidade através do MS Excel são apresentadas no apêndice 2,

demonstrando que preservando os nomes definidos para os vetores de dados, nome

da planilha e nome do arquivo, não há a necessidade de qualquer adequação no

código do modelo MPL.

Na segunda aplicação as tabelas modeladas no MS Excel são omitidas por se

tornarem muito extensas para serem apresentadas aqui. Todas as tabelas são

apresentadas no apêndice 3.