Você está na página 1de 4

Resenha da obra: Algoritmos para viver - Brian Christian & Tom Griffiths

Aluno: Gustavo Mendes Gomes (19102865)

Este documento possuirá as respostas direcionadas e posteriormente a resenha por


capítulos.

Qual é o principal argumento do livro?


O livro explora como os princípios que englobam o universo dos algoritmos podem
ser aplicados às decisões diárias e aos desafios da vida. Assim, muitas situações
complexas que enfrentamos podem ser abordadas com eficácia através da aplicação de
métodos algorítmicos de resolução de problemas.
Os autores destacam como conceitos algorítmicos podem ser relevantes em
contextos que vão desde escolhas de carreira até decisões de namoro, oferecendo uma
perspectiva única sobre como a ciência da computação e a teoria dos algoritmos podem
informar e aprimorar nossa compreensão do mundo. O livro explora temas como a busca
pela otimização, o equilíbrio entre exploração e exploração, e como algoritmos simples
podem ser aplicados para tomar decisões mais informadas e eficazes no dia a dia.

Qual a contribuição da obra para o processo de tomada de decisão?


A principal contribuição é permitir uma nova percepção acerca da tomada de
decisão. Enquanto muitas obras destacam estratégias e práticas organizacionais, os
autores aqui trazem conceitos que, em teoria, são difíceis de serem assimilados por não
conhecedores da computação, mas que em suas explicações e exemplos se tornam
simples e descomplicados.
Ademais, explica como os algoritmos são muitas vezes estruturados e arquitetados
para seguirem o melhor fornecimento de dados, alternativas e decisões.

O que ele tem de melhor? O que ele tem de pior?


O ponto forte do livro é a capacidade de apresentar conceitos complexos de forma
exemplificada e explicada com um vocabulário que permite que qualquer leitor entenda o
que está sendo trabalhado.
Já o que tem de pior é o fato de escrever sobre dezenas de conceitos que muitas
vezes deixam de ser revisitados ao longo da obra e que podem ser esquecidos com o
passar da leitura.

Resenha dos Capítulos

0. Introdução:
Os autores trazem a ideia de como os princípios da ciência da computação se
aplicam às decisões humanas. Destacam como os algoritmos, que são sequências de
passos para resolver problemas, podem ser valiosos para enfrentar questões complexas,
desde escolher um parceiro até decidir o que comer no jantar. Além disso, apresentam
conceitos-chave que serão explorados posteriormente, mostrando como os algoritmos
podem ser ferramentas poderosas para aprimorar nossa capacidade de tomar decisões
informadas e eficazes.
1. Parada ótima: Quando parar de procurar
Este capítulo traz dois principais conceitos: Parada Ótima (Optimal Stopping) e Taxa
de Rejeição (Explore/Exploit Trade-off).
Parada Ótima (Optimal Stopping): Este princípio refere-se à ideia de que em muitas
situações de busca, existe um ponto ideal para parar de procurar e tomar uma decisão. Não
é necessário examinar todas as opções disponíveis; em vez disso, é mais eficaz
estabelecer um critério de parada, após o qual você escolhe a próxima opção que seja
melhor do que todas as anteriores. Este conceito é ilustrado no exemplo da busca por
apartamentos, onde os autores argumentam que há um número ideal de lugares para visitar
antes de tomar uma decisão informada.
Taxa de Rejeição (Explore/Exploit Trade-off): Este princípio envolve encontrar um
equilíbrio entre explorar novas possibilidades (explorar) e aproveitar as opções conhecidas
e seguras (explorar). Os autores discutem como a taxa de rejeição, ou seja, o número de
opções que você está disposto a rejeitar antes de fazer uma escolha final, varia de acordo
com o contexto. Em situações onde você tem muitas opções, como na busca por um
parceiro ou em um processo de entrevista de emprego, entender sua taxa de rejeição pode
levar a decisões mais satisfatórias.
Esses princípios dos algoritmos são fundamentais para entender como podemos
tomar decisões mais eficazes e informadas em várias áreas da vida, aplicando conceitos da
ciência da computação ao processo de tomada de decisão humano.

2. Explorar (prospectar) / explorar (obter resultados): Os mais recentes vs os


melhores
O segundo capítulo traz 2 conceitos, que são melhores de serem apresentados em
inglês: exploration e exploitation.
A exploration refere-se à ação de buscar novas oportunidades e informações,
mantendo-se aberto a experiências inéditas e incertas. Por outro lado, a exploitation é a
escolha de se concentrar em atividades ou opções já conhecidas, aproveitando ao máximo
o conhecimento e a experiência adquiridos. O autor argumenta que encontrar o equilíbrio
certo entre exploração e exploração é essencial para o crescimento e a aprendizagem
contínuos, tanto para os indivíduos quanto para os algoritmos, e que essa dicotomia é uma
parte intrínseca da tomada de decisões complexas em diversos contextos da vida.

3. Ordenação: Pondo ordem nas coisas


O terceiro capítulo explica o conceito de ordenação e de forma didática explica como
funciona a ordenação no que tange aos algoritmos.
Os algoritmos de ordenação são utilizados na ciência da computação para
organizar dados de maneira eficiente, classificando-os. Logo, assim como os computadores,
os seres humanos frequentemente enfrentam a necessidade de organizar escolhas
complexas. Ao escolher um restaurante para jantar, por exemplo, enfrentamos um dilema
similar ao de ordenar dados: precisamos avaliar várias opções e decidir qual delas é a
melhor para nós naquele momento. Da mesma forma que um algoritmo de ordenação
compara diferentes elementos e os organiza em uma sequência lógica, nossa mente
analisa variáveis como preferências, orçamento e localização para tomar uma decisão
informada sobre onde comer.

4. Armazenamento em cache: Esqueça isso


O quarto capítulo traz o conceito de armazenamento em cache: prática de
armazenar temporariamente cópias de dados frequentemente acessados ou processados
para melhorar a velocidade e eficiência de recuperação desses dados. Esses dados em
cache podem incluir informações, arquivos, páginas da web ou qualquer outro tipo de
conteúdo digital. Quando um sistema acessa dados, ele primeiro verifica se esses dados
estão disponíveis na memória cache. Se os dados estiverem em cache, eles são acessados
muito mais rapidamente do que se fossem recuperados do armazenamento principal, como
um disco rígido ou um servidor remoto.
Isto posto, o capítulo possui várias analogias. A principal delas é o guarda-roupas,
onde devemos deixar mais fácil e mais visível nossas roupas mais utilizadas, enquanto as
roupas de difícil acesso devem ser não apenas menos utilizadas, como também passíveis
de doação, liberando mais espaço no guarda roupas para futuras roupas que serão mais
utilizadas.

5. Programação e agendamento: As primeiras coisas em primeiro lugar


O quinto capítulo explica que organizações e algoritmos trabalham voltados a
objetivos, que, por sua vez, serão metrificados. Na sequência, apresentou dois algoritmos
de agendamento e programação de tarefas.
Primeiramente, apresentou o Algoritmo de Moore no qual trabalha voltado à data de
vencimento, assim são priorizadas as tarefas com vencimento mais próximo. Depois, o
Algoritmo “Menor Tempo de Processamento”, no qual são priorizadas as tarefas mais
rápidas de serem feitas.
Por fim, trouxe o conceito de “thrashing”, no qual humanos ou máquinas estão em
uma situação de excesso de demandas, sem tempo aparentemente hábil e as tarefas estão
sem prioridades. Nessas situações, a pessoa tem a vontade de parar tudo apenas para
anotar e tentar se organizar. Contudo, eles indicam que a melhor opção possa ser ir
fazendo as tarefas, sem qualquer critério, para que chegue em um estágio que, finalmente,
uma programação será eficiente

6. Regra de Bayes: Prevendo o futuro


Este capítulo se inicia com a Regra de Bayes: um princípio fundamental na teoria da
probabilidade que permite calcular a probabilidade de um evento com base em evidências
relacionadas a esse evento. Logo na sequência, trouxe a A Lei de Laplace, outro princípio,
que sugere que na ausência de qualquer informação relevante, todos os eventos possíveis
são igualmente prováveis. Em outras palavras, se não há razão para acreditar que um
evento é mais provável do que outro, podemos assumir que todos os eventos têm a mesma
probabilidade de ocorrer. Esta lei é usada como uma abordagem inicial para atribuir
probabilidades quando a incerteza é alta e a falta de conhecimento prévio impede a
aplicação da regra de Bayes.

7. Sobreajuste
O sétimo capítulo traz a explicação sobre o Sobreajuste. Ele ocorre quando um
modelo de aprendizado de máquina se ajusta excessivamente aos dados de treinamento,
capturando padrões específicos que podem não ser representativos de tendências reais,
mas sim do ruído presente nos dados. Isso geralmente acontece quando o modelo é muito
complexo em relação à quantidade de dados disponíveis, resultando em uma baixa
capacidade de generalização para novos dados.
Para solucionar o sobreajuste, são utilizadas técnicas como a regularização e a
validação do modelo com conjuntos de dados independentes, garantindo que o modelo seja
capaz de generalizar eficazmente para além dos dados de treinamento.

8. Relaxamento: Deixe rolar


Já o oitavo capítulo apresenta o conceito de relaxamento das restrições. Na ciência
da computação refere-se à flexibilização de condições rigorosas. Assim, pode-se permitir
comportamentos que não são estritamente conformes a normas, visando facilitar a
compatibilidade ou melhorar a eficiência. Portanto, essa abordagem visa equilibrar a
conformidade com a praticidade, permitindo uma flexibilidade controlada para tornar
sistemas e algoritmos mais viáveis e eficientes na resolução de problemas do mundo real.

9. Aleatoriedade: Quando deixar ao sabor do acaso


Neste capítulo, aleatoriedade é apresentada para a criação de algoritmos mais
adaptáveis e eficientes em uma variedade de contextos, ampliando a capacidade de lidar
com problemas complexos e contribuindo para a robustez e versatilidade dos sistemas
computacionais. Logo, seja em uma tomada de decisão “humana” ou através dos
algoritmos, sempre é necessário cogitar as possibilidades de eventos aleatórios.

10. Trabalhando em rede: Como nos conectamos


O penúltimo capítulo, por sua vez, traz alguns conceitos para tratar sobre o
congestionamento de redes. Os conceitos de Recuo Binário Exponencial, Aumento Aditivo,
Redução Multiplicativa, Tail Drop e bufferbloat estão interligados no contexto do controle de
congestionamento e gestão de filas em redes de computadores. O Recuo Binário
Exponencial é utilizado para evitar colisões em redes compartilhadas, enquanto Aumento
Aditivo e Redução Multiplicativa são estratégias de controle de congestionamento. O Tail
Drop refere-se à política de descarte de pacotes em filas de roteadores quando os buffers
estão cheios, impactando o desempenho da rede. Por sua vez, o bufferbloat está associado
ao problema de grandes buffers em roteadores, aumentando a latência. Em conjunto, esses
conceitos buscam otimizar a transmissão de dados, prevenir congestionamentos e melhorar
a eficiência do sistema de comunicação, contribuindo para um gerenciamento mais eficaz
do tráfego em redes.

11. Teoria dos jogos: As mentes dos outros Conclusão: Gentileza computacional
A Teoria dos Jogos, que combina elementos da matemática, economia e ciência da
computação, é essencial para entender as interações estratégicas nas organizações.
Aplicada à tomada de decisões empresariais, essa teoria permite analisar situações
competitivas, de negociação e cooperação. Conceitos como estratégias e equilíbrios de
Nash são fundamentais para prever ações de concorrentes e tomar decisões informadas.
Ao correlacionar a teoria dos jogos com a tomada de decisões organizacionais, é possível
identificar estratégias ótimas, melhorando a eficiência e eficácia nas dinâmicas estratégicas
empresariais.

Você também pode gostar