Você está na página 1de 81

DIOGO TELES OLIVEIRA

PAULA CYRINEU ARAUJO

OTIMIZAÇÃO MULTICRITÉRIO DA
CONFIGURAÇÃO DE SISTEMAS
UTILIZANDO ANÁLISE RAM

São Paulo

2015
DIOGO TELES OLIVEIRA
PAULA CYRINEU ARAUJO

OTIMIZAÇÃO MULTICRITÉRIO DA CONFIGURAÇÃO


DE SISTEMAS UTILIZANDO ANÁLISE RAM

Trabalho de Formatura apresentado ao Curso


de Engenharia Naval da Escola Politécnica
da Universidade de São Paulo

Orientador:
Prof. Dr. Marcelo Ramos Martins

São Paulo
2015
Catalogação-na-publicação

Oliveira, Diogo Teles


Otimização multicritério da configuração de sistemas utilizando análise
RAM / D. T. Oliveira, P. C. Araujo -- São Paulo, 2015.
71 p.

Trabalho de Formatura - Escola Politécnica da Universidade de São


Paulo. Departamento de Engenharia Naval e Oceânica.

1.Engenharia (confiabilidade) 2.Método de Monte Carlo (simulação)


3.Algoritmos genéticos I.Universidade de São Paulo. Escola Politécnica.
Departamento de Engenharia Naval e Oceânica II.t. III.Araujo, Paula Cyrineu
Resumo
Este trabalho tem como objetivo otimizar a configuração de uma planta de produção no
que tange à alocação de redundâncias e políticas de manutenção. Essa otimização tem
como objetivos a maximização da disponibilidade e do lucro da planta de produção, tendo
como resultado final uma curva de soluções não dominadas (curva de Pareto). O trabalho
foi dividido em duas etapas: a primeira etapa destinou-se ao estudo da confiabilidade de
sistemas e técnicas de análise RAM (confiabilidade, disponibilidade e mantenabilidade) e
à implementação do método de Monte Carlo, com o objetivo de se estimar a confiabilidade
ou a disponibilidade de uma dada configuração, assim como seu lucro. Os sistemas foram
simulados para diferentes condições de manutenção corretiva e preventiva, limitando-se o
número de equipes de manutenção. O algoritmo desenvolvido em ambiente MATLAB foi
validado de diversas formas, utilizando resultados analíticos e resultados apresentados em
referências bibliográficas, além de ter sido validado com resultados obtidos pelo software
Maros. Os resultados obtidos mostraram-se muito satisfatórios, validando assim a utilização
desse algoritmo para a etapa de otimização. A segunda etapa do trabalho foi destinada
ao estudo da otimização por algoritmos genéticos, método que se baseia na teoria da
evolução das espécies para escolher os melhores indivíduos dentro de uma população. O
algoritmo implementado, também em ambiente MATLAB, visa otimizar a alocação de
redundâncias e a escolha dos tipos de componentes, além de otimizar também os intervalos
de manutenção preventiva e o número de equipes de manutenção disponíveis. A validação
desse algoritmo foi feita utilizando o algoritmo de Monte Carlo para todas as configurações
possíveis e verificando se a curva encontrada pela otimização era semelhante à curva de de
soluções ótimas do sistema. Os resultados mostraram-se mais uma vez satisfatórios, com
rápida convergência.

Palavras-chaves: Confiabilidade de sistemas. Otimização multiobjetivo. Simulação de


Monte Carlo. Algoritmos genéticos. Análise RAM. Alocação de redundâncias.
Abstract
This work aims to optimize the configuration of a manufacturing plant regarding the
allocation of redundancies and maintenance policies. This optimization aims to maximizing
the availability and profit of the manufacturing plant, having as the result a curve of non-
dominated solutions (Pareto Front). The work was divided into two stages: the first stage
was focused on studying the reliability of systems and the RAM (Reliability, Availability
and Maintainability) analysis techniques and implementing the Monte Carlo method to
estimate the reliability or availability of a given configuration, as well as its profit. The
systems were simulated with different conditions of corrective and preventive maintenance,
limiting the number of maintenance crews. The algorithm, developed in the MATLAB
environment, has been validated in several ways, using analytical results and findings
presented in bibliographic references, besides being validated with results obtained by the
MAROS software. The results obtained were very satisfactory, therefore validating the use
of this algorithm in the optimization step. The second stage of the work was intended to
study the optimization by genetic algorithms, a technique based on the theory of evolution
to choose the best individuals within a population. The algorithm, also implemented in
the MATLAB environment, aims to optimize the allocation of redundancies and the choice
of the types of components, and also optimize the time between preventive maintenances
and the number of available maintenance crews. This algorithm was validated using the
Monte Carlo algorithm with all the possible configurations and checking if the curve found
by the optimization process was similar to the curve of optimal solutions of the system.
The results were satisfactory again, with rapid convergence.

Keywords: System reliability. Multi-objective optimisation. Monte Carlo simulation.


Genetic algorithms. RAM analysis. Redundancy allocation.
Lista de ilustrações

Figura 1 – Forma genérica das funções F (t) e R(t) para uma dada distribuição de
probabilidade de falha de um componente . . . . . . . . . . . . . . . . 8
Figura 2 – Confiabilidade R(t) e não-confiabilidade F (t) de um componete para
um tempo de missão t a partir de sua função densidade de probabilidade
de falha f (t) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Figura 3 – Diagrama de blocos em série . . . . . . . . . . . . . . . . . . . . . . . . 10
Figura 4 – Diagrama de blocos em paralelo . . . . . . . . . . . . . . . . . . . . . . 11
Figura 5 – Configuração de um sistema em standby . . . . . . . . . . . . . . . . . 12
Figura 6 – Transição (t0 , k 0 ) → (t, k) . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Figura 7 – Transições de estado sistema versus tempo de simulação. O estado 3
está circulado como um estado de falha. Os quadrados indicam tempos
de transição e os círculos indicam estado de falha. Os trajetos traceja-
dos indicam simulações que levaram a uma falha do sistema antes de
finalizado o tempo de missão TM . . . . . . . . . . . . . . . . . . . . . . 17
Figura 8 – Procedimento para determinar a não-confiabilidade do sitema . . . . . 18
Figura 9 – Sistema em série-paralelo exemplo . . . . . . . . . . . . . . . . . . . . . 19
Figura 10 – Tempos de transição gerados para os componentes A, B e C no início
da simulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Figura 11 – Exemplos de ranks de uma população para um problema de mximização
de f1 e f2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Figura 12 – Exemplo de um cubóide de crowding distance. Pontos preenchidos são
soluções de uma mesma frente não dominada . . . . . . . . . . . . . . 28
Figura 13 – Fluxograma da simulação de Monte Carlo sem manutenção corretiva . 32
Figura 14 – Fluxograma da simulação de Monte Carlo com manutenção corretiva . 33
Figura 15 – Estudo de caso: sistema em série-paralelo . . . . . . . . . . . . . . . . . 34
Figura 16 – Comparação entre os resultados de não disponibilidade obtidos pelo
MAROS e pelo algoritmo de Monte Carlo com 1 · 105 simulações para o
caso com manutenção corretiva . . . . . . . . . . . . . . . . . . . . . . 38
Figura 17 – Resultados de não disponibilidade para o caso de estudo com manuten-
ção corretiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Figura 18 – Esquematização do Sistema 1 . . . . . . . . . . . . . . . . . . . . . . . 40
Figura 19 – Esquematização do Sistema 2 . . . . . . . . . . . . . . . . . . . . . . . 40
Figura 20 – Estrutura de um sistema em série com redundâncias em paralelo . . . . 44
Figura 21 – Esquematização do sistema 1 . . . . . . . . . . . . . . . . . . . . . . . 49
Figura 22 – Resultados das 64 configurações com destaque para a frente de Pareto
(soluções com rank 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Figura 23 – Evolução dos indivíduos classifcados com rank 1 no algoritmo de otimização 52
Figura 24 – Indivíduos resultantes da simulação com 6 gerações . . . . . . . . . . . 52
Figura 25 – Comparação entre o resultado obtido pela otimização e pela frente de
Pareto encontrada testando todas as 64 configurações . . . . . . . . . . 53
Figura 26 – Esquematização do sistema a ser otimizado . . . . . . . . . . . . . . . 54
Figura 27 – Formato do cromossomo utilizado no algoritmo genético . . . . . . . . 55
Figura 28 – Resultado das 768 configurações possíveis . . . . . . . . . . . . . . . . 56
Figura 29 – 1a otimização. População inicial: 20, No de gerações: 10; Prob. de
mutação: 5% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Figura 30 – 2a otimização. População inicial: 20, No de gerações: 20; Prob. de
mutação: 5% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Figura 31 – 3a otimização. População inicial: 30, No de gerações: 20; Prob. de
mutação: 5% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Figura 32 – 4a otimização. População inicial: 30, No de gerações: 20; Prob. de
mutação: 10% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
a o
Figura 33 – 5 otimização. População inicial: 30, N de gerações: 30; Prob. de
mutação: 10% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Figura 34 – Função confiabilidade exponencial . . . . . . . . . . . . . . . . . . . . . 68
Figura 35 – Função de distribuição acumulada exponencial . . . . . . . . . . . . . . 68
Figura 36 – Função densidade de probabilidade exponencial . . . . . . . . . . . . . 69
Figura 37 – Função densidade de probabilidade (PDF) com média µ = 0 e desvio
padrão σ = 0, 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Figura 38 – Curva da banheira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Lista de tabelas

Tabela 1 – Taxas de transição dos componentes . . . . . . . . . . . . . . . . . . . 19


Tabela 2 – Matriz de transições dos componentes . . . . . . . . . . . . . . . . . . 30
Tabela 3 – Matrizes de transição dos componentes A, B e C . . . . . . . . . . . . 34
Tabela 4 – Resultados para tempo de missão de 10h . . . . . . . . . . . . . . . . . 35
Tabela 5 – Resultados para tempo de missão de 100h . . . . . . . . . . . . . . . . 36
Tabela 6 – Resultados para tempo de missão de 500h . . . . . . . . . . . . . . . . 36
Tabela 7 – Resultados para tempo de missão de 1000h . . . . . . . . . . . . . . . 36
Tabela 8 – Resultados de disponibilidade média (%) encontrada para o software
MAROS e para o algoritmo de Monte Carlo com 1 · 105 simulações . . 37
Tabela 9 – Parâmetros do sistema 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Tabela 10 – Parâmetros do sistema 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Tabela 11 – Resultados das simulações para o sistema 1 . . . . . . . . . . . . . . . 41
Tabela 12 – Resultados das simulações para o sistema 2 . . . . . . . . . . . . . . . 42
Tabela 13 – Características dos componentes . . . . . . . . . . . . . . . . . . . . . 49
Tabela 14 – Dados do sistema e da simulação . . . . . . . . . . . . . . . . . . . . . 50
Tabela 15 – Taxas de falha e manutenção dos componentes . . . . . . . . . . . . . 54
Tabela 16 – Custos de aquisição e manutenção dos componentes . . . . . . . . . . . 55
Tabela 17 – Informações gerais do sistema . . . . . . . . . . . . . . . . . . . . . . . 55
Tabela 18 – Configurações não dominadas - rank 1 . . . . . . . . . . . . . . . . . . 57
Tabela 19 – 1a otimização. População inicial: 20, No de gerações: 10; Prob. de
mutação: 5% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Tabela 20 – 2a otimização. População inicial: 20, No de gerações: 20; Prob. de
mutação: 5% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Tabela 21 – 3a otimização. População inicial: 30, No de gerações: 20; Prob. de
mutação: 5% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Tabela 22 – 4a otimização. População inicial: 30, No de gerações: 20; Prob. de
mutação: 10% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
a o
Tabela 23 – 5 otimização. População inicial: 30, N de gerações: 30; Prob. de
mutação: 10% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Sumário

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3 FUNDAMENTOS TEÓRICOS . . . . . . . . . . . . . . . . . . . . . 4
3.1 Análise RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1.1 Conceitos, termos e definições . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1.1.1 Confiabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1.1.2 Mantenabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1.1.3 Disponibilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.1.4 Falha e falta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Técnicas utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2.1 Confiabilidade de componentes . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.2 Diagrama de blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.2.1 Sistemas em série . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.2.2 Sistemas em paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.2.3 Sistemas em standby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.3 Simulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.4 Manutenções Preventivas . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3 Análise de risco e confiabilidade pela simulação de Monte Carlo . . 14
3.3.1 Princípios básicos da análise de confiabilidade de um sistema . . . . . . . . 14
3.3.2 Processo de transporte de um sistema estocástico . . . . . . . . . . . . . . 15

3.3.3 Análise de confiabilidade de um sistema pela simulação de Monte Carlo . . 16


3.3.4 Método da simulação direta . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 Otimização multiobjetivo . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5 Algoritmos genéticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5.1 Estrutura geral dos algoritmos genéticos . . . . . . . . . . . . . . . . . . . 22
3.5.2 Formulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5.3 Método NSGA-II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4 SIMULAÇÃO DE MONTE CARLO . . . . . . . . . . . . . . . . . . 29


4.1 Definição do problema . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Algoritmo da simulação de Monte Carlo . . . . . . . . . . . . . . . . 29
4.3 Validação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3.1 Sistema sem manutenção corretiva . . . . . . . . . . . . . . . . . . . . . . 35
4.3.2 Sistema com manutenção corretiva . . . . . . . . . . . . . . . . . . . . . . 36
4.3.3 Sistema com manutenção preventiva . . . . . . . . . . . . . . . . . . . . . 39

5 OTIMIZAÇÃO POR ALGORITMOS GENÉTICOS . . . . . . . . . . 44


5.1 Definição do problema . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.2 Algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.3 Validação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.3.1 Estudo de caso 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.3.2 Estudo de caso 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

6 CONCLUSÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

APÊNDICE A – FUNÇÕES DENSIDADE DE PROBABILIDADE . 67


A.1 Distribuição Exponencial . . . . . . . . . . . . . . . . . . . . . . . . . 67
A.2 Distribuição Normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
A.3 Distribuição de Weibull . . . . . . . . . . . . . . . . . . . . . . . . . . 70
1

1 Introdução

Ao se projetar uma planta de produção, deve-se levar em contar os seguintes


objetivos: segurança na operação e economia nos serviços utilizados. Isso implica que a
análise dos níveis de confiabilidade, disponibilidade e mantenabilidade deve estar atrelada
a um estudo econômico que estima os custos associados com o downtime, a manutenção e
o reparo da planta de produção.

Com isso, várias decisões devem ser tomadas em relação ao tipo e número de
componentes a serem utilizados na configuração do sistema. Na tentativa de se otimizar
qualquer aspecto desta configuração, deve-se estar atento a muitos objetivos (e.g. baixos
custos, altos rendimentos, alta confiabilidade, baixo risco de acidentes), que são geral-
mente conflitantes. Na literatura, várias abordagens já foram estudadas como método
dos gradientes, programação dinâmica, programação não-linear e heurísticas (TILLMAN;
HWANG; KUO, 1980; TILLMAN; HWANG; KUO, 1977). Particularmente, o problema
de alocação de redundâncias têm sido estudado extensivamente (BELLMAN; DREYFUS,
1958; FYFFE; HINES; LEE, 1968; CHERN, 1992), sendo também foco deste relatório.

Pelo ponto de vista teórico, a otimização da configuração do sistema equivale


à maximização de uma função devidamente definida, que leva em conta a segurança do
sistema e características econômicas. Quando a planta é complexa e a modelagem do
seu comportamento é suficientemente realista, essa função objetivo torna-se complexa,
multivariável e não-linear, o que impossibilita representá-la claramente de forma analítica.
Esse aspecto tem as seguintes consequências: para uma produção desejada, há tantas
possibilidades de configuração que o espaço de soluções para o algoritmo de otimização
torna-se absurdamente grande; para uma determinada configuração, a avaliação da segu-
rança e dos custos não é realizável através de métodos analíticos; e os métodos clássicos
de otimização encontram enormes dificuldades no problema de maximização (CANTONI;
MASEGUERRA; ZIO, 2000).

A abordagem mais comum para resolver esse tipo de problema é focando-se na


otimização de um único objetivo constituído por uma combinação ponderada de alguns
objetivos e impondo-se algumas restrições para satisfazer outras requisições (SAWAGARI;
NAKAYAMA; TANINO, 1985). Essa abordagem, entretanto, introduz uma grande arbi-
trariedade na definição dos pesos e nos níveis de restrições consequentes da homogenização
de objetivos fisicamente diferentes, geralmente todos traduzidos em termos monetários.

Uma abordagem mais informativa é a que considera todos os objetivos separada-


Capítulo 1. Introdução 2

mente, visando identificar um conjunto de soluções que são equivalentes na ausência de


uma hierarquia dos vários objetivos. Cada membro desse conjunto é melhor ou igual aos
outros membros do conjunto no que se refere a alguns dos objetivos. Diferentemente da
abordagem com apenas um objetivo que implica em baixa performance dos outros objetivos
desejados, o conjunto identificado pela abordagem multicritério fornece um espectro de
soluções "aceitáveis"entre as quais um meio-termo pode ser encontrado.

Dessa forma, será utilizada uma abordagem que une o método da simulação de
Monte Carlo, para alcançar um sistema de modelagem mais realístico, com algoritmos
genéticos para se otimizar a alocação de redundâncias em relação a diferentes funções
objetivo (MARSEGUERRA; ZIO; PODOFILLINI, 2004).

Algoritmos genéticos (GA) são ferramentas computacionais fundamentadas dire-


tamente na analogia com a evolução física das espécies (GOLDBERG, 1989). GAs propõem
uma sequência de possíveis soluções para a configuração do sistema, e a performance de
cada uma delas é medida através do valor de uma função objetivo, chamada de função
fitness (geralmente custo, com restrições de confiabilidade, ou vice versa).

Dessa forma, uma solução possível proposta por um indivíduo da população dos
GAs são os tipos de componentes do sistema e suas respectivas configurações. Em relação a
cada uma das configurações propostas, o método de Monte Carlo fornece uma ferramenta
de simulação flexível capaz de contabilizar, de uma forma relativamente simples, vários
fatores envolvidos tanto na confiabilidade do sistema quanto nos custos e receitas da planta
de produção. A função objetivo usada para medir o quão adequada é a solução proposta é
o lucro líquido da operação do sistema para um dado tempo de missão. Em cada simulação
de Monte Carlo, esse lucro é obtido computando-se a receita gerada subtraída de todos os
custos de implementação e operação, i.e. compra de componentes e custos de reparação,
custos de downtime e custos devidos a acidentes. Restrições de confiabilidade devem ser
também levadas em conta de uma forma relativamente simples. Dessa forma, o problema
torna-se uma pesquisa no espaço de configurações do sistema a fim de se encontrar a
configuração que maximiza a função objetivo (CANTONI; MASEGUERRA; ZIO, 2000).
3

2 Objetivos

O objetivo desse trabalho é apresentar uma metodologia que permita otimizar


a configuração de uma planta de produção no que tange a alocação de redundâncias e
as políticas de manutenção corretiva e preventiva. A otimização será feita tendo como
funções objetivo a maximização do lucro e a maximização da disponibilidade do sistema.
Essas duas funções objetivos devem ser otimizadas separadamente, resultando como output
uma curva de soluções ótimas a partir da qual o projetista deverá fazer um trade-off entre
lucro e disponibilidade. Para tanto, o trabalho será divido em duas etapas:

• A primeira etapa destina-se em um primeiro momento ao estudo da confiabilidade de


sistemas e às técnicas de análise RAM: distribuições de falha e reparo, conceitos de
probabilidade, confiabilidade do componente, teorema de Bayes, diagrama de blocos e
mantenabilidade. Terminada a fundamentação teórica, o próximo passo é o estudo do
método de Monte Carlo, método estatístico que se baseia em sucessivas amostragens
aleatórias para obter resultados numéricos. Nesta etapa deve ser implementado um
algoritmo que aplique o método de Monte Carlo em uma dada configuração de um
sistema que permita estimar a disponibilidade média e o lucro resultantes dessa
configuração.

• Após validado o algoritmo de Monte Carlo, o próximo passo é o estudo dos algoritmos
genéticos, método que permitirá otimizar a configuração de um sistema genérico
nos quesitos: alocação de redundâncias e políticas de manutenção preventiva. Nessa
etapa, também deverá ser implementado um algoritmo que utilize o método de
algoritmos genéticos a fim de devolver uma curva de configurações ótimas para o
sistema analisado.
4

3 Fundamentos teóricos

3.1 Análise RAM

3.1.1 Conceitos, termos e definições


Este capítulo tem por objetivo a definição precisa dos termos básicos, conforme
apresentados por Martins (2013), a serem utilizados no decorrer deste trabalho. Além
das definições de termos básicos e fundamentais para estudos de confiabilidade, as seções
seguintes apresentam os equacionamentos matemáticos utilizados. Supõe-se conhecidos
tópicos básicos de estatística referentes à teoria das probabilidades.

3.1.1.1 Confiabilidade

Uma definição amplamente aceita apresenta Confiabilidade como sendo a proba-


bilidade de um item, componente ou sistema executar a função para a qual foi projetado
durante um período de tempo pré-definido, sob determinadas condições ambientais e
operacionais, dado que estava funcionando ou em condições de operar no instante inicial.

Matematicamente, a confiabilidade R(t) é representada por:

R(t) = Pr(T ≥ t | c1 , c2 ...) (3.1)

onde t é o tempo de missão que deve ser especificado; T é a variável aleatória que representa
o instante de falha do sistema e c1 , c2 ... as condições de operação. Nestas condições, sabe-se
que a confiabilidade é uma função decrescente com R(t) → 1 para t → 0 e R(t) → 0 para
t → +∞.

O tempo de missão deve ser definido de forma bastante criteriosa, considerando


como unidade de referência o tempo corrido, ciclos ou horas de operação, o que for mais
apropriado. A consideração do tempo de missão como sendo o tempo necessário para que
o sistema execute sua missão uma única vez não é adequada a menos que o sistema seja
avaliado e reparado no início de cada operação garantindo-se que o mesmo esteja no estado
original a cada nova execução.

3.1.1.2 Mantenabilidade

Uma definição amplamente aceita apresenta Mantenabilidade como sendo a pro-


babilidade de que um sistema em estado de falha seja reparado à sua condição original
dentro de um intervalo de tempo especificado, sendo a manutenção realizada seguindo-se
Capítulo 3. Fundamentos teóricos 5

procedimentos pré-estabelecidos e sob condições especificadas. Por vezes, as condições


especificadas mencionadas na definição são implicitamente consideradas como parte inte-
grante dos procedimentos pré-estabelecidos, os quais incluem não somente o procedimento
de reparo a ser executado como também a disponibilidade de pessoal técnico em número e
com as habilidades e ferramental apropriados além da disponibilidade dos sobressalentes
necessários.

Matematicamente, a mantenabilidade M (t) é representada por:

M (t) = Pr(T ≤ t | c1 , c2 ...) (3.2)

onde t é o tempo de reparo que deve ser especificado; T é a variável aleatória que representa
o tempo consumido para realização do reparo e c1 , c2 ... as condições sob as quais a operação
de reparo é realizada. Nestas condições, sabe-se que a mantenabilidade é uma função
crescente com M (t) → 0 para t → 0 e M (t) → 1 para t → +∞.

Também faz-se necessário fazer a diferenciação entre manutenções preventiva e


corretiva. Manutenção corretiva é aquela que é realizada após a detecção da falha e com
propósito de restaurar o recurso a uma condição em que possa executar sua função (EN,
2001). Já a manutenção preventiva de um componente é o seu desligamento agendado,
geralmente periódico, em que é realizada uma sequência bem definida de tarefas, tais
como inspeção e reparo, troca, limpeza, lumbrificação, ajustes e alinhamentos (EBELING,
2010).

3.1.1.3 Disponibilidade

A Disponibilidade é definida como sendo a probabilidade de que o sistema seja


capaz de executar, em um dado instante e sob as condições ambientais e operacionais
especificadas, a função para a qual foi projetado. Assim sendo, a disponibilidade pode
ser interpretada como sendo o percentual do tempo em que o sistema se apresenta como
operacional sob as condições pré-estabelecidas. Matematicamente, a disponibilidade A(t)
pode ser representada por:
toperacional
A(t) = (3.3)
toperacional + tf alha
onde toperacional representa quanto tempo o sistema esteve operacional (operando ou em
condição de operar se demandado) no intervalo de tempo [0, t] e tf alha representa quanto
tempo o sistema permaneceu em estado de falha (não operacional) considerando o mesmo
intervalo [0, t].

A disponibilidade se distingue da confiabilidade uma vez que se refere à capacidade


do sistema em executar sua função em um determinado instante e não durante um intervalo
Capítulo 3. Fundamentos teóricos 6

de tempo, independentemente de ter apresentado ou não uma falha anterior e ter sido
reparado. Desta forma, a disponibilidade de um sistema em um determinado instante não
pode ser inferior à sua confiabilidade e pode ser representada, alternativamente por:
1Z t
A(t) = A(τ )dτ (3.4)
t 0

3.1.1.4 Falha e falta

A falha (do inglês failure) deve ser entendida como a cessação da habilidade do
sistema em desempenhar a função a ele especificada enquanto que a falta (do inglês fault)
representa o estado do sistema caracterizado pela inabilidade em executar sua função.
Desta forma, a falha ocorre em um determinado instante enquanto que a falta perdura
até que a falha seja corrigida restaurando-se o sistema à condição original através de um
processo de manutenção ou reposição.

Define-se também a taxa de falha e a frequência de falha. A primeira é o número


de falhas esperadas por unidade de tempo de operação ou pelo número de demandas, a
depender do modo de operação do sistema. Já a segunda refere-se ao número de falhas
constatadas por unidade de tempo de operação ou pelo numero de demandas realizadas,
também a depender do modo de operação do sistema. A partir da frequência de falhas de
um determinado conjunto de sistemas idênticos (ou mesmo similares) é possível inferir, ou
estimar, o comportamento da taxa de falhas do sistema de interesse.

Em estudos de confiabilidade a falha de um sistema é entendida como sendo um


evento aleatório e é descrita pela sua taxa de falha λ(t); o instante da falha é tratado
como uma variável aleatória contínua, cujo valor é dependente de sua função densidade de
probabilidade f (t).

Uma determinada falha é percebida a partir da constatação dos efeitos provocados,


efeitos estes denominados como modos de falha, sendo possível a existência de diferentes
modos de falhas associados à mesma falha. Assim sendo, a taxa ou frequência de uma
determinada falha será a soma da taxa ou frequência de cada um dos seus modos de falha.

Segundo Ebeling (2010), um processo de falha, representado pela variável aleatória


T (tempo de falha), pode ser unicamente descrito por qualquer uma das quatro funções:

1. f (t), função densidade de probabilidade (PDF)

2. F (t), função de distribuição acumulada (CDF)

3. R(t), função confiabilidade

4. λ(t), função taxa de falha


Capítulo 3. Fundamentos teóricos 7

Essas funções guardam as seguintes relações:


Z t
F (t) = f (t0 )dt0 (3.5)
0

Z ∞
R(t) = f (t0 )dt0 (3.6)
t

R(t) = 1 − F (t) (3.7)

−dR(t) dF (t)
f (t) = = (3.8)
dt dt

f (t)
λ(t) = (3.9)
R(t)
 Z t 
0 0
R(t) = exp − λ(t )dt (3.10)
0

Z ∞
MT T F = R(t)dt (3.11)
0

onde M T T F é definido como o tempo esperado para a efetiva falha (do inglês mean time
to failure).

3.2 Técnicas utilizadas


O objetivo da análise RAM (confiabilidade, disponibilidade e mantenabilidade) é
avaliar o desempenho de um equipamento ou sistema através da definição e melhoria dos
equipamentos críticos, para que o sistema atinja a disponibilidade necessária.

Para realização da análise RAM é necessário o levantamento dos modos de falha


dos equipamentos, que causam perda para o sistema estudado, o histórico de falhas e
o tempo necessário para reparar cada modo de falha. O segundo passo dessa análise é
modelar o sistema segundo a metodologia do Diagrama de blocos, que representa cada
equipamento considerado no sistema em série ou em paralelo, dependendo da lógica de
cada perda gerada para o sistema. O terceiro passo é a simulação direta, que descreve o
comportamento do sistema ao longo do tempo segundo as características de falha e reparo
de cada equipamento, dando o resultado de disponibilidade final do sistema, sendo possível
observar a contribuição no percentual de perdas de cada equipamento no sistema. Com os
resultados também é possível introduzir mecanismos como manutenções preventivas para
um aumento da confiabilidade do sistema como um todo e, consequentemente obter uma
maior disponibilidade.
Capítulo 3. Fundamentos teóricos 8

Nesta seção são apresentados alguns modelos matemáticos utilizados e conceitos


associados à função confiabilidade, também são apresentadas algumas técnicas de análise
e de suporte à análise de confiabilidade de sistemas, como diagramas de blocos.

3.2.1 Confiabilidade de componentes


O conceito de confiabilidade já foi definido anteriormente (cf. seção 3.1) e pode ser
aplicado a um componente. Assim, considerando que as condições ambientais e operacionais
especificadas estejam implicitamente atendidas, a função confiabilidade pode ser expressa
por:
R(t) = Pr(T ≥ t) (3.12)

onde t é o tempo decorrido sem falhas desde o início de sua operação e T é a variável
aleatória que representa o instante de falha do componente.

A distribuição acumulada de falhas F (t) representa a probabilidade de ocorrência


da falha do componente até um determinado instante t, a partir do início da operação, e é
definida por:
F (t) = Pr(T < t) = 1 − R(t) (3.13)

A figura 1 ilustra a forma genérica da função confiabilidade e da função distribuição


acumulada de falha de um componente.

1
F(t)
0.8

0.6

0.4

0.2 R(t)

0
0 0.5 1 1.5 2 2.5

Figura 1: Forma genérica das funções F (t) e R(t) para uma dada distribuição de probabi-
lidade de falha de um componente
Capítulo 3. Fundamentos teóricos 9

Por sua vez, a distribuição de probabilidade de falhas f (t) é a derivada da


distribuição acumulada de falhas, ou seja:

dF (t) dR(t)
f (t) = =− (3.14)
dt dt

A figura 2 ilustra uma distribuição de probabilidade de falhas e sua relação com as


funções confiabilidade R(t) e distribuição acumulada de falha F (t), que são obtidas pelas
áreas sob a curva f (t) e representam a confiabilidade e a não-confiabilidade do componte.

f(t)

0.8

0.6

confiabilidade

0.4

não-confiabilidade
0.2

0
t
t

Figura 2: Confiabilidade R(t) e não-confiabilidade F (t) de um componete para um tempo


de missão t a partir de sua função densidade de probabilidade de falha f (t)

3.2.2 Diagrama de blocos


O diagrama de blocos é uma das técnicas mais utilizadas para a análise de confia-
bilidade de sistemas e permite a avaliação do efeito da falha de um item na confiabilidade
do sistema. Cada item que compõe o sistema é representado por um bloco e o conjunto
de blocos é arranjado no diagrama de acordo com sua configuração física e/ou funcional
dentro do sistema, o que facilita o entendimento das relações existentes entre cada item
do sistema.
Capítulo 3. Fundamentos teóricos 10

O sistema em análise pode ser representado por uma sequência de blocos em série,
onde a falha de um único item ocasiona a falha de todo o sistema, ou por uma sequência
em paralelo, em que a configuração pode representar duas configurações distintas. Na
primeira, todos os itens do sistema operam simultaneamente enquanto que, na segunda,
apenas uma parte dos itens opera e os demais entram em operação apenas quando ocorre a
falha de um item que estava em operação. Esta última situação é referenciada na literatura
por sistema em standby.

3.2.2.1 Sistemas em série

A figura 3 exibe a configuração de um sistema com dois itens em série. Para o


cálculo de sua confiabilidade considera-se que as falhas de cada item sejam independentes
entre si. Uma vez que a falha de um único item provoca a falha do sistema, neste caso
tem-se que:
RA (t) = R1 (t) × R2 (t) (3.15)

1 2

Figura 3: Diagrama de blocos em série

Estendendo-se para o caso de n blocos em série:


n
Y
RS (t) = Ri (t) (3.16)
i=1

onde Ri (t) é a confiabilidade do item i para o tempo de missão t.

Para o caso em que a densidade de probabilidade de falha de todos os itens que


compõe o sistema seja do tipo exponencial pode-se deduzir que:
n
X
λS = λi (3.17)
i=1

RS = e−λS t (3.18)

1
M T T FS = (3.19)
λS
Capítulo 3. Fundamentos teóricos 11

3.2.2.2 Sistemas em paralelo

A figura 4 exibe a configuração de um sistema com dois itens em paralelo. Para o


cálculo de sua confiabilidade considera-se que as falhas de cada item sejam independentes
entre si. Uma vez que a falha do sistema ocorrerá somente quando todos os itens em
paralelo falharem, pode-se induzir que:

RB (t) = 1 − [1 − R1 (t)] × [1 − R2 (t)] (3.20)

Figura 4: Diagrama de blocos em paralelo

Estendendo-se para o caso de n blocos em paralelo:


n
Y
RS (t) = 1 − [1 − Ri (t)] (3.21)
i=1

onde Ri (t) é a confiabilidade do item i para o tempo de missão t.

Caso todos os n itens em paralelo sejam idênticos e com a densidade de probabi-


lidade de falha do tipo exponencial:

RS = 1 − [1 − e−λt ]n (3.22)

1 1 1
 
M T T FS = 1 + + ... + (3.23)
λ 2 n

3.2.2.3 Sistemas em standby

A figura 5 exibe a configuração de um sistema com dois itens em paralelo e um


item adicional SS responsável pelo acionamento do item em standby após a falha do
Capítulo 3. Fundamentos teóricos 12

primeiro. A modelagem da confiabilidade deve considerar inicialmente a probabilidade do


item 1 funcionar durante todo o tempo de missão t e, neste caso, não haveria o acionamento
do item 2. Adicionalmente, deve considerar a probabilidade de ocorrência da seguinte
sequência de eventos: o item 1 falha em um determinado instante τ durante a missão;
o sistema de acionamento SS funciona adequadamente; o item 2 não falha enquanto se
encontra na condição standby e; o item 2 não falha entre o instante de falha do item 1 (τ )
e o término da missão, que ocorre no instante t.

SS

Figura 5: Configuração de um sistema em standby

Sendo possível considerar os eventos da sequência descrita como independentes


entre si, a confiabilidade deste sistema pode ser modelada por:

Z t
RC (t) = R1 (t) + RSS (τ )R2standby (τ )R2 (t − τ )f1 (τ )dτ (3.24)
0

onde R1 (t) é a confiabilidade do item 1, ou seja, representa a probabilidade do item 1


funcionar durante todo o tempo de missão t; f1 (τ ) é a densidade de probabilidade de falha
do item 1 que, integrada entre 0 e τ representa a probabilidade de falha do item 1 neste
intervalo; RSS (τ ) é a probabilidade do sistema de acionamento SS não falhar entre 0 e τ ;
R2standby (τ ) é a probabilidade do item 2 não falhar entre 0 e τ e R2 (t − τ ) é a probabilidade
condicionada do item 2 não falhar entre o instante de falha do item 1 e o tempo de missão
dado que não falhou enquanto permaneceu em standby.

3.2.3 Simulação
O próximo passo da Análise RAM é a simulação de cada sistema. A simulação
tem como objetivo, a verificação dos resultados da disponibilidade, mantenabilidade e
confiabilidade em um período de tempo específico, baseado na modelagem definida para
Capítulo 3. Fundamentos teóricos 13

cada sistema, subsistema e equipamentos, considerando as funções densidades de falha e


reparo dos equipamentos.

A simulação dos sistemas ocorrem separadamente para avaliação das eficiências


individuais de cada sistema para posteriormente ser modelado o macro sistema e se avaliar
a eficiência do todo.

A simulação cria cenários típicos de ciclo de vida para os sistemas propostos,


utilizando técnicas de simulação de eventos. Assim, um cenário de ciclo de vida é uma
sequência cronológica de eventos que representam o comportamento do sistema em tempo
real.

3.2.4 Manutenções Preventivas


Para sistemas complexos pode-se conseguir o aumento de confiabilidade através
de um programa de manutenção preventiva. Tal programa pode reduzir o efeito de
envelhecimento ou obsolência e ter um impacto significativo na vida do sistema. O seguinte
modelo de confiabilidade assume que um sistema é restaurado para sua condição original
através de manutenção preventiva. Seja R(t) a confiabilidade do sistema sem manutenção,
T o intervalo de tempo entre manuteção preventiva, e Rm (t) a confiabilidade do sistema
com manutenção preventiva. Então

Rm (t) = R(t) 0≤t<T


Rm (t) = R(T )R(t − T ) T ≤ t < 2T

onde R(T ) é a probabilidade de sobrevivência até a primeira manutenção preventiva e


R(t − T ) é a probabilidade de sobreviver um tempo adicional t − T dado que o sistema foi
restaurado para sua condição original no tempo T . Continuando, tem-se:

nT ≤ t < (n + 1)T
Rm (t) = R(T )n R(t − nT ) (3.25)
n = 0, 1, 2, ...

onde R(t)n é a probabilidade de sobreviver n intervalos de manutenções e R(t − nT ) é a


probabilidade de sobreviver t − nT passada a última manutenção preventiva.

Para um modelo de taxa de falha constante, tem-se:

R(t) = e−λt

Rm (t) = (e−λT )n e−λ(t−nT )


= e−λnT e−λt eλnT = e−λt = R(t)
Capítulo 3. Fundamentos teóricos 14

Esse resultado reflete a falta de memória da distribuição exponencial. Para uma


taxa de falha constante a manutenção preventiva não tem efeito, ou seja, se um componente
possui distribuição de falha do tipo exponencial, sua taxa de falha não se altera com
manutenção preventiva.

3.3 Análise de risco e confiabilidade pela simulação de Monte Carlo


A simulação de Monte Carlo é um método amplamente utilizado na solução de
problemas reais de engenharia nos mais diversos campos. Ultimamente, a utilização deste
método está crescendo para se determinar a disponibilidade de sistemas complexos e o
valor monetário de operações e manutenções em plantas de produção.

A complexidade dos sistemas de engenharia atuais em conjunto com a necessidade


de considerações realísticas ao se modelar suas disponibilidades/confiabilidades resultam
em métodos muito difíceis de serem utilizados. Da mesma forma, análises que envolvem
sistemas reparáveis com múltiplos eventos adicionais são muito difíceis de se resolver
analiticamente.

Como alternativa a essas dificuldades, a simulação de Monte Carlo estima os


índices de confiabilidade simulando o processo atual do sistema e seu comportamento
aleatório a partir de um modelo computacional a fim de criar um cenário realístico ao
longo do tempo. Este método trata o problema como uma série de experimentos reais
conduzidos em um tempo simulado, estimando a probabilidade e outros índices contando
o números de vezes que um evento ocorre em um tempo de simulação. As informações de
entrada são funções de densidade de probabilidade (PDF) para tempo de falha e reparo de
todos os componentes com os seguintes parâmetros: políticas de manutenção; intervalos e
duração dos testes e manutenções preventivas (RAO et al., 2009).

3.3.1 Princípios básicos da análise de confiabilidade de um sistema


De acordo com Zio (2013), para se caracterizar o comportamento de falha de
um componente em termos quantitativos considera-se a variável aleatória tempo de falha,
T, cujo CDF FT (t) e PDF fT (t) são tipicamente chamados de probabilidade de falha e
função de densidade de falha no tempo t. A função cumulativa complementar (CCDF)
RT (t) = 1 − FT (t) = P (T > t) é chamada confiabilidade do componente no tempo t e dá
a probabilidade de o componente não falhar durante o tempo de missão t.

Outra informação de interesse para se monitorar a evolução do processo de falha


de um componente é dada pela probabilidade que ele falhe em um intervalo dt sabendo
que ele não falhou até o início do intervalo t. Essa probabilidade é expressa em termos do
Capítulo 3. Fundamentos teóricos 15

produto do intervalo dt vezes uma densidade de probabilidade condicional chamada taxa


de falha, usualmente indicada pelo símbolo λT (t):

λT (t)dt = P (t < T < t + dt|T > t)


P (t < T ≤ t + dt) fT (t)dt (3.26)
= =
P (T > t) R(t)

A taxa de falha λT (t) dá a mesma informação que a PDF e a CDF e sua integração
resulta:

Rt
FT (t) = 1 − e− 0
λT (s)ds
(3.27)

3.3.2 Processo de transporte de um sistema estocástico


Seja um sistema com NC componentes físicos (bombas, válvulas, dutos, circuitos
eletrônicos, etc). Cada componente pode ter um número de estados, e.g., funcionando, em
falha, em espera, etc. Durante sua vida, um componente pode mudar de um estado para
outro a partir de uma transição que ocorre estocasticamente no tempo e cujo resultado
(estado final alcançado) é estocástico. O comportamento estocástico de cada componente
é então definido por uma matriz de probabilidades de transição entre diferentes estados.

Por outro lado, a descrição total do comportamento estocástico do sistema no


tempo é dado pela PDF que o sistema faça a transição em um dado tempo que o leva a
uma nova configuração.

As configurações do sistema (também chamadas de estados) podem ser numeradas


por um índice que ordena todas as possíveis combinações de estados dos componentes do
sistema. Mais especificamente, seja kn o índice que identifica a configuração alcançada
pela planta na transição n e tn o tempo na qual a transição ocorreu.

Considerando a transição genérica que ocorreu nome tempo t0 fazendo com que
o sistema entrasse na configuração k 0 . As probabilidades que governam a ocorrência da
próxima transição do sistema no tempo t que leva o sistema ao estado k é (Fig. 6):

• T (t|t0 , k 0 )dt = probabilidade condicional que o sistema faça a próxima transição entre
t + dt, dado que a transição anterior ocorreu no tempo t0 levando o sistema ao estado
k0.

• C(k|k 0 , t) = probabilidade condicional que o sistema entre no estado k pelo efeito da


transição que ocorreu no tempo t com o sistema originalmente no estado k 0 .
Capítulo 3. Fundamentos teóricos 16

As probabilidades definidas acima são normalizadas da seguinte forma:

Z ∞
T (t|t0 , k 0 )dt ≤ 1 (3.28)
t0

C(k|k 0 , t) = 1 C(k|k, t) = 0
X
(3.29)
k∈Ω

onde Ω é o conjunto de todos os estados possíveis do sistema. Nota-se que T (t|t0 , k 0 )


T (t|t0 , k 0 )dt o sistema
R
não pode ser normalizado para um já que com a probabilidade 1-
pode falhar em t0 em um estado k 0 no qual ele não pode existir, chamado de estado de
absorção.

As duas funções de probabilidade introduzidas foram o transporte probabilístico


de kernel (t0 , k 0 ) → (t, k):

K(t, k|t0 , k 0 ) = T (t|t0 , k 0 )C(k|k 0 , t) (3.30)

Figura 6: Transição (t0 , k 0 ) → (t, k) (ZIO, 2013)

3.3.3 Análise de confiabilidade de um sistema pela simulação de Monte Carlo


A análise de confiabilidade de um sistema por Monte Carlo corresponde a realizar
um experimento virtual no qual um grande número de sistemas estocásticos idênticos,
cada um se comportando diferentemente devido ao seu caráter estocástico, são testados
durante um dado tempo de missão e suas ocorrências de falha são salvas.

Este mesmo procedimento é adotado em testes de confiabilidade realizados


individualmente para cada componente a fim de se estimar sua taxa de falha, tempo médio
de falha (MTTF), entre outros parâmetros. A diferença é que o teste físico aplicado para
os componentes em separado pode ser realizado fisicamente em um laboratório, enquanto
que, para um sistema de componentes, este teste físico é impraticável devido aos custos e
tempos envolvidos com a falha do sistema.
Capítulo 3. Fundamentos teóricos 17

A fim de contornar esse problema, um processo estocástico de transição entre os


estados é modelado a partir do transporte probabilístico de Kernel (Eq. 3.28). A figura
7 mostra 4 simulações para um sistema, todas saindo do mesmo estado k∗, mas cada
uma indo para um estado diferente, em tempos diferentes. Dois desses caminhos (duas
simulações) levarem a falha do sistem (estado 3 caracteriza um estado de falha).

Figura 7: Transições de estado sistema versus tempo de simulação. O estado 3 está circulado
como um estado de falha. Os quadrados indicam tempos de transição e os círculos
indicam estado de falha. Os trajetos tracejados indicam simulações que levaram
a uma falha do sistema antes de finalizado o tempo de missão TM . (ZIO, 2013)

Para se estimar a confiabilidade do sistema, é preciso determinar o conjunto de


configurações para as quais o sistema está em falha. Toda vez que o sistema entrar em
uma dessas configurações, sua falha é armazenada, assim como o tempo em que ocorreu a
falha. Para um determinado tempo de missão, t, pode se estimar a não-confiabilidade do
sistema F̂T (t) dividindo-se o número de simulações nas quais houve falha no sistema antes
de terminado o tempo de missão pelo número total de simulações.

A imagem 8 exemplifica como devem ser contabilizadas falhas ocorridas durante


as simulações. A variável C R (t) contabiliza as falhas que ocorrem antes de finalizado o
tempo de missão e M é o número total de simulações. Nas simulações 2 e 3, podemos
verificar que houve falha antes do tempo de missão, TM , acabar. Essas falhas, ocorridas no
tempo τ , estão representadas por círculos.
Capítulo 3. Fundamentos teóricos 18

Figura 8: Procedimento para determinar a não-confiabilidade do sitema (ZIO, 2013)

3.3.4 Método da simulação direta


Neste método, as transições do sistema são determinadas gerando-se os tempos de
todas as possíveis transições de todos os componentes do sistema e, em seguida, ordenando
esses tempos em ordem crescente em uma linha de tempo. O componente que de fato sofre
a transição é aquele que possui a primeira transição na linha do tempo feita. Essa linha do
tempo é atualizada depois que cada transição ocorre, para incluir as novas possibilidades
de transição que o componente que acabou de sofrer a última transição pode sofrer.

Em outras palavras, durante o histórico do sistema que se inicia para uma dada
configuração k 0 para um tempo t0 , os tempos de transição tij 0 →mi =1,2,...NS , para cada
i

componente i, i=1,2,...NC deixando seu estado atual ji0 para entrar no estado mi a partir
i,ji0 →mi
das correspondentes distribuições de probabilidade de tempo de transição fT (t|t0 ).
Os instantes de tempo tij 0 →mi obtidos para todos os estados mi são estão colocados em
i

ordem crescente ao longo da linha do tempo de tmin a tmax ≤ TM . O contador de tempo


daquela simulação é então movido para o primeiro tempo de transição tmin = t∗ , no
qual o componente i∗ passa para o novo estado m∗i . Neste momento, os novos tempos de

transição tim∗i →li∗ =1,2,...,NSi∗ , do componente i∗ para sair de seu estado m∗i são gerados a
i∗ ,m∗i →li∗
partir das distribuições de probabilidade de tempo de transição, fT (t|t∗ ) e ordenadas
propriamente em uma linha de tempo. O sistema é então movido para a próxima transição,
assim como o contador de tempo do sistema, e para sua nova configuração. Esse processo
Capítulo 3. Fundamentos teóricos 19

continua até que a próxima transição ocorra depois de finalizado o tempo de missão, ou
seja, tmin > TM .

Figura 9: Sistema em série-paralelo exemplo (ZIO, 2013)

Como exemplificação, tem-se o sistema mostrado na figura 9. Nesse exemplo dois


componentes ativos em paralelo A e B estão ligados em série com o componente C. Em
geral, os componentes podem ter vários modos de operação. No caso de uma bomba, por
exemplo, esta pode funcionar a 50 e a 100%. Já para uma válvula, ela pode funcionar nos
modos "totalmente aberta", "parcialmente aberta"e "fechada". Será considerado então que
os componentes A e B são bombas, com dois modos de operação, e que o componente C é
uma válvula, com três modos de operação mencionados acima.

Será assumido que os tempos de transição destes três componentes são exponen-
cialmente distribuídos, onde λiji →mi é a taxa de transição do componente i para mudar do
estado ji para o estado mi . A tabela 1 apresenta a matriz com as taxas de transição para
os três componentes.

Tabela 1: Taxas de transição dos componentes

Componente A e B

1 2 3
A(B) A(B)
1 – λ1→2 λ1→3
A(B) A(B)
2 λ2→1 – λ2→3
A(B) A(B)
3 λ3→1 λ3→2 –
Componente C

1 2 3 4
1 – λC
1→2 λC
1→3 λC
1→4
2 λC
2→1 – λC
2→3 λC
2→4
3 λC
3→1 λC
3→2 – λC
3→4
4 λC
4→1 λC
4→2 λC
4→3 –

Os componentes estão no instante inicial (t=0) em seus estados nominais, repre-


sentados pelo índice 1. Os estados de falha são representados pelo índice 3 no caso do
Capítulo 3. Fundamentos teóricos 20

componente A e B e pelo índice 4 no caso do componente C.

Pode-se então gerar os tempos de transição dos componentes da seguinte forma:

1
ti1→mi = t0 − i
ln(1 − Rt,1→m ) (3.31)
λi1→mi i

i
onde i=A,B,C e Rt,1→mi
é um número aleatório entre 0 e 1, uniformemente distribuído.

Figura 10: Tempos de transição gerados para os componentes A, B e C no início da


simulação (ZIO, 2013)

Esses tempos de transição serão ordenados em ordem crescente de tmin a tmax ≤


TM AX . Assume-se que tmin corresponde à transição do componente A para estado 3 de
falha, ou seja, tmin = tA
1→3 . Dessa forma, os outros tempos de transição gerados são
cancelados e o contador de tempo da simulação é movido para t1 = tmin . Neste caso, apesar
de o componente A estar em falha, o sistema não para pois o componente B que está em
redundância com A está ainda em funcionamento. Caso não haja manutenção corretiva,
se o sistema B também falhar antes de terminado o tempo de missão o sistema entrará
em modo de falha. Da mesma forma, se o componente C falhar antes de terminado o
tempo de missão, o sistema também entrará em modo de falha e então será contabilizado
pelo algoritmo a falha e o tempo em que foi interrompido o sistema. Ao fim de M
simulações, poderá ser calculada a confiabilidade do sistema verificando-se o número de
Capítulo 3. Fundamentos teóricos 21

vezes que o sistema entrou em falha antes de terminado o tempo de missão, no caso de
não haver manutenção corretiva, ou no caso onde há manutenção, pode ser calculada
a disponbilidade média armazenando-se o tempo de downtime do sistema. A figura 10
representa os tempos de transição gerados para os três componentes no início da simulação
onde os três componentes estão inicialmente no estado 1. Os quadrados representam as
transições e os círculos os estados de falha. Percebe-se que nesse caso a transição com
menor tempo gerado é para o componente A, indo do estado 1 para o estado 3, de falha.

3.4 Otimização multiobjetivo


Problemas reais de engenharia costumam ter múltiplos objetivos, muitas vezes
conflitantes entre si, como a maximização da performance e confiabilidade e minimização
dos custos. Neste contexto, o algoritmo genético se insere como uma metaheurística
utilizada com sucesso para esse tipo de situação, pois pode ser customizado para acomodar
múltiplos objetivos usando funções fitness específicas e métodos que promovem diversidade
nas soluções.

Para este tipo de otimização, com múltiplos objetivos, costuma-se utilizar dois
tipos de abordagem. A primeira é combinar funções objetivo individuais em uma única
função ou deixar apenas uma função como objetivo e transformar as outras funções em
restrições. No primeiro caso, a determinação de um único objetivo é possível por métodos
como a teoria da utilidade (READ, 2004) e o método de soma de pesos (KIM; WECK,
2005). Esses métodos, entretanto, se deparam com a problematização de se selecionar
propriamente os pesos ou a função de utilidade que caracterizam as preferências da tomada
de decisão. Na prática, pode ser muito difícil selecionar esses pesos com precisão, mesmo
quando há familiaridade com o domínio do problema. Um agravante é que uma pequena
perturbação nesses pesos podem causar uma grande diferença entre as soluções. Para o
caso de transformar as funções objetivos em restrições, deve se determinar um valor de
restrição para cada um desses objetivos e isso pode acabar tornando o processo muito
arbitrário. Para ambos os casos mencionados, o método de otimização não irá retornar
apenas uma solução ótima, mas sim um conjunto de boas soluções.

A segunda abordagem é determinar uma solução ótima de Pareto que consiste


de soluções que são não-dominadas em relação às outras soluções (ZITZLER; THIELE,
1999). Ao se alternar de uma solução para outra, há sempre uma quantidade sacrificada
em um objetivo para alcançar um ganho em outro. Prefere-se frequentemente um conjunto
de soluções ótimas de Pareto em relação a uma única solução ótima porque pensando
em problemas realísticos há sempre um trade-off na hora de se decidir qual é a melhor
solução.
Capítulo 3. Fundamentos teóricos 22

3.5 Algoritmos genéticos


Muitos problemas de engenharia que envolvem otimização, em particular os
sistemas industriais, são muito complexos e difíceis de resolver por técnicas convencionais
de otimização . Desde a década de 60, há um interesse crescente em imitar os seres vivos
para resolver esses tipos de problemas de otimização mais complexos. Simular o processos
de evolução natural dos seres humanos resultou em técnicas estocásticas de otimização
chamadas de algoritmos evolutivos que podem gerar resultados melhores que métodos
convencionais quando aplicados a problemas reais e muito complexos. Atualmente esses
algoritmos estão divididos em: algoritmos genéticos, programação evolutiva e estratégias
evolutivas. Entre eles, algoritmos genéticos são os mais amplamente conhecidos atualmente.

Na década de 90, os algoritmos genéticos receberam atenção considerável devido


ao seu potencial como técnica de otimização de problemas complexos e têm sido aplicados
com sucesso na área de engenharia industrial. As aplicações mais conhecidas são: desing de
confiabilidade, roteirização de veículos, tecnologia de grupo, layout de instalações, logística,
análise de risco, entre outros (GEN; R, 1197).

3.5.1 Estrutura geral dos algoritmos genéticos


Os algoritmos genéticos são técnicas estocásticas de busca baseadas na seleção
natural e sua forma usual foi descrita por Goldberg (1989). Esses algoritmos são iniciados
com uma população inicial arbitrária de indivíduos chamados de cromossomos, que
representam uma solução para o problema analisado. Um cromossomo é um vetor de
parâmetros, que podem assumir valores binários ou não. Os cromossomos evoluem através
de sucessivas iterações, chamadas de gerações.

Durante cada geração, o cromossomo é avaliado, usando algumas medidas de


fitness (FOGEL; GHOZEIL, 1996). Para criar a próxima geração, ou seja, os cromossomos
filhos, há duas opções: cruzar dois cromossomos pais da geração atual utilização um
operador de combinação ou modificando um cromossomo com um operador de mutação.
Uma nova geração é então formada selecionando-se os melhores cromossomos e descartando
os que possuem um valor de fitness menor, fazendo com que a população permaneça sempre
com o mesmo tamanho. Após várias gerações, os algoritmos convergem para o melhor
cromossomo ou para o melhor conjunto de cromossomos, se o problema for multiobjetivo.

As operações realizadas em algoritmos genéticos podem ser divididas em dois


tipos:

• Operações genéticas: combinação e mutação


Capítulo 3. Fundamentos teóricos 23

• Operações evolutivas: seleção

As operações genéticas imitam o processo de hereditariedade dos genes para


criar novos cromossomos filhos a cada geração. A operação evolutiva, por sua vez, imita o
processo de evolução Darwiniana para criar populações de uma geração para outra.

A combinação é o principal operador genético. Ele opera em dois cromossomos


por vez e gera cormossomos filhos combinando a partir da combinação de seus materiais
genéticos. Uma forma simples de se fazer essa combinação é escolher arbitrariamente um
ponto de corte e gerar os filhos combinando o material a esquerda de um cromossomo pai
com o material a direita do outro cromossomo pai. Há diversos métodos de se escolher os
cromossomos pais a serem combinados, porém todos levam em consideração o valor fitness
dos cromossomos.

A mutação é um operador secundário que produz espontaneamente mudanças


aleatórias nos cromossomos, escolhendo arbitrariamente um ou mais genes do cromossomo
e o alterando por outro valor. A mutação tem papel crucial em repor os genes perdidos da
população durante o processo de seleção e em fornecer genes que não estavam presentes
na população inicial.

A frequência deve ser definida de forma a não ser muito pequena para não deixar
que genes sejam inutilizados ou nuca usados, porém não pode ser muito grande pois
irá causar muito perturbação aleatória, fazendo com que os cromossomos filhos percam
semelhança com seus pais.

Os algoritmos genéticos se diferenciam de outros procedimentos convencionais


de otimização e busca em diversos modos. Goldberg (1989) resumiu essas diferenças da
seguinte forma:

• Algoritmos genéticos trabalham com uma codificação da solução e não com as


soluções em si;

• Algoritmos genéticos buscam a partir de uma população de soluções, não a partir de


uma única solução;

• Algoritmos genéticos utilizam informações da função objetivo e não de derivados ou


de conhecimentos auxiliares.

• Algoritmos genéticos usam regras de transição probabilísticas, não regrar determi-


nantes.
Capítulo 3. Fundamentos teóricos 24

E em relação às vantagens dos algoritmos genéticos, temos os seguintes itens


como exemplo:

• Algoritmos genéticos não possuem muitos requisitos matemáticos no que se refere


à otimização de problemas. Devido à sua natureza evolutiva, algoritmos genéticos
podem lidar com qualquer tipo de função objetivo e qualquer tipo de restrição
definida em espaços discretos, contínuos ou mistos.

• A ergodicidade dos operadores de evolução tornam os algoritmos genéticos muito


eficazes em realizar uma pesquisa global (em probabilidade).

3.5.2 Formulação
Assim como é tratado em Konak, Coit e Smith (2006), considera-se um problema
em deseja-se otimizar K objetivos não comensuráveis e cujo tomador de decisão não tem
uma preferência clara de um objetivo em relação a outro. Sem perda de generalidade,
todos os objetivos são do tipo de minimização - uma minimização pode ser convertida em
uma maximização, multiplicando-se por menos um.

Dado, então, um vetor n-dimensonal de variáveis de decisão x = {x1 , ..., xn } no


espaço de soluções X, deseja-se encontrar um vetor x∗ que minimiza um dado conjunto
de K funções objetivo z(x∗ ) = {z1 (x∗ ), ..., zk (x∗ )}. O espaço de soluções X é geralmente
limitado por uma série de restrições, tais como gj (x∗ ) = bj para j = 1, ..., m, e limites das
variáveis de decisões.

Como dito anteriormente, nos problemas da vida real os objetivos costumam


ser conflitantes. Dessa forma, otimizar x em relação a um único objetivo frequentemente
gera resultados não aceitáveis para os outros objetivos. Portanto, uma solução perfeita
que simultaneamente otimizada cada um dos objetivos é quase sempre impossível. Uma
solução razoável para um problema multiobjetivo é investigar um conjunto de soluções
que satisfazem os objetivos em um nível aceitável sem ser dominadas por nenhuma outra
solução.

Se todas as funções objetivo são de minimização, diz-se que uma solução possível
x domina outra solução possível y (x  y), se e somente se, zi (x) ≤ zi (y) para i = 1, ..., K
e zj (x) < zj (y) para ao menos uma função objetivo j. Uma solução ótima de Pareto não é
dominada por nenhuma outra solução no domínio de soluções, o que faz com que ela não
possa ser melhorada em relação a nenhum objetivo sem piorar algum outro objetivo. O
conjunto de todas as soluções possíveis não dominadas em X constitui um conjunto ótimo
Capítulo 3. Fundamentos teóricos 25

de Pareto e seus respectivos valores para os objetivos analisados são chamados de frente
de Pareto.

Para muitos problemas, entretanto, esse conjunto de soluções ótimas é enorme,


tornando-se impossível a sua identificação. Dessa forma, uma abordagem prática na
otimização multiobjetivo é encontrar um conjunto de soluções que represente a frente de
Pareto da melhor forma possível e que atinja os três seguintes objetivos (ZITZLER; DEB
K THIELE, 2000):

• A curva de soluções deve ser a mais próxima possível da frente de Pareto. Idealmente,
o conjunto de soluções deve ser um subconjunto das soluções ótimas de Pareto;

• As soluções devem ser diveras e uniformemente distribuídas e diversas a fim de


fornecer ao tomador de decisões um cenário verdadeiro de trade-offs;

• As soluções devem capturar todo o espectro da frente de Pareto. Ou seja, devem ser
investigadas as soluções que compõem os extremos do espaço da função objetivo

Na terminologia de algoritmos genéticos, um vetor de soluções x ∈ X é chamado


de cromossomo. Cromossomos são feitos de unidades discretas chamadas de genes. Cada
gene controla uma ou mais características do cromossomo. Originalmente em Holland
(1975), os genes tinham caráter binários, porém, em implementações mais recentes, diversos
tipos de genes foram introduzidos ao método.

O algoritmo genético opera sobre um conjunto de cromossomos, chamada popula-


ção, que é normalmente gerada aleatoriamente. Assim que o algoritmo avança na pesquisa
de novos cromossomos, a população vai incluindo soluções cada vez mais adaptadas aos
objetivos do problema, eventualmente convergindo para uma curva de soluções. Para tanto,
são utilizados dois operadores para criar novos cromossomos: a combinação e a mutação.
Na combinação, dois cromossomos chamados de pais são cruzados formando dois novos
cromossomos chamados de filhos. Os pais são selecionados dentro da população de forma
que os cromossomos mais adaptados (com melhor fitness) possuam maior probabilidade
de serem selecionados. Aplicando-se iterativamente esse processo, espera-se que os genes
dos melhores cromossomos apareçam mais frequentemente na população, eventualmente
levando a uma convergência da solução. Entretanto, para impedir que as soluções fiquem
em torno de uma única região provocada pela combinação, utiliza-se o operador de mutação
que introduz alterações aleatórias nas características do cromossomo, sendo geralmente
aplicado no nível do gene. A mutação, apesar de possuir uma pequena probabilidade de
ocorrer, possui um papel fundamental no algoritmo genético, pois introduz diversidade na
solução e auxilia na ampliação do espectro de soluções.
Capítulo 3. Fundamentos teóricos 26

Após a reprodução dos cromossomos, a seleção dos indivíduos que permanecerão


na população irá depender de quão adaptados eles estão às funções objetivos, ou em termos
mais técnicos, irá depender de seu valor de fitness, que costuma ser uma classificação das
soluções a partir de seus valores relativos às funções objetivo. O procedimento genérico de
um algoritmo genético é feito de acordo com os passos abaixo.

• Passo 1: Defina t = 1. Gere aleatoriamente N soluções para formar a primeira


solução, P1 . Avalie o valor fitness das soluções em P1 ;

• Passo 2: Combinação: Gere descendentes Qt da seguinte forma:


2.1 Escolha duas soluções x e y de Pt baseado em seus valores fitness;
2.2 Usando um operador de combinação, gere os cromossomos filhos e os adicione a
Qt .

• Passo 3: Mutação: Utilize o operador de mutação em cada uma das soluções x ∈ Qt ,


com uma taxa de mutação pré-definida;

• Passo 4: Avalie e atribua um valor fitness para cada solução x ∈ Qt baseando-se em


seus valores das funções objetivos e em sua viabilidade;

• Passo 5: Seleção: Selecione N soluções de Qt baseando-se em seus valores fitness e


os copie para Pt+1 ;

• Passo 6: Se o critério de parada for satisfeito, termine o processo e retorne para a


população atual ou, caso contrário, defina t = t + 1 e vá para o Passo 2.

3.5.3 Método NSGA-II


Dentre os diversos modelos de algoritmos genéticos, encontra-se o NSGA (Nondo-
minated Sorting Genetic Algorithm), método popularmente utilizado em casos de otimização
com múltiplos objetivos (SRINIVAS; DEB, 1994). Seu algoritmo seleciona os melhores
candidatos, classificando-os em diferentes sub-grupos baseados nas relações de dominância
de Pareto. Será utilizado nesse trabalho a versão mais atual desse algoritmo, o NSGA-II,
que apresenta uma complexidade computacional menor do que o seu antecessor (DEB et
al., 2002).

No método NSGA-II, a população de N indivíduos é iniciada como de costume e


classificada de acordo com a frente de Pareto que cada indivíduo da população ocupa. A
primeira frente (rank 1 ) consiste em indivíduos que não foram dominados por nenhum
outro indivíduo na população. A segunda frente (rank 2 ) possui os indivíduos que não
são dominados por nenhum outro indivíduo da população, com exceção os da primeira
Capítulo 3. Fundamentos teóricos 27

frente e assim por diante. Uma representação dessa classificação pode ser vista na figura
11, retirada de Marseguerra, Zio e Pofillini (2002).

Figura 11: Exemplos de ranks de uma população para um problema de mximização de f1


e f2 (MARSEGUERRA; ZIO; POFILLINI, 2002)

Além do rank atribuído a esses indivíduos, tem-se um outro parâmetro chamado


de crowding distance que também deve ser calculado. Esse parâmetro mede o quão perto
um indivíduo está de seus vizinhos. Um valor maior de crowding distance irá resultar em
uma diversidade maior da população. A figura 12 exemplifica essa distância.
Capítulo 3. Fundamentos teóricos 28

Figura 12: Exemplo de um cubóide de crowding distance. Pontos preenchidos são soluções
de uma mesma frente não dominada (FORTIN; PARIZEAU, 2013)

Após incializada a população e classificados os indivíduos, os cromossomos pais


são selecionados a partir de uma seleção chamada de binary tournament que consiste em
restringir a população a um número fixado ou a um percentual, chamado de pool size, e
dentro dessa população escolher os n melhores indivíduos (tour size) a partir de seu rank
e de sua crowding distance (MILLER; GOLDBER, 1195). Um indivíduo é selecionado se
seu rank for menor que de outro indivíduo, ou no caso de os ranks serem iguais entre os
dois, se sua crowding distance for maior que a do outro indivíduo. Esses cromossomos pais
geram cromossomos filhos a partir de operadores de combinação e mutação.

Em seguida, essa nova população, que possui a população antiga mais os cro-
mossomos filhos, sofre uma nova classificação de seus indivíduos e apenas os N melhores
indivíduos são selecionados, onde N é o tamanho da população. O processo continua até
ser atingido o número desejado de gerações.
29

4 Simulação de Monte Carlo

4.1 Definição do problema


Este trabalho tem como finalidade otimizar a configuração de um sistema em
série genérico (minimizar custos e maximizar produção), onde seus componentes podem
ter ou não redundâncias. Para tanto, antes de ser iniciado um método de otimização, que
no caso serão os algoritmos genéticos, é necessário primeiro a utilização de um método
que devolverá o custo e a produção total da configuração que se está analisando.

Neste contexto, temos a simulação de Monte Carlo, cujo funcionamento foi descrito
no capítulo anterior. A partir deste método pode-se calcular qual será a confiabilidade do
sistema, no caso de não haver nenhum tipo de manutenção, e a disponibilidade média do
sistema, neste caso com a inclusão de manutenções corretivas e/ou preventivas.

Deseja-se então que o algoritmo desenvolvido para a simulação de Monte Carlo


contemple o fato de que os componentes podem ser de tipos de diferentes, mesmo no
caso das redundâncias, fazendo com que seus tempos de falha possam seguir diferentes
distribuições, como por exemplo, a exponencial e a de Weibull. Da mesma forma, é
desejado que o sistema possa ter ou não manutenção corretiva quando houver uma falha
em um componente, e no caso onde houver manutenção corretiva, o número de equipes
de manutenção possa ser ou não limitado. Em um primeiro momento, as manutenções
preventivas não serão adicionadas ao algoritmo. Porém em uma próxima etapa, será
possível dizer de quanto em quanto tempo deverá ser feita uma manutenção preventiva
que trará os componentes a um estado "zero"de funcionamento.

No momento, deseja-se que a simulação de Monte Carlo devolverá a confiabilidade


e/ou a disponibilidade média do sistema, que será validada tanto com o software Maros,
quanto com cálculos analíticos. Porém, em um segundo momento, será calculado também
o custo deste sistema, assim como a sua produtividade que estará diretamente ligada a
sua disponibilidade média.

4.2 Algoritmo da simulação de Monte Carlo


Foi desenvolvido um algoritmo em linguagem Matlab que realiza a simulação
de Monte Carlo para um sistema genérico com n componentes em série, sendo que cada
componente pode ter cada um k redundâncias em paralelo, todas ativas. Ou seja, não foi
Capítulo 4. Simulação de Monte Carlo 30

considerado neste trabalho redundâncias em stand-by, que são redundâncias passaivas que
ficam inativas enquanto um outro componente em paralelo está funcionando e só entram
em funcionamento no caso de falha de um componente. Além disso, os componentes são
independentes e não compartilham carga com suas redundâncias.

Como entrada do programa, tem-se o número de componentes em série n e


número de redundâncias de cada componente kn , cujo máximo valor está definido em 10
redundâncias. Para cada componente, Cnk (componente k do conjunto de redundâncias em
paralelo n), é inserida no programa uma matriz com as taxas de transição. Será considerado
que todos os componentes só possuem um estado de funcionamento, definido como estado
1. Além do estado de funcionamento, ele tem o estado de falha, definido como 2. A matriz
de transições, portanto, é uma matriz 2x2, com a sua diagonal principal contendo apenas
zeros, já que a transição de um estado para ele mesmo não é considerada na simulação.
Ela contém a taxa de falha,λ1→2 , e a taxa de reparo, λ2→1 , como mostra a tabela 2. Porém,
é importante frisar que essa matriz se aplica para o caso da distribuição exponencial, que
é representada por um parâmetro apenas, λ. A distribuição de Weibull, por exemplo, tem
dois parâmetros que a define: um de forma, α, e um de escala, β. Neste caso, a matriz
tem que contemplar, para cada transição, esses dois parâmetros. Da mesma forma, caso o
componente possua tempos de transição determinados por uma distribuição, a sua matriz
de transições deve conter os parâmetros necessários. Vale ressaltar que foi assumido como
premissa neste trabalho que todos os reparos são perfeitos, ou seja, trazem o componente
ao seu estado inicial (as good as new).

Tabela 2: Matriz de transições dos componentes


1 2
1 0 λ1→2
2 λ2→1 0

Como entrada, também devem ser inseridos o tempo de missão, TM , e o número


de simulações, nSim. Esse número pode variar bastante, mas em geral, principalmente
para os sistemas mais simples, com menos componentes, é necessário um valor elevado
de simulações para se conseguir uma convergência do resultado: na ordem de 4 a 5 casas
decimais.

A simulação é iniciada com todos os componentes ativos, em estado de funciona-


mento 1. É, então, calculado para cada componente o tempo da próxima transição. No caso
da primeira iteração, serão gerados os tempos em que ocorrerão as falhas dos componentes,
já que todos estão neste primeiro momento em funcionamento. O componente Cnk que
apresentar o menor tempo de transição é o que sofrerá essa transição, e dessa forma, o
contador de tempo da simulação, t, que começa inicialmente com zero, será substituído
Capítulo 4. Simulação de Monte Carlo 31

por esse tempo de transição do componente Cnk .

A ideia é que o algoritmo de simulação funcione de forma independente a como


estão definidas as matrizes de transições do componente. Ou seja, no código principal
serão chamadas funções que devolvem o tempo de transição gerado de forma aleatória de
acordo com os parâmetros da distribuição de falha e reparo do componente.

Após a primeira transição ter sido feita, o processo é repetido: são gerados os
tempos de transição para todos os componentes, inclusive para o componente que acabou
de sofrer a transição. Como este está agora em modo falha, o tempo de transição gerado
para ele é o tempo de seu reparo. Novamente, são colocados os tempos de transição
gerados em ordem crescente e é escolhido o menor tempo de transição. Ao contador
de tempo de simulação é somado esse tempo, assim como ao tempo de funcionamento
dos equipamentos que estão em funcionamento. Aqui é importante lembrar que, para
distribuições exponenciais, não é necessário saber a quanto tempo um componente está
funcionando para se gerar o seu tempo de transição, por se tratar de uma distribuição
sem memória. Entretanto, como o código permite que os componentes tenham outras
distribuições de tempo de falha e de reparo, como Weibull por exemplo, deve-se armazenar
para cada componente o tempo que este está funcionando, pois esse tempo impactará no
seu tempo de transição.

O código será dividido em duas vertentes: uma para o caso de não haver manuten-
ção corretiva e uma para o caso onde há manutenção corretiva. Ou seja, no primeiro caso,
quando há uma falha do componente, dentro do tempo de missão, o código procura se há
alguma redundância em funcionamento. Se houver, o sistema continua funcionando, porém,
se todas as redundâncias em paralelo estiverem no modo de falha, ou se um componente
que falhou não possuir redundâncias, o sistema entra em modo de falha e a simulação
termina. É contabilizado que houve falha antes do tempo de missão naquela simulação
e o tempo total de funcionamento é também guardado. Para estes casos, calcula-se a
confiabilidade do sistema, dividindo-se o número de simulações em que não houve falha
do sistema antes de finalizado o tempo de simulação pelo número total de simulações. O
algoritmo da simulação sem manutenção é mostrado na figura 13.

No segundo caso, onde há manutenção corretiva, quando há falha em um compo-


nente, este é reparado e volta ao seu estado de funcionamento. Na prática, esse reparo
costuma não ser perfeito, ou seja, o componente ao ser reparado não volta para o mesmo
estado inicial, o que faz com quem a sua distribuição de tempo de falha se altere. Entre-
tanto, para este trabalho, serão considerados apenas os reparos perfeitos, ou seja, aqueles
que fazem o componente voltar ao seu estado inicial de funcionamento. Para o caso da
manutenção corretiva, podem se ter equipes de manutenção limitadas ou ilimitadas. Na
Capítulo 4. Simulação de Monte Carlo 32

Figura 13: Fluxograma da simulação de Monte Carlo sem manutenção corretiva

prática, é comum os casos onde há equipes especializadas em um determinado tipo de


componente, porém, para este trabalho será considerada que uma mesma equipe pode
fazer a manutenção de qualquer componente. Porém será dada a possibilidade de se limitar
o número de equipes disponíveis. Ou seja, se for definido como parâmetro de entrada que
há apenas 3 equipes de manutenção disponíveis, caso haja três componentes em falha, o
quarto componente a falhar não poderá ser imediatamente reparado. Será preciso que uma
manutenção seja finalizada para que este componente comece a ser reparado.

Mesmo com um número ilimitado de equipes de manutenção, o sistema pode


entrar em modo de falha, também chamado de downtime. Isso ocorre porque quando há
a falha do componente que causa a falha do sistema, enquanto este componente estiver
sendo reparado o sistema continua parado, mesmo com um número ilimitado de equipes.
Nestes casos, a variável downtime recebe o tempo em que o sistema ficou em falha, que
pode ocorrer mais de uma vez durante uma simulação. Ao fim da simulação, é calculada
a não-disponibilidade do sistema dividindo-se o tempo somado de downtime pelo tempo
total de simulação. O fluxograma da simulação de Monte Carlo com manutenção corretiva
é mostrado na figura 14.
Capítulo 4. Simulação de Monte Carlo 33

Figura 14: Fluxograma da simulação de Monte Carlo com manutenção corretiva

Resumindo-se, para cada simulação são geradas aleatoriamente as transições


do sistema conforme os parâmetros de distribuição dos tempos de transição de cada
componente. Essas transições são feitas até que o contador de tempo da simulação alcance
o tempo de missão, ou no caso onde não há manutenção corretiva, o sistema entre em
modo de falha. Em ambos os casos, quando há falha em um componente, só haverá falha
do sistema quando todas as redundâncias em paralelo deste componente estiverem também
em modo de falha ou quando este componente não possuir nenhuma redundância.

4.3 Validação
Após terminado o algoritmo da simulação de Monte Carlo, é necessário testá-lo e
validá-lo para garantirmos que a sua implementação foi feita corretamente e que podemos
usá-lo para o problema de otimização. Dessa forma, foi pesquisado em diversas literaturas
algum estudo de caso simples que aplicasse a simulação de Monte Carlo em situações com
e sem manutenção corretiva. Infelizmente, as referências que trazem um caso de estudo
neste contexto são poucas, e geralmente aplicam situações mais complexas que as que
estão sendo usadas neste trabalho, como por exemplo, equipes diferenciadas para cada
Capítulo 4. Simulação de Monte Carlo 34

componente, degeneração do componente, manutenção imperfeitas, entre outros.

Entretanto, a referência Zio (2013) apresenta um estudo de caso simples que já


foi apresentado na seção anterior. Trata-se de dois componentes em paralelo A e B ligados
em série com um componente C, todos ativos. Todos os componentes possuem tempo de
falha e de reparo com distribuições exponenciais. A esquematização deste sistema pode ser
vista na figura 15 e as matrizes de transição dos componentes podem ser vista na tabela 3.

Figura 15: Estudo de caso: sistema em série-paralelo (ZIO, 2013)

Tabela 3: Matrizes de transição dos componentes A, B e C

Taxas de transição (h−1 )


Componentes A e B

1 2
1 0 0,005
2 0,02 0
Componente C

1 2
1 0 0,0005
2 0,03 0

A validação será dividida em três partes: primeiramente, será validado o código


para a situação em que não nenhum tipo de manutenção. Essa validação será feita
analiticamente, pelas fórmulas de confiabilidade de sistemas em série e em paralelo. Em
um segundo momento, o código será validado na situação de manutenção corretiva com
equipes ilimitadas. Essa validação será feita diretamente com os resultados apresentados
em Zio (2013) e com os resultados obtidos pelo software MAROS. Por fim, será feita a
validação com dois sistemas mais complexos, com diferentes distribuições de falha, equipes
limitadas de manutenção e com manutenção preventiva periódica dos componentes. Essa
validação será feita com os resultados obtidos pelo software MAROS.
Capítulo 4. Simulação de Monte Carlo 35

4.3.1 Sistema sem manutenção corretiva


Para este primeiro caso, o algoritmo calcula a confiabilidade do sistema dividindo-
se o número de simulações em que houve falha do sistema antes de terminado o tempo
de missão pelo número total de simulações. A falha ocorre quando o componente A e B
estão ao mesmo tempo em modo de falha ou quando o componente C entra em modo de
falha. Assim que ocorre a falha do sistema, é terminada a simulação e a essa simulação é
contabilizada uma falha.

Analiticamente, a confiabilidade do sistema neste caso pode ser facilmente calcu-


lada pela seguinte equação:

RS (t) = [1 − (1 − RA (t))(1 − RB (t))] RC (t) (4.1)

onde RS (t) é a confiabilidade do sitema e RA (t), RB (t) e RC (t) são as confiabilidades dos
componentes A, B e C, respectivamente.

Como tratam-se de componentes com tempos de falha que seguem uma distribui-
ção exponencial, temos:
h A B
i C
RS (t) = 1 − (1 − e−λ1→2 t )(1 − e−λ1→2 t ) e−λ1→2 t (4.2)

onde λi1→2 é a taxa de falha do componente i.

O algoritmo foi testado para diversos tempos de missão, variando-se o número de


simulações e os resultados estão apresentados nas tabelas 4 a 7.

Tabela 4: Resultados para tempo de missão de 10h

Tempo de missão = 10h


o
N de simulações Resultado analítico Resultado da simulação Erro (%)
1 · 103 0,9926 0,9930 0,04
5 · 103 0,9926 0,9910 0,16
1 · 104 0,9926 0,9937 0,11
5 · 104 0,9926 0,9928 0,02
1 · 105 0,9926 0,9930 0,04
5 · 105 0,9926 0,9927 0,01

Pode-se verificar pelos resultados que as simulações com tempos de missão menores
geram resultados mais apurados, ou seja com menores erros. Também verifica-se nos quatro
casos que aumentar o número de simulações não ocasiona necessariamente uma diminuição
do erro. As soluções obtidas pelas simulações tendem a oscilar em volta da solução analítica
Capítulo 4. Simulação de Monte Carlo 36

Tabela 5: Resultados para tempo de missão de 100h

Tempo de missão = 100h


o
N de simulações Resultado analítico Resultado da simulação Erro (%)
1 · 103 0,8040 0,8170 1,62
5 · 103 0,8040 0,8060 0,25
1 · 104 0,8040 0,8110 0,87
5 · 104 0,8040 0,8044 0,05
1 · 105 0,8040 0,8027 0,16
2 · 105 0,8040 0,8040 0,00

Tabela 6: Resultados para tempo de missão de 500h

Tempo de missão = 500h


o
N de simulações Resultado analítico Resultado da simulação Erro (%)
1 · 103 0,1226 0,1110 9,46
5 · 103 0,1226 0,1228 0,16
1 · 104 0,1226 0,1197 2,36
5 · 104 0,1226 0,1215 0,90
1 · 105 0,1226 0,1221 0,41
2 · 105 0,1226 0,1225 0,08

Tabela 7: Resultados para tempo de missão de 1000h

Tempo de missão = 1000h


o
N de simulações Resultado analítico Resultado da simulação Erro (%)
1 · 103 0,0081 0,0100 23,46
5 · 103 0,0081 0,0084 3,70
1 · 104 0,0081 0,0070 13,58
5 · 104 0,0081 0,0084 3,70
1 · 105 0,0081 0,0081 0,00
2 · 105 0,0081 0,0082 1,23

e para tempos de missão maiores, é necessário um maior número de simulações para se


alcançar convergência.

4.3.2 Sistema com manutenção corretiva


Nesta situação, assim que um componente falha, uma equipe de manutenção
começa imediatamente a reparar esse componente. Seguindo as mesmas características do
estudo de caso apresentado em Zio (2013), tem-se para essa simulação:
Capítulo 4. Simulação de Monte Carlo 37

• Os componentes são binários, com um estado de funcionamento (estado 1) e um


estado de falha (estado 2)

• O tempo de transição do componente i do estado ji para o estado mi é uma variável


estocástica que segue uma distribuição exponencial com taxa constante λiji →mi ,
i=1,2,3 e ji ,mi =1,2.

• Não há dependências de nenhum tipo (carregamento, standby, etc.)

• O reparo começa imediatamente após a falha do componente

• Reparos são feitos sempre com sucesso e levam o componente a uma condição perfeita
de funcionamento (e.g., as good as new)

O tempo de missão é de 1000h e as taxas de transição dos componentes são as


mesmas apresentadas a tabela 3. Os resultados das simulações podem ser vistos na tabela
8.

Tabela 8: Resultados de disponibilidade média (%) encontrada para o software MAROS e


para o algoritmo de Monte Carlo com 1 · 105 simulações

Tempo missão (h) MAROS MC 1 · 105 sim. Diferença (%) Tempo de simulação (s)
20 99,383 99,393 0,010 21,91
40 98,476 98,618 0,144 27,59
60 97,926 97,943 0,017 30,29
80 97,422 97,457 0,036 67,23
100 96,903 97,021 0,122 41,65
200 95,644 95,825 0,189 64,07
300 95,127 95,431 0,320 85,66
400 95,097 95,182 0,089 83,18
500 94,921 95,033 0,118 144,86
700 94,824 94,896 0,076 117,95
800 94,801 94,852 0,054 150,81
900 94,704 94,776 0,076 168,91
1000 94,686 94,745 0,062 226,98

Graficamente, podemos comparar os resultados obtidos tanto pelo MAROS


quanto pelo algoritmo de Monte Carlo, figura 16, com os resultados obtidos por Zio (2013)
mostrados na figura 17.
Capítulo 4. Simulação de Monte Carlo 38

Figura 16: Comparação entre os resultados de não disponibilidade obtidos pelo MAROS
e pelo algoritmo de Monte Carlo com 1 · 105 simulações para o caso com
manutenção corretiva

Figura 17: Resultados de não disponibilidade para o caso de estudo com manutenção
corretiva (ZIO, 2013)

É possível verificar que os resultados obtidos pelo algoritmo de simulação de Monte


Carlo estão muito próximos pelos valores encontrados pelo software MAROS. Percebe-se
também que o esforço computacional aumenta consideravelmente ao se aumentar o tempo
de missão do sistema, passando de 20s de simulação (tempo de missão de 20h) para
3min47s (tempo de missão de 1000h).
Capítulo 4. Simulação de Monte Carlo 39

Já se olharmos para o gráfico apresentado em Zio (2013), os resultados obtidos


pelo algoritmo e pelo MAROS são um pouco menores do que os encontrados na referência.
Porém ainda pode se considerar que os resultados estão satisfatoriamente próximos do
desejado e que o algoritmo da simulação de Monte Carlo foi implementado com sucesso.

4.3.3 Sistema com manutenção preventiva


Para se aumentar a confiabilidade de sistemas complexos, uma alternativa possível
é o programa de manutenção preventiva. Tal programa pode reduzir o efeito do desgaste do
componente com o tempo e tem um impacto significativo na vida do sistema (EBELING,
2010). Para o caso deste trabalho, será considerado que as manutenções preventivas
restauram o componente à sua condição original (good as new).

Foram testados dois sistemas diferentes, mostrados nas figuras 18 e 19, cujos
parâmetros estão presentes nas tabelas 9 e 10, respectivamente.

As distribuições de falha dos componentes podem ser tão exponenciais como


Weibull, e a taxa de reparo é sempre constante. É importante lembrar que, para um
componente com taxa de falha constante, a manutenção preventiva não terá nenhum efeito
sobre a confiabilidade do componente, devido à sua distribuição sem memória. Entretanto,
ela pode acarretar maiores períodos de donwitme devido às interrupções que devem ser
feitas nos componentes durante as manutenções preventivas.

Além disso, visando adicionar ainda mais complexidade à validação, foram limi-
tadas o número de equipes de manutenção disponíveis para 1, 2 ou 3 equipes. Neste caso,
as equipes que fazem as manutenções corretivas são as mesmas que fazem as manutenções
preventivas, e as taxas de reparo são também as mesmas.
Capítulo 4. Simulação de Monte Carlo 40

Figura 18: Esquematização do Sistema 1

Figura 19: Esquematização do Sistema 2


Capítulo 4. Simulação de Monte Carlo 41

Tabela 9: Parâmetros do sistema 1

Bloco Componente Dist. Falha β α/λ Dist. reparo λ (ano) Int. manut. (ano)

1 1 exponencial - 4.38 exponencial 175.2 1


2 2 Weibull 1.2 0.5 exponencial 131.4 2
2 3 Weibull 1.2 0.5 exponencial 131.4 2
3 4 Weibull 2.4 0.25 exponencial 87.6 0.16
3 5 Weibull 2.4 0.25 exponencial 87.6 0.16
3 6 Weibull 2.4 0.25 exponencial 87.6 0.16
4 7 Weibull 1.4 0.7 exponencial 87.6 2
4 8 Weibull 1.4 0.7 exponencial 87.6 2
5 9 exponencial - 4.38 exponencial 175.2 1

Tabela 10: Parâmetros do sistema 2

Bloco Componente Dist. Falha β α Dist. reparo λ (ano) Int. manut. (ano)

1 1 Weibull 2.0 0.3 exponencial 175.2 1


2 2 Weibull 2.4 0.25 exponencial 87.6 2
2 3 Weibull 2.4 0.25 exponencial 87.6 2
3 4 Weibull 1.2 0.5 exponencial 43.8 1.5

O tempo de missão para os dois sistemas é de 10 anos. O número de simulações


utilizadas no software MAROS é de 250 para todos os casos, e no algoritmo de Monte Carlo
foi utilizada 250 simulações para o sistema 1, que é mais complexo, e 1000 simulações para
o sistema 2 que não demanda tanto esforço computacional. As tabelas 11 e 12 apresentam
os resultados obtidos para os dois sistemas.

Tabela 11: Resultados das simulações para o sistema 1

Manutenção Equipes de Disponibilidade Disponibilidade Tempo de


Diferença (%)
preventiva manutenção MAROS (%) Monte Carlo (%) simulação (s)

sim 1 85,970 95,23 10,77 73,00


sim 2 92,687 95,60 3,14 74,03
sim 3 91,829 94,65 3,08 77,93
sim ilimitada 91,844 94,71 3,12 75,38
não 1 92,707 93,08 0,41 61,60
não 2 94,946 95,07 0,13 53,64
não 3 95,112 95,13 0,02 53,33
não ilimitada 95,116 95,21 0,10 53,31
Capítulo 4. Simulação de Monte Carlo 42

Tabela 12: Resultados das simulações para o sistema 2

Manutenção Equipes de Disponibilidade Disponibilidade Tempo de


Diferença (%)
preventiva manutenção MAROS (%) Monte Carlo (%) simulação (s)

sim 1 90,09 93,72 4,03 50,54


sim 2 91,34 94,47 3,43 46,9
sim 3 91,44 94,43 3,27 48,91
sim ilimitada 91,44 94,39 3,23 47,01
não 1 92,15 92,47 0,35 64,9
não 2 93,18 93,33 0,16 63,03
não 3 93,20 93,34 0,16 72,35
não ilimitada 92,20 93,30 0,11 62,47

Pode-se verificar a partir dos resultados que para os casos onde há manutenção
preventiva, foram encontradas discrepâncias significativos em relação ao MAROS. Após
uma investigação mais profunda do funcionamento do software, descobriu-se a forma como
é configurada a manutenção preventiva no MAROS difere das premissas de manutenção
preventivas utilizadas no algoritmo implementado:

• Os intervalos de manutenção preventiva do MAROS consideram o tempo global


de funcionamento do sistema enquanto que o algoritmo considera o horímetro
do componente. Ou seja, se a manutenção preventiva ocorre a cada 100 horas,
para o MAROS essa manutenção ocorrerá no tempo de simulação 100, 200, 300,
etc, independente se o componente falhou nesse meio tempo. Para o algoritmo
implementado, a manutenção ocorre a cada 100h de funcionamento do componente.
Caso o componente falhe antes de 100h, o horímetro dele zera e devem ser contados
novamente 100h de funcionamento para que a manutenção ocorra.

• No MAROS, quando um componente não pode ter sua manutenção preventiva no


instante programado por falta de equipe, ele entra em uma fila e assim que há equipes
disponíveis a manutenção ocorre instantaneamente. No algoritmo, por sua vez, se o
componente não pode ter a manutenção preventiva naquele momento ela é feita na
próxima manutenção preventiva programada. Ou seja, se ela não pode ocorrer com
100h de funcionamento, ela ocorrera com 200h de funcionamento.

• No algoritmo, a manutenção preventiva só ocorre se o componente estiver em estado


de funcionamento. No MAROS, se o componente estiver em modo de falha ele terá
a sua manutenção preventiva assim que voltar ao modo de funcionamento.

A política de manutenção do MAROS é realística e adequada para os casos que


se aproximam de uma operação normal de uma planta de produção, onde a confiabilidade
Capítulo 4. Simulação de Monte Carlo 43

dos componentes tende a ser alta. Entretanto, neste trabalho, os sistemas simulados são
propositalmente escolhidos para terem disponibilidades menores e com isso intervalos entre
falhas também menores, a fim de se gerar validar melhor o algoritmo com um espectro
maior de soluções.

Com isso, decidiu-se em não adaptar o código à política de manutenção preventiva


do MAROS, pois ela não é aderente aos sistemas que estão sendo simulados. Uma prova
disso é que para o algoritmo implementado, a manutenção preventiva gera disponibilidades
maiores quando comparada a configurações sem manutenção preventiva, enquanto que
para o MAROS ocorre o contrário: a manutenção preventiva prejudica os resultados de
disponibilidade.
44

5 Otimização por algoritmos genéticos

5.1 Definição do problema


Considera-se um sistema com s subsistemas em série, sendo que cada subsistema
pode ter até kn componentes ativos em paralelo, também chamados de redundâncias.
Cada um desses subsistemas exerce uma função e o projetista da planta deve selecionar a
configuração que maximizará o lucro líquido e a disponbilidade do sistema. Para tanto, ele
pode selecionar como redundâncias componentes com diferentes características de falha
e reparo e também com diferentes custos. Além disso, decisões em relação a número de
equipes e manutenções preventivas também devem ser levadas em consideração. A figura
20, retirada de Tian e Zuo (2006), representa a esquematização de um sistema genérico.

Figura 20: Estrutura de um sistema em série com redundâncias em paralelo (TIAN; ZUO,
2006)

A fim de guiar a seleção da melhor configuração, o projetista define uma ou


mais funções objetivo que levam em conta todos os aspectos relevantes da operação. Para
este trabalho, as funções objetivo consideradas foram a disponibilidade média e o lucro
líquido do sistema. Para tanto, os seguintes itens devem ser computados (CANTONI;
MASEGUERRA; ZIO, 2000)

• Receita da operação da planta

• Custos de aquisição e instalação

• Custos de reparo

• Penalidades durante o downtime, devido ao não cumprimento do serviço acordado

• Custos devido a danos e acidentes (não serão considerados neste trabalho)


Capítulo 5. Otimização por algoritmos genéticos 45

Dessa forma, tem-se a seguinte função objetivo de lucro líquido:

L = P − (CA + CR + CD + CACC ) (5.1)

onde

Z TM
P = Pt D(t)dt (5.2)
0

é a receita da operação da planta na qual Pt é a quantidade de dinheiro paga por


unidade de tempo pelo cliente (suposta constante no tempo) e D(t) é a disponibilidade da
planta no tempo t.

NC
X
CA = Cj (5.3)
j=1

é o custo de aquisição e instalação de todos os NC componentes do sistema.

NC
X Z TM
CR = CRj IRj (t)dt (5.4)
j=1 0

é o custo de reparo de todos os NC componentes do sistema com CRj sendo o


custo por unidade de tempo de reparo do componente j (suposto constante durante o
tempo) e IRj sendo uma função característica igual a 1 se o componente j estiver em
reparo no tempo t, ou igual 0, caso contrário.

Z TM
CD = C U [1 − A(t)] dt (5.5)
0

é a quantidade de dinheiro a ser paga ao cliente devido ao não cumprimento do


serviço acordado devido aos períodos de downtime, sendo CU (constante no tempo) a
penalidade monetária por unidade de downtime.

A operação e gerenciamento de uma planta de produção requer uma contabiliza-


ção das restrições provenientes dos requisitos de segurança e confiabilidade assim como
considerações sobre os custos e recursos. Na etapa de projeto da planta, diversas análises
são realizadas a fim de guiar a escolha do projetista em relação a aspectos práticos que
tipicamente geram conflitos entre requisitos de seguranças e necessidades econômicas. Em
particular, para o problema em questão, o principal aspeto a ser otimizado refere-se à
escolha dos componentes do sistema, cujas característica de falha e reparo costumam ser
diferentes entre si. Desse fato surge o conflito segurança versus custos, descrito abaixo.
Capítulo 5. Otimização por algoritmos genéticos 46

• Escolha dos componentes: ao escolher os componentes mais confiáveis, garante-


se que uma configuração de alta disponibilidade mas que pode se tornar pouco
econômica devido aos excessivos custos de aquisição. Por outro lado componentes
menos confiáveis fornecem menores custos de aquisição porém perdem no quesito
disponbilidade do sistema e podem aumentar o risco de acidentes que causarão
despesas extras;

• Escolha da configuração de redundâncias: ao se escolher uma configuração com muitas


redundâncias, aumenta-se a confiabilidade e disponibilidade do sistema, porém gera
altos custos de aquisição e eventualmente de reparo.

Neste contexto, será utilizado o algoritmo de Monte Carlo, apresentado na primeira


parte deste trabalho, que computará tanto os custos quanto a disponibilidade média das
configurações.

Dependendo do número de nós e de redundâncias máximas que o sistema poderá


ter, avaliar todas as possibilidades de configuração torna-se impossível devido ao esforço
computacional que requer uma simulação de Monte Carlo. Para resolver esse impasse,
utiliza-se o método de algoritmos genéticos, apresentado anteriormente, em que a busca de
configurações possíveis torna-se mais direcionada, diminuindo drasticamente o número de
possibilidades a serem testadas. Para tanto o método NSGA-II foi o escolhido para essa
tarefa, cujo algoritmo implementado está explicado na próxima seção.

5.2 Algoritmo
Foi desenvolvido um código em Matlab que visa a otimização da confiuração de
um sistema genérico unindo-se a simulação de Monte Carlo, implementada na primeira
fase deste trabalho, com o método de algoritmos genéticos NSGA-II.

O algoritmo é iniciado determinando-se o número de nós n (subsistemas) que


o sistema possui e o máximo de redundâncias, maxred , que cada nó pode ter. Em um
arquivo separado, tem-se diversos tipos de componente com os respectivos parâmetros
referentes à falha e manutenção do componente. Foi determinado, a fim de simplificar o
processo de otimização, que cada subsistema pode possuir apenas um tipo de componente.

Dentre os parâmetros que podem ser otimizados pelo algoritmo estão o número
de redundâncias de cada componente, o número de equipes de manutenção disponíveis e o
intervalo entre manutenções preventivas de cada componente. Em uma primeira etapa
de validação do algoritmo, será otimizado apenas o número de redundâncias de cada nó,
considerando-se então que o número de equipes de manutenção é ilimitado e que não há
Capítulo 5. Otimização por algoritmos genéticos 47

manutenção preventiva no sistema. Em uma próxima etapa, esses aspectos entrarão no


algoritmo como parâmetros de otimização.

Dessa forma, tem-se que o cromossomo possui como genes apenas o número de
redundâncias de cada subsistema, o que faz com que seu tamanho seja igual a n.

Define-se, então, o tamanho da população inicial npop , que dependerá diretamente


do número total de configurações possíveis. Definido esse número, são gerados aleatoria-
mente npop cromossomos cujos parâmetros respeitam o limite máximo de redundâncias
possíveis para cada nó. Em seguida a função de Monte Carlo é executada para cada
cromossomo e os parâmetros necessários para a simulação são: genes do cromossomo
(redundâncias), tipo de componente de cada nó, tempo de missão e número de simulações.

Computados os valores de disponibilidade média e lucro líquido para cada com-


ponente, classificam-se os cromossomos em seus respectivos ranks pelo critério de não-
dominância e calcula-se para cada ponto o seu valor de crowding distance, ambos critérios
explicados na seção de fundamentos teóricos. É definido, em seguida, o número de gerações
que serão comutadas no algoritmo. Este parâmetro define o critério de parada.

A cada geração devem ser definidos os cromossomos pais a serem cruzados,


utilizando-se o método tournament selection, em que o parâmetro pool size define a
porcentagem ou o número de cromossomos que serão selecionados aleatoriamente da
população e o parâmetro tour size define o quantidade de cromossomos que serão escolhidos
dessa população. Selecionam-se os melhores cromossomos, comparando-se o rank a que
eles pertencem e a crowding distance a eles atribuídos.

Define-se, então, uma probabilidade de combinação, pc que determina se os cro-


mossomos pais escolhidos serão cruzados ou não. Esta probabilidade costuma ser alta,
sendo muitas vezes igual a 1 (MARSEGUERRA; ZIO; PODOFILLINI, 2004) e (MARSE-
GUERRA; ZIO; POFILLINI, 2002). Para realizar a combinação entre os cromossomos pais,
gera-se um número aleatório que varia de 1 a n-1 que determinará o ponto de cruzamento
dos cromossomos. Realizando a combinação são gerados, então, os cromossomos filhos.

Para o operador de mutação, foram encontradas diferentes abordagens nas referên-


cias levantadas. Em alguns casos aplica-se o operador de mutação, com uma probabilidade
pm , apenas nos cromossomos filhos gerados na etapa anterior. Porém, o método NSGA-II
aplica a mutação em toda a população, inclusive nos filhos daquela geração. A probabilidade
de mutação costuma ser bem baixa, variando de 1 a 10%.

Após realizadas as operações de combinação e mutação, tem-se uma nova po-


pulação que possui os cromossomos filhos resultantes da combinação e possíveis novos
cromossomos gerados pela mutação. Deve-se, então, reclassificar os cromossomos em relação
Capítulo 5. Otimização por algoritmos genéticos 48

aos critérios de não-dominância e apenas os npop melhores cromossomos serão selcionados


e avançarão para a próxima etapa. Esse processo se repete até que o número de gerações
pré-fixado seja atingido. O resultado é definido pelos cromossomos da última geração cujo
valor de rank é igual a 1. Ou seja, os cromossomos que fazem parte das soluções ótimas de
Pareto.

É importante destacar que em algumas variâncias do método de algoritmo


genéticos, os cromossomos filhos gerados pela combinação ou mutação não são somados
à população e sim substituem os cromossomos pais quando seus valores de fitness são
melhores (MARSEGUERRA; ZIO; PODOFILLINI, 2004) e (MARSEGUERRA; ZIO;
POFILLINI, 2002). Porém, na abordagem NSGA-II, os novos cromossomos gerados são
adicionados à população e o que definirá se eles permanecerão na população é a comparação
de seu valor fitness com todos os outros cromossomos e não apenas com os seus pais
(FORTIN; PARIZEAU, 2013) e (DEB et al., 2002).

5.3 Validação
A validação para o algoritmo implementado foi feito com dois estudos de caso. O
primeiro visa otimizar apenas a alocação de redundâncias de um sistema com três compo-
nentes em série, sem manutenção preventiva e com equipes ilimitadas para manutenção
corretiva. O segundo estudo de caso otimiza o tipo de componente que deve ser utilizado,
a utilização de redundância, os intervalos de manutenção preventiva e o número de equipes
de manutenção.

5.3.1 Estudo de caso 1


Para validar o algoritmo descrito acima, foi escolhido um sistema encontrado
na referência Cantoni, Maseguerra e Zio (2000). A princípio, foram utilizadas as taxas
de falha e reparo e os custos de aquisição e reparo dos componentes apresentados no
artigo, entretanto, os resultados de disponibilidade obtido eram em sua maioria de 100%
o que gerava uma frente de Pareto muito restrita. Decidiu-se, então, adotar valores que
gerassem um maior espectro de soluções no quesito disponibilidade versus lucro líquido. É
importante lembrar, entretanto, que o algoritmo permite um número ilimitado de nós e
um máximo 10 redundâncias por nó, além de permitir que a distribuição de falha e de
reparo dos componentes seja exponencial ou Weibull.

Para o caso de estudo, tem-se um sistema simples com 3 nós, sendo que cada nó
pode ter no máximo 4 componentes em paralelo (3 redundâncias), o que gera um total
de 64 configurações possíveis. Para este caso, todos os componentes têm taxas de falha
Capítulo 5. Otimização por algoritmos genéticos 49

e reparo constantes, o número de equipes de manutenção é ilimitado e não há política


de manutenção preventiva. Além disso, todos os componentes são ativos, independetes e
não compartilham carga e as manutenções são perfeitas, ou seja, devolvem o componente
ao estado as good as new. O sistema foi escolhido de forma a não possuir um número
total de possíveis configurações muito alto para que pudessem ser computados os valores
objetivo de todas as configurações. Feito isso, os cromossomos (soluções) são classificados
e a curva de soluções de Pareto é formada. Dessa forma, tem-se um gabarito de como as
configurações resultantes da otimização deverias ser.

A esquematização do sistema pode ser vista na figura 21 e as tabelas 13 e 14


mostram as características dos componentes e os parâmetros utilizados na simulação.

Figura 21: Esquematização do sistema 1

Tabela 13: Características dos componentes

Taxa de falha Taxa de falha Custo de Custo de


Componente −1 −1
lambda (h ) mi (h ) aquisição ($) reparo ($ h−1 )

a 9, 00 · 10−3 4, 0 · 102 3000 30


b 1, 25 · 10−2 1, 0 · 101 2000 30
−3 2
c 8, 00 · 10 2, 0 · 10 4000 35
Capítulo 5. Otimização por algoritmos genéticos 50

Tabela 14: Dados do sistema e da simulação

Parâmetro Valor

Receita da planta ($) 50000


Penalidade de downtime por unidade de tempo Cu ($ h−1 ) 50
Tempo de missão (h) 1000
Número de simulações de Monte Carlo 250
População inicial 10
Número de gerações 6
Probabilidade de combinação Pc 1
Probabilidade de mutação Pm 0,10

Primeiramente, foram computados os valores das funções de objetivo para cada


uma das 64 configurações e as soluções foram, então, classificadas em relação aos seus
ranks. A figura 22 apresenta os resultados ressaltando as soluções com rank 1 (frente de
Pareto), que deve servir como referência para as otimizações.
Capítulo 5. Otimização por algoritmos genéticos 51

Figura 22: Resultados das 64 configurações com destaque para a frente de Pareto (soluções
com rank 1)

A otimização por algoritmo genético foi simulada com uma população inicial de
20 indivíduos e 6 gerações, como mostra a tabela 14. A figura 23 apresenta a evolução dos
cromossomos classificados com rank 1 para o algoritmo de otimização. Pode-se verificar,
por exemplo, que algumas configurações se mantêm com a evolução das gerações. A 1a
geração, em amarelo, não aparece, pois todas as suas configurações pelo menos em uma
geração posterior.
Capítulo 5. Otimização por algoritmos genéticos 52

Figura 23: Evolução dos indivíduos classifcados com rank 1 no algoritmo de otimização

A figura 24 apresenta a população de cromossomos obtida pela 6a geração. Os


cromossomos estão divididos em 3 ranks.

Figura 24: Indivíduos resultantes da simulação com 6 gerações

Por fim, a figura 25 apresenta a comparação entre os indivíduos com rank 1


Capítulo 5. Otimização por algoritmos genéticos 53

encontrados na 6a geração da otimização por algoritmo genético e os indivíduos com rank


1 (frente de Pareto) resultantes da verificação de cada uma das 64 configurações.

Figura 25: Comparação entre o resultado obtido pela otimização e pela frente de Pareto
encontrada testando todas as 64 configurações

As configurações cujos valores apresentaram rank 1 ao fim da simulação de


otimização representam um subconjunto da frente de Pareto encontrada para as 64
configurações. Somado a isso, tem-se uma rápida convergência para a curva ótima ao longo
das gerações. Pode-se concluir, então, que o algoritmo mostrou-se eficiente para encontrar
as soluções ótimas do problema abordado.

A simulação de todas as configurações levou um total de 3min10s e a otimização


levou um total de 2min, o que é esperado para uma sistema que possui 64 configurações
possíveis, já que a otimização tem que computar de qualquer forma os resultados de 20
indivíduos iniciais e a cada geração mais 2 indivíduos devido à combinação e eventuais
indivíduos que sofram mutação. Isso faz com que na otimização a simulação de Monte
Carlo seja chamada no mínimo 32 vezes.

5.3.2 Estudo de caso 2


Em um segundo estudo de caso, foram adicionadas algumas complexidades à
otimização. Além da alocação de redundâncias, a otimização deve ser capaz de escolher
qual o melhor tipo de componente a ser utilizado (com distribuições de falha exponenciais
Capítulo 5. Otimização por algoritmos genéticos 54

e Weibull), os intervalos de manutenção preventiva e o número de equipes disponíveis para


as manutenções.

Dessa forma, foi escolhido um sistema com três componentes em série (figura 26),
sendo que cada componente pode ter uma redundância ou não e o primeiro e o terceiro
componente podem ser de dois tipos diferentes, como mostra a tabela 15. Além disso,
pode-se escolher se o sistema terá manutenção preventiva ou não. Em caso afirmativo,
há duas opções de intervalos de manutenção preventiva. Por fim, pode se escolher se o
sistema terá uma, duas ou três equipes de manutenção. O tempo de missão do sistema é
de 1000 horas.

Figura 26: Esquematização do sistema a ser otimizado

Tabela 15: Taxas de falha e manutenção dos componentes


Falha Manutenção corretiva Manutenção preventiva

Componente Distribuição MTTF (h) λ ou α β Distribuição MTTR (h) λ Distribuição Intervalo (h) λ MTTR (h)

Componente 1 – tipo A Exponencial 720 0,0014 – Exponencial 55 0,0182 – – – –


Componente 1 – tipo B Exponencial 600 0,0017 – Exponencial 42 0,0238 – – – –
Componente 2 Weibull 600 672 3 Exponencial 24 0,0417 Exponencial 200 ou 250 0,050 20
Componente 3 – tipo A Weibull 300 336 3 Exponencial 48 0,0208 Exponencial 500 ou 550 0,067 15
Componente 3 – tipo B Weibull 250 280 2 Exponencial 50 0,0200 Exponencial 500 ou 550 0,100 10

Pode-se notar que para os tipos de componente 1 não há manutenção preventiva


e isso deve-se ao fato de a distribuição de falha ser exponencial, ou seja sem memória, e
com isso a manutenção preventiva não surte efeito para esse caso. A tabela 16 apresenta
os custos de aquisição e de manutenção desses componentes e a tabela 17 apresenta os
dados gerais da otimização.
Capítulo 5. Otimização por algoritmos genéticos 55

Tabela 16: Custos de aquisição e manutenção dos componentes

Custos

Manutenção Manutenção
Componente Aquisição ($)
corretiva ($ h ) preventiva ($ h−1 )
−1

Componente 1 – tipo A 6000 20 50


Componente 1 – tipo B 5000 25 62
Componente 2 7000 50 70
Componente 3 – tipo A 6000 30 90
Componente 3 – tipo B 5000 25 100

Tabela 17: Informações gerais do sistema

Parâmetro Valor

Tempo de Missão (h) 1000


Simulações de Monte Carlo 1000
Produção ($) 100000
Custo de downtime ($ h−1 ) 60
Custo de cada equipe ($) 3000
Número de componentes 3
Máximo de redundâncias 1
Total de configurações 768

Os cromossomos que serão utilizados na simulações possuem o formato mostrado


na figura 27, onde cada gene representa um parâmetro do sistema a ser otimizado.

Figura 27: Formato do cromossomo utilizado no algoritmo genético

Primeiramente, foi aplicado o algoritmo de simulação de Monte Carlo em todas


as configurações possíveis, obtendo assim os pontos mostrados na figura 28. Os pontos
em azul representam os resultados de todas as configurações simuladas e os pontos em
Capítulo 5. Otimização por algoritmos genéticos 56

vermelho são relativos às soluções não dominadas (com rank 1). A simulação levou um
tempo total de 52min32s.

Pode-se verificar que os resultados estão divididos em seis diferentes faixas


e algumas configurações geram prejuízo para a planta (apesar de terem as maiores
disponibilidades). A tabela 18 apresenta a configurações com rank 1 (não dominadas) e
seus respectivos resultados de lucro e disponibilidade. Ti representa o tipo de componente
i e Ri representa o número de redundâncias do componente i.

Figura 28: Resultado das 768 configurações possíveis


Capítulo 5. Otimização por algoritmos genéticos 57

Tabela 18: Configurações não dominadas - rank 1


T1 T2 T3 Preventiva (S/N) R1 R2 R3 P rev1 P rev2 P rev3 Equipes Dsiponibilidade (%) Lucro

1 1 2 1 1 1 1 1000 500 200 2 97,77 $ 19.335


1 1 2 1 1 0 1 1000 550 200 1 92,30 $ 45.352
1 1 2 1 1 1 1 1000 550 200 1 95,91 $ 37.114
1 1 1 0 1 1 1 1000 500 250 2 97,83 $ 19.119
1 1 1 1 1 1 1 1000 550 250 2 98,37 $ 18.143
1 1 2 1 1 1 1 1000 500 200 1 96,19 $ 37.003
1 1 1 1 1 1 1 1000 500 250 1 97,18 $ 35.725
1 1 2 1 1 0 1 1000 500 200 1 92,35 $ 45.153
1 1 2 1 0 0 1 1000 550 200 1 87,72 $ 50.407
1 1 2 1 0 0 0 1000 550 250 1 81,78 $ 56.052
1 1 2 1 1 0 1 1000 500 250 1 92,06 $ 45.514
1 1 2 1 1 1 1 1000 550 250 1 95,55 $ 37.444
1 1 2 1 0 0 1 1000 550 250 1 87,48 $ 50.671
1 1 1 1 0 0 1 1000 550 200 1 89,47 $ 48.985
1 1 1 1 1 0 1 1000 550 200 1 94,12 $ 43.928
1 1 2 1 1 1 1 1000 550 200 2 97,73 $ 19.352
1 1 1 1 1 1 1 1000 550 200 1 97,6 $ 35.546
1 1 1 1 0 0 0 1000 550 250 1 84,23 $ 56.042
1 1 1 1 1 1 1 1000 550 200 2 98,59 $ 17.673
1 1 1 0 0 0 0 1000 550 250 1 81,56 $ 56.438

As otimizações foram feitas alterando-se o tamanho da população inicial, o número


de gerações e a probabilidade de mutação. Para todas as otimizações a probabilidade
de combinação dos cromossomos pais é 100% e há apenas um ponto de pivotamento
(escolhido arbitrariamente). Além disso, a mutação é feita em um gene também escolhido
arbitrariamente, respeitando-se o seu range de valores possíveis.

A primeira otimização foi feita a partir de uma população inicial de 20 indivíduos


com 10 gerações e probabilidade de mutação de 5%. A simulação levou um tempo total de
3min54s. Os resultados estão mostrados na figura 29 e na tabela 19.
Capítulo 5. Otimização por algoritmos genéticos 58

Figura 29: 1a otimização. População inicial: 20, No de gerações: 10; Prob. de mutação: 5%

Tabela 19: 1a otimização. População inicial: 20, No de gerações: 10; Prob. de mutação: 5%
T1 T2 T3 Preventiva (S/N) R1 R2 R3 P rev1 P rev2 P rev3 Equipes Dsiponibilidade (%) Lucro

1 1 1 1 1 1 1 1000 550 200 1 97,90 $ 33.455


1 1 1 1 1 0 1 1000 550 200 1 94,47 $ 38.559
1 1 1 0 1 0 1 1000 500 250 1 91,09 $ 43.925
1 1 2 1 0 0 1 1000 550 200 1 87,62 $ 50.378

A segunda otimização foi feita utilizando novamente uma população inicial de 20


indivíduos e probabilidade de mutação de 5%, porém com 20 gerações. Os resultados são
mostrados na figura 30 e na tabela 20. Pode-se verificar, que um maior número de gerações
gerou um maior número de soluções não dominadas, porém estas estão mais afastadas da
frente de Pareto do que a simulação anterior.
Capítulo 5. Otimização por algoritmos genéticos 59

Figura 30: 2a otimização. População inicial: 20, No de gerações: 20; Prob. de mutação: 5%

Tabela 20: 2a otimização. População inicial: 20, No de gerações: 20; Prob. de mutação: 5%
T1 T2 T3 Preventiva (S/N) R1 R2 R3 P rev1 P rev2 P rev3 Equipes Dsiponibilidade (%) Lucro

1 1 1 0 0 0 0 1000 500 250 2 81,54 $ 47.230


2 1 1 1 0 0 1 1000 500 250 1 87,98 $ 46.867
2 1 2 0 1 0 1 1000 550 200 1 88,60 $ 42.261
1 1 2 1 0 1 1 1000 500 200 1 89,79 $ 41.081
2 1 1 1 0 0 1 1000 500 200 2 89,91 $ 35.892
1 1 1 0 0 0 1 1000 500 250 2 90,09 $ 29.263
1 1 1 0 1 0 1 1000 500 200 2 95,01 $ 25.874
1 1 2 1 1 1 1 1000 550 200 2 97,70 $ 19.396
1 1 1 0 1 1 1 1000 550 250 2 97,72 $ 16.595
1 1 1 0 1 1 1 1000 550 250 3 98,02 $ -898
1 1 1 1 1 1 1 1000 550 250 3 98,53 $ -1.287

A teceira otimização foi feita utilizando e uma população inicial de 30 indivíduos,


probabilidade de mutação de 5% e 20 gerações. O tempo total de simulação foi de 6min43s.
Os resultados são mostrados na figura 31 e na tabela 21. Para essa simulação, temos pontos
mais aderentes à frente de Pareto.
Capítulo 5. Otimização por algoritmos genéticos 60

Figura 31: 3a otimização. População inicial: 30, No de gerações: 20; Prob. de mutação: 5%

Tabela 21: 3a otimização. População inicial: 30, No de gerações: 20; Prob. de mutação: 5%
T1 T2 T3 Preventiva (S/N) R1 R2 R3 P rev1 P rev2 P rev3 Equipes Dsiponibilidade (%) Lucro

2 1 2 0 0 0 0 1000 550 200 1 78,39 $ 54.096


1 1 1 1 1 0 0 1000 500 200 1 87,35 $ 49.090
1 1 2 0 1 0 1 1000 500 250 1 88,95 $ 44.681
2 1 2 1 0 0 1 1000 500 250 2 89,12 $ 37.946
1 1 1 1 1 0 1 1000 500 200 1 93,80 $ 37.242
1 1 1 1 1 1 1 1000 500 200 1 97,92 $ 33.510
1 1 1 1 1 1 1 1000 500 250 3 98,29 $2
1 1 1 1 1 1 1 1000 500 200 3 98,48 $ -507

Para a quarta otimização, foram utilizados os mesmo parâmetros da simulação


anterior, porém a probabilidade de mutação foi aumentada para 10%. O tempo de simulação
foi de 8min42s. A figura 32 e a tabela 22 apresentam os resultados dessa simulação.
Capítulo 5. Otimização por algoritmos genéticos 61

Figura 32: 4a otimização. População inicial: 30, No de gerações: 20; Prob. de mutação:
10%

Tabela 22: 4a otimização. População inicial: 30, No de gerações: 20; Prob. de mutação:
10%
T1 T2 T3 Preventiva (S/N) R1 R2 R3 P rev1 P rev2 P rev3 Equipes Dsiponibilidade (%) Lucro

2 1 1 0 0 0 0 1000 500 200 1 80,61 $ 54.648


2 1 1 1 1 0 0 1000 500 250 1 86,32 $ 46.734
1 1 1 1 1 0 1 1000 550 200 1 94,30 $ 38.452
1 1 1 1 1 0 1 1000 500 200 1 94,32 $ 38.264
1 1 1 1 1 1 1 1000 550 200 1 97,64 $ 33.256
2 1 1 1 1 1 1 1000 500 200 1 97,77 $ 30.796
2 1 1 1 1 1 1 1000 550 200 2 98,72 $ 14.181

Por fim, foi realizada uma última simulação com população inicial de 30 indivíduos,
30 gerações e probabilidade de mutação 10%. O tempo total de simulação foi de 14min05s.
Os resultados estão presentes na figura 33 e na tabela 23.
Capítulo 5. Otimização por algoritmos genéticos 62

Figura 33: 5a otimização. População inicial: 30, No de gerações: 30; Prob. de mutação:
10%

Tabela 23: 5a otimização. População inicial: 30, No de gerações: 30; Prob. de mutação:
10%
T1 T2 T3 Preventiva (S/N) R1 R2 R3 P rev1 P rev2 P rev3 Equipes Dsiponibilidade (%) Lucro

1 1 2 0 0 0 0 1000 550 200 1 78,66 $ 55.549


1 1 2 1 1 0 0 1000 550 250 1 84,95 $ 50.044
1 1 2 1 1 0 1 1000 550 200 1 92,82 $ 45.755
1 1 1 1 1 0 1 1000 500 200 1 94,00 $ 43.805
1 1 2 1 1 1 1 1000 550 250 1 95,03 $ 36.833
1 1 1 1 1 1 1 1000 550 200 1 97,89 $ 33.722
1 1 1 1 1 1 1 1000 500 200 1 97,93 $ 33.655
1 1 1 1 1 1 1 1000 550 250 3 98,43 $ -1.376
1 1 1 1 1 1 1 1000 550 200 3 98,52 $ -1.925

As cinco simulações feitas mostraram que o número de soluções não dominadas


encontradas costuma ser menor que 10, diferente da frente de Pareto que possui 20
indivíduos. Isso se deve, principalmente, pelo fato de o algoritmo encontrar soluções
próximas umas das outras, sendo difícil aumentar o espectro de configurações ótimas.
Aumentar muito a probabilidade de mutação, a fim de se aumentar o espaço de busca,
pode prejudicar a convergência das soluções, pois ela permite encontrar soluções mais
distantes, porém não necessariamente melhores.
Capítulo 5. Otimização por algoritmos genéticos 63

A primeira otimização feita gerou resultados muito aderentes à frente de Pareto,


porém foram poucas soluções encontradas. A segunda otimização por sua vez, gerou vários
resultados, porém pouco aderentes à curva ótima. A terceira e a quarta otimização geraram
resultados melhores, porém alguns pontos ainda se distanciam da curva ótima. E por
fim, a última solução apresentou os resultados mais aderentes, porém foi também a mais
demorada, causando um tempo de simulação de 14 minutos, o que representa 26% do
tempo que levaria testar todas as configurações e que não se mostra muito vantajoso.

Em geral, o algoritmo se mostrou eficiente em convergir para a curva ótima de


simulações. Apesar de não gerar um número de soluções muito alto, deve-se levar em conta
que o sistema analisado foi propositalmente elaborado para gerar um espectro amplo se
soluções, a fim de se ter uma melhor visão da otimização. Com isso, fica mais difícil uma
convergência, pois qualquer pequena mudança no cromossomo causa uma mudança brusca
em relação à disponibilidade e lucro encontrados.
64

6 Conclusões

Este trabalho se mostrou desafiador tanto no quesito de fundamentação teórica,


pois aborda assuntos externos às matérias do curso de graduação da engenharia naval.
Tanto confiabilidade de sistema, simulação de Monte Carlo e algoritmos genéticos se
mostraram assuntos complexos e muito interessantes.

Além da fundamentação teórica, outro desafio foi a implementação dos códigos de


Monte Carlo e de algoritmos genéticos que além de serem complexos por si só, demandaram
uma alta flexibilidade no que tange à alteração de parâmetros e de funcionalidades.

Apesar do caráter desafiador deste trabalho, os algoritmos implementados se


mostraram úteis e confiáveis. Os resultados das validações feitas tanto para o código
de Monte Carlo quanto para algoritmos genéticos se mostraram muito satisfatórios e
abrangeram tanto soluções analíticas, referências bibliográficas e resultados obtidos por
um software de mercado.

Com isso, pode-se afirmar que esse trabalho é uma base sólida para um estudo
mais aprofundado da otimização multiobjetivo, em que sistemas maiores e mais complexos
podem vir a ser simulados e otimizados.
65

Referências

BELLMAN, R.; DREYFUS, E. Dynamic programming and reliability of multicomponents


devices. Oper Res, 1958. Citado na página 1.

CANTONI, M.; MASEGUERRA, M.; ZIO, E. Genetic algorithms and monte carlo
simulation for optimal plant design. Reliability Engineering and System Safety, 2000.
Citado 4 vezes nas páginas 1, 2, 44 e 48.

CHERN, M. On the computational complexity of reliability redundancy allocation in a


series system. Oper Res Lett, 1992. Citado na página 1.

DEB, K. et al. A fast elitist multi- objective genetic algorithm: Nsga-ii. IEEE Transactions
on Evolutionary Computation, v. 6, n. 2, p. 182–197, 2002. Citado 2 vezes nas páginas 26
e 48.

EBELING, C. E. An introduction to reliability and maintainability engineering. 2nd


edition. ed. [S.l.: s.n.], 2010. Citado 4 vezes nas páginas 5, 6, 39 e 67.

EN, N. 13306. Terminologie de la maintenance, 2001. Citado na página 5.

FOGEL, D.; GHOZEIL, A. Using fitness distributions to design more efficient evolutionary
computations. In: Proceedings of IEEE International Conference on Evolutionary
Computation, 1996. [S.l.: s.n.], 1996. Citado na página 22.

FORTIN, F.; PARIZEAU, M. Revisiting the nsga-ii crowding-distance computation. In:


Proceedings of the 15th annual conference on Genetic and evolutionary computation. [S.l.:
s.n.], 2013. Citado 2 vezes nas páginas 28 e 48.

FYFFE, D.; HINES, W.; LEE, N. System reliability allocation and a computational
algorithm. IEEE Trans Reliability, 1968. Citado na página 1.

GEN, M.; R, C. Genetic algorithms and engineering desing. [S.l.]: John Wiley & Sons,
1197. Citado na página 22.

GOLDBERG, D. Genetic algorithms in search, optimization and machine learning.


Reading, MA: Addison - Wesley, 1989. Citado 3 vezes nas páginas 2, 22 e 23.

HOLLAND, J. Adaptation in natural and artificial systems. Ann Arbor: University of


Michigan Press, 1975. Citado na página 25.

KIM, I. Y.; WECK, O. L. de. Adaptive weighted-sum method for bi-objective optimization:
Pareto front generation. Structural and Multidisciplinary Optimization, v. 29, n. 2, p.
149–158, 2005. Citado na página 21.

KONAK, A.; COIT, D.; SMITH, A. Multi-objective optimization using genetic algorithms:
A tutorial. Reliability Engineering and System Safety, 2006. Citado na página 24.

MARSEGUERRA, M.; ZIO, E.; PODOFILLINI, L. Multiobjective spare part allocation


by means of genetic algorithms and monte carlo simulation. Reliability Engineering and
System Safety, 2004. Citado 3 vezes nas páginas 2, 47 e 48.
Referências 66

MARSEGUERRA, M.; ZIO, E.; POFILLINI, L. Condition-based maintenance


optimization by means of genetic algorithms and monte carlo simulation. Reliability
Engineering and System Safety, 2002. Citado 3 vezes nas páginas 27, 47 e 48.

MARTINS, M. R. Considerações sobre análise de confiabilidade e risco. 2013. Citado na


página 4.

MILLER, B. L.; GOLDBER, D. E. Genetic algorithms, tournament selection, and the


effects of noise. Complex systems, v. 9, n. 3, p. 193–212, 1195. Citado na página 28.

MODARRES, M.; KAMINSKIY, M.; KRIVTSOV, V. Reliability engineering and risk


analysis: a practical guide. 2nd edition. ed. [S.l.: s.n.], 2010. Citado na página 67.

RAO, K. D. et al. Dynamic fault tree analysis using monte carlo simulation in a
probabilistic safety assesment. Relaibility Engineering and Safety System, 2009. Citado
na página 14.

READ, D. Utility theory from jeremy bentham to daniel kahneman. Department of


Operational Research, London School of Economics, 2004. Citado na página 21.

SAWAGARI, Y.; NAKAYAMA, H.; TANINO, T. Theory of multiobjective optimization.


Orlando, FL: Academic Press, 1985. Citado na página 1.

SRINIVAS, N.; DEB, K. Multiobjective optimization using nondominated sorting in


genetic algorithms. Journal of Evolutionary Computation, v. 2, n. 3, p. 221–248, 1994.
Citado na página 26.

TIAN, Z.; ZUO, M. Redundancy allocation for multi-state systems using physical
programming and genetic algorithms. Reliability Engineering and System Safety, 2006.
Citado na página 44.

TILLMAN, F.; HWANG, C.; KUO, W. Optimization techniques for system reliability
with redundancy: a review. IEEE Trans Reliability, 1977. Citado na página 1.

TILLMAN, F. A.; HWANG, C. L.; KUO, W. Optimization techniques for system


reliability. New York: Marcel Dekker, 1980. Citado na página 1.

ZIO, E. The Monte Carlo Simulation Method for System Reliability and Risk Analysis.
[S.l.]: Springer-Verlag London, 2013. Citado 11 vezes nas páginas 14, 16, 17, 18, 19, 20,
34, 36, 37, 38 e 39.

ZITZLER, E.; DEB K THIELE, L. Comparison of multiobjective evolutionary algorithms:


Empirical results. Evolutionary Computation, 2000. Citado na página 25.

ZITZLER, E.; THIELE, L. Multiobjective evolutionary algorithms: a comparative


case study and the strength pareto approach. IEEE Transactions on Evolutionary
Computation, 1999. Citado na página 21.
67

APÊNDICE A – Funções densidade de


probabilidade

Neste capítulo em anexo está presente as definições e fórmulas para consulta de


algumas funções densidades de probabilidades contínuas. As funções discretas não são
apresentadas por não fazerem parte do escopo do projeto.

A.1 Distribuição Exponencial


Uma distribuição de falha que tenha uma taxa de falha constante é chamada de
distribuição de probabilidade exponencial. A distribuição exponencial é uma das distribuições
de confiabilidade mais importantes (EBELING, 2010). Essa distribuição foi historicamente
a primeira utilizada como um modelo de distribuição de tempo de falha (MODARRES;
KAMINSKIY; KRIVTSOV, 2010), e é ainda a mais usada em problemas de confiabilidade.

Muitos sitemas exibem taxas de falhas constantes, e a distribuição exponencial é


em muitos aspectos a distribuição de confiabilidade mais simples de se analisar.

Para o desenvolvimento do modelo de taxa de falha constante (ou CFR, constant


failure rate) assume-se que a taxa de falha seja constante no tempo, ou seja, λ(t) = λ,
t ≥ 0, λ > 0, então, da equação 3.10:
 Z t 
R(t) = exp − λ(t )dt = e−λt ,
0 0
t≥0 (A.1)
0

consequentemente,
F (t) = 1 − e−λt (A.2)

Também, da equação 3.8:


−dR(t)
f (t) = = λe−λt (A.3)
dt

As três funções de probabilidade estão ilustradas nas figuras 34, 35 e 36 para


alguns valores de λ. Para encontrar o MTTF, usa-se a equação 3.11:
Z ∞
1
MT T F = R(t)dt = (A.4)
0 λ
Também pode-se chegar no valor da variância por:
Z ∞ 2
1 1
σ2 = t− λe−λt dt = (A.5)
0 λ λ2
APÊNDICE A. Funções densidade de probabilidade 68

e o desvio padrão é 1/λ= MTTF. Isso implica que a variabilidade do tempo de falha
aumenta conforme a confiabilidade (MTTF) também aumenta.

R(t)
1.2

1 λ
0.25
0.8 1.00
5.00
0.6

0.4

0.2

0 t
0 1 2 3 4

Figura 34: Função confiabilidade exponencial

F(t)
1.2

0.8

0.6

λ
0.4
0.25
1.00
0.2
5.00
0 t
0 1 2 3 4

Figura 35: Função de distribuição acumulada exponencial


APÊNDICE A. Funções densidade de probabilidade 69

f(t)
6

λ
2
1.0
2.5
1
5.0
0 t
0 0.5 1 1.5 2

Figura 36: Função densidade de probabilidade exponencial

Uma característica bem conhecida do modelo com taxa de falha constante,


diferente de outras distribuições de falha, é a falta de memória. Isto é, o tempo para
um componente falhar não depende de quanto tempo ele esteve operando. Isto pode ser
matematicamente demonstrado usando o conhecimento de confiabilidade condicional:
R(t + T0 ) e−λ(t+T0 )
R(t|T0 ) = = −λT0
R(T0 ) e
−λt −λT0
e ·e
= = e−λt = R(t)
e−λT0
Ou seja, o fato de se saber que um período T0 já se passou não tem efeito subsequente na
confiabilidade do componente. O tempo para falhar depende apenas do tempo de operação
(t) observado.

A.2 Distribuição Normal


A distribuição normal tem sido usada com êxito em representar fadiga e obsolência
de componentes e sistemas. A função densidade de probabilidade (PDF) de uma distribuição
normal fornece uma curva em forma de sino, representada pela figura 37. A integral sob a
curva totaliza 1, 0 e sua fórmula é dada por:

" #
1 1 (t − µ)2
f (t) = √ exp − −∞<t<∞ (A.6)
2πσ 2 σ2
onde os parâmetros µ e σ 2 são a média e a variância da distribuição, respectivamente.

A distribuição normal não é a distribuição de confiabilidade, pois a variável


aleatória varia de menos infinito a mais infinito. Entretanto, para a maioria dos valores
APÊNDICE A. Funções densidade de probabilidade 70

de µ e σ observados, a probabilidade de a variável aleatória assumir valor negativo é


negligenciável, e a distribuição normal, portanto, pode ser uma aproximação razoável para
um processo de falha. A distribuição é simétrica no seu valor médio e sua dispersão é
determinada pelo desvio padrão σ. Quanto maior o valor de σ, maior é o espalhamento da
região sobre a curva com relação ao eixo correspondente à variável aleatória.

f(t)

0.8

0.6

0.4

0.2

0
-3 -2 -1 0 1 2 3
t

Figura 37: Função densidade de probabilidade (PDF) com média µ = 0 e desvio padrão
σ = 0, 5

A.3 Distribuição de Weibull


A distribuição de Weibull permite a representação das mais variadas formas para
a distribuição de probabilidade de falhas possibilitando sua aplicação em todas as 3 regiões
da curva da banheira (figura 38), ou seja, para a modelagem do processo de falha com
taxa de falha constante, crescente ou decrescente com o tempo. Porém, os parâmetros da
distribuição são diferentes para cada região.
APÊNDICE A. Funções densidade de probabilidade 71

Figura 38: Curva da banheira

Utilizando a distribuição de Weibull para representar o tempo t até a falha de


um componente, a sua distribuição de probabilidade de falhas é expressa por:
 β−1
β t t β
f (t) = e−( α ) (A.7)
α α
onde t ≥ 0; α é o fator de escala, cuja unidade é a mesma da variável t, e β o fator de
forma (α, β > 0) e, portanto:

!β−1  0 β
Z ∞
β t0 − t
t β
R(t) = e α
dt0 = e−( α ) (A.8)
t α α

!β−1  0 β
Z t
β t0 − t
t β
F (t) = e α
dt0 = 1 − e−( α ) (A.9)
0 α α

 β−1
f (t) β t
λ(t) = = (A.10)
R(t) α α

Conclui-se que λ(t) decresce com o tempo para 0 < β < 1; λ(t) é crescente com
o tempo para β > 1; λ(t) é constante e igual a 1/α para β = 1, e; para 3 < β < 4, a
distribuição tende a uma distribuição normal.

Você também pode gostar