Texto: algoritmos e engenharia

* retirado do livro: Introdução à programação para engenharia : resolvendo problemas com algoritmos

Algoritmos e engenharia

Penso que algoritmos são importantes, e você deve saber como fazer seu computador resolver seus problemas, em vez de resolver os problemas que um outro programador pensou que você resolveria. Penso também que algoritmos são loucamente divertidos de criar. Quando criamos um algoritmo, começamos com um problema a resolver e passamos por todo o processo de engenharia: projetamos uma solução, implementamos, testamos, refinamos essa solução e procuramos torná-la elegante.

Aprender a projetar e implementar algoritmos aperfeiçoará sua habilidade em pensamentos lógicos; isto lhe dará uma base para avaliar os resultados e simulações por computador nos quais você, como engenheiro, confiará; uma oportunidade antecipada para dedicar-se à análise e ao projeto que é o centro do ensino e da prática da engenharia; e uma ferramenta para melhor entender e explorar a ciência e a matemática.

Algoritmos para engenheiros

Em quais algoritmos os engenheiros estão interessados?

Felizmente em todos eles – naqueles escritos há muito tempo, por pessoas mais experientes que você e eu, e naqueles que ainda não foram criados, em cuja construção estamos envolvidos. Nós, engenheiros, frequentemente criamos e utilizamos algoritmos que modelam a estrutura de algum sistema que estamos projetando, dando-nos um meio de testar parcialmente um projeto sem realmente construí-lo. Isto nos dá meios de examinar alternativas de projetos para um sistema, com base nos resultados de tais simulações, sem despesas nem atrasos por construí-los concretamente. Para alguns problemas você pode até programar o computador para ele mesmo selecionar o melhor projeto. Introduzimos também computadores dentro de outras maquinas, para controlá-las e monitorá-las.

Mas voltemos à minha afirmação do início – a razão mais importante para estudar e criar algoritmos não é, na verdade, sua utilidade natural, mas em vez disso, a habilidade de pensamento que a sua criação nos força a desenvolver. Para ser mais exato, o raciocínio lógico necessário lhe proporcionará boas condições quando você tiver problemas a analisar, mesmo se esses problemas não puderem ser resolvidos por meio de algoritmos formalmente construídos.

Computadores na engenharia

Computadores são uma ferramenta maravilhosa para a análise em engenharia. Portanto, eu o incentivo a desconfiar deles e olhar os resultados que eles produzem com ceticismo.

A computação nos fornece meios de simular o mundo físico e, consequentemente, nos fornece meios de analisar um projeto de engenharia sem realmente construí-lo. Podemos utilizar modelos computacionais para prever a força do vento em um arranha-céu ou a pressão em uma válvula de coração artificial. Podemos utilizar computadores para prever o campo de radiação criado por um acelerador médico ou para descrever o que os nêutrons fazem em um reator nuclear. Com algoritmos de otimização, podemos até utilizar computadores para ajudar a selecionar o melhor dentre um conjunto de projetos. Estas ferramentas computacionais são maravilhosamente úteis para nos ajudar a realizar nosso trabalho de engenheiros.

Mais computadores não podem projetar sozinhos. Ainda é responsabilidade da inteligência e imaginação humanas reconhecer o problema, fazer as perguntas certas, formular as questões corretamente e projetar uma solução criativa. O computador pode apenas calcular respostas; ele não pode fazer as perguntas certas.

Os algoritmos que criamos, para nos permitir modelar realidades físicas ou então nos ajudar em vários projetos de engenharia, são raramente perfeitos. Primeiro, eles são criações da nossa inteligência imperfeita. Em seguida, eles devem ser executados dentro dos limites do computador. Qualquer programa que tenta modelar a realidade sempre o faz de uma forma aproximada. Todo modelo pode omitir algum pequeno ponto-chave de importância física que não pareceu tão importante ao seu criador, ou não era importante em uma classe antiga de problemas, mas que é importante no novo problema que você está querendo resolver. Muitos fenômenos, mesmo os fenômenos quotidianos como a ebulição da água, são tão difíceis de entender que não existem na verdade modelos computacionais de primeira categoria para eles, e apenas grosseiras, inúmeras aproximações tecnologicamente especificas. Muitos programas contêm realidades físicas maravilhosas e são surpreendentemente precisos, mas mesmo o melhor tem seus limites, além do que eles podem falhar silenciosamente.

Você até agora escreveu alguns poucos programas, sabendo que pode ser estranhamente difícil fazê-los corretamente. Assim você não deve se surpreender se os programas que lhe forem vendidos para realizar análises de engenharia estejam frequentemente incorretos, embora isto seja raramente informado na embalagem. Os engenheiros e os programadores que criam programas
comerciais não são super-homens, eles cometem erros também.

Assim, à medida que você avançar na sua carreira de engenheiros, você usará, e deverá utilizar, modelos computacionais. Mas você deve fazê-lo cuidadosamente, com dúvidas em mente. Você tem que ter alguma intuição própria de como são as respostas às suas questões, de maneira que possa julgar o que o programa diz. Você deve explorar a variedade de respostas que o programa pode dar à medida que os parâmetros de entrada variam, desenvolvendo assim uma certa confiança adicional em seus resultados. É fácil na pressa dos prazos das tarefas simplesmente executar e acreditar em um programa, mas um caminho como este de aceitação cega não é uma opção sábia.

Você deve sempre se perguntar. “Como eu sei que isto está certo?”

Share

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.