• Nenhum resultado encontrado

PyRDMIA: um pacote intervalar para aritmética RDM

N/A
N/A
Protected

Academic year: 2021

Share "PyRDMIA: um pacote intervalar para aritmética RDM"

Copied!
75
0
0

Texto

(1)

Programa de Pós-Graduação em Computação

Dissertação

PyRDMIA: um pacote intervalar para aritmética RDM

Dirceu A. Maraschin Jr.

(2)

PyRDMIA: um pacote intervalar para aritmética RDM

Dissertação apresentada ao Programa de Pós-Graduação em Computação da Universidade Federal de Pelotas, como requisito parcial à obtenção do título de Mestre em Ciência da Computação

Orientadora: Prof. Dra. Aline Brum Loreto

(3)

M298p Maraschin Junior, Dirceu Antonio

MarPyRDMIA : um pacote intervalar para aritmética RDM /

Dirceu Antonio Maraschin Junior ; Aline Brum Loreto, orientadora. — Pelotas, 2019.

Mar75 f.

MarDissertação (Mestrado) — Programa de Pós-Graduação

em Computação, Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, 2019.

Mar1. Rdm-ia. 2. Aritmética intervalar. 3. Python. 4. Computação numérica. I. Loreto, Aline Brum, orient. II. Título.

CDD : 005 Elaborada por Maria Inez Figueiredo Figas Machado CRB: 10/1612

(4)

A Deus por todas as conquistas que obtive durante este percurso, fortalecendo-me nos momentos de dificuldade e, firme na fé de que tudo acaba bem quando se empe-nha trabalho e dedicação, eu agradeço. Agradeço imensamente à miempe-nha família por todo o apoio, permitindo que esta etapa fosse possível longe de casa, em uma nova e importante etapa da minha vida. À minha namorada Luísa eu agradeço por todo o carinho, paciência nos momentos difíceis que enfrentamos na distância e na falta ine-vitáveis nessa busca pelos nossos sonhos e construção de um futuro, por permanecer ao meu lado todos os dias. Te amo! Não poderia deixar de agradecer também às ami-zades que construímos ao longo da vida, meu grande amigo Dhyonatan te agradeço pela parceria, trocas de ideia e apoio para que sigamos em frente nos momentos de dúvida entre continuar ou desistir. Tiago e Kelen, os agradeço por serem tão ilustres, receptivos e confiantes em nossas capacidades mútuas para o desenvolvimento de ideias, empreendimentos e o que mais vier pela frente. Lucas, a ti agradeço e dedico minha admiração, amizade incontestável e coleguismo. Tornaste minha chegada a Pelotas bem mais fácil, onde tudo era novo e muito diferente, agradeço por cada dia de trabalho, todo o conhecimento que obtive contigo e por tudo o que desenvolvemos e ainda temos à frente. Agradeço à professora Aline, minha orientadora, pelo aceite no trabalho conjunto durante o período deste mestrado. Junto, à Alice agradeço por compor o grupo de pesquisa. Todos são pessoas importantes e de alguma forma con-tribuíram e permitiram o desenvolvimento deste trabalho, durante estes dois anos de aprendizado e amadurecimento. Mais uma vez, a todos, digo obrigado.

(5)

MARASCHIN JR., Dirceu A..PyRDMIA: um pacote intervalar para aritmética RDM. 2019. 74 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Computação, Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2019.

No trabalho com dados numéricos em ambiente computacional, alguns proble-mas precisam ser enfrentados em consequência da limitação que a máquina tem em representar estes valores. Dado que o computador opera sobre a aritmética de ponto flutuante, quantidades numéricas são aproximadas para números de máquina representáveis, gerando assim erros que podem levar a resultados incorretos. Além disso, as grandezas possuem uma incerteza intrínseca proveniente do equipamento utilizado para determiná-la ou do operador. Isso mostra que não se pode afirmar quanto à exatidão de um valor de resultado gerado após uma sequência de opera-ções. Uma alternativa aos erros gerados pela aritmética de ponto flutuante está na representação de números por meio de intervalos. Podendo ser feito com o uso da aritmética intervalar, a qual proporciona controle automático de erros, além de que resultados intervalares carregam consigo a garantia de sua incerteza. Aplicada em di-versas áreas, a aritmética intervalar teve início em 1966 com o que hoje é chamado de aritmética intervalar padrão (SIA, do inglês, Standard Interval Arithmetic) ou clássica, desenvolvida por Moore. Porém, o trabalho com intervalos não é uma tarefa simples e a busca pela solução de falhas e insuficiências de SIA fez com que novas definições para a aritmética intervalar fossem desenvolvidas. A definição mais moderna para o uso de intervalos é a aritmética multidimensional RDM (do inglês, Relative Distance Measure). Com uma abordagem que difere das demais definições para o uso de intervalos como alternativa ao uso de valores pontuais, RDM-IA - Relative Distance Measure - Interval Arithmetic - introduz uma variável como elemento para representar e tratar a incerteza de valores numéricos. Existem poucas aplicações que utilizam RDM-IA onde, para estas, apenas abordagens teóricas foram empregadas. A com-putação científica tem como um de seus objetivos a construção de soluções técnicas para análise e resolução de problemas científicos, mas para isso se faz necessária uma interface que possibilite a aplicação da solução ao problema de forma genérica. Em vista disso, o presente trabalho mostra a aritmética multidimensional RDM em seu estado da arte no que diz respeito a conceitos e aplicações para, a partir de então, apresentar o desenvolvimento de um pacote intervalar em linguagem de programação Python que contempla essa definição, possibilitando sua aplicação em algoritmos na busca de soluções para problemas envolvendo computação numérica.

(6)

MARASCHIN JR., Dirceu A.. PyRDMIA: an intervalar package for RDM arithmetic. 2019. 74 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Computação, Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2019.

In the work with numerical data in computational environment, some problems have to be faced as a consequence of the limitation that the machine has in representing these values. Because the computer operates on floating-point arithmetic, numerical quantities are approximated to representable machine numbers, thus generating errors that can lead to incorrect results. Moreover, the quantities have an intrinsic uncertainty from the equipment used to determine it or from the operator. This shows that it can not be said as to the accuracy of a result value generated after a sequence of operations. An alternative to the errors generated by floating-point arithmetic is in the representa-tion of numbers by means of intervals. It can be done with the use of interval arithmetic, which provides automatic error control, besides which interval results carry the guaran-tee of their uncertainty. Applied in several areas, interval arithmetic began in 1966 with what is now called standard interval arithmetic (SIA), developed by Moore. However, the work with intervals is not a simple task and the search for the solution of failures and insufficiencies of SIA has made that new definitions for the interval arithmetic were developed. The most modern definition for the use of intervals is the arithmetic RDM (Relative Distance Measure). With an approach that differs from other definitions for the use of intervals as an alternative to the use of point values, RDM-IA (Relative Dis-tance Measure - Interval Arithmetic) introduces a variable as an element to represent and treat the uncertainty of numerical values. There are few applications that use RDM-IA where, for these, only theoretical approaches have been employed.There are few applications that use RDM-IA where, for these, only theoretical approaches have been employed. Scientific computation has as one of its objectives the construction of technical solutions for the analysis and resolution of scientific problems, but for that an interface is necessary that allows the application of the solution to the problem in a generic way. In view of this, the present work shows the multidimensional RDM arith-metic in its state of the art with respect to concepts and applications to, from then on, present the development of an interval package in Python programming language that contemplates this definition, making possible its application in algorithms in the search of solutions to problems involving numerical computation.

(7)

1 Interpolação polinomial, f (x) = x2 . . . . 17

2 Valor de x1 expresso em notação RDM-IA. . . 23

3 Variáveis RDM como coordenadas locais no plano. . . 26

4 Variáveis RDM como coordenadas no plano. . . 27

5 Arquitetura de PyRDMIA . . . 48

6 Estrutura para tratamento de exceções em PyRDMIA . . . 49

7 Ajuste de precisão, definição básica de intervalos RDM e operações básicas em PyRDMIA. . . 52

8 Exemplos de uso para operações unárias e relacionais com PyRDMIA. 53 9 Exemplo de operação utilizando operações trigonométricas com PyRDMIA. . . 56

10 Exemplos de uso para as métricas qualitativas intervalares de PyRDMIA. . . 57

11 Exemplo de métricas quantitativas intervalares executadas utili-zando PyRDMIA. . . 58

(8)

1 Operações entre [a] e [b] e valores atribuídos à αae αb. . . 25

2 Valores de utilidades de ações em diferentes estados . . . 45 3 Valores de probabilidade dos estados . . . 45 4 Operações matemáticas básicas, unárias e lógicas do pacote

PyRDMIA. . . 52 5 Operações trigonométricas disponíveis em PyRDMIA. . . 55 6 Métricas qualitativas intervalares disponíveis no pacote PyRDMIA. . 55 7 Métricas quantitativas implementadas em PyRDMIA. . . 57 8 Resultados numéricos a partir da computação dos problemas de

otimização utilizando PyRDMIA. . . 62 9 Resultados numéricos para as funções objetivo computadas

utili-zando as linguagens Python, R e MatLab para valores reais. . . 64 10 Valores possíveis na representação do intervalo [x] = [1, 3] com

pre-cisão ∆ = 0.1 para αx. . . 65

11 Teste de exatidão numérica por meio de somas sucessivas para [xi] = [0.1, 0.1]. . . 65

(9)

RDM-IA Relative Distance Measure - Interval Arithmetic SIA Standard Interval Arithmetic

ER Erro Relativo EA Erro Absoluto

SLCIA Single Level Contraint Interval Arithmetic AA Affine Arithmetic

MD-RDM-F Multidimensional - Relative Distance Measure - Fuzzy Arithmetic NaN Not a Number

qNaN quiet NaN sNaN signaling NaN

(10)

1 INTRODUÇÃO . . . . 10

1.1 Objetivos . . . . 12

1.2 Organização do trabalho . . . . 13

2 FUNDAMENTAÇÃO TEÓRICA . . . . 14

2.1 Representação numérica em sistemas computacionais . . . 14

2.1.1 Erros numéricos . . . 15

2.1.2 Efeitos numéricos . . . 18

2.2 Aritmética Intervalar . . . 19

2.2.1 Aritmética intervalar de Moore . . . 21

2.2.2 Aritmética intervalar multidimensional RDM . . . 23

2.2.3 Outras aritméticas intervalares . . . 30

2.3 Avaliação de qualidade para resultados intervalares . . . . 34

2.4 Suporte ao tipo intervalar em ambiente computacional . . . . 37

2.5 Aplicações de RDM-IA na literatura . . . . 40

2.5.1 RDM-IA para solução de equações quadráticas . . . 40

2.5.2 RDM-IA aplicada à solução de equações cúbicas . . . 42

2.5.3 Aplicação de RDM-IA em problema de decisão sob incerteza . . . 44

2.6 Considerações . . . . 45

3 PYRDMIA . . . . 47

3.1 Arquitetura de PyRDMIA . . . . 48

3.1.1 Estrutura de subpacotes de PyRDMIA . . . 48

3.2 Operações e aspectos operacionais de PyRDMIA . . . . 51

3.2.1 Operações suportadas pelo pacote PyRDMIA . . . 51

3.3 Validação de Funcionalidade de PyRDMIA . . . . 54

3.3.1 Problemas de minimização global . . . 59

3.3.2 Resultados numéricos . . . 62

3.4 Considerações . . . . 66

4 CONCLUSÃO . . . . 67

4.1 Trabalhos futuros . . . . 68

(11)

Computadores de uso geral são padronizados sobre a aritmética chamada de ponto flutuante seguindo o padrão IEEE 754 (ZURAS et al., 2008). Dessa forma, a aritmética de ponto flutuante é uma aproximação sistemática da aritmética real, po-dendo portanto representar um subconjunto finito dos números reais. Consequente-mente, propriedades da aritmética real nem sempre podem ser validadas, como por exemplo, a associatividade na operação de adição (ZURAS et al., 2008). Mais além, podem ser gerados erros quando se opera sob a aritmética de ponto flutuante, tais como: (i) erro por arredondamento, quando um valor real de entrada é aproximado; (ii) erro por truncamento, quando valores precisam ser adequados aos limites do sistema de representação numérica, e; (iii) outro tipo de erro que está mais relacionado aos meios de medição, dado pela incerteza dos valores de entrada, os quais podem ter sido obtidos a partir de coletas em equipamentos pouco precisos ou por erro de coleta desses dados pelo operador.

Conhecendo algumas das possibilidades de serem gerados resultados para os quais não se pode afirmar com total certeza sobre sua qualidade, a justificativa para o emprego da aritmética intervalar inicia pelo fato de ser capaz de promover o controle automático da propagação dos erros numéricos gerados em procedimentos computa-cionais. Neste contexto, a aritmética intervalar tem sido empregada na busca por me-lhores soluções de problemas em diversas áreas como: aritmética fuzzy (LODWICK; DUBOIS, 2015; PIEGAT; LANDOWSKI, 2017a), computação granular (PEDRYCZ; SKOWRON; KREINOVICH, 2008), distribuições de probabilidade (FERSON et al., 2001; MARASCHIN JR; FINGER; LORETO, 2017)) e inteligência artificial (DICK, 2017; BILLARD; DIDAY, 2006; NETO; CORDEIRO; CARVALHO, 2011). A aritmética inter-valar, além do controle de erros, promove a garantia de resultado correto, pois o valor real sempre deverá estar contido no intervalo solução. Além de que, existem métricas particulares para a estimativa da qualidade da resposta intervalar.

Na aritmética intervalar clássica (SIA), um valor real x é representado na forma de intervalo como [x, ¯x], os extremos inferior e superior do intervalo [x] são números de ponto flutuante: xpf e ¯xpf, respectivamente (MOORE; KEARFOTT; CLOUD, 2009).

(12)

Um intervalo real [x] é um subconjunto fechado dos números reais definido por:

[x] = [x, ¯x] = {x ∈ R | x ≤ x ≤ ¯x},

onde x, ¯x ∈ R e x ≤ ¯x. Usa-se IR para denotar o conjunto dos intervalos (CAPRANI; MADSEN; NIELSEN, 2002).

SIA é a aritmética mais utilizada na busca por soluções com aplicação de interva-los. O que se justifica por ser a precursora e mais conhecida pela comunidade cientí-fica. Contudo, existem falhas que comprometem sua qualidade e, eventualmente, até a corretude do resultado obtido por não atender a algumas propriedades da aritmética real. Dentre as falhas mais recorrentes em SIA, pode-se citar intervalos superestima-dos, dependência de variáveis e dificuldades para solucionar equações intervalares simples, adicionando-se o agravante da diferença de ordem dos operadores (PIEGAT; PLUCI ´NSKI, 2015a).

Em vista das deficiências presentes em SIA, novas aritméticas intervalares foram sendo desenvolvidas com o objetivo de suprir estas falhas e com propósitos distintos. Uma das mais recentes nesse sentido é a denominada aritmética multidimensional RDM, a qual surgiu com intuito principal de tratar os problemas da aritmética interva-lar convencional. Assim chamada, RDM significa “medida da distância relativa”. Em RDM-IA um intervalo [x] = [x, ¯x]é descrito por:

[x] = {x : x = x + αx(¯x − x), αx∈ [0, 1]},

a variável αx faz com que os valores entre os limites de [x] deixem de ser ocultos e

passem a ser considerados no cálculo (PIEGAT; PLUCI ´NSKI, 2015a).

Os autores de RDM-IA a descrevem como multidimensional, onde cada parâmetro de incerteza é representado por uma variável RDM α, aumentando sua dimensionali-dade. Com essa descrição, a proposta de adição de uma “variável incerta” concerne com a teoria da incerteza para se comportar como uma função mensurável de um espaço de incerteza em um conjunto de números reais (LIU, 2010).

Nesse contexto surgem questionamentos, como: por que o emprego da aritmética intervalar em soluções numéricas não é tão frequente? Um dos fatores passíveis de resposta está na falta de ambientes que permitam o desenvolvimento de soluções de tal maneira. Há dificuldade em encontrar métodos necessários, a grande maioria das bibliotecas disponíveis em ambientes de desenvolvimento estão implementadas sob os conceitos de SIA. O trabalho com aritmética intervalar não se demonstra trivial.

Nesse discurso, o presente trabalho apresenta o desenvolvimento de um pacote para operações com dados intervalares implementando a aritmética intervalar mul-tidimensional RDM. Desenvolvido na linguagem de programação Python, o pacote conta com as operações básicas definidas na literatura sobre RDM-IA, um conjunto

(13)

de operações complementares contemplando funções trigonométricas, métricas de qualidade intervalar e medidas de dispersão para o trabalho estatístico. Ao final da apresentação da estrutura e detalhes de desenvolvimento e operação, uma prova de funcionalidade é apresentada por meio do teste utilizando funções objetivo que com-põem um conjunto de problemas de minimização global.

1.1

Objetivos

O objetivo principal nesta dissertação compreende o desenvolvimento de um pa-cote intervalar intitulado PyRDMIA, o qual permite soluções numéricas sobre os con-ceitos de representação da aritmética intervalar multidimensional RDM. Para o alcance deste objetivo, alguns objetivos específicos são elencados:

• Apresentar os principais conceitos sobre a aritmética intervalar, de modo geral e especificamente, para as principais definições existentes. Com foco em RDM-IA, apresentá-la em maiores detalhes. Isto se faz importante para a construção do conhecimento acerca da área de pesquisa, também justificar o desenvolvimento do trabalho a ser apresentado frente aos problemas operacionais ocasionados por erros numéricos ao operar sobre aritmética de ponto flutuante na busca por soluções numéricas.

• Desenvolver um pacote intervalar na linguagem de programação Python de ma-neira open source, o qual contemple a definição para representação de números intervalares em aritmética RDM-IA e suas operações básicas. Incorporar ao pa-cote métodos que implementem funções complementares, de modo a permitir o desenvolvimento de soluções numéricas mais facilmente. Para isso, a constru-ção de um novo tipo numérico, RDM, para operaconstru-ção do pacote. Junto, a aplica-ção de testes de operabilidade ao pacote desenvolvido, de modo que seja posta à prova toda a estrutura de funcionamento e capacidade de gerar resultados.

• Avaliar de maneira comparativa e reflexiva aspectos entre o que está disposto na literatura acerca da aritmética RDM-IA e o trabalho de desenvolvimento de um pacote que implementa esta teoria em termos de algoritmo. Visando apontar as possibilidades de levar os conceitos ao nível operacional para a obtenção de soluções numéricas com maior confiabilidade, qualidade e exatidão de resulta-dos, mas também o que demonstra limitações e permanece apenas em provas teóricas.

(14)

1.2

Organização do trabalho

A presente dissertação possui uma disposição de conteúdo concentrada em dois capítulos principais, 2 e 3, que respectivamente compreendem a fundamentação teó-rica e desenvolvimento deste trabalho.

No Capítulo 2, discursa-se a respeito dos erros numéricos e efeitos numéricos existentes em sistemas computacionais que operam sob aritmética de ponto flutuante. Segue-se com a apresentação dos principais conceitos da teoria intervalar e aritméti-cas definidas para o trabalho com números intervalares, além de métriaritméti-cas para avalia-ção de qualidade de resultados intervalares. Neste mesmo capítulo são apresentados os principais pacotes intervalares disponíveis, como parte dos trabalhos relacionados ao desenvolvido nesta dissertação. Também alguns trabalhos que utilizaram RDM-IA na literatura, na busca de soluções numéricas. Encerra-se com algumas considera-ções sobre o capítulo.

O terceiro capítulo é reservado à apresentação do desenvolvimento do pacote in-tervalar, PyRDMIA. Neste, apresentam-se detalhes operacionais e de implementação do pacote. Na sequência, testes que serviram para a validação de funcionalidade do pacote são apresentados, contemplando resultados numéricos obtidos.

No Capítulo 4, a conclusão antecede o final desta dissertação. São elencados alguns trabalhos futuros almejados como forma de dar continuidade ao trabalho de-senvolvido e apresentado nesta dissertação. Em seguida, as referências bibliográficas utilizadas são listadas.

(15)

O presente capítulo aborda conceitos que serviram de base e motivação para a execução deste trabalho. Apresenta um apanhado geral no que se refere ao sistema de representação numérica em sistemas computacionais, também as principais fon-tes de erros induzidas no processo de solução computacional de problemas. A partir disso, são introduzidos os conceitos da aritmética intervalar, como alternativa ao uso de valores reais e ao sistema de ponto flutuante, sendo apresentados inicialmente num contexto histórico de sua origem. Logo em seguida, a descrição da aritmética que pre-domina sobre o desenvolvimento desse trabalho, encerrando com outras aritméticas intervalares relevantes da literatura.

2.1

Representação numérica em sistemas computacionais

Sistemas de computador operam, em geral, sobre o padrão IEEE 754, o qual rege o padrão para a aritmética de ponto flutuante (ZURAS et al., 2008). A aritmética de ponto flutuante faz uma aproximação sistemática da aritmética real, onde são definidos formatos para representar um subconjunto finito de números reais.

Nesta aritmética, qualquer quantidade não nula pertence ao sistema denotado por F (b, p, emin, emax), sendo:

• b o número da base (2, binária ou 10, decimal);

• p a precisão, que indica número de dígitos significativos, e;

• emin e emax o menor e o maior expoente do intervalo, respectivamente, onde

emin = 1 − emax para qualquer base.

Dentro dos formatos suportados (para binário: 32, 64 e 128 bits e, para decimal: 64 e 128 bits), quantidades em ponto flutuante são representadas da forma (−1)s× be× m,

onde: s = 0 ou s = 1; e é qualquer inteiro tal que emin ≤ e ≤ emax, e; m é um número

representado por uma sequência de dígitos d0 · d1d2. . . dp−1, onde di é um número

inteiro tal que 0 ≤ di < b, logo 0 ≤ m < b. Além disso, os valores de infinito −∞ e +∞,

(16)

são compreendidos. Em especial, para o valor zero, o bit de sinal s provê informação extra. Embora em algumas situações o sinal atribuído ao zero não seja relevante, em outras circunstâncias isso é relevante, como por exemplo uma divisão por zero. Porém, neste padrão, o sinal para os valores de zero e infinito não são necessários (ZURAS et al., 2008).

Apesar da possibilidade de operação utilizando um sistema de ponto fixo (nor-malmente simulações), a aritmética de ponto flutuante permite uma faixa muito maior de valores representáveis. Pode-se observar, por exemplo, caso tenhamos uma re-presentação utilizando seis dígitos: em ponto fixo o menor número seria 0, 00001, enquanto que o maior valor representável é 9, 99999; quando passamos a utilizar ponto flutuante temos o menor valor sendo 0, 001 × 10−99 e o maior valor represen-tável 9, 999 × 1099, sendo dois dos seis reservados para a mantissa, restando quatro dígitos de precisão.

Embora o sistema de representação numérica mais adotado e padronizado em sistemas computacionais seja o de ponto flutuante possuindo vasta documentação, brevemente apresentado, a possibilidade de serem gerados erros está presente.

Não é incomum que resultados finais estejam distantes do esperado ou não condi-zem com uma base comparativa (se houver), mesmo que todas as fases de resolução do problema tenham sido seguidas corretamente. Os resultados dependem também de fatores como:

- precisão dos dados de entrada;

- forma de representação dos dados no computador;

- operações numéricas efetuadas.

Nesse sentido, as principais fontes de erros que podem comprometer a confiabili-dade adicionando maior incerteza sobre os resultados são apresentadas em particular a seguir.

2.1.1 Erros numéricos

No processo de solução de problemas envolvendo, sobretudo, dados numéricos, existem fontes de erros que podem influenciar diretamente na qualidade do resultado gerado, condenando sua exatidão. Para isso, cabe inclusive uma diferenciação entre “exatidão” e “precisão”: precisão compete a uma medida quantitativa referente ao sistema de ponto flutuante, nesse contexto; enquanto que exatidão faz referência à acurácia ou qualidade de um resultado, capaz de informar se um resultado gerado é bom ou ruim (DALCíDIO M. CLáUDIO TIARAJú A. DIVéRGIO, 1987).

Nesse contexto, duas métricas principais podem ser utilizadas para mensurar o quanto um número aproximado se afasta do valor exato, o qual na maioria das vezes

(17)

não é conhecido, mas pode-se ter uma quantidade como referência. Essas medidas são: o erro absoluto (EA) (Equação (1)), sendo a diferença entre o valor exato x e seu valor aproximado x; e o erro relativo (ER) (Equação (2)), o qual é calculado pela divisão do erro absoluto pelo valor aproximado.

EAx = x − x (1)

ERx =

x − x

x (2)

Quatro são as principais fontes de erros que podem influenciar no resultado final da solução de problemas em ambiente computacional, estas são apontadas a seguir.

Erro inerente aos dados

Causados por inexatidão de medidas como tempo, temperatura, velocidade, dis-tância etc., por parte do equipamento de coleta ou falha humana, esse tipo de erro está diretamente relacionado a problemas que se originaram em etapas anteriores ao sistema no qual estão ou serão inseridos, não podendo ser evitados que ocorram. A precisão atribuída a certas quantidades também pode ser um agravante, pois há um número finito disponível para representação, como em números irracionais ou trans-cendentes, π e e, por exemplo.

Se considerarmos o cálculo de área de uma circunferência, precisaremos utilizar o número π para isso; dado que π não é um número finito, não podemos representá-lo completamente, logo poderá ser 3.14, 3.14159 ou 3.141592653 e, para qualquer que seja a circunferência, o valor da área correspondente nunca será obtido exatamente, mas quanto maior o número de dígitos utilizado, maior será a precisão obtida (RUGGIERO; LOPES, 1997). Além disso, as diferentes bases numéricas podem gerar erros. Le-vando em consideração que na maioria das vezes quantidades numéricas são dadas como entradas em base decimal, no computador, serão convertidas para base binária e posterior ao processamento, uma nova conversão para base decimal é feita gerando a saída ao usuário, esse processo é fonte de erros que afetam o resultado final.

Erro de modelagem

A modelagem de fenômenos do mundo real em ambientes computacionais normal-mente ocorre por meio da modelagem matemática onde faz-se uma abstração dessas situações. Esta abstração permite que alguns aspectos, para os quais não se têm interesse, sejam ignorados. Nesse momento um certo erro é inserido no cálculo pelo fato de omitir informações.

Um exemplo de caso onde ocorre erro em relação ao modelo está na interpolação polinomial. A interpolação consiste em determinar uma função que assume valores

(18)

Figura 1 – Interpolação polinomial, f (x) = x2

conhecidos em certos pontos, a Figura 1 ilustra a curva formada pela função f (x) = x2.

Formalmente, assume-se um conjunto de pontos (x0, y0), . . . , (xn, yn) tais que yk =

f (xk), k = 0, 1, . . . , n; onde f é a função que se deseja aproximar por um polinômio

interpolador pn. Se tratando de um processo de aproximação, existe um erro atribuído,

sobretudo de arredondamento, o qual depende também do método utilizado. Tal erro em x ∈ [x0, xn]pode ser representado por: εn(x) =| f (x) − pn(x) |.

Erro por arredondamento

O erro de arredondamento ocorre no processo de aproximação de um valor real a um número de máquina, pois números de ponto flutuante têm um número limitado de dígitos, não podem ser representados com precisão infinita. Quando há mais dígitos do que o formato permite, os restantes são omitidos e o número é arredondado. Três razões principais motivam o arredondamento: (i) muitos dígitos significativos; (ii) dí-gitos periódicos; (iii) números irracionais. Assim, o arredondamento pode ocorrer de diferentes modos:

• truncamento ou corte “para baixo” (x), onde o valor é truncado na posição n de acordo com uma determinada precisão, o método mais simples, porém o que introduz maiores erros;

• truncamento ou excesso “para cima” (x), semelhante ao anterior, mas em uma posição n + 1;

• simétrico (Ox), onde considera-se o número na posição n+1, caso o número seja menor ou igual a quatro, é truncado em n, caso contrário trunca-se por excesso. Tende a ser o mais utilizado e que menos adiciona erros.

Se tomarmos por exemplo um sistema de ponto flutuante para um valor real x com base decimal (b = 10) e 4 dígitos de precisão (p = 4), podemos representá-lo como x = fx × 10e + gx× 10e−p, onde 0.1 ≤ fx < 1 e 0.1 ≤ gx < 1. Se x = 234.57, então

teremos: x = 0.2345 × 103 + 0.7 × 10−1, em que f

(19)

arredondamento simétrico segue conforme: Ox = ( fx× 10e, se | gx|< 1/2; fx× 10e+ 10e−p, se | gx |≥ 1/2. (3)

Nesse caso, | gx |> 1/2, logo o arredondamento resulta em x = 234.6.

Erro por truncamento

Esse tipo de erro é introduzido em processos em que possuem infinitos passos, mas um número finito é estipulado, truncando-se então o modelo. O erro de trunca-mento pode ser definido da seguinte forma: seja x um número real, sua representação em ponto flutuante segue a nomenclatura f p(x). Quando um número x representado na base binária é truncado no digito n, tem-se f p(x) = 1.a1a2. . . an−1, o qual será um

número em ponto flutuante contento n dígitos. Assim, o erro de truncamento pode ser definido:

Definição 2.1.1. Considerando x um número real, o erro gerado como resultado do truncamento pode ser definido por ε = f p(x)−xx e f p(x) = x(1 + ε).

Logo, ao truncar-se um número para uma sequência de n dígitos, o erro de trun-camento associado está limitado por um intervalo −2−n+1 ≤ ε ≤ 0 (MATHEMATICS,

2018).

Um exemplo de truncamento pode ser observado na série de Taylor, mostrada abaixo na Equação (4), onde calcula-se até um número finito n de termos.

p(x) = f (a) + f0(a)(x − a) 1! + f 00 (a)(x − a) 2 2! + . . . + f n(a)(x − a)n n! (4)

Por sua vez, este é um erro difícil de ser mensurado, determinando-se que número de computações são necessárias ou suficientes. Uma possível alternativa é manter o controle por meio do número de dígitos significativos exatos (DIGSE) (DALCíDIO M. CLáUDIO TIARAJú A. DIVéRGIO, 1987).

2.1.2 Efeitos numéricos

Além das fontes de erros apresentadas anteriormente, sejam elas inerentes aos dados ou por operações realizadas pelo sistema de representação numérica de um sistema, ainda existem outros efeitos numéricos capazes de contribuir para a incon-sistência de resultados. Os mais frequentes são citados:

• Cancelamento: ao subtrair duas quantidades numéricas próximas praticamente iguais (não exatamente iguais), ou soma de valores com sinais opostos, os dígi-tos mais significativos (ou mais a esquerda) correspondem e se cancelam. Exis-tem dois tipos de cancelamento: (i) o cancelamento “catastrófico” ocorre quando

(20)

os operandos estão sujeitos ao arredondamento, é caracterizado pelo aumento substancial do erro relativo, fazendo com que a os dígitos percam o significado na avaliação da expressão; (ii) o cancelamento “benígno” ocorre na subtração de valores exatamente iguais, ou seja, se os operandos não contêm erro relativo, o resultado da subtração terá um erro relativo muito pequeno (GOLDBERG, 1991).

• Propagação do erro: em geral, números isolados em aritmética de ponto flutu-ante não possuem erros ocasionados internamente, contudo, operações simples podem adicionar erros que comprometem o resultado. Utilizando-se dos concei-tos do cancelamento, este efeito pode ocorrer também em somas parciais muito grandes, por exemplo, seguindo o modelo abaixo.

sk= n

X

k=1

ak; s1 = 1, sk = sk−1+ ak; k = 2, 3, . . . , n

Nesse sentido, a perda de dígitos significativos influencia no resultado final, cons-tituindo na propagação do erro contido no cálculo (FRANCO, 2006). Nesse sen-tido, o campo da matemática voltado ao estudo da estabilidade numérica de algoritmos é a análise numérica.

• Instabilidade numérica: este fator está diretamente associado ao erro contido nas operações intermediárias de um procedimento. A instabilidade numérica ocorre quando esses erros exercem grande influência sobre o resultado final (FRANCO, 2006). Se um resultado intermediário sofre erro de arredondamento, todas as demais operações sobre esse número estarão sujeitas a erros também, sendo que o erro final será a soma de todos os erros intermediários.

• Mal condicionamento: o condicionamento de sistemas lineares é um conceito relacionado à forma como os erros se propagam dos dados de entrada aos de saída. Ao operar sobre sistemas lineares (Ax = y, por exemplo), em alguns ca-sos o erro de arredondamento se propaga de forma mais significativa do que em outros, tornando-os mais difíceis de serem resolvidos. Em um sistema em que uma pequena variação nos dados de entrada provocam uma grande variação no resultado, pode-se dizer que é um sistema mal condicionado (REAMAT, 2018).

2.2

Aritmética Intervalar

Em diversas aplicações, e também para muitos cientistas, a exatidão em resulta-dos não apresenta grande importância. Entretanto, ao tempo que se torna possível obter resultados com melhor melhor qualidade e menor erro, um conceito relevante que ganha força é a teoria da incerteza (LIU, 2010), especialmente em áreas de

(21)

ciên-cias exatas. Tratando de dados para os quais não se pode afirmar sua exatidão, ditos incertos, a teoria da incerteza elenca três conceitos fundamentais: (i) medida da incer-teza, usada como medida quantitativa para o grau de crença em um dado incerto; (ii) uso de uma variável incerta, para quantificar dados imprecisos, e; (iii) distribuição de incerteza, descrevendo variáveis incertas de forma a simplificar seu uso. Dessa forma, a teoria da incerteza propõe uma solução para o trabalho com fenômenos incertos, a aritmética intervalar.

Tendo sido apresentada a aritmética de ponto flutuante, bem como as possibili-dades de ocorrerem erros que comprometem a qualidade do resultado, a aritmética intervalar surgiu na década de 60 oferecendo controle aos erros gerados por arredon-damento. Sendo uma ferramenta numérica para manipulação e operação utilizando intervalos, o precursor dessa abordagem foi MOORE (1966), definindo a aritmética conhecida como padrão, SIA, mais conhecida e utilizada no meio científico pelo seu contexto histórico.

Na aritmética intervalar, um número real x é representado por um intervalo fechado da forma [x, x], o qual é um subconjunto dos reais R, portanto seus limites são com-postos por números reais.

Definição 2.2.1. Dados x, x ∈ R, [x] é definido por:

[x] = [x, x] := {x ∈ R | x ≤ x ≤ x},

onde x é chamado de limite inferior, enquanto que x de limite superior.

Segundo KREINOVICH et al. (2013), pode-se obter o intervalo solução [y] = [y, y] por meio de métodos de aproximação, técnicas de otimização, extensão intervalar e por métodos considerados sofisticados, por exemplo, encontrar o algoritmo que re-torna intervalos mais estreitos ao calcular uma mesma função. O método de extensão intervalar foi proposto por MOORE (1979) como forma de generalizar funções reais em termos de intervalos. A extensão intervalar pode ser definida conforme a seguir, segundo SANTIAGO; BEDREGAL; ACIÓLY (2006):

Definição 2.2.2. A função F : I(R) → I(R) é uma extensão intervalar de uma função f : R → R se, para todo x ∈ R, F (x, x) = [f (x), f (x)].

Pode-se avaliar a corretude de uma função intervalar F em relação a uma função real f por via de regra:

Definição 2.2.3. Uma função F está correta em relação à f se satisfaz à propriedade: x ∈ R ⇒ f (x) ∈ F (x).

(22)

De qualquer forma, em sistemas computacionais usuais não temos disponível uma ULA (Unidade Lógica Aritmética) interna à unidade de processamento que implemente intervalos diretamente. Assim, ainda estamos operando sobre aritmética de ponto flu-tuante, fazendo uma espécie de “virtualização” para que tenhamos uma representação intervalar, logo os limites do intervalo [x, x] são números de ponto flutuante xpf e xpf.

O que pode ser chamado de “aritmética intervalar de máquina”, podendo ser consi-derado como uma aproximação à aritmética intervalar em sistemas computacionais (RATSCHEK; ROKNE, 1988). Este conceito está baseado no princípio da inclusão da isotonicidade das operações em intervalos: assumindo que α e β são valores exatos desconhecidos em qualquer etapa de uma operação, apenas intervalos incluídos são conhecidos, α ∈ [a], β ∈ [b]. Esses intervalos podem não ser representados em nú-meros de máquina, mas podem ser substituídos pelos menores intervalos de máquina que contém [a] e [b]:

[a] ⊆ [a]M, [b] ⊆ [b]M.

Desse modo, o intervalo [a] ∗ [b]; ∗ ∈ {+, −, ·, /}, não precisa ser um intervalo de má-quina, este é aproximado por ([a]M∗[b]M)M, que é representável na máquina. Isso leva

ao “princípio da inclusão da aritmética intervalar de máquina” (RATSCHEK; ROKNE, 1988):

α ∈ [a], β ∈ [b] ⇒ α ∗ β ∈ ([a]M ∗ [b]M)M (5)

A partir desses conceitos gerais a respeito da aritmética intervalar, nas seções seguintes serão apresentadas algumas aritméticas intervalares. Na sua maioria, as aritméticas intervalares que surgiram após os conceitos definidos por Moore foram de-finidas com o objetivo de contornar deficiências encontradas em SIA. O foco principal se detém na aritmética RDM-IA, na qual este trabalho está voltado para o desenvolvi-mento do pacote intervalar PyRDMIA.

2.2.1 Aritmética intervalar de Moore

Historicamente, a primeira definição para a aritmética intervalar como alternativa à aritmética real com o objetivo de contornar os problemas de erro numérico em siste-mas computacionais foi realizada por MOORE (1962). Após, outras produções foram desenvolvidas complementando seu estudo, como (MOORE, 1966), (MOORE, 1979) e (MOORE; KEARFOTT; CLOUD, 2009). Alguns dos conceitos apresentados na se-ção anterior estão diretamente relacionados às definições de Moore, justamente pelo fato de ser o precursor desta teoria.

Também chamada de aritmética intervalar padrão, ou SIA, a aritmética de Moore tem base no uso de intervalos fechados [x, x] de números reais. Do ponto de vista computacional, dada uma função f (x), com x real pertencente a um intervalo [x], a imagem de f é dada:

(23)

f (x) = {[y] | [y] = f (x), x ≤ x ≤ x}.

Esta função, em geral, não é representada exatamente, mas é sempre possível determinar-se um intervalo [y] = [y, y] tal que f (x) ⊆ [y], isto é, y ≤ f (x) ≤ y. A partir disso, pode-se então definir uma função F associada à f pela transformação do intervalo [x] em [y], logo:

f (x) ⊆ F ([x]) = [y].

As operações em SIA consistem em utilizar uma extensão das operações aritmé-ticas sobre um conjunto de funções standard. Isso por meio do método de extensão intervalar. Em SIA, todos os cálculos sobre intervalos ocorrem sobre conjuntos, ou seja, uma operação sobre dois intervalos resulta em um novo conjunto contendo to-dos os valores resultantes da operação sobre toto-dos os pares de números das séries iniciais. Na aritmética de Moore apenas os extremos dos intervalos operados são con-siderados nos cálculos. Nesse contexto, as operações em SIA são definidas conforme segue:

Definição 2.2.4. [x] ∗ [y] = {x ∗ y : x ∈ [x], y ∈ [b]}, onde ∗ ∈ +, −, ·, /; sendo [x]/[y] definido somente se 0 /∈ [y].

Essa definição é motivada pelo fato de que os intervalos [x] e [y] possuem, respec-tivamente, valores exatos α e β do cálculo, sendo esses valores geralmente desco-nhecidos. A única informação disponível está no “princípio da inclusão da aritmética intervalar”, em que α ∈ [x] e β ∈ [y].

A partir desse conceito, as operações básicas de SIA são apresentadas:

• Soma: [x, x] + [y, y] = [x + y, x + y];

• Subtração: [x, x] − [y, y] = [x − y, x − y];

• Multiplicação: [x, x] · [y, y] = [min(x · y, x · y, x · y, x · y), max(x · y, x · y, x · y, x · y)];

• Divisão: [x, x]/[y, y] = [x, x] · [1/y, 1/y], se 0 /∈ [y, y].

Na aritmética de Moore, as operações de subtração e divisão não são operações inversas às de soma e multiplicação como na aritmética real sobre R. Por exemplo:

[0, 1] − [0, 1] = [−1, 1], [1, 2]/[1, 2] = [1/2, 2].

Outra individualidade está no fato de que a regra da distributividade não é válida para todos os casos em SIA, somente a chamada “regra da subdistributividade”:

(24)

[x]([y] + [z]) ⊆ [x] · [y] + [x] · [z].

Pode-se notar que SIA já não atende às mesmas propriedades da aritmética sobre o conjunto dos números reais R. Em vista disso, outras aritméticas intervalares foram sendo definidas a fim de solucionar as falhas da aritmética de Moore, trazendo maior confiabilidade aos resultados intervalares, minimizando a possibilidade de resultado incorreto. Algumas dessas aritméticas serão apresentadas a seguir, sendo dado maior foco em RDM-IA.

2.2.2 Aritmética intervalar multidimensional RDM

A aritmética desenvolvida por Piegat e Landowski (PIEGAT; LANDOWSKI, 2012, 2013) carrega o conceito de multidimensionalidade pelo fato de atribuir uma variável de incerteza a cada novo parâmetro do problema em questão. Dessa forma, RDM sig-nifica “Relative Distance Measure” - do inglês, medida da distância relativa - onde α é chamada de variável RDM, representando a incerteza contida em cada valor envolvido no cálculo. Dessa forma, uma quantidade é representada em um intervalo [x] = [x, x], descrito utilizando a variável RDM αx da seguinte forma:

[x] = {x : x = x + αx(¯x − x), αx ∈ [0, 1]}.

A variável αxpossibilita acessar qualquer valor entre as bordas inferior x e superior

¯

xdo intervalo [x]. Para o valor de αx = 0, o valor equivale ao limite inferior x e, para

αx = 1, o valor obtido equivale ao limite superior ¯xdo intervalo. Assim, os infinitos

valo-res compreendidos entre os limites do intervalo podem ser considerados nos cálculos. Diferentemente da grande maioria das demais ariméticas intervalares, onde somente os extremos do intervalo são considerados, especialmente em SIA. A Figura 2 ilustra um valor pontual x1 ∈ [x, ¯x]na notação de RDM-IA com αx1 ∈ [0, 1].

Figura 2 – Valor de x1 expresso em notação RDM-IA.

Fonte: (LANDOWSKI, 2017a)

O objetivo da introdução de variáveis RDM não se refere a uma parametrização desnecessária para intervalos, mas para adicionar o sistema de coordenadas carte-sianas à aritmética intervalar, assim como na aritmética real convencional (PIEGAT;

(25)

PLUCI ´NSKI, 2015a).

Considerando [x] ∗ [y], as operações básicas para ∗ ∈ {+, −, ·, /} são definidas seguindo a forma geral expressa pela Equação (6), a operação [x]/[y] é válida somente se 0 /∈ [y].

[x] ∗ [y] = [min{[x] ∗ [y]}, max{[x] ∗ [y]}] (6) As operações de min e max servem justamente para extrair do conjunto de valores gerados, os valores que compõem os limites do intervalo solução. Dado que [x] e [y] são intervalos, seguindo RDM-IA, estes são representados da seguinte forma: [x] = {x : x = x + αx(¯x − x), αx ∈ [0, 1]} e [y] = {y : y = y + αy(¯y − y), αy ∈ [0, 1]}, a partir da

Equação (6), as operações de soma, subtração, multiplicação e divisão em RDM-IA são demonstradas conforme apresentado nas Equações (7)-(10).

Soma: [x] + [y] = {x + αx(¯x − x) + y + αy(¯y − y); αx, αy ∈ [0, 1]}; (7) Subtração: [x] − [y] = {x + αx(¯x − x) − y − αy(¯y − y); αx, αy ∈ [0, 1]}; (8) Multiplicação: [x] · [y] = {[x + αx(¯x − x)] · [y + αy(¯y − y)]; αx, αy ∈ [0, 1]}; (9) Divisão:

[x]/[y] = {[x + αx(¯x − x)]/[y + αy(¯y − y)]; αx, αy ∈ [0, 1], 0 /∈ [y]}. (10)

Para ilustrar a obtenção do intervalo solução, serão considerados dois intervalos de valores reais [a] = [2, 3] e [b] = [4, 5] como exemplo. Em notação RDM temos:

[a] = [a, ¯a] = [2, 3] = {a : a = 2 + αa, αa∈ [0, 1]};

[b] = [b, ¯b] = [4, 5] = {b : b = 4 + αb, αb ∈ [0, 1]}.

Logo, podemos operar sobre os dois intervalos utilizando as variáveis αa e αb,

conforme as Equações (11), (12), (13) e (14), onde as operações de soma, subtração, multiplicação e divisão são explicitadas.

[a] + [b] =  min(6 + αa+ αb) αa,αb∈[0,1]] , max(6 + αa+ αb) αa,αb∈[0,1]]  = [6, 8] (11)

(26)

[a] − [b] =  min(−2 + αa− αb) αa,αb∈[0,1]] , max(−2 + αa− αb) αa,αb∈[0,1]]  = [−3, −1] (12) [a] · [b] =  min(8 + 4αa+ 2αb + αaαb) αa,αb∈[0,1]] , max(8 + 4αa+ 2αb+ αaαb) αa,αb∈[0,1]]  = [8, 15] (13) [a]/[b] =  min((2 + αa)/(4 + αb)) αa,αb∈[0,1]] , max((2 + αa)/(4 + αb)) αa,αb∈[0,1]]  = 2 5, 3 4  (14)

Os valores assumidos pelas variáveis RDM (αa e αb) estão dispostos na Tabela 1,

levando em conta uma precisão de 1, ou 1 × 100. Após as operações de mínimo

e máximo aplicadas aos valores que representam o resultado de cada parcela da operação, o intervalo resultante é composto. Pode-se observar que não só os valores contidos nas bordas do intervalo são considerados no cálculo, mais claramente nas operações de subtração e divisão, nesse exemplo.

Tabela 1 – Operações entre [a] e [b] e valores atribuídos à αae αb.

αa 0 0 1 1 [a] ∗ [b] [a] 2 2 3 3 αb 0 1 0 1 [b] 4 5 4 5 [a] + [b] 6 7 7 8 [6, 8] [a] − [b] −2 −3 −1 −2 [−3, −1] [a] · [b] 8 10 12 15 [8, 15] [a]/[b] 2/4 2/5 3/4 3/5 [25,34]

A introdução da variável de incerteza, representada por α, dimensiona cada parte envolvida na busca de uma solução. Por isso, as soluções intervalares em RDM-IA são ditas multidimensionais. Dessa forma, a incerteza contida em cada quantidade numérica está atrelada a esta variável, a qual pode ser valorada com α ∈ [0, 1] de acordo com a precisão desejada na busca da solução, se comportando como um parâmetro “ajustável”, tornando o intervalo um conjunto de valores onde não só as bordas são consideradas.

Nesse sentido, se o valor para uma variável x é desconhecido exatamente, mas sabe-se que este é aproximado estando contido em um intervalo [x] = [x, x], então tem-se um modelo para representar o valor exato dessa variável eventual de um sis-tema real. Chamado de PVV-model, Precise Value Variable ou “Variável de Valor Preciso”, este modelo é dado:

(27)

Isso significa um conjunto de valores verdadeiros possíveis para x, representado por Xpr, porém apenas um valor pode ocorrer no sistema, então X possui

cardinali-dade 1, enquanto a variável αxinforma a posição relativa de x no intervalo [x]. Embora

o modelo em (15) indique que apenas um valor exato exista no intervalo [x, x], não sig-nifica que este valor (xpr) seja conhecido (PIEGAT; LANDOWSKI, 2017b). Nisso, esse

modelo sofre uma variação, apresentada conforme a Equação (16):

Xposs : xposs = x + αpossx (x − x); onde αpossx ∈ [0, 1] e cardXposs = c. (16)

A principal distinção entre os modelos apresentados em (15) e (16) está na cardi-nalidade de X, onde: Xprse refere a existência de um único valor exato enquanto que

Xposs faz referência à um conjunto contínuo de valores possíveis.

Existe uma semelhança entre RDM-IA e CIA (Aritmética Intervalar Restrita), apre-sentada mais tarde na Subseção 2.2.3. Contudo, segundo PIEGAT; LANDOWSKI (2017b), a ideia geral entre as duas aritméticas é diferente, iniciando-se pela compre-ensão das operações aritméticas. Além disso, a variável RDM αx permite posicionar

qualquer valor x pois RDM-IA introduz o sistema de coordenadas, semelhante ao sis-tema Cartesiano. A representação espacial para duas variáveis RDM αx1 e αx2 a

partir de dois intervalos é demonstrada pela Figura 3. Nela, a área em destaque re-presenta o espaço de valores possíveis de entrada em uma operação aritmética com αx1, αx2 ∈ [0, 1], onde estas se comportam como coordenadas de um sistema

norma-lizado formado por intervalos.

Figura 3 – Variáveis RDM como coordenadas locais no plano. Fonte: (PIEGAT; LANDOWSKI, 2017b)

Complementando essa ideia, as operações exemplificadas nas Equações (11), (12), (13) e (14) são ilustradas na Figura 4, sendo os planos gerados utilizando uma precisão de 2 × 10−1 para as variáveis RDM, representadas por α0 e α1.

A aritmética multidimensional RDM atende a quase todas as propriedades da arit-mética real convencional. Essas propriedades possuem extrema relevância para que transformações de fórmulas possam ser realizadas e soluções algébricas possam ser

(28)

(a) Soma (b) Subtração

(c) Multiplicação (d) Divisão

Figura 4 – Variáveis RDM como coordenadas no plano.

encontradas. Nesse sentido, a subseção seguinte apresentará algumas propriedades de RDM-IA.

2.2.2.1 Propriedades Aritméticas em RDM-IA

As principais propriedades aritméticas de RDM-IA serão listadas utilizando três intervalos [x], [y] e [z], em notação RDM, tem-se:

[x] = [x, ¯x] = {x : x = x + αx(¯x − x), αx ∈ [0, 1]},

[y] = [y, ¯y] = {y : y = y + αy(¯y − y), αy ∈ [0, 1]} e

[z] = [z, ¯z] = {z : z = z + αz(¯z − z), αz ∈ [0, 1]}.

Comutatividade da adição

Para quaisquer intervalos [x] e [y], a comutatividade da operação de adição é válida em RDM-IA.

[x] + [y] = [y] + [x] (17)

(29)

Analogamente à Equação (17), a comutação em RDM-IA é válida para o produto intervalar entre [x] e [y].

[x][y] = [y][x] (18)

Associatividade na adição

Considerando [x], [y] e [z] intervalos em RDM-IA, a propriedade da associatividade da adição é apresentada em (19).

[x] + ([y] + [z]) = ([x] + [y]) + [z] (19)

Associatividade na multiplicação

Se [x], [y] e [z] são intervalos, a associatividade do produto intervalar em RDM-IA é valida.

[x]([y][z]) = ([x][y])[z] (20)

Elemento neutro na adição

Como na aritmética real o zero representa o elemento neutro na adição, a RDM-IA possui o intervalo degenerado [0, 0], ou somente 0, como elemento neutro nessa operação.

[x] + 0 = 0 + [x] = [x] (21)

Elemento neutro da multiplicação

Semelhante ao que ocorre com o elemento neutro na adição, o produto em RDM-IA possui o intervalo degenerado [1, 1], ou somente 1, como elemento neutro.

[x]1 = 1[x] = [x] (22)

Elemento aditivo inverso

Resumidamente, esta propriedade consiste em utilizar um elemento que, numa operação bem definida, resulta no elemento neutro dessa operação. Dessa forma: x − x = 0. Em RDM-IA temos que −[x] = −[x, ¯x] = {−x : −x = −x−αx(¯x−x), αx ∈ [0, 1]} é

um elemento inverso aditivo do intervalo [x] = [x, ¯x] = {x : x = x+αx(¯x−x), αx ∈ [0, 1]}.

Então:

[x] − [x] = {x − x : x − x = x + αx(¯x − x) − x − αx(¯x − x), αx ∈ [0, 1]} = 0. (23)

(30)

Semelhante ao que acontece em (23), o elemento neutro que buscamos na multi-plicação é o 1, como vimos na Equação (22). Logo, o elemento multiplicativo inverso de [x] = [x, ¯x] = {x : x = x + αx(¯x − x), αx ∈ [0, 1]}, se 0 /∈ [x] em RDM-IA será

1/[x] = {1/[x] : 1/[x] = 1/[x + αx(¯x − x)], αx ∈ [0, 1]}. Logo, [x] · 1/[x] = 1:

[x]/[x] = {x/x : x/x = [x + αx(¯x − x)]/[x + αx(¯x − x)], αx ∈ [0, 1]} = 1. (24)

Distributividade

Utilizando três intervalos, [x], [y] e [z] em RDM-IA, a distributividade pode ser dada por: [x]([y] + [z]) = [x][y] + [x][z]. Então esta regra pode ser demonstrada conforme (25).

[x]([y] + [z]) = [x, ¯x]([y, ¯y] + [z, ¯z]) = {[x]([y] + [z]) : [x]([y] + [z]) = [x + αx(¯x − x)][y + αy(¯y − y) + z + αz(¯z − z)], αx, αy, αz ∈ [0, 1]}

= {[x][y] : [x][y] = [x + αx(¯x − x)][y + αy(¯y − y)], αx, αy ∈ [0, 1]}

+{[x][z] : [x][z] = [x + αx(¯x − x)][z + αz(¯z − z)], αx, αz ∈ [0, 1]}

= [x][y] + [x][z] = [x, ¯x][y, ¯y] + [x, ¯x][z, ¯z]

(25)

Cancelamento para adição

Considerando [x], [y] e [z] em RDM-IA, a regra do cancelamento procede em (26).

[x] + [z] = [y] + [z] ⇒ [x] = [y] (26)

Cancelamento para multiplicação

Sendo [x], [y] e [z] intervalos em RDM-IA, a regra do cancelamento para a operação de multiplicação segue conforme (27).

[x][z] = [y][z] ⇒ [x] = [y] (27)

Outras propriedades, além da prova completa de algumas destas propriedades, podem ser encontradas em (PIEGAT; LANDOWSKI, 2017a). Embora nem todas es-sas propriedades sejam diretamente necessárias para o correto funcionamento do pacote PyRDMIA, é importante que a aritmética atenda tais propriedades, tornando-a completa e confiável. Por outro lado, propriedades como a de aditivo inverso são de extrema importância para que possam ser gerados resultados corretos.

Somando-se aos conceitos definidos como extensão da aritmética real convencio-nal, a aritmética intervalar RDM também se estende para o campo de estudo dos nú-meros fuzzy. A Aritmética Multidimensional Fuzzy baseada na medida da distância re-lativa (denotada MD-RDM-F Arithmetic) vem sendo estudada e trabalhada como uma

(31)

ferramenta poderosa e eficaz na aritmética intervalar fuzzy. Podendo ser considerada uma nova aritmética, esta utiliza funções de associação horizontal, conceitualmente definidas por Piegat, as quais são uma representação de uma função de associação vertical: µ(x), µ : [a, b] ⊆ R → [0, 1], x : [0, 1] × [0, 1] → [a, b]. Inicialmente com trabalho desenvolvido na área fuzzy em 2005 (PIEGAT, 2005a), outras produções em relação à aritmética RDM para números fuzzy foram desenvolvidas, como (PIEGAT, 2005b; PIE-GAT; PLUCI ´NSKI, 2015b; PIEGAT; LANDOWSKI, 2017a; TOMASZEWSKA; PIEGAT, 2015; MAZANDARANI; PARIZ; KAMYAD, 2018). Ainda, existe o desenvolvimento da chamada “RDM Complex Interval Arithmetic” (LANDOWSKI, 2016), para o trabalho com intervalos sobre números complexos, não sendo o precursor nessa área, havendo abordagens em outras publicações como (ROKNE; LANCASTER, 1971) e (PETKOVIC et al., 1998), mas aplicando à representação multidimensional de RDM-IA.

2.2.3 Outras aritméticas intervalares

Depois da já apresentada SIA, somando-se à explanação principal de RDM-IA, outras abordagens para a aritmética intervalar foram sendo desenvolvidas, não pou-cas, com o intuito de suprir as deficiências da aritmética de Moore e também com propósitos específicos. Em vista disso, algumas aritméticas intervalares que fazem parte desse escopo serão apresentadas brevemente com o intuito de complementar a composição no domínio da teoria intervalar deste trabalho.

2.2.3.1 Aritmética de Hukuhara

Entre as deficiências conhecidas em SIA, uma delas está na falha ao somar-se um intervalo com seu simétrico, não resultando em um intervalo nulo: [x] + (−1)[x] 6= [0, 0], assim a negação de [x] não é o seu inverso aditivo. Na aritmética de Hukuhara (HUKUHARA, 1967), a operação de subtração foi redefinida suprindo essa falha, a chamada H-diferença é dada por:

[a] −H [b] = [c] ⇔ [a] = [b] + [c].

Com isso, duas propriedades importantes são compreendidas:

i. [a] −H [a] = [0, 0];

ii. ([a] + [b]) −H [b] = [a].

A diferença de Hukuhara é única, porém nem sempre existe; nisso, a condição de que a largura do intervalo [a] seja maior ou igual à largura de [b] precisa ser satisfeita para que a H-diferença entre dois intervalos exista. Assim, a H-diferença ainda apre-senta limitações e, nesse contexto STEFANINI; BEDE (2009) propuseram uma gene-ralização para a diferença de Hukuhara, recebendo a nomenclatura de gH-diferença,

(32)

sendo definida por:

[a] −gH[b] = [c] ⇔

(

[a] = [b] + [c], ou [b] = [a](−1)[c].

Dessa forma, a gH-diferença entre dois intervalos [a] e [b] pode ser definida como sendo:

[a, a] −gH [a, a] = [min{a − b, a − b}, max{a − b, a − b}].

Uma generalização para a operação de divisão também foi realizada por STEFA-NINI (2010) sobre a aritmética de Hukuhara, nesse caso para satisfazer à propriedade básica de [a]/[a] = 1 (dado que 0 /∈ [a]), a qual não é obtida em SIA. A diferença de Hu-kuhara também é discutida por PIEGAT; LANDOWSKI (2017a) numa contextualização para números fuzzy.

2.2.3.2 Extensão Intervalar de Kaucher

Na aritmética intervalar de Kaucher (KAUCHER, 1980), uma função contínua de valores reais é estendida seguindo a definição de intervalo generalizado: [x] = {x ∈ R | x ≤ x ≤ ¯x, se x ≤ ¯x; ¯x ≤ x ≤ x, se x > ¯x}. Dessa forma, a aritmética de Kaucher é capaz de representar intervalos onde a propriedade x ≥ x ocorre.

Nela, o conjunto de todos os intervalos finitos próprios IR = {[x, ¯x] | x, ¯x ∈ R, x ≤ ¯x} é estendido para um conjunto H = {[x, ¯x] | x, ¯x ∈ R} ∼= R2 de pares ordenados de números reais finitos, chamados intervalos diretos. Dada uma função real contínua f : Rn → R, sua generalização para intervalos pode ser expressa por fKR : KRn

KR. Considerando o intervalo [t] ∈ IR tal que f ([t]) = {f (t) | t ∈ [t]}, o tipo de monotonicidade de f determina a sua “direção” em que o intervalo f ([t]) é traçado.

Um intervalo direto [x] = [x, ¯x] ∈ H é dito próprio se x ≤ ¯x, impróprio se x > ¯x, ou ainda degenerado quando x = ¯x. O sinal σ de [x] é definido conforme a Equação (28), e sua direção conforme a Equação (29).

σ([x]) = ( +, se 0 ≤ x e 0 ≤ ¯x, −, se x < 0 e ¯x < 0; (28) τ ([x]) = ( +, se x ≤ ¯x,

−, caso contr´ario. (29)

Em Kaucher, as operações básicas de soma, subtração e divisão ocorrem tal qual em SIA, enquanto que a operação de multiplicação ocorre seguindo quatro subcon-juntos do espaço intervalar, fazendo com que a operação seja dividida em diferentes regiões.

(33)

2.2.3.3 Aritmética de Markov

Entre as definições para a aritmética intervalar, MARKOV (1977a,b) apresenta uma nova notação para os extremos de um intervalo: dado que [a] ∈ IR, ˇa representa o limite inferior, enquanto que ˆadenota o limite superior, desse modo, [a] = [ˇa, ˆa]; se α e βsão limites de um intervalo [a], não necessariamente satisfazendo α ≤ β, escreve-se [a] = α ∨ βou [a] = [α ∨ β]. Dessa forma, a definição para um intervalo é dada por:

[a] = [α ∨ β] = [min{α, β}, max{α, β}].

Na aritmética de Markov existem duas representações para os extremos de um intervalo: por exemplo, para [a] = [−3, 2], a = −3 e a = 2; au = 2 e av = −3 tal

que | au |<| av |. Desse modo, au = 2 e av = −3 não são definidos quando o

inter-valo é simétrico, por exemplo, [a] = [−2, 2]. A partir disso, a respeito das operações aritméticas de Markov (M-operações), o M-produto e M-quociente não são definidos quando ao menos um dos intervalos é simétrico, entretanto a M-divisão sempre existe, mesmo que em [a] ÷M [b], [b] contenha zero. A M-soma coincide com a soma usual

de SIA, enquanto que a M-diferença e a gH-diferença (STEFANINI; BEDE, 2009) são coincidentes.

2.2.3.4 Aritmética Intervalar Restrita

A aritmética intervalar restrita (CIA, do inglês, Constrained Interval Arithmetic) foi definida por LODWICK (1999) como uma extensão para a aritmética de Moore (SIA), assegurando as propriedades de inverso aditivo e multiplicativo e também minimizar a superestimação do intervalo solução em funções onde ocorre dependência de va-riáveis. Em CIA, um intervalo é redefinido utilizando três parâmetros, sendo que x e xsão os limites conhecidos e αx varia de forma restrita no intervalo [0, 1] (LODWICK,

1999). Assim, um intervalo em CIA é representado da forma:

XI(x, x, αx) = {x | x = (1 − αx)x + αxx, 0 ≤ αx ≤ 1}.

A utilização de uma variável associada à representação intervalar de uma quanti-dade numérica permite tratar a dependência de variáveis. Nisso, um intervalo em CIA é representado por uma função linear e os limites do intervalo são obtidos por meio de operações de mínimo e máximo, conforme é mostrado:

x = min

0≤αx≤1

XI(x, x, αx); x = max 0≤αx≤1

XI(x, x, αx)

(34)

{+, −, ∗, /}:

[z] = [x] ◦ [y] = {[z] | [z] = [x] ◦ [y] para todo x ≤ x ≤ x e y ≤ y ≤ y} = [z, z],

onde x = min{z} e z = max{z}.

Dessa forma, as operações algébricas também ocorrem utilizando o mesmo prin-cípio e, assim, permite-se que seja operado sobre todos os níveis dentro do cálculo. Considera-se todas as combinações entre os limites dos intervalos envolvidos sendo, ao final, o intervalo solução composto por valores resultantes das operações de mí-nimo e máximo. O espaço intervalar representado por CIA são os intervalos que pertencem ao espaço de funções lineares, com inclinação não negativa, sobre um domínio compacto (LEAL, 2015), α ∈ [0, 1].

2.2.3.5 Aritmética intervalar restrita de nível único

A partir dos conceitos de CIA, CHALCO-CANO; LODWICK; BEDE (2014) desen-volveram uma nova definição chamada SLCIA (do inglês, Single Level Constraint Inter-val Arithmetic). A principal diferença de SLCIA para CIA está em apenas uma variável ser considerada para todos os intervalos, ocorrendo ou não dependência. SLCIA tam-bém considera a mesma variação dentro dos intervalos envolvidos no cálculo, isto é, se um intervalo é instanciado a um dado valor de distância do limite inferior, todos os demais intervalos deverão ser instanciados com essa mesma distância.

A obtenção dos limites do intervalo ocorre identicamente como em CIA. Associado a isso, são definidas as funções restritas convexas crescestes: [a](λ) : [0, 1] → R, e decrescente: [a]0(λ) : [0, 1] → R em SLCIA:

[a](λ) = a + λ(a − a), 0 ≤ λ ≤ 1; [a]0(λ) = a + (a − a)λ, 0 ≤ λ ≤ 1.

Assim, assumindo-se [a] e [b] intervalos e ∗ operações binárias em R, as operações em CIA-Single Level são dadas por ([a] ~ [b])(λ) = [a](λ) ∗ [b](λ) em IR:

[a] ~ [b] = 

min

0≤λ≤1([a](λ) ∗ [b](λ)), max0≤λ≤1([a](λ) ∗ [b](λ))

 .

A ideia principal de SLCIA é operar nível a nível a partir das combinações entre os limites dos intervalos, dado que a mesma variável é atribuída a todos os intervalos operados (λ ∈ [0, 1]), obtendo um novo intervalo por meio das operações de mínimo e máximo. Outra característica está relacionada às operações em si, no caso da soma e produto de intervalos por um escalar, estas coincidem com as operações usuais da aritmética usual, enquanto que a diferença é coincidente com a diferença de Markov

(35)

(M-diferença)(MARKOV, 1979) e a gH-diferença, de STEFANINI; BEDE (2009).

Somando-se às aritméticas previamente apresentadas, podem ainda ser citadas outras definições acerca do espaço intervalar IR: a aritmética “Afim” ou Affine (AA -Affine Arithmetic), por STOLFI; DE FIGUEIREDO (2003); DE FIGUEIREDO; STOLFI (2004), compreende um modelo auto validado representando um intervalo [x] por meio de um polinômio da forma ˆx = x0 + x1ε1+ x2ε2+ . . . + xnεn, onde os coeficientes xi

são números de ponto flutuante e εi são variáveis reais simbólicas de valor

desconhe-cido mas assumidas estando no intervalo [−1, 1], estas representam um componente independente de ruído do total de incerteza contida na quantidade intervalar [x]. O trabalho de (VACCARO, 2001) apresenta um mapeamento algébrico para a operação de multiplicação intervalar tanto pela representação dos extremos do intervalo como por ponto médio e diâmetro. KULPA (2001) expõe uma representação por diagrama para o espaço intervalar, chamada MR-diagram, demonstrando como representar e derivar as propriedades da aritmética intervalar utilizando diagramas, sendo essa re-presentação uma extensão de Interval Space Diagram (IS-Diagram) (KULPA, 1997). RUMP (1999a), desenvolvedor da biblioteca IntLab, mais tarde comentada, aborda a superestimação do ponto médio (ou raio) na aritmética intervalar em comparação com conjuntos potência de operações. Nesse contexto, mostra que é uniformemente limitada por um fator de 1.5 em raio, mostrando a validade da afirmação para opera-ções básicas, vetores e operaopera-ções matriciais, sobre números reais e complexos. Além disso, o autor descreve a implementação para a aritmética midpoint-radius utilizando BLAS, utilizando a biblioteca IntLab, com o escopo voltado ao desempenho para a computação de operações matriciais em arquiteturas paralelas.

Posterior à explanação do domínio da teoria intervalar no que se refere à definições de aritméticas intervalares, passando por diversas descrições, sendo elas individuais ou procedentes de definições anteriores, faz-se importante a possibilidade de analisar os resultados retornados após operar-se sobre essas diferentes topologias. Nesse contexto, a seção seguinte é reservada a apresentar algumas métricas utilizadas no espaço intervalar para obter estimativas como qualidade e erros sobre esses valores.

2.3

Avaliação de qualidade para resultados intervalares

Sendo o computador incapaz de representar todos os números de um dado in-tervalo de números reais por conta de suas limitações físicas, sua capacidade de representação depende de um conjunto de parâmetros (ZURAS et al., 2008). Estes compõem o sistema de representação numérica de ponto flutuante, discutido anterior-mente juntaanterior-mente aos erros ocasionados por esse tipo de representação em sistemas computacionais. Em vista disso, para garantir a qualidade de um valor de resultado

(36)

cabe realizar uma análise a fim de apurar o quanto um valor final se distancia de um valor esperado e, para isso, utilizam-se medidas de erros.

A aritmética intervalar, de modo geral, conta com métricas particulares para a es-timativa e controle automático de erros para valores intervalares, definidas a partir de medidas utilizadas na aritmética real usual para termos intervalares. A primeira delas não se refere propriamente à um cálculo de erro, mas como parâmetro de análise de qualidade do resultado intervalar, chamada de diâmetro, largura ou comprimento do intervalo. Obtida pela diferença entre as bordas do intervalo, esta medida é expressa pela Equação (30), representada por ω([x]). A partir desta medida, pode-se calcular o raio do intervalo, obtido pela metade do diâmetro como mostra a Equação (31). Em alguns casos, o valor do raio do intervalo é utilizado para representar a aproximação do valor real obtido, não só o ponto médio.

• Diâmetro

ω([x]) = ω([x, x]) = ¯x − x (30)

• Raio

r([x]) = ω([x])

2 (31)

Outras duas métricas usuais para a análise de qualidade intervalar são os cálculos de erro absoluto (EA) e erro relativo (ER). Estas são apresentadas pelas Equações (32) e (33), respectivamente.

• Erro Absoluto

EA =| x − m([x]) |< ω([x])

2 , (32)

m([x])representa o ponto médio do intervalo [x], sendo m([x]) = (x+¯2x). • Erro Relativo ER = x − m([x]) x ≤ ω([x]) 2min([x]), se 0 /∈ [x], (33) onde [x] = {| x |: x ∈ [x]}.

O ponto médio m([x]) é uma convenção para medir a distância entre o valor real em relação ao valor pontual. Essa medida aponta como sendo o valor real medido e o raio, calculado por ω([x])2 , o qual indica a incerteza devida à restrições de precisão geradas pelo ambiente. Dessa forma, entende-se que o valor exato está limitado pelas bordas do intervalo.

Outros parâmetros utilizados recorrentemente para estimar divergências em torno de um valor ou conjunto de valores, sobretudo em dados experimentais, são a média e medidas de dispersão. Não se pode afirmar que o valor mais provável seja o valor

(37)

da grandeza. Em vista disso, quando se conhece o valor mais provável, não trata-se por “erro” a diferença entre o valor de medida da grandeza e seu valor mais provável, mas “desvio” ou “discrepância”.

Dessa forma, outros parâmetros foram definidos para o trabalho utilizando aritmé-tica intervalar, as medidas de dispersão. No campo estatístico, as medidas de dis-persão se fazem importantes para determinar o grau de variabilidade dos dados de um conjunto de valores e, com isto, LORETO (2006) criou definições intervalares para algumas dessas medidas, fazendo parte de um conjunto de indicadores descritivos intervalares.

A seguir, tais funções são apresentadas pelas Equações (34), (35), (36), (37), (38), (39), (40) e (41), sofrendo algumas alterações em virtude da representação de RDM-IA; [xi]representa o valor intervalar em notação RDM [xi + αxi(xi− xi)].

• Média Intervalar M Eint= 1 n " n X i=1 [xi] # (34) • Mediana Intervalar M Dint=     [x](n2)+ [x](n2+1)  /2, se n é par; [x](n+1 2 ), se n é ímpar. (35)

• Amplitude Total Intervalar

ATint = n X i=1 [max{[xi]} − min{[xi]}] (36) • Variância Intervalar V Aint= 1 n − 1 n X i=1 ([xi] − M Eint)2 (37)

• Desvio Padrão Intervalar

DPint = +

p

V Aint (38)

• Coeficiente de Variação Intervalar

CVint= DPint M Eint (39) • Covariância Intervalar COint= 1 n − 1 n X i=1

Referências

Documentos relacionados

O distrito, para além dos outros clubes que o compõem, deve um apoio especial a este novel clube, (já é a 3ª vez que é criado um club em Beja), com um quadro social

Na apresentação dos dados estatísticos, ficou demonstrada à todos os participantes a dimensão da pesquisa, abrangendo o setor produtivo como um todo, enfocando a produção

Em virtude do aumento expressivo do número de casos notificados de sífilis em gestantes nos últimos anos, a elevada taxa de transmissão vertical, as graves repercussões

Cabe ressaltar que os municípios que exibiram grau de desenvolvimento muito baixo e baixo, se encontram em sua maioria na região centro-sul, que, como ilustração, abriga a capital

Para minimizar tais riscos, todas as aquisições de imóveis são precedidas de uma ampla diligência jurídica, que inclui sem limitação a contratação de

Finalmente, e talvez mais relevante caso sejam considerados os estudos de discriminação da magnitude do reforço (Marshall &amp; Kirkpatrick, 2016, Experimento 2; Renda &amp;

Com o estudo anterior (AMARAL, 2009) sobre a evolução da infografia no meio, surgiram dúvidas a respeito de alguns exemplos pesquisados. Percebemos que a fronteira

A clínica gestáltica tem o intuito de desenvolver um trabalho baseado na relação dialógica, que facilita o processo de autorregulação e ajustamento criativo para as pessoas.. Tais