• Nenhum resultado encontrado

Computação algébrica: sistemas de software estrutura e algoritmo de risch.

N/A
N/A
Protected

Academic year: 2021

Share "Computação algébrica: sistemas de software estrutura e algoritmo de risch."

Copied!
129
0
0

Texto

(1)

Kíssia Carvalho

Computação Algébrica: Sistemas de Software.

Estrutura e Algoritmo de Risch

D i s s e r t a ç ã o submetida à C o o r d e n a ç ã o Curso de P ó s - G r a d u ç ã o em I n f o r m á t i c a do Centro de Ciências e Tecnologia da Universidade Federal da P a r a í b a , como requisito parcial para o b t e n ç ã o do grau de Mestre em I n f o r m á t i c a .

M á r i o Toyotaro Hat t o r i Orientador

Bruno Correia da N ó b r e g a Queiroz Co-orientador

Campina Grande. P a r a í b a . Brasil © K í s s i a Carvalho. 1996

(2)
(3)

PARECER F I N A L DO JULGAMENTO DA DISSERTAÇÃO DA MESTRANDA

KÍSSIA C A R V A L H O

T I T U L O : "COMPUTAÇÃO ALGÉBRICA: SISTEMAS DE SOFTWARE, ESTRUTURA E

ALGORITMO DE R1SCH".

C O M I S S Ã O E X A M I N A D O R A C O N C E I T O

PROF. BRUNO CORREJ& DA NÓBREGA QUEIROZ, M.Sc

Examinador

-PROF. CLAUDIANOR DE OLIVEIRA ALVES, Dr.

Examinador

-PROF. MAURO CAVALCANTE I

ANTE PEQUENO, Dr..

Examinador

-A

(4)

Estrutura e Algoritmo de Risch

Kíssia Carvalho

Dissertação de Mestrado aprovada em 12/07 /1996

Mário Tovotaro Hailori Orientador

Bruno Correia da Nóbrega Queiroz Co-orientaclor

Mauro Cavalcante Pequeno Componente da Banca Claudianor Oliveira Alves

Componente da Banca

(5)

"Estou certo de que minha mãe virá visitar-me e dar-me os seus conselhos, revelando-me o que nos espora na vida futura"

Santo Agostmho

Ao meus pais Hélio e Rita.

(6)

Agradeço inicialmente a Deus que me possibilitou reencarnar para que eu bus-casse a simplicidade de coração e a humildade de espirito.

Agradeço aos meus pais Hélio e Rita. irmãs Kénia e Kvvânia. meus cunhados, sobrinhos e minha avó Percila.

A Romero, pela sua compreensão e companhia em meus momentos difíceis, e sua família.

As minhas grandes amigas (em ordem alfabética) Joseana. Kátia e Magna pelo apoio durante o meu dia a dia.

A minha primeira professora "Tia Marilita". com quem aprendi a gostar de estudar.

Agradeço a Mendes. Ernesto. José Luiz. Marcos Aurélio e especialmente ao professor Bráulio que me iniciou nos caminhos da álgebra, professores do Departamento de Matemática e Estatística da VFPb.

Aos meus colegas de curso Adna. Aldenor. Carlos. Edjander. Eliane. Gilson. Reginaldo. Robson. Victor Hugo e Washington, cuja ajuda foi de fundamental im-portância na conclusão deste trabalho.

Aos professores, principalmente meus orientadores Mário T. Hattori e Bruno Queiroz, e aos funcionários, especialmente a Aninha, que fazem a COPIN.

Ao professor da UFC. Mauro Pequeno. A VFPb e ao CNPq.

E finalmente a mais linda das campinas. Campina Grande.

(7)

Resumo

Os problemas de matemática aplicada, em particular os ligados à modelagem, são em geral apresentados em palavras, sem formulas. Isso siguinifica fazer/escolher as hipóteses físicas a serem levadas em conta, ou seja. verificar quais são os igridientes relevantes do problema. Atualmente, pode-se usar o computador, como meio eficiente para experimentação e verificação no estudo da solução destes problemas. A tendência atual é procurar construir ambientes integrados para a solução de problemas (ASP 's) de matemática, o que exige a coperaçào de muitos especialistas. Há um grande interesse na busca da integração da computação algébrica, computação numérica e computação gráfica, o que conduz a idéia de conceber um sistema de software algébrico organizado em módulos.

Para evitar os erros de arredondamento, os sistemas de software algébricos exe-cutam a operações aritméticas básicas por software. Por isso é necessário escolher estruturas de dados adquadas para representar os objetos (inteiros e polinómios) bem como algoritmos que executem essas operações eficientimente. Os números reais podem ser representados de forma a aproveitar os algoritmos e estrutura de dados utilizada para inteiros.

l"m sistema de software algébrico deve oferecer recursos de simplificação e recur-sos para obtenção de primitiva de uma função. Constantes progresrecur-sos são obtidos, no campo da integração e na busca do desenvolvimento de um "sistema expert" em in-tegração, combinando conhecimentos de computação numérica, computação algébrica e inteligência artificial. 0 algoritmo de Risch contribuiu significativamente na busca da solução do problema de obtenção de uma primitiva em sua forma fechada. Neste trabalho o algoritmo de Risch é analisado afim de mostrar e compreender detalhes do seu funcionamento.

Na verdade, este trabalho tem a visão moderna segundo a qual. se pode/deve moti-var a teoria recorendo-se a situações práticas, fazendo uso do computador. Procurou-se organizar conhecimentos básicos de Computação algébrica para servir de orientação a quem deseja implementar um sistema de computação algébrica ou queira utilizar racionalmente algum sistema existe.

PALAVRAS CHAVES: Sistemas de Software Algébrico. Computação Algébrica. Operações aritméticas. Algoritmo de Risch.

(8)

Aplicad mathematics problems, specificaly related to modeling, are generally pre-sented in words, without formulas. This means to do/to choose the physical hypotheses to be taken in account or to verify which are the problem main ingredients. Nowadays the computer can be used as an efficient, way for experimenting and verification in the study of these problems. The current tendency is looking for building integrated enviroments for the solution of mathematics problems (ASP s) what demands man)' experts cooperation. There is a great interest in searching the integration of algebric. numerical and graphic computation that leads the idea of conceiving and algebraic software sistem organized in modules.

To avoid rounding up errors, the algebraic software sistems perform the basic arith-metical operations by software. Is necessary then, to choose data structures apropriated to represent the objects (wholes and polinomes) as well as algoritthms that perform these operations efficiently. Real numbers can be represented in order to utilize the algorithms and data structures used for wholes numbers.

An algebraic software sistem must offer recourses of simplification and recousers to obtain the primitive of a function. A continuous progress is obtained in the field of interaction and in searching to develop an ' 'expert sistem " in interaction, combining numerical computation knowledge, algebraic computation and artificial intelligence. Risch algorithm contributed significantly to find out a solution for the problem of getting a primitive in its closed pattern. In this work Risch algorithm is analysed in order to show and understand details in this functioning.

In reality, this work has a modern view in which you can/must motivate the theory using practical situations applying the computer. It was tried to organize basic knowl-edges of algebraic computation to serve as orientation to whom desires to implement an algebraic computation sistem or wants to use rational)' some existent sistem.

KEY WORDS: Algebraic Software Sistems. Algebraic Computation. Arithmetical Operations. Risch Algorithm.

(9)

S u m á r i o

1 C o m p u t a ç ã o A l g é b r i c a 1 1.1 Introdução 1 1.2 Terminologia 2 1.3 Computação Algébrica 4 1.4 Aplicações 6 1.5 Objetivos da Dissertação 7 1.6 Organização da Dissertação 7

2 Sistemas de Software para C o m p u t a ç ã o A l g é b r i c a 9

2.1 Conceitos Básicos 9 2.2 Simplificação Algébrica 13 2.3 Classificação dos Sistemas Algébricos de acordo com a Simplificação . . 17

2.4 Aplicações dos Sistemas Algébricos 20 2.5 A Tendência Atual de Integração da Computação Algébrica. Computação

Numérica e Computação Gráfica 21

3 O r g a n i z a ç ã o de um Sistema de Software A l g é b r i c o 24 3.1 Modelo de Arquitetura de um Sistema de Software Algébrico. 24

3.2 Módulos de um Sistema 29

3.3 Interface 37 3.4 Linguagem 38

(10)

4.1 Inteiros e polinómios de uma variável 40 4.2 Adição e subtração .- 41 4.3 Multiplicação 44 4.4 Divisão 56 4.5 A Escolha da Base 59 4.6 Aritmética Modular 61 4.7 Polinómios de Várias Variáveis 64

4.S Estrutura de dados 65 4.9 Números Reais 70

4.9.1 Notação Racional 72 4.9.2 Aritmética de Ponto Fixo 73

4.10 Linguagem de Pogramaçâo 80

5 Algoritmo de Risch 81 5.1 Terminologia 81 5.2 Integração Simbólica 82

5.2.1 A Abordagem da Inteligência Artificial 83 5.2.2 Abordagem da Manipulação Algébrica 84

5.2.3 O Tratamento Matemático 85

5.3 Teorema de Liouville 85 5.4 Primitiva de uma Função na Forma de uma Expressão Finita 87

5.5 Algoritmo de Risch S9 5.5.1 A Idéia Básica do Algoritmo 89

5.5.2 Desenvolvimento do Algoritmo de Risch 90 5.6 Abordagens de alguns Sistemas Algébricos no Tratamento de Integrais 94

(11)

6 C o n c l u s õ e s 96 6.1 Conclusões 96 6.2 Sugestões para trabalhos futuros 99

A Conceitos de M a t e m á t i c a 100 A . l Estruturas Algébricas 100 A.2 A Transformada Discreta de Fourier e sua Inversa 105

A.3 Congruência Módulo rn 107 A.4 Análise Complexa 10S

(12)

2.1 Propriedades gerais de sistemas algébricos 12 2.2 Propriedades gerais de sistemas algébricos (continuação) 13

2.3 Objetos matemáticos e operações com eles que foram incorporados nos

sistemas do quadro 2.1 14 2.4 Objetos matemáticos e operações com esses objetos que foram

incorpo-rados nos sistemas do quadro 2.2 15

(13)

Lista de Figuras

] . ] Algoritmo para o cálculo da soma dos 100 primeiros inteiros 7

3.1 Divisão de Sistemas Algébricos 25 3.2 Funções dependentes de equipamento abordadas com o conceito de

ca-madas 26 3.3 Modelo da arquitetura de um sistema de software algébrico 28

3.4 Dependência das operações no módulo básico 31

4.1 Ilustração de qi>m do exemplo 1 51

4.2 Cálculo do quociente para divisão de inteiros 56 4.3 Elementos de uma lista para o armazenamento de inteiros 66

4.4 Lista para armazenar Inteiros e Polinómios de uma variável .' 66 4.5 Elementos da lista para o armazenamento de polinómios de várias variáveis 67

4.6 Lista de listas para o armazenamento de polinómios de várias variáveis 68 4.7 Armazenamento dos expoentes para polinómios de várias variáveis . . . 68 4.8 Armazenamento dos expoentes para polinómios de várias variáveis . . . 69

4.9 Representação de reais em ponto flutuante 70 4.10 Alinhamento das vírgulas para operações de adição e subtração com

números reais 74

A . l Estrutura de torre para extensões de corpos 105

(14)

C o m p u t a ç ã o Algébrica

1.1 I n t r o d u ç ã o

Ao tentar explicar fenômenos da natureza procurando uma relação entre causas e efeitos surgem os problemas de matemática. Busca-se uma explicação para o fenômeno para poder prever o comportamento futuro desse fenômeno. 0 fenômeno é modelado ma-tematicamente, estabelecendo uma relação entre as possíveis causas e efeitos. Nessa modelagem surgem os problemas de matemática. Dado um problema de matemática, no sentido amplo, para encontrar sua solução existem diversos métodos [1]:

1. Método dedutivo, quando se trata de provar alguma verdade matemática.

2. Método analítico, que procura obter uma relação analítica entre as variáveis independentes e variáveis dependentes satisfazendo alguma(s) condiçâo(ções).

3. Método numérico, que procura obter valores da solução (variável dependente) de um problema para valores discretos das variáveis independentes, quando uma solução procurada for uma função ou os valores numéricos de variáveis que satis-fazem alguma condição.

4. Método gráfico, para exibir graficamente o comportamento de um problema ou mesmo de sua solução, cuja inspeção pode fornecer informações importantes sobre o problema e sua solução.

(15)

Computação Algébrica 2

Com o desenvolvimento da tecnologia de informática (hardware e software), atual-mente pode-se usar o computador na aplicação dos métodos 2 a 4. 0 método 1 pode se beneficiar da utilização do computador porque aplicando os métodos 2 a 4 pode-se obter um discernimento (insight) sobre o problema e este pode sugerir caminhos para se chegar a uma prova.

1.2 Terminologia

Jonh Rice cunhou o termo software matemático (ver definição 1.2.1) em 1969. ao convidar pesquisadores para participarem de um simpósio na Purdue University em abril de 1970(2]. O software matemático teve um desenvolvimento extraordinário na década de 70. Já no fim da década de 70 a comunidade de software matemático começou a tomar consciência de que se preocupou demasiado em criar produtos e se preucupou de menos com os usuários destes produtos.

Com o advento de novos recursos gráficos de hardware e o barateamento das máquinas de uma forma geral, a comunidade de software matemático reavaliou todo o esforço despendido no desenvolvimento de software numérico (ver definição 1.2.2) e chegou à conclusão de que o computador poderia desempenhar um papel muito mais abrangente do que o desempenhado até então, na solução de problemas de matemática. Hoje o software matemático é considerado como uma disciplina (assunto para ensino e pesquisa).

A terminologia usada é introduzida a seguir:

D e f i n i ç ã o 1.2.1 [1]: Software matemático é um ramo da engenharia de software

que concebe, implementa, testa e mantém software para solução de problemas de matemática. •

Definição 1.2.2 [l]: Software numérico é um software cuja finalidade é a solução

numérica de problemas de matemática.^

Definição 1.2.3 [l]: Software algébrico é um software cuja finalidade é a obtenção

de formulas matemáticas como solução analítica de um problema de matemática ou resultado de qualquer manipulação algébrica. •

(16)

Nada impede que u m software algébrico obtenha resultados n u m é r i c o s . P o r é m , ao contrario do software n u m é r i c o , u m resultado n u m é r i c o é encontrado obtendo p r i m e i r o u m a s o l u ç ã o a n a l í t i c a que é avaliada a seguir. U m software que seja ao mesmo t e m p o n u m é r i c o e a l g é b r i c o poderia ser qualificado de m a t e m á t i c o , o que de fato ocorre na l i t e r a t u r a .

U m software combina diversos algoritmos para que cumpra suas finalidades.

D e f i n i ç ã o 1.2.4 Algoritmo básico é aquele definido matematicamente.D

D e f i n i ç ã o 1.2.5 [l]: Algoritmo computacional (numérico, algébrico, ou gráfico) é aquele

obtido de um algoritmo básico ou de uma combinação deles, levando em conta as ca-racterísticas do computador com a finalidade de executar uma sequencia de operações para resolver um problema.O

D e f i n i ç ã o 1.2.6 [lj: Computação numérica é a resolução numérica de problemas de

matemática utilizando o computador.O

D e f i n i ç ã o 1.2.7 [1]: Computação algébrica ou Manipulação Simbólica é a resolução

analítica de problemas de matemática utilizando o computador.ü

D e f i n i ç ã o 1.2.8 [1]: Computação gráfica é a geração de gráficos pelo computador e o estudo de algoritmos, técnicas e métodos para essa geração.O

0 software m a t e m á t i c o precisa combinar os conhecimentos de c i ê n c i a da com-p u t a ç ã o , da c o m com-p u t a ç ã o n u m é r i c a e da engenharia, sem mencionar os da m a t e m á t i c a que permeia toda as t r ê s á r e a s .

U m software m a t e m á t i c o pode se apresentar como:

• U m pacote: coleção de programas para resolver u m a classe ou uma grande sub-classe de uma sub-classe de problemas;

• U m a biblioteca: coleção de programas para resolver diversas classes de programas de m a t e m á t i c a ;

• U m sistemas de software: c o n s t i t u í d o de u m pacote ou de uma biblioteca mais uma interface do u s u á r i o .

(17)

Computação Algébrica 4

U m software para c o m p u t a ç ã o a l g é b r i c a em geral se enquadra na classificação de u m sistema de software. E composto de u m elenco de recursos e de u m a linguagem para m a n i p u l a r esses recursos. Por c o n v e n i ê n c i a u m sistema de software para c o m p u t a ç ã o a l g é b r i c a , será chamado aqui como sistema algébrico ou sistema de software a l g é b r i c o .

1.3 C o m p u t a ç ã o Algébrica

H a m m i n g [3] afirma que " A finalidade da c o m p u t a ç ã o é o discernimento, n ã o n ú m e r o s " . 0 discernimento raramente é obtido a p a r t i r de uma grande quantidade de n ú m e r o s ; graficamente é a forma mais comum de o b t ê - l o . Existem outras maneiras de se obter o discernimento - o uso da m a n i p u l a ç ã o simbólica pelo computador ( t a m b é m conhecida como c o m p u t a ç ã o a l g é b r i c a ) .

Na verdade, a idéia de que qualquer procedimento a n a l í t i c o exato poderia ser exe-cutado por u m computador foi expressa em 1S44 por Lady Lovelace ( A d a A u g u s t a ) , a filha de Lord Byron e patronesse do m a t e m á t i c o inglês Charles Babbage. E m 1833 Babbage desenvolveu uma " m á q u i n a a n a l í t i c a " , que era uma espécie de m á q u i n a de calcular p r o g a m á v e l com a r i t m é t i c a e dispositivos de m e m ó r i a . Cem anos mais tarde, as propriedades da m á q u i n a de Babbage tornaram-se os fundamentos dos computadores modernos [4]. A primeira tentativa bem sucedida para executar uma o p e r a ç ã o n ã o n u m é r i c a simples, em u m computador ocorreu em 1955: a diferenciação [5, 6]. 0 p r ó x i m o e i m p o r t a n t e passo nessa direção o desenvolvimento da á l g e b r a p o l i n o m i a l -necessitou de outros 10 anos de desenvolvimento de tecnologia de hardware, de novos algoritmos [7], e a c r i a ç ã o de linguagens de p r o g r a m a ç ã o .

Nos anos 60 a idéia de m a n i p u l a ç ã o a l g é b r i c a , que usa variáveis ao invés de n ú m e r o s , marcou o nascimento de uma á r e a de especialização, chamado Computação Algébrica ou Manipulação Simbólica. Observou-se que u m computador pode auxiliar u m cien-tista ou engenheiro, n ã o só em o p e r a ç õ e s com n ú m e r o s , mas t a m b é m analisando o comportamento desses problemas.

A m a n i p u l a ç ã o simbólica pode ajudar a resolver problemas de t r ê s maneiras [8]:

• fornecendo uma resposta completa: • fornecendo uma a p r o x i m a ç ã o simbólica;

(18)

M u i t a s pessoas se supreendem ao saber que os computadores s ã o capazes de exe-cutar m a n i p u l a ç ã o a l g é b r i c a t ã o bem quanto o p e r a ç õ e s n u m é r i c a s . A surpresa ocorre porque geralmente o computador é visto como u m a ferramenta destinada para com-p u t a ç ã o n u m é r i c a .

Na c o m p u t a ç ã o n u m é r i c a , os símbolos que s ã o usados representam n ú m e r o s , e os resultados obtidos t a m b é m são n ú m e r o s . C o m sistemas a l g é b r i c o s , por o u t r o lado. é possível usar computadores para executar analiticamente o p e r a ç õ e s como diferen-c i a ç ã o , simplifidiferen-cação de expressões (diferen-coletar termos similares), s u b s t i t u i ç ã o de s í m b o l o s ou e x p r e s s õ e s por outras expressões, etc.

U m programa de c o m p u t a ç ã o algébrica apresenta algumas vantagens em r e l a ç ã o aos programas de c o m p u t a ç ã o n u m é r i c a . A primeira delas é a economia de tempo de c o m p u t a ç ã o , quando uma e x p r e s s ã o algébrica for simplificada antes de ser avaliada numericamente. A segunda vantagem é a o b t e n ç ã o de soluções, quase sempre exatas, em contraste com as soluções n u m é r i c a s que são a priori aproximadas. U m exemplo p r á t i c o é a diferenciação n u m é r i c a que tem muitas desvantagens comparada com a d i -f e r e n c i a ç ã o simbólica [9]. Note-se que um resultado na -forma a l g é b r i c a pode -facilitar sua a n á l i s e e i n t e r p r e t a ç ã o .

V á r i o s algoritmos foram concebidos para d i f e r e n c i a ç ã o , i n t e g r a ç ã o e e x p a n s ã o de e x p r e s s õ e s a l g é b r i c a s . A C o m p u t a ç ã o A l g é b r i c a se desenvolve para fazer com que os recursos do computador se tornem disponíveis e acessíveis para o m u n d o educacional, científico e industrial [10], executando as tarefas n e c e s s á r i a s da m a t e m á t i c a com mais eficiência ou que eram impossíveis manualmente. U m software de c o m p u t a ç ã o a l g é b r i c a é uma ferramenta que permite ao u s u á r i o ter acesso aos conhecimentos de m a t e m á t i c a de forma n a t u r a l , e a cada dia de forma mais i n t u i t i v a , devido à e v o l u ç ã o das interfaces entre u s u á r i o e computador.

Como o computador é programado para realizar as m a n i p u l a ç õ e s a l g é b r i c a s ? A idéia é fazer com que o computador siga u m rigoroso procedimento que especifique todos os passos a serem seguidos. No desenvolvimento de u m a l g o r i t m o para c o m p u t a ç ã o a l g é b r i c a nem sempre se segue o procedimento que seja o mais eficiente manualmente. Procura-se construir u m algoritmo que represente uma e x p r e s s ã o da forma mais simples possível. Entretanto, pessoas discordam sobre o que constitui a forma mais simples de uma e x p r e s s ã o , porque a utilidade de uma forma particular depende das c i r c u n s t â n c i a s em que o u s u á r i o se encontra. Por isso. a c o n s t r u ç ã o de u m a l g o r i t m o geral para simplificação é i m p o s s í v e l .

(19)

Computação Algébrica 6

em cálculos complexos, isto é, cálculos que envolvem e x p r e s s õ e s com muitos termos e v á r i a s funções m a t e m á t i c a s . Problemas relativamente simples abordados por m a n i p u -l a ç ã o a -l g é b r i c a podem contribuir para tornar a ava-liação n u m é r i c a mais simp-les.

1.4 Aplicações

A c o m p u t a ç ã o algébrica tem aplicações em v á r i a s á r e a s : economia, geometria a l g é b r i c a , m e c â n i c a dos fluidos, física, engenharia, etc [11. 12]. cujos especialistas dessas á r e a s devem contar com uma ferramenta adequada.

U m exemplo clássico do auxílio da c o m p u t a ç ã o algébrica ocorre na teoria do m o v i -mento da lua. que fornece a posição da lua como função do tempo. A solução foi obtida manualmente em 1S67. pelo a s t r ó n o m o francês Charles Delauney. que levou 10 anos para sua c o n c l u s ã o e mais 10 para verificá-lo. E m 1970 t r ê s erros foram detectados após 20 horas de processamento, por u m programa escrito por A n d r é D e p r i t . Jacques Henrard e A r n o l d R o m . cientistas dos Boeing Scientific Research Laboratories em Seat-tle. Apesar da c o m p u t a ç ã o algébrica ter sido r e s p o n s á v e l pela e x p o s i ç ã o do erro de Delaunuay. a tabela por ele c o n s t r u í d a , que relaciona a posição da lua com o t e m p o , tem servido de p a r â m e t r o para os novos sistemas de c o m p u t a ç ã o a l g é b r i c a [11].

A C o m p u t a ç ã o algébrica pode ser aplicada na c o m p u t a ç ã o n u m é r i c a para d i m i n u i r o tempo de processamento com a simplificação algébrica de uma e x p r e s s ã o antes de ser avaliada numericamente. O exemplo a seguir ilustra a a p l i c a ç ã o de m é t o d o s de s o l u ç ã o de problemas de m a t e m á t i c a .

Para encontrar a soma dos 100 primeiros inteiros numericamente usam-se 19S adições separadas (ver Figura 1.1). U m algoritmo empregado por u m programa de c o m p u t a ç ã o algébrica resolve o problema considerando que a soma dos 7? primeiros inteiros é u m p o l i n ó m i o do segundo grau em 7?. Da mesma forma, o a l g o r i t m o pode encontrar a soma dos quadrados dos n primeiros inteiros, construindo u m p o l i n ó m i o do terceiro grau como função de ??. Apesar desse algoritmo ser eficaz, n ã o é a forma mais r á p i d a de resolver o problema de somar os 7? primeiros inteiros. Existe, por exemplo, o m é t o d o proposto por Gauss. que percebeu que os inteiros de 1 a 100 poderiam ser agrupados em 50 pares cuja soma é igual a 101. restando apenas fazer o p r o d u t o 101 x õ0. mas é u m m é t o d o que n ã o serve para encontrar a soma de quadrados, cubos ou altas p o t ê n c i a s de inteiros enquanto que o algoritmo de c o m p u t a ç ã o a l g é b r i c a pode.

(20)

S := 1 I : = 1 w h i l e K 100 I :=I+1 — 99 adições > 2 x 9 9 S : = S + I 99 adições ' endwhile

Figura 1.1: A l g o r i t m o para o cálculo da soma dos 100 primeiros inteiros

amplo. Apesar da c o m p u t a ç ã o algébrica ter conseguido resolver problemas em muitas aplicações importantes, n ã o se pode dizer que as pesquisas na área estejam esgotadas.

1.5 Objetivos da D i s s e r t a ç ã o

A d i s s e r t a ç ã o procura organizar conhecimentos básicos de C o m p u t a ç ã o Algébrica para servir de o r i e n t a ç ã o a quem deseja implementar u m sistema de c o m p u t a ç ã o a l g é b r i c a ou queira utilizar racionalmente algum sistema existente.

Estuda os algoritmos para c o m p u t a ç ã o algébrica e tenta classificá-los em grupos, especificando:

• Que grupos de algoritmos são i n d i s p e n s á v e i s em qualquer sistema de m a n i p u l a ç ã o a l g é b r i c a .

• Quais os algoritmos que realizam as o p e r a ç õ e s a r i t m é t i c a s b á s i c a s .

• Estuda o algoritmo de Risch (para o b t e n ç ã o de primitivas) e faz algumas conside-rações sobre a maneira de colocá-lo de uma forma que seja possível i m p l e m e n t á - l o .

1.6 Organização da D i s s e r t a ç ã o

A d i s s e r t a ç ã o foi assim organizada:

(21)

Computação Algébrica S

• Capitulo 2 - Sistemas de Software para computação Algébrica. Levantamento

h i s t ó r i c o , classificação, propriedades, aplicações de sistemas a l g é b r i c o s , enfati-zando a simplificação algébrica. T e n d ê n c i a s atuais da i n t e g r a ç ã o da c o m p u t a ç ã o n u m é r i c a , c o m p u t a ç ã o algébrica e c o m p u t a ç ã o gráfica são t a m b é m discutidas.

• Capítulo 3 - Organização de um Sistema de Software Algébrico. Apresenta u m a

arquitetura de u m Sistema de Software A l g é b r i c o , em que s ã o identificadas as o p e r a ç õ e s necessárias para a c o n s t r u ç ã o de m ó d u l o s de u m sistema, a l é m de uma breve análise sobre os atributos da interface do u s u á r i o e da linguagem a ser utilizada por um sistema.

• Capítulo 4 • Operações Aritméticas Básicas. São apresentados e discutidos os

al-goritmos para e x e c u ç ã o de operações a r i t m é t i c a s b á s i c a s com inteiros e p o l i n ó m i o s em p r e c i s ã o a r b i t r á r i a . E t a m b é m discutida a m a n i p u l a ç ã o dos n ú m e r o s reais.

• Capítulo 5 - Algoritmo dt Risch. Uma breve d e s c r i ç ã o sobre i n t e g r a ç ã o s i m b ó l i c a .

O algoritmo de Risch (para encontrar primitivas) é analisado a fim de mostrar e compreender os detalhes do seu funcionamento, colocando-o de uma forma que seja possível i m p l e m e n t á - l o . Além disso, é apresentado u m breve estudo compar-ativo de como alguns sistemas algébricos que t r a t a m do problema de i n t e g r a ç ã o .

• Capítulo 6 - Conclusões. São apresentadas algumc^ conclusões e s u g e s t õ e s para

(22)

Sistemas de Software para

C o m p u t a ç ã o Algébrica

Desde meados da d é c a d a de 60 mais de 30 sistemas foram desenvolvidos. Os sistemas de software a l g é b r i c o podem simplificar e x p r e s s õ e s que são grandes ( c o n t é m muitos termos) e complexas. A simplificação é a mais interessante e controvertida o p e r a ç ã o na m a n i p u l a ç ã o a l g é b r i c a , e é importante saber que essa o p e r a ç ã o troca a forma e n ã o o valor de uma e x p r e s s ã o .

Este c a p í t u l o a p r e s e n t a r á u m levantamento h i s t ó r i c o , uma classificação, proprieda-des, aplicações de sistemas de software algébrico enfatizando a simplificação a l g é b r i c a .

2.1 Conceitos Básicos

Na d é c a d a de 60. houve duas abordagens na c o n s t r u ç ã o de sistemas a l g é b r i c o s , que geraram sistemas que podem ser classificados em dois grandes grupos [ 1 . 13]:

• Sistemas com finalidade geral desenvolvidos para executar m a n i p u l a ç ã o a l g é b r i c a de modo geral. Nessa abordagem foram descobertas as l i m i t a ç õ e s do computador para realizar as m a n i p u l a ç õ e s e indentificada a maioria dos problemas de imple-m e n t a ç ã o . Os cientistas engajados nessa abordageimple-m procuraraimple-m resolver esses problemas.

(23)

Sistemas de Software para Computação Algébrica 10

• Sistemas destinados à solução de problemas específicos, especializados em resolver classes de problemas como os de física t e ó r i c a , astronomia e q u í m i c a . Os cientistas que adotaram essa abordagem estavam interessados e m resolver os seus problemas e n ã o o problema mais geral de c o m p u t a ç ã o a l g é b r i c a . Nesse grupo a c o m p u t a ç ã o a l g é b r i c a foi considerada como u m a ferramenta, ao c o n t r á r i o do grupo anterior que t i n h a como objetivo resolver os problemas de c o m p u t a ç ã o a l g é b r i c a sem se preocupar com problemas específicos.

Exemplos do primeiro grupo são o R E D U C E que t e m v e r s ã o a t é para P C . M A C -S Y M A que tem versão para V A X chamado V A X I M A e -S C R A T C H P A D desenvolvido pela I B M . No segundo grupo os exemplos mais conhecidos são A S H M E D A I para e l e t r o d i n â m i c a q u â n t i c a . C A M A L para teoria lunar e da relatividade geral. S C O O N -C H I P para física de alta energia. SHIP para m a n i p u l a ç ã o de tensores e TR.1GMAN para m e c â n i c a celeste.

Os dois grupos aprenderam u m com o outro e continuam aprendendo. Cada u m desenvolveu seus sistemas; atualmente n ã o existem sistemas algébricos que tenham sucesso em todas as á r e a s de especialização; por isso o aprendizado dos grupos é c o n t í n u o .

Os sistemas algébricos podem ser classificados em t r ê s grupos principais que refletem o desenvolvimento histórico [11]. Os sistemas do p r i m e i r o grupo s ã o descendentes dos sistemas concebidos no início da c o m p u t a ç ã o a l g é b r i c a ; eles foram concebidos para resolver problemas específicos em determinadas á r e a s da m a t e m á t i c a , física e q u í m i c a . Os sistemas do segundo grupo são de finalidade geral, incluindo as quatro o p e r a ç õ e s a r i t m é t i c a s , cálculo de integrais definidas e indefinidas, r e s o l u ç ã o de e q u a ç õ e s , inclusive e q u a ç õ e s diferenciais o r d i n á r i a s , e x p a n s ã o de uma função em série de Taylor, etc. A ú l t i m a g e r a ç ã o tem a adição de recursos gráficos e se preocupa com a c o m u n i c a ç ã o entre o u s u á r i o e o computador. Essa geração foi viabilizada pelo barateamento e a v a n ç o da tecnologia de hardware.

Por i n ú m e r a s razões leva-se u m longo tempo para o desenvolvimento de programas de m a n i p u l a ç ã o de expressões algébricas. A dificuldade mais ó b v i a encontrada é a i n a d e q u a ç ã o do hardware do computador para m a n i p u l a ç ã o de e x p r e s s õ e s a l g é b r i c a s e, c o n s e q ü e n t e m e n t e , o p e r a ç õ e s fáceis com a d i ç ã o e m u l t i p l i c a ç ã o devem ser executadas por programa.

O controle de expressões i n t e r m e d i á r i a s [14]. conhecido como "explosão" . é o u t r o problema. Tobey descreve o problema como "o i n c h a ç o da e x p r e s s ã o i n t e r m e d i á r i a

(24)

[15]. Quando u m a e x p r e s s ã o a l g é b r i c a for escrita em u m papel n ã o s e r á sempre do mesmo tamanho. Da mesma forma, quando as e x p r e s s õ e s forem representadas na m e m ó r i a do computador n ã o o c u p a r ã o o mesmo e s p a ç o . Qualquer caso simples en-volvendo m a n i p u l a ç ã o de e x p r e s s õ e s , c o m e ç a e t e r m i n a com e x p r e s s õ e s simples, mas f r e q ü e n t e m e n t e envolve e x p r e s s õ e s i n t e r m e d i á r i a s de complexidade a r b r i t r á r i a . Se a m e m ó r i a n ã o puder ser alocada para expressões i n t e r m e d i á r i a s , a e x e c u ç ã o do pro-grama n ã o p o d e r á ser c o n c l u í d a . Por exemplo, u m autovalor de u m a m a t r i z cujos elementos são p o l i n ó m i o s pode ser u m n ú m e r o . Entretanto, a fim de o b t ê - l o . é preciso obter analiticamente o determinante dessa m a t r i z que pode ser uma e x p r e s s ã o m u i t o complicada.

Na c o m p u t a ç ã o n u m é r i c a existe uma forma racional de d i s t r i b u i r os dados na m e m ó r i a e prever a possível demanda de e s p a ç o pelos dados de s a í d a , antes de iniciar a e x e c u ç ã o do programa. Para o m a n i p u l a ç ã o algébrica às vezes é impossível alocar antecipadamente m e m ó r i a para armazenar expressões, ou determinar quanta m e m ó r i a será necessária em passos i n t e r m e d i á r i o s . Uma forma de resolver esse problema é usar a l o c a ç ã o d i n â m i c a de m e m ó r i a nos passos i n t e r m e d i á r i o s do processamento. Os dados que n ã o forem necessários adiante, são descartados, e a m e m ó r i a torna a ser usada para armazenar novos dados.

A d i s t i n ç ã o principal entre a m a n i p u l a ç ã o simbólica e a c o m p u t a ç ã o n u m é r i c a e s t á na grande complexidade das o p e r a ç õ e s elementares ( a d i ç ã o , m u l t i p l i c a ç ã o , e t c ) . Na m a n i p u l a ç ã o simbólica as o p e r a ç õ e s elementares são normalmente executadas por pro-grama, fazendo com que as i n s t r u ç õ e s necessárias para u m controle de entrada e s a í d a dos dados sejam mais complicadas.

E m alguns casos a m a n i p u l a ç ã o simbólica pode ser executada fazendo uso direto de n ú m e r o s que são facilmente armazenados na m e m ó r i a do computador em código b i n á r i o . Por exemplo o p o l i n ó m i o 5 4 / 7 x3y r2. nas variáveis x , y . r , u \ pode ser re-presentado de uma maneira clara pelo conjunto de n ú m e r o s 54. 7. 3. 1. 2. 0. Essa r e p r e s e n t a ç ã o é uma forma simples de desenvolver u m sistema compacto e r á p i d o , mas quando se trabalha com o p e r a ç õ e s simbólicas como diferenciação o programa apresenta dificuldades.

Q u a t r o m é t o d o s foram usados para executar m a n i p u l a ç ã o simbólica no computador [12];

Primeiro. Método - Os dados de entrada são armazenados na m e m ó r i a de forma

compacta como foi descrita acima e o programa necessário para a m a n i p u l a ç ã o desses dados são escritos em linguagem de baixo nível. E comumente usado para resolver uma

(25)

Sistemas de Software para Computação Algébrica 12

pequena p o r ç ã o de problemas. É a base para muitos programas de sistemas a l g é b r i c o s que s ã o compactos e simples. U m exemplo é o sistema S C H O O N S C H I P .

Segundo Método - A q u i os dados t a m b é m são armazenados de forma compacta, mas

os programas para m a n i p u l a ç ã o desses dados são escritos em linguagem de alto nível ou em forma de subprogramas. Alguns subprogramas s ã o escritos em linguagens de alto nível e outros em linguagem de baixo nível. Esses subprogramas s ã o ativados em uma linguagem de alto nível. U m exemplo é o sistema S A C - I .

Terceiro Método As o p e r a ç õ e s necessárias são programadas diretamente em l i n

-guagens de alto nível. 0 armazenamento de dados e sua m a n i p u l a ç ã o são executados de arcordo com u m conjunto de regras definido por uma linguagem p a r t i c u l a r . Neste m é t o d o a r e p r e s e n t a ç ã o interna dos dados n ã o é necessariamente compacta.

Quarto Método - E a base para a maioria dos sistemas algébricos sofisticados. Este

m é t o d o envolve o uso de u m conjunto de subprogramas de m a n i p u l a ç ã o escritos em qualquer linguagem de m a n i p u l a ç ã o simbólica (por exemplo L I S P ) . 0 sistema incorpora u m grande n ú m e r o de funções especiais, que s ã o implementadas independentemente. Os dados de entrada e o programa de controle são escritos numa linguagem especial, desenvolvida com o resto do sistema. Essa linguagem deve ser a mais conveniente para o u s u á r i o , entre outras coisas. U m exemplo é o sistema R E D U C E - 2 [16].

Observe os quadros 2 . 1 , 2.2. 2.3 e 2.4 [12], que fornecem algumas i n f o r m a ç õ e s sobre os sistemas citados como exemplos na classificação acima.

Quadro 2 . 1 : Propriedades gerais de sistemas algébricos

Sistemas S C H O O N S C H I P C L A M R E D U C E - 2 v e r s ã o ( a n o ) 1977 1972 1973 computador CDC-6500 CDC-6500 CDC-6500 linguagem de i m p l e m e n t a ç ã o Assembler Assembler LISP

linguagem externa

-

LISP A L G O L

aplicações p r i m á r i a s Q F T G T R Universal

Linguagem especiais dos sistemas:

a) Q F T ( Q u a n t i u m Field Theory - Teoria Q u â n t i c a dos Campos): b) G T R (General Theory of Relativity - Teoria geral da relatividade): c) C M (Celestial Mechanics - M e c â n i c a Celeste):

(26)

Quadro 2.2: Propriedades gerais de sistemas a l g é b r i c o s ( c o n t i n u a ç ã o ) Sistemas S Y M B A L C A M A L M A C S Y M A v e r s ã o ( a n o ) 1970 1975 1977 computador CDC-6500 EC-1040 D E C P D P - 1 0 linguagem de i m p l e m e n t a ç ã o Assembler B C P L LISP

linguagem externa A L G O L

-

A L G O L aplicações p r i m á r i a s GP C M e G T R Universal

d) M P ( M a t h e m a t i c a l and Physics - M a t e m á t i c a e F í s i c a ) ; e) G P (General Pourpose - Finalidade geral).

Suponha que as m a n i p u l a ç õ e s algébricas foram c o n c l u í d a s no computador. Agora é preciso que o u s u á r i o seja capaz de compreender a resposta, o que constitui u m outro t i p o de problema: como o resultado da m a n i p u l a ç ã o a l g é b r i c a pode ser apresentado ao u s u á r i o utilizando os periféricos disponíveis no computador? A l é m disso, o significado de uma e x p r e s s ã o depende do contexto em que o u s u á r i o se encontra: por exemplo, a e x p r e s s ã o v\ em algumas áreas da m a t e m á t i c a significa o í - é s i m o componente do vetor v. em o u t r o significa t> elevado a p o t ê n c i a i. Progressos significativos foram feitos na r e s o l u ç ã o do problema de ajuste ao contexto, mas esse problema n ã o foi ainda completamente resolvido. N ã o se espera que as dificuldades de usar sistemas algébricos venham a desaparecer por completo. Os u s u á r i o s a cada dia v ã o exigir mais clareza e os engenheiros de software v ã o tentar aperfeiçoar suas criações.

2.2 Simplificação Algébrica

Os sistemas algébricos podem simplificar e x p r e s s õ e s que s ã o grandes e complexas. Tais e x p r e s s õ e s podem conter n ã o apenas funções elementares como t r i g o n o m é t r i c a s , log-a r í t m i c log-a s e polinomilog-ais, mlog-as t log-a m b é m funções mlog-ais complexlog-as envolvendo derivlog-adlog-as e funções especiais como as de Bessel. O u s u á r i o do sistema a l g é b r i c o pode t a m b é m definir sua função, especificar suas propriedades e i m p o r regras de simplificação apro-priadas: na verdade, o computador pode. às vezes, ser empregado para encontrar tais regras.

(27)

Sistemas de Software para Computação Algébrica 14

Quadro 2.3: Objetos m a t e m á t i c o s e o p e r a ç õ e s com eles que foram incorporados nos sistemas do quadro 2.1

Sistemas S C H O O N S C H I P C L A M R E D I T E - 2 Funções elementares N ã o M u i t a s Algumas

Funções racionais N ã o Sim Sim

M á x i m o divisor comum Não N ã o Sim

Diferenciação N ã o Sim Sim

I n t e g r a ç ã o N ã o N ã o N ã o N ú m e r o s complexos Sim N ã o Sim N ú m e r o s racionais Sim Sim Sim A r i t m é t i c a de n ú m e r o s flutuantes

e decimais R á p i d o N ã o Lenta Séries de p o t ê n c i a N ã o N ã o Moderado

Séries de Fourier N ã o N ã o N ã o Vetores e tensores Moderados Alguns tipos B o m Á l g e b r a de matrizes Excelente N ã o B o m

(28)

Quadro 2.4: Objetos m a t e m á t i c o s e o p e r a ç õ e s com esses objetos que foram incorpora-dos nos sistemas do quadro 2.2

Sistemas S Y M B A L C A M A L M A C S V M A F u n ç õ e s elementares Poucas Muitas Todas

F u n ç õ e s racionais Sim Sim Sim M á x i m o divisor comum N ã o Casos simples Sim

Diferenciação Sim Sim Sim

I n t e g r a ç ã o Casos simples Casos simples Sim N ú m e r o s complexos Sim Sim Sim N ú m e r o s racionais Sim Sim Sim A r i t m é t i c a de n ú m e r o s flutuantes

e decimais N ã o R á p i d o R á p i d o Séries de p o t ê n c i a Excelente B o m Excelente

Séries de Fourier Tipos especiais Excelente B o m Vetores e tensores Moderado Moderado Excelente Á l g e b r a de matrizes N ã o N ã o N ã o

(29)

Sistemas de Software para Computação Algébrica 16

a mais controvertida. Entretanto, existe u m a propriedade, com a qual u s u á r i o s e engenheiros de software concordam. A simplificação troca a forma ou a r e p r e s e n t a ç ã o de uma e x p r e s s ã o mas n ã o o seu valor.

Historicamente, a simplificação foi exigida dos sistemas de m a n i p u l a ç ã o s i m b ó l i c a para que produzisse resultados mais naturais ao u s u á r i o . Por exemplo, o resultado da diferenciação de ax + xeT em relação a i . de forma n ã o simplificada é

0 • x + a • 1 + 1 • er7 + x • e*2 • 2 • x.

Simplificando, a e x p r e s s ã o acima se torna:

a + e*2 +2-x7-cr\

0 problema de r e p r e s e n t a ç ã o de uma e x p r e s s ã o a l g é b r i c a é u m caso especial da m a n i p u l a ç ã o simbólica porque existem muitas formas. F r e q ü e n t e m e n t e uma dessas formas equivalentes é mais usada que outra e n ã o é u m problema t r i v i a l reconhecer essa equivalência.

Os projetistas preferem sistemas nos quais os passos da simplificação s ã o os mesmos em qualquer contexto. U s u á r i o s preferem u m sistema que produza uma e x p r e s s ã o simplificada que lhe forneça uma i n f o r m a ç ã o contextual.

Alguns u s u á r i o s e s t ã o apenas interessados no resultado final da e x e c u ç ã o de u m programa. Para tais u s u á r i o s o problema de simplificação se reduz a obter u m a ex-p r e s s ã o de forma a otimizar o uso do e s ex-p a ç o de m e m ó r i a e do temex-po de c o m ex-p u t a ç ã o . Por exemplo, para aqueles que usam a diferenciação simbólica como uma ferramenta para o b t e n ç ã o do valor de uma derivada, só interessa a forma final da função derivada. Outros u s u á r i o s , desejam observar algumas propriedades de u m f e n ô m e n o a t r a v é s da m a n i p u l a ç ã o do modelo m a t e m á t i c o , procurando uma i n t e r p r e t a ç ã o física. Por e-xemplo. quando ele e s t á interessado na maneira como o valor de uma e x p r e s s ã o varia com uma de suas variáveis.

E mais fácil para o u s u á r i o compreender e responder q u e s t õ e s sobre e x p r e s s õ e s , com poucos termos do que sobre expressões com muitos termos, o que faz supor que a meta da simplificação é produzir e x p r e s s õ e s com poucos termos. E . de fato a maioria das sim-plificações usuais produz e x p r e s s õ e s com menos termos. Entretanto, há simsim-plificações

(30)

que produzem e x p r e s s õ e s com mais termos, por exemplo; ( I - H )3 I 4 I3 + 3 x2 + 3x + 1

e outras produzem e x p r e s s õ e s com menos termos x + 2x i-4 3x. Muitos sistemas só executam tais t r a n s f o r m a ç õ e s se o u s u á r i o desejar.

2.3 Classificação dos Sistemas Algébricos de acordo

com a Simplificação

A s i m p l i f i c a ç ã o é de tanta i m p o r t â n c i a em u m sistema a l g é b r i c o , que quando u m en-genheiro de software decide como vai representar as e x p r e s s õ e s , quais as m u d a n ç a s que o sistema p o d e r á fazer automaticamente, quais dessas m u d a n ç a s v ã o ser p e r m i t i d a s ao u s u á r i o ignorar e modificar, e quais as facilidades adicionais para simplificar ex-pressões que o sistema irá ter. r e s t a r - l h e - ã o poucas decisões importantes a t o m a r . A s i m p l i f i c a ç ã o é t ã o i m p o r t a n t e que pode ser usada para classificar sistemas de software a l g é b r i c o .

Antes de prosseguir com a classificação é razoável que se defina, o que seja a forma c a n ó n i c a de uma e x p r e s s ã o . Observa-se que n ã o existe uma definição geral de forma c a n ó n i c a de uma e x p r e s s ã o . Cavinness [17] fa.z c o n s i d e r a ç õ e s sobre a forma c a n ó n i c a de uma e x p r e s s ã o com respeito a simplificação a l g é b r i c a .

Obter uma classe de e x p r e s s õ e s £ significa obter u m conjunto de regras para deter-m i n a r udeter-ma "bedeter-m-definida" e x p r e s s ã o da classe. As e x p r e s s õ e s devedeter-m ser consideradas como u m conjunto de s í m b o l o s a t ô m i c o s , no qual u m subconjunto é designado por

variáveis. Qualquer m e m b r o de £ que n ã o contenha u m a variável é chamado uma S-constante. A e x p r e s s ã o passa a ser interpretada como função sobre algum d o m í n i o V.

Se E\ e Ei forem membros de uma classe de e x p r e s s õ e s £. E\ é idêntica a Ei se e somente se E\ e Ei p o s s u í r e m o mesmo slring de s í m b o l o s a t ô m i c o s . Essa r e l a ç ã o é denotada por E\ = £2- E\ e £ 2 são equivalentes, se para todos os valores em T> a t r i b u í d o s às suas variáveis a mesma resposta para E\ e E2 é obtida; denota-se por

£ 1 = £ 2 .

A definição de forma c a n ó n i c a e forma normal de uma e x p r e s s ã o é dada aqui ex-clusivamente como condições suficientes para sua e x i s t ê n c i a .

D e f i n i ç ã o 2.3.1 [17]: I m a forma f-normal para uma classe de expressões £ é uma

(31)

Sistemas de Software para Computação Algébrica 18

(i) f(E) = E, e

(ii) Se E = O, f{E) = O.D

D e f i n i ç ã o 2.3.2 [17]: Uma forma f-canónica é uma forma j-normal com a propriedade

adicional de que para todo Ex e E2 em £ têm-se E\ = E2 e f(Ei) = /(£2)-n

Se em particular / for transparente ao contexto ou / for a r b i t r á r i a , usa-se apenas a forma c a n ó n i c a (normal) ao invés de forma / — c a n ó n i c a ( n o r m a l ) .

D e f i n i ç ã o 2.3.3 [17]: l ma classe de expressões é chamada classe canónica (normal) se existe uma forma canónica (normal) para eia.O

Para u m dado conjunto de expressões £ e uma forma c a n ó n i c a ( n o r m a l ) / para £ . os membros do conjunto f(£) de uma e x p r e s s ã o c a n ó n i c a v ã o ter uma certa forma em c o m u m . Por exemplo, uma forma canónica para p o l i n ó m i o s com coeficientes racionais mapeia cada p o l i n ó m i o para a forma r0 + 7'j.r + ... + r „ . r " . onde os r, 's são n ú m e r o s racionais na forma c a n ó n i c a .

A classificação é baseada no seguinte c r i t é r i o : o nível em que o sistema troca a r e p r e s e n t a ç ã o fornecida pelo u s u á r i o . Eles são classificados em [13]:

R a d i c a i s

Os sistemas radicais podem manipular uma bem definida classe de e x p r e s s õ e s (por exemplo, p o l i n ó m i o s , funções racionais, séries de p o t ê n c i a s ) . As e x p r e s s õ e s nesse caso são representadas na forma c a n ó n i c a , isto é, quaisquer e x p r e s s õ e s equivalentes s ã o internamente representadas de maneira i d ê n t i c a . Isso significa que o sistema muda totalmente a e x p r e s s ã o fornecida pelo u s u á r i o a fim de obter a e x p r e s s ã o em sua forma c a n ó n i c a . A vantagem desse sistema e s t á na r e a l i z a ç ã o de trabalho baseada em u m bem definido e eficiente algoritmo de m a n i p u l a ç ã o . Uma desvantagem e s t á na e x p a n s ã o de e x p r e s s õ e s como (x + l )1 0 0 0. cuja o b t e n ç ã o da p r i m i t i v a ou derivada, por exemplo, é m u i t o mais fácil sem expandi-la. Exemplos de sistemas radicais são S A C - I e o A L P A K

[IS. 19].

D e i x a a nova e x p r e s s ã o (New Ltft)

Esses sistemas superam algumas dificuldades causadas pela e x p a n s ã o a u t o m á t i c a de e x p r e s s õ e s obtidas ou fornecidas pelos sistemas radicais. 0 u s u á r i o do new ltft pode

(32)

especificar quando u m a e x p a n s ã o de uma e x p r e s s ã o deve ser realizada. Esse sistema pode simplificar u m a variedade de expressões com grande facilidade, mas n ã o t ã o efi-cientes quanto os sistemas radicais. Exemplos de sistemas new left são o R E D U C E e o A L T R A N [20, 21].

O s L i b e r a i s

Os sistemas liberais contam com uma variedade de r e p r e s e n t a ç õ e s de e x p r e s s õ e s e usam regras de simplificação manual. Esses sistemas executam simplificação usual, organizando somas e p o t ê n c i a s de produtos, aplicando regras em r e l a ç ã o a coeficientes 0 e 1 e removendo operadores redundantes.

A grande desvantagem desse sistema está na r e p r e s e n t a ç ã o de uma i n f o r m a ç ã o que requer de duas ou t r ê s vezes mais e s p a ç o de m e m ó r i a que n u m sistema radical e a m a n i p u l a ç ã o torna-se bastante lenta em algumas s i t u a ç õ e s . A vantagem é a capaci-dade de expressar problemas de maneira mais natural ao u s u á r i o que os dois sistemas anteriores. F O R M A C [22] é u m exemplo de sistema liberal.

O s C o n s e r v a d o r e s

Os sistemas conservadores procuram n ã o só executar simplificações, mas t a m b é m se adequar a ocasiões. Os engenheiros de software o conceberam para possibilitar ao u s u á r i o construir suas simplificações e m u d á - l a s quando n e c e s s á r i o . Esses sistemas são ainda mais lentos que os liberais.

A i m p o r t â n c i a dos sistemas conservadores e s t á na filosofia que eles i m p l e m e n t a m [23]. A simplificação de uma e x p r e s s ã o deve ser determinada pelo contexto. Os en-genheiros de software entendem que o sistema deve ser capaz de se ajustar à natureza p a r t i c u l a r do problema. F A M O U S e F O R M U L A A L G O L [23, 24] s ã o exemplos de tais sistemas.

O s C a ó t i c o s

Os sistemas c a ó t i c o s usam mais de uma r e p r e s e n t a ç ã o para uma e x p r e s s ã o e fornece mais de uma abordagem para a simplificação. A idéia básica é a d m i t i r que se uma t é c n i c a n ã o funciona a outra deve funcionar. O u s u á r i o deve ser capaz de escolher qual das simplificações fornecidas é adequada em cada caso. Os projetistas do sistema c a ó t i c o enfatizam a habilidade de resolver uma grande variedade de problemas. Eles procuraram fornecer ao u s u á r i o a eficiência e a força dos sistemas radicais e a a t e n ç ã o ao contexto dos sistemas conservadores. A desvantagem dos sistemas c a ó t i c o s é a sua o r g a n i z a ç ã o e seu tamanho. Eles são necessariamente maiores que os outros sistemas.

(33)

Sistemas de Software para Computação Algébrica 20

U m exemplo desse t i p o de sistema é o S C R A T C H P A D [25], atualmente conhecido como A X I O M , que t e m quatro simplificadores.

2.4 Aplicações dos Sistemas Algébricos

Existem mais de 500 publicações sobre a u t i l i z a ç ã o de sistemas algébricos em física e m a t e m á t i c a [12]. Os sistemas algébricos, no entanto, podem ser usados nas á r e a s mais inusitadas, j á que antes de tudo os projetistas dos sistemas algébricos t ê m por o b j e t i v o fazer com que o u s u á r i o obtenha d i s c e r n i m e n t o sobre o problema de m a t e m á t i c a estudado. E m h i d r o d i n â m i c a e em muitos outras á r e a s da m a t e m á t i c a aplicada é n e c e s s á r i o resolver sistemas complicados de e q u a ç õ e s diferenciais parciais. Os sistemas algébricos podem ajudar a resolver essas e q u a ç õ e s [12].

O a l g o r i t m o de Euclides, é um m é t o d o s i s t e m á t i c o para encontrar o m á x i m o d i v i -sor c o m u m de dois elementos de um d o m í n i o euclidiano (ver definição no A p ê n d i c e ) . E possível que na apliçâo desse m é t o d o haja u m crescimento dos resultados inter-m e d i á r i o s . Por essa r a z ã o os objetos, ou seja, os eleinter-mentos do d o inter-m í n i o euclidiano, devem ser armazenados no computador, em uma estrutura d i n â m i c a que p e r m i t a que esses objetos cresam arbitrariamente. Geralmente u m n ú m e r o armazenado no com-putador usa u m e s p a ç o fixo na m e m ó r i a , mas em u m sistema de m a n i p u l a ç ã o a l g é b r i c a a a l o c a ç ã o fixa n ã o pode ser usada. M a t e m á t i c o s que estudam as propriedades dos grandes n ú m e r o s foram seduzidos por essa c a r a c t e r í s t i c a dos sistemas a l g é b r i c o s [11].

O m a t e m á t i c o George David B r i k h o f f d a Universidade de Harvard demonstrou, em 1923. u m teorema declarando que a teoria geral da relatividade exclui a p r o p a g a ç ã o no e s p a ç o de pulsos gravitaeionais cuja energia conceitualmente é gerada pela p u l s a ç ã o radial da m a t é r i a na estrela. Devido a nenhum pulso ter sido detectado e devido ao resultado de Brikhoff contrariar as teorias de Newton e de Einstein, a e x c l u s ã o de pulsos passou a ser desconsiderada em qualquer teoria gravitacional. Era cansativo e lento determinar quando a teoria da gravidade satisfaz ou n ã o o teorema de Birkhoff: a teoria gravitacional elaborada por C. N . Vang da Universidade de New York em Stony Brook mostrou a utilidade do sistema algébrico para testar a validade do teorema de Birkhoff [14].

(34)

2.5 A Tendência A t u a l de I n t e g r a ç ã o da C o m p u t a ç ã o

Algébrica, C o m p u t a ç ã o N u m é r i c a e C o m p u t a ç ã o

Gráfica

Como foi d i t o no c a p í t u l o 1. h á m é t o d o s diferentes de atacar a solução de u m problema de m a t e m á t i c a . E m geral, esses m é t o d o s n ã o são usados isoladamente em ciência e tecnologia.

E m meados da d é c a d a de 19S0 [26. 27] c o m e ç a r a m os esforços para acoplar pro-cessamento n u m é r i c o com simbólico ( t é c n i c a s de inteligência artificial). Esses esforços t ê m por objetivo aperfeiçoar os mecanismos de adaptabilidade presentes em software de e q u a ç õ e s diferenciais o r d i n á r i a s e software de quadratura inventados na d é c a d a de 1970. O que se procura é acompanhar criticamente a e x e c u ç ã o de u m a l g o r i t m o n u m é r i c o e. dependendo da solução i n t e r m e d i á r i a ou parcial, alterar u m ou mais p a r â m e t r o s do a l g o r i t m o ou ainda mudar de algoritmo.

Os especialistas chegram à conclusão de que um computador poderia auxiliar u m cientista ou engenheiro n ã o só com cálculos n u m é r i c o s , manipulando formulas ou exi-bindo graficamente o comportamento de u m problema, mas orientando-o na e x e c u ç ã o de suas tarefas, ou seja. poderia e m b u t i r alguma " i n t e l i g ê n c i a " de modo que o com-portamento do sistema dependesse das decisões do u s u á r i o [1]. A idéia por t r á s de u m ambiente de solução de problemas é de que os sistemas que ajudam a resolver proble-mas de m a t e m á t i c a devem integrar os recursos de c o m p u t a ç ã o n u m é r i c a , c o m p u t a ç ã o a l g é b r i c a e c o m p u t a ç ã o gráfica e a l é m de incorporar subsistemas de inferência e de banco de dados diversos. A l é m disso, a e l i m i n a ç ã o da tarefa de programar a solução de u m problema de m a t e m á t i c a numa linguagem tradicional é altamente desejável.

O conceito de u m ambiente de solução de problemas ( A S P ) de m a t e m á t i c a ainda n ã o e s t á totalmente estabelecido. Sabe-se razoavelmente o que se quer que u m ASP faça. mas ainda n ã o está claro como integrar num sistema as tecnologias de c o m p u t a ç ã o n u m é r i c a , c o m p u t a ç ã o algébrica e c o m p u t a ç ã o gráfica com as tecnologias de inteligência artificial, banco de dados e de linguagens de p r o g r a m a ç ã o . Q u e s t õ e s como aproveitar o software existente nas diversas á r e a s ou inventar uma nova linguagem de p r o g r a m a ç ã o para viabilizar o desenvolvimento de ASP 's ainda precisam ser respondidas.

Para que u m sistema seja considerado u m A S P :

(35)

Sistemas de Software para Computação Algébrica 9 9

• deve conter u m subsistema de raciocínio a u t o m á t i c o ;

• as diversas ferramentas que o c o m p õ e m devem se comunicar de forma clara ou mesmo transparente ao u s u á r i o ; e

• deve se apresentar ao u s u á r i o com a estrutura de u m sistema especialista.

As vantagens que u m ASP pode trazer são as seguintes:

• reflete de modo natural a metodologia de modelagem usada em ciência e tecnolo-gia;

• serve de a r c a b o u ç o para pesquisa científica: • assiste u m pesquisador em sua e x p e r i m e n t a ç ã o ; e

• a m p l i a os conhecimentos de uma área e ao mesmo tempo p e r m i t e detetar falhas na maneira de pensar.

Se há vantagens em se construir e utilizar ASP 's há t a m b é m desvantagens:

• N ã o se sabe como c o n s t r u í - l o s e mesmo como defini-los adequadamente.

• 0 t e m p o n e c e s s á r i o para descobrir como criá-los e como usá-los é p r o v á v e l que seja substancial e cada ASP p o d e r á ser arbitrariamente diferente de o u t r o e n ã o ser p o r t á t i l (compilavel e e x e c u t á v e l em u m grande n ú m e r o de ambientes de c o m p u t a ç ã o sem nenhuma a l t e r a ç ã o ) .

© Desenvolver software colaborativo (em dois sentidos: u m software que ajuda o u t r o e p a r t i c i p a ç ã o de vários especialistas) de alta qualidade é m u i t o difícil.

e 0 sucesso no desenvolvimento e u t i l i z a ç ã o de A S P s d e p e n d e r á da disponibilidade de i n f o r m a ç õ e s de qualidade e de d o c u m e n t a ç ã o para que todas as partes do ASP sejam usadas.

Os u s u á r i o s de ASP's s e r ã o cientistas, engenheiros, m a t e m á t i c o s , estudantes e ou-tros. Diferentes u s u á r i o s procurando acesso a u m ASP o d e s e j a r ã o por diferentes r a z õ e s . Há contudo, certas c a r a c t e r í s t i c a s que todos esperam de u m ASP. Tais c a r a c t e r í s t i c a s

(36)

se referem principalmente aos aspectos de a s s i s t ê n c i a , g e r ê n c i a , m a n u t e n ç ã o e confiabil-idade. Esses aspectos c o n s t i t u i r ã o u m fator relevante na a d o ç ã o ampla e na u t i l i z a ç ã o de u m A SP.

A m a t e m á t i c a necessária deve atender a ajustamento de curvas e superfícies com e x i b i ç ã o gráfica, e s t a t í s t i c a e m a n i p u l a ç ã o s i m b ó l i c a . A l g o r i t m o s n u m é r i c o s constituem requisitos gerais em c o m p u t a ç ã o usada em ciência e tecnologia.

U m aspecto deve distinguir u m ASP de outros programas de a p l i c a ç ã o . Deve ser uma ferramenta para ajudar a resolver problemas novos, respondendo a q u e s t õ e s dos u s u á r i o s que normalmente são difíceis e n ã o rotineiras. Q u e s t õ e s de eficiência do sis-tema s ã o importantes, mas f r e q ü e n t e m e n t e subordinadas à o t i m i z a ç ã o do esforço e t e m p o gastos pelo u s u á r i o .

(37)

C a p í t u l o 3

Organização de um Sistema de

Software Algébrico

No c a p í t u l o 2 foram apresentados u m levantamento h i s t ó r i c o , uma classificação, pro-priedades e aplicações de sistemas algébricos, enfatizando a simplificação a l g é b r i c a . Destacou-se t a m b é m a t e n d ê n c i a atual em integrar a c o m p u t a ç ã o a l g é b r i c a , com-p u t a ç ã o n u m é r i c a e c o m com-p u t a ç ã o gráfica. Neste c a com-p í t u l o será acom-presentado u m com-projeto de a r q u i t e t u r a de u m sistema de software a l g é b r i c o , considerando a possível i n t e g r a ç ã o das t r ê s á r e a s da c o m p u t a ç ã o . São identificados os algoritmos que são i n d i s p e n s á v e i s em qualquer sistema algébrico, agrupando-os em m ó d u l o s que p e r m i t e m a l c a n ç a r maior clareza na estrutura lógica do software. T a m b é m são feitas c o n s i d e r a ç õ e s sobre a i n -terface do u s u á r i o e a linguagem de u m sistema de software a l g é b r i c o .

3.1 Modelo de A r q u i t e t u r a de u m Sistema de

Soft-ware Algébrico

Os programas de c o m p u t a ç ã o algébrica são ferramentas para solução de problemas de m a t e m á t i c a . Os passos envolvidos na c o n s t r u ç ã o de u m sistema a l g é b r i c o (definido no c a p í t u l o 1) podem ser descritos em termos gerais. Todo sistema t e m c a r a c t e r í s t i c a s especiais para atender os seus u s u á r i o s . A medida que crescem o tamanho e a complexi-dade da a p l i c a ç ã o , as considerações sobre o procedimento para c o n s t r u ç ã o do software tornam-se mais importantes.

(38)

E m u m a visão geral, pode-se dizer que os sistemas s ã o comumente divididos em (ver F i g u r a 3.1):

• n ú c l e o , onde e s t ã o as rotinas que controlam a o p e r a ç ã o do sistema e executam as o p e r a ç õ e s b á s i c a s e as a r i t m é t i c a s ;

• a interface, que controla a c o m u n i c a ç ã o com o u s u á r i o ; e

• banco de funções ou m ó d u l o s que c o n t é m procedimentos para e x e c u ç ã o de o p e r a ç õ e s mais complexas como diferenciação e simplificação de e x p r e s s õ e s .

A interface é u m conjunto de programas que manipula vários aspectos da i n t e r a ç ã o do sistema com o u s u á r i o . Permite que o u s u á r i o especifique um problema que deseja resolver usando uma liguagem: a especificação é interpretada no n ú c l e o que ativa os m ó d u l o s necessários para a solução do problema e finalmente a s o l u ç ã o do problema é encaminhada á interface que se responsabiliza em exibi-la para o u s u á r i o .

Comandos Banco Interface Núcleo de Interface Núcleo Funções Resultados Funções

Figura 3.1: Divisão de Sistemas Algébricos

A abordagem estruturada de conceber soluções de problemas conduz n a t u r a l m e n t e à m o d u l a r i z a ç ã o do software. Os m ó d u l o s implementam funções bem definidas e perm i t e perm a l c a n ç a r permaior clareza na estrutura lógica do software. A idéia de perm o d u l a r -ização e s t á associada á idéia de isolar o p e r a ç õ e s ou conjunto de o p e r a ç õ e s e de usar p a r â m e t r o s em u m software. A p a r a m e t r i z a ç ã o de u m software pode ser usada para coletar p a r â m e t r o s de hardware e de software que são usados em diferentes unidades de programa e tornar flexíveis as r e p r e s e n t a ç õ e s de dados. 0 isolamento de o p e r a ç õ e s e sua i m p l e m e n t a ç ã o em u m m ó d u l o permite executar essas o p e r a ç õ e s em diferentes unidades de programa apenas ativando o m ó d u l o correspondente. A l é m disso, é possível conceber o sistema de forma incremental, pela a d i ç ã o de mais recursos, ou seja. novos m ó d u l o s , podendo a t é tornar o sistema u m especialista numa determinada á r e a . 0 sistema de software M A P L E foi concebido de forma incremental e hoje conta com mais de 900 funções.

(39)

Organização de um Sistema de Software Algébrico 26

No desenvolvimento de programas é preciso l a n ç a r m ã o de todos os recursos para aumentar a p r o d u t i v i d a d e e a qualidade do software desenvolvido. Para ilustrar a idéia exposta, de modelo de arquitetura de u m software a l g é b r i c o é apresentado na figura 3.3 ( n ã o se sabe se é possível construir). Pelo menos conceitualmente é mais fácil visualizar o sistema composto de m ó d u l o s ; para facilitar a c o m p r e e n s ã o , o modelo foi d i v i d i d o em t r ê s níveis:

• N í v e l 1.

O m ó d u l o i n t e r f a c e d o u s u á r i o , deve p e r m i t i r a u t i l i z a ç ã o de uma variedade e c l é t i c a de hardware de entrada e saída incluindo o tradicional teclado, resposta a u d í v e l , voz. mouse, digitalizador. pena m a g n é t i c a , vídeo a cores de alta res-o l u ç ã res-o , t r a ç a d res-o r de gráficres-os a cres-ores. etc. T a m b é m deve dispres-or de uma linguagem de c o m u n i c a ç ã o com o sistema (comandos do sistema) e uma linguagem de es-pecificação de problemas com o qual o u s u á r i o vai dizer ao sistema qual é o seu problema, onde e s t ã o os dados, como eles serão fornecidos e como quer a s a í d a . As o p e r a ç õ e s que dependem do ambiente devem ser agrupadas em u m mesmo m ó d u l o ( m ó d u l o de interface do u s u á r i o ) . As rotinas devem ser organizadas em camadas, uma camada com funções especificamente para cuidar da parte física da m á q u i n a . Como é mostra a figura 3.2. as rotinas de a p l i c a ç ã o fazem chamadas a u m conjunto de funções de interface que devem executar tarefas específicas do equipamento. Rotinas de Aplicação Rotinas genéricas de Interface Rotinas dependctes de dispositivos Rotinas de Aplicação Rotinas genéricas de Interface Rotinas dependctes de dispositivos

Figura 3.2: F u n ç õ e s dependentes de equipamento abordadas com o conceito de camadas A i n d a no mesmo nível encontra-se o que pode ser chamado de i n t e r p r e t a d o r de l i n g u a g e m , que deve ter recursos para entender e interpretar corretamente a linguagem utilizada pelo u s u á r i o para especificar u m problema.

• N í v e l 2.

C o n t é m o núcleo formado pelo g e r e n c i a d o r de m ó d u l o s , cuja função é iden-tificar o problema do u s u á r i o e selecionar m é t o d o s baseados nas c a r a c t e r í s t i c a s

Referências

Documentos relacionados

Implementar um plano de intervenção com vistas à redução da incidência da Diabetes mellitus descompensada na Unidade Básica de Saúde Vilas Reunidas tem uma grande

Nessas alturas é de se recordar que o 1º Domingo do Tempo Comum é substituído pela celebração do Batismo de Jesus, assim como o 34º é pela solenidade de Cristo Rei.. Durante

I r à seguradora, pela via administrativa, não afasta o direito da parte de recorrer ao Judiciário para o recebimento da indenização relativa ao seguro DPVAT.. Juiz Irmal-

* Para os alunos da área de concentração em Biologia Celular e Saúde Toxicologia Geral é obrigatória para quem optar pela grade nova e optativa para quem optar pela antiga.

ABSTRACT: The toxicological effects of crude ethanolic extracts (CEE) of the seed and bark of Persea americana have been analyzed on larvae and pupae of

O candidato e seu responsável legalmente investido (no caso de candidato menor de 18 (dezoito) anos não emancipado), são os ÚNICOS responsáveis pelo correto

A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se A espectrofotometria é uma técnica quantitativa e qualitativa, a qual se baseia no fato de que uma

Entrando para a segunda me- tade do encontro com outra di- nâmica, a equipa de Eugénio Bartolomeu mostrou-se mais consistente nas saídas para o contra-ataque, fazendo alguns golos