Sem percebermos,
a vida moderna assumiu o controle.
Quando buscamos um parceiro...
...fazemos compras online...
...viajamos pelo mundo...
...e até quando salvamos vidas,
há instruções passo a passo
agindo sutilmente nos bastidores.
Cada vez mais, elas estão dominando nossas vidas.
Elas são chamadas algoritmos.
Algoritmos estão por toda parte.
Esses pedaços matemáticos compostos por bits
tornaram-se fundamentais em nosso cotidiano.
Mas como são invisíveis, costumamos ignorá-los,
e até não os compreendemos.
Qual é a forma mais eficiente de se ordenar
um milhão de inteiros de 32 bits?
Eles são o segredo para nosso mundo digital,
e muito mais que isso.
Nesse programa, irei mostrar a você
alguns dos meus algoritmos favoritos,
para revelar de onde eles vieram...
Algoritmos são antigos.
...como eles funcionam...
O desafio é encontrar a rota mais curta...
Essas são as instruções que você usaria
...para retornar a seu ponto de partida.
...o que eles poderão realizar no futuro...
O algoritmo está se reescrevendo? Ou...?
Exatamente.
...e como não podemos viver sem eles.
Até quando fazemos um bolo,
estamos seguindo um algoritmo.
Como matemático, eu amo algoritmos.
Eles não são só incríveis resolvedores de problemas,
mas também estranhamente belos,
usando-se da ordem matemática
que sustenta todo o funcionamento do Universo.
Bem-vindos ao estranho e maravilhoso mundo
dos algoritmos.
AS REGRAS SECRETAS DO MUNDO MODERNO: ALGORITMOS
A maioria de nós carrega um desses por aí.
Você deve ter percebido que,
ao tirar uma foto com o seu celular,
ele, então, desenha uma caixa
ao redor de qualquer rosto, dessa forma...
Esse é o resultado
de um algoritmo especial de detecção de faces,
e ele ajuda a manter o rosto da foto em foco.
Como todos os algoritmos, este aqui resolve um problema.
Nesse caso, encontrar um rosto humano.
Embora não se engane por um rosto com frutas,
ele detecta o rosto humano em uma foto.
Então, como ele faz isso?
Em sua essência, algoritmos não são mais
do que uma série de instruções passo a passo.
Este funciona escaneando, metodicamente, a imagem,
em busca de quatro padrões abstratos específicos,
associados a um rosto.
Quando eles são detectados, um após o outro,
então, o algoritmo indica
que encontrou um rosto humano.
O processo se aproveita de um padrão básico,
presente em todos os rostos,
não importa o formato ou o tamanho.
O resultado final é apenas um exemplo
de como os algoritmos facilitaram nossas vidas.
- Eu quero! - Eu faço! - Eu faço!
Eu vou participar. Eu estava aqui antes.
Bem, pode começar.
Nós tendemos a associar algoritmos a computadores,
smartphones e à Internet.
Mas eles não são exclusivos do mundo da tecnologia.
Eu trabalho como Professor de Matemática
na Universidade de Oxford.
E uma das coisas que eu mais gosto
é manter o interesse dos estudantes.
OK, vou pegar um.
Aqui, estamos brincando com um jogo matemático,
usando um frasco cheio de chocolates
e uma ardida pimenta vermelha.
O objetivo é não ficar com a pimenta no final.
Mas o que os estudantes não sabem é que
estou brincando com a ajuda de um algoritmo.
- OK. Prontas? - Sim.
Certo, eu irei primeiro.
Então, lembrem-se: podem pegar um,
dois ou três chocolates de uma só vez.
Não sou ganancioso, então,
vou pegar apenas um. Agora, é a sua vez.
Cada jogador tem o seu turno,
podendo pegar entre um e três chocolates.
Você pegou dois, OK.
Então, eu irei pegar... Eu irei pegar dois.
Não importa o que meu oponente faça,
meu algoritmo me diz como devo reagir.
OK, eu irei pegar dois.
E é sua vez, novamente.
Oh, sim.
- Então, irei pegar três. - Três, e eu irei pegar um.
E só sobrou a pimenta... - Espere! Sou eu?
Sim, vai ter que comer a pimenta!
Bem, aí está!
Deixe-me revelar como o algoritmo
que eu estava usando me ajudou a vencer.
É a única forma de aprender.
A chave é pensar em agrupar as coisas em quartetos.
13 chocolates divididos em 3 grupos de 4,
com um sobrando.
Então, ao pegar um chocolate
na primeira rodada
e, a seguir, quatro menos o quanto
o outro jogador pegue nas rodadas subsequentes,
esse algoritmo assegura que o outro jogador
sempre irá ficar com a pimenta.
A essência de um ótimo algoritmo,
a sua mágica, por assim dizer,
é a Matemática.
Os melhores algoritmos são aqueles
que tiram partido da estrutura matemática básica
oculta abaixo do problema.
Ok, ponha a pimenta de volta.
Eu irei introduzi-los a alguns dos algoritmos
que se tornaram símbolo da vida moderna.
Mas, antes, eu quero mostrar a vocês que,
apesar de todas as suas aplicações modernas,
os algoritmos são extremamente antigos.
De fato, eles antecedem os computadores
em milhares de anos.
O algoritmo mais antigo já conhecido
foi projetado para resolver um problema matemático.
Ele foi inicialmente escrito
pelo matemático grego da Antiguidade, Euclides.
O Algoritmo de Euclides, como ele é conhecido,
é um método para encontrar o Máximo Divisor Comum.
O Máximo Divisor Comum é o maior número
que irá dividir um par de outros números,
sem deixar um resto.
Então, nesse caso, 4 divide tanto 8 quanto 12,
sem deixar resto.
É simples encontrá-lo com números pequenos,
mas bem mais difícil para números grandes.
Embora Euclides seja o maior matemático de seu tempo,
seu algoritmo poderia ter lhe rendido uma fortuna...
...como telhador.
Eu vou lhe mostrar o porquê.
Imagine que você tenha um piso retangular,
e você quer descobrir a forma mais eficiente
de ladrilhá-lo com azulejos quadrados.
Em outras palavras,
qual é o maior azulejo quadrado
que irá dividir, precisamente,
as dimensões do piso, sem que haja resto?
Essa é, de fato, uma versão geométrica
do problema do Máximo Divisor Comum.
As dimensões do piso são os dois números
e o tamanho dos tijolos, o que tentaremos descobrir,
é o seu Máximo Divisor Comum.
Iremos acompanhar o Algoritmo de Euclides
passo a passo,
para demonstrar como ele é capaz
de encontrar o azulejo quadrado ideal
para esse piso.
De acordo com o Algoritmo de Euclides,
precisamos começar a preencher o retângulo
com azulejos quadrados
correspondentes à menor das duas dimensões.
Essa é a primeira etapa do trabalho.
O Algoritmo de Euclides, a seguir, nos diz
para fazer exatamente a mesma coisa, novamente,
com esse retângulo.
Em cada etapa, o algoritmo nos diz
para selecionar azulejos quadrados
correspondentes ao menor lado do retângulo.
Então, dessa vez, nossos azulejos quadrados
preenchem, perfeitamente, o espaço restante.
Bem, meu azulejo quadrado mede 15x15.
Então, o Algoritmo de Euclides nos diz
que o Máximo Divisor Comum de 150 e 345 é 15.
Eu não estou sugerindo
que você use o Algoritmo de Euclides
toda vez que precisar comprar azulejos,
mas o incrível é que
esse simples método passo a passo
encontra o azulejo quadrado perfeito,
não importa quais sejam as dimensões do piso.
O Algoritmo de Euclides
pode parecer apenas uma técnica matemática,
mas ele preenche, muito elegantemente,
todos os critérios para um algoritmo.
É um conjunto precisamente estabelecido de instruções,
o procedimento sempre acaba,
e pode-se provar que ele funciona em todos os casos.
O poder dos algoritmos é que você não
precisa reinventar a roda o tempo todo.
Eles são soluções gerais para os problemas.
Isso vale tanto para algoritmos antigos
quanto para os modernos.
Em 1998, nessa garagem,
em Menlo Park, Califórnia, uma parte importante
da história dos algoritmos foi feita.
Aqui dentro, havia dois estudantes
de PhD da Universidade de Stamford.
Larry Page e Sergey Brin.
Seu objetivo era criar um mecanismo de busca
que pudesse encontrar coisas, de modo eficiente,
na Rede Mundial de Computadores (WWB).
Emergindo desse início humilde, nascia o Google.
Mas o Google não seria o Google,
se não fosse graças a um algoritmo
que Larry e Sergey criaram, chamado PageRank.
O PageRank era o algoritmo no centro
da primeira encarnação do motor de buscas do Google.
Bem, tecnicamente, não é um algoritmo de buscas,
mas um algoritmo de ranking.
Então, quando você digita um termo
em um motor de buscas,
há, literalmente, milhões de páginas
que se adequarão a esse termo.
O que o PageRank faz é rankear todas essas páginas,
de modo que a página no topo
seja aquela em que você, provavelmente,
estará mais interessado.
Larry e Sergey
surgiram com a idéia de fazer o PageRank,
e de usá-lo como um indicador de ranking
para melhorar a qualidade das buscas na web.
Eu me lembro de, na época,
usar um motor de buscas web, como o AltaVista.
Você precisava clicar no link "Próxima Página"
um bocado de vezes para encontrar
o que você estava buscando.
O PageRank foi uma das razões pela qual
o Google se saiu bem melhor
do que os motores de busca existentes na época.
O funcionamento interno do PageRank
fica oculto na Rede Mundial de Computadores.
Assim, para revelar como ele faz seu trabalho,
nós iremos usar o Algoritmo do PageRank
para rankear os jogadores de uma equipe de futebol.
O PageRank examina duas coisas.
Ele examina os links de entrada para a página web,
ou seja, as outras páginas com link para a página,
e examina o quão importantes são essas páginas.
Em nossa demonstração
para exibir a inteligência do algoritmo do PageRank,
os jogadores da equipe de futebol
são as páginas web
e os passes entre eles são os links web -
a entrada do algoritmo.
A grosso modo, o algoritmo do PageRank
irá atribuir uma posição maior a uma página web,
caso ela tenha vários links vindos de outras páginas.
Assim, no caso do futebol,
se um jogador receber mais passes
do restante de sua equipe,
então, estará mais alto no ranking.
Não é assim tão simples,
porque o algoritmo do PageRank, na verdade,
atribui um peso maior a um link de um website
que tenha, ele próprio, uma página de ranking elevado.
Então, na verdade, o passo de um jogador popular
vale mais do que um passe
de um jogador que esteja pouco envolvido no jogo.
Essa é uma amostra do algoritmo em ação.
Os status são o ranking atual dos jogadores -
a saída do algoritmo.
E toda vez que há um passe,
esses rankings são atualizados.
Quando o Google usa esse algoritmo,
ele altera apenas uma coisa - a entrada.
Ao invés dos passes, ele usa links web.
Note que a importância de uma página
depende da importância das páginas que se ligam a ela.
Isso significa que você precisa computar
o PageRank para todas as páginas ao mesmo tempo.
E você, de fato, precisa repetir esses cálculos,
porque, a cada vez, você atualiza
a importância de todas as páginas.
E isso, por sua vez, irá influenciar
a importância das páginas
a quem essas páginas se conectam.
No final do jogo, o trabalho do algoritmo está feito.
Se quisermos procurar o jogador chave da equipe,
essa é a resposta do PageRank.
O Jogador 11 tem a pontuação mais alta no PageRank.
Eu acho que o Algoritmo do PageRank
é, provavelmente, meu algoritmo predileto.
E é incrível que ele possa ser aplicado
não apenas à Rede Mundial de Computadores,
mas, também, à análise de uma partida de futebol.
Mas, para mim, é o fato de existir
uma bela peça matemática em sua essência,
a qual sempre parece encontrar
a página web que estou procurando.
Dentro da Google, eu acho,
o PageRank é visto como uma parte muito importante
do desenvolvimento inicial da Google.
O PageRank era a razão do porquê o motor de buscas
que Larry e Sergey construíram nos anos 1990
foi tão exitoso.
Atualmente, o Google lida com mais de
3.5 bilhões de pesquisas diárias.
É o motor de buscas mais famoso do mundo.
E a empresa vale mais de US$450 bilhões.
Nada mau para dois estudantes de PhD
trabalhando em uma garagem.
Algoritmos são simples receitas passo a passo.
Inventá-los requer uma
incrível criatividade e genialidade.
Mas usá-los é só uma questão de seguir instruções.
E é por isso que algoritmos
são perfeitos para computadores.
Computadores são apenas máquinas.
Eles simplesmente fazem tarefas repetitivas
a velocidades fenomenais.
Velocidades inacreditáveis.
Então, eles são absolutamente perfeitos
para desempenhar essas tarefas repetitivas,
as quais são claramente definidas
e que podem ser feitas
em uma quantidade finita de tempo.
O código do computador está, basicamente,
construindo um algoritmo específico.
Então, o algoritmo é o tipo da idéia:
"Como resolver o problema?"
Essas são as instruções que você usaria.
E, então, isso pode ser traduzido
em um determinado código.
Diversos tipos de algoritmos
têm sido criados com o computador em mente.
E alguns dos mais importantes
são algoritmos de ordenação.
Bem, a tarefa de um algoritmo de ordenação
é pôr as coisas em ordem.
E eles têm uma inifinidade de usos.
Por exemplo, na Internet,
a informação é quebrada em pacotes de dados,
os quais são, então, enviados através da web.
Bem, para reconstruir esse dado,
algoritmos de ordenação são absolutamente cruciais
para realocar esses dados na ordem correta,
de modo que possamos visualizar a imagem,
ou ler o e-mail que acabamos de enviar.
Essa é a Corporação de Desenvolvimento de Sistemas,
na Califórnia.
Ela é considerada a primeira empresa mundial
de softwares de computador.
E foi aqui, em 1963,
que dois cientistas da computação
escreveram, formalmente, pela primeira vez,
um dos algoritmos de ordenação mais icônicos da história.
Ele é chamado Bubblesort.
E aqui temos um exemplo do Bubblesort em ação,
ordenando blocos, ao invés de números.
Ele recebe esse nome porque, a cada iteração do algoritmo,
os maiores objetos desordenados
trafegam até o topo.
Como todos os algoritmos até o momento,
há um método na loucura.
Para ver como esse algoritmo funciona,
nós iremos usá-lo para ordenar oito objetos.
O algoritmo Bubblesort
diz para considerarmos os objetos em pares
e para os trocarmos,
caso eles estejam na ordem errada.
Então, nós iremos começar nessa ponta
e prosseguir até o topo.
Então, eu considero esses dois -
eles estão na ordem errada, então, eu os troco.
Consideremos o próximo par - eles estão na ordem certa,
então, eu os deixo como eles estão.
Consideremos esse par -
eles estão na ordem errada, então, eu os troco.
E seguimos fazendo isso.
Agora, o algoritmo Bubblesort
diz para retornarmos até o começo
e repetir o processo continuamente,
até que os objetos estejam em ordem.
O algoritmo pára quando
não há mais pares a serem trocados.
Assim, o algoritmo Bubblesort
fez, exitosamente, seu trabalho.
Eu, agora, tenho os objetos perfeitamente ordenados,
de acordo com uma ordem crescente.
O Bubblesort é, elegante, simples e direto.
Mas se a escala da tarefa de ordenação for grande -
como organizar vastos conjuntos de dados -
então, há algoritmos de ordenação melhores
para o trabalho.
Esse é John von Neumann, o gênio científico
que ajudou a desenvolver o computador moderno,
a Teoria dos Jogos, a Bomba Atômica
e, como iremos mostrar,
inventou um algoritmo de ordenação.
Ele o projetou para trabalhar com isso:
um dos primeiros computadores eletrônicos do mundo,
o qual ele ajudou a projetar.
O algoritmo é chamado Mergesort.
O Algoritmo Mergesort funciona com o princípio
de dividir para conquistar.
E ele consiste em duas partes.
A primeira é a parte da divisão.
Isso envolve dividir tudo em grupos menores.
E, agora, vem a parte da conquista.
Os grupos são, agora, recombinados.
Mas conforme eu recombino os dois grupos,
eu comparo os tamanhos dos objetos,
um par por vez,
de modo que o grupo combinado fique ordenado.
Bem, o Algoritmo Mergesort
pode parecer bem semelhante ao Bubblesort,
mas seu diferencial é que,
com um grupo de objetos bem maior,
ele é muito, muito mais rápido.
Vejamos como o Mergesort
se compara, em velocidade, ao Bubblesort.
É hora de uma batalha de algoritmos!
Aqui, vemos o Bubblesort, na base,
e o Mergesort, no topo.
E nós os fizemos ordenar 1.000 objetos.
Bem, apesar de ambos
gerarem o mesmo resultado final,
você já consegue ver que o Mergesort
está indo mais rápido.
E essa diferença na performance
fica bem mais acentuada,
conforme aumenta o número de objetos a ordenar.
Qual é a forma mais eficiente de se ordenar
um milhão de inteiros de 32 bits?
Bem, eu...
- Desculpe, talvez... - Não, não, não, não, não.
Eu acho que... Eu acho...
Eu acho que o Bubblesort não seria a escolha certa.
Fala sério! Quem soprou pra ele?
O Mergesort vence claramente o Bubblesort,
ao ordenar enormes quantidades de dados.
Mas no mundo louco dos algoritmos,
há muitas, muitas formas diferentes de se ordenar.
Na última contagem,
havia mais de 20 tipos diferentes
de algoritmos de ordenação.
Todos estranhamente obtendo o mesmo resultado,
mas por meios diferentes.
Há o Bubblesort, há o Mergesort.
O Insertion sort.
Há o Heapsort, há o Quicksort.
O Timsort.
Há o gnome sort.
Há o pigeonhole sort,
que também é chamado de radix sort.
Há o bogosort, o qual pode não ter fim.
Não existe isso de "o melhor algoritmo de ordenação".
Cada um tem seus prós e contras.
E aquele que será usado
muitas vezes depende das especificidades do problema.
Eu acho que a beleza de estudar algoritmos
é tentar buscar soluções
que sejam o mais elegantes e eficazes possível.
Eu, pessoalmente, acho o Bubblesort bem legal.
Eu gosto dele. O Mergesort é lindo.
Nós não conseguiríamos viver sem eles.
Algoritmos de ordenação trazem ordem ao mundo.
Até agora, nós vimos algoritmos
que atacam problemas pequenos,
como dimensionar azulejos de banheiro
e organizar nossos dados.
Mas como será que se saem
com o complicado mundo do amor?
Encontros online são bem populares, atualmente.
De fato, uma pesquisa sugere que mais de 1/3
dos casamentos recentes começou online.
A forma como esses sites de encontro funcionam
é usando algo chamado Algoritmo de Emparelhamento.
Eles vasculham os perfis,
tentando emparelhar as pessoas
de acordo com seus gostos e aversões,
traços de personalidade, e assim por diante.
Na verdade, os algoritmos
parecem ser melhores do que os humanos,
porque pesquisas recentes
mostraram que aqueles que se encontram online
tendem a ser mais felizes
e a terem casamentos mais duradouros.
Agora, peço que vocês recebam seus prêmios
da Sua Majestade, o Rei.
De fato, algoritmos de emparelhamento
têm muito para se gabar,
porque em 2012, pela primeira vez,
um Prêmio Nobel foi concedido graças a um algoritmo.
Um algoritmo de emparelhamento,
criado pelo economista David Gale
e pelo matemático Lloyd Shapley,
vistos aqui, recebendo sua parte do prêmio.
A história começa nos anos 1960,
quando Gale e Shapley queriam resolver
um problema relacionado a admissões na faculdade.
Como emparelhar estudantes e colégios,
de modo que todos tivessem um lugar?
Porém, mais importante, que ficassem felizes,
ainda que não ficassem com sua primeira escolha.
Eles o chamaram de Problema do Emparelhamento Estável.
O Problema do Emparelhamento Estável funciona assim:
suponha que você tenha 4 mulheres e 4 homens,
e eles querem se casar.
Bem, eles se avaliaram, conforme suas preferências.
Então, por exemplo, a Rainha de Copas, aqui -
sua primeira escolha é o Rei de Paus.
Segunda escolha: Rei de Ouros,
e sua última escolha é o Rei de Copas.
O desafio, aqui, é bancar o cupido,
e emparelhar reis e rainhas,
de modo que cada um tenha um parceiro,
porém, mais importante:
que os casamentos sejam estáveis.
Um casamento estável significa que
os reis e rainhas não necessariamente
ficarão com sua primeira escolha,
mas que eles terão a melhor em oferta.
Por exemplo, se eu emparelhar o Rei de Copas
com a Rainha de Copas,
e o Rei de Espadas com a Rainha de Espadas,
esse seria um casamento instável,
porque o Rei de Espadas não gosta da Rainha de Espadas.
Ele preferiria a Rainha de Copas.
A Rainha de Copas, por sua vez,
não gosta do Rei de Copas.
Ela preferiria o Rei de Espadas.
Então, esses dois irão ficar juntos, nesse emparelhamento.
Onde houver um problema,
haverá um algoritmo não muito atrás.
Em 1962, Gale e Shapley
surgiram com seu algoritmo vencedor do Prêmio Nobel.
Uma receita passo a passo que sempre encontra
emparelhamentos perfeitamente estáveis.
Então, na primeira rodada do algoritmo,
todas as rainhas fazem propostas
aos seus reis de primeira escolha.
Então, a Rainha de Espadas
tem como primeira escolha o Rei de Espadas.
Ela se oferece ao Rei de Espadas.
A primeira escolha da Rainha de Copas
é o Rei de Paus,
então, ela se oferece ao Rei de Paus.
A primeira escolha da Rainha de Ouros
é o Rei de Espadas.
E a primeira escolha da Rainha de Paus
também é o Rei de Espadas.
Então, o Rei de Espadas parece ser o preferido
dessa Corte Real.
Bem, o Rei de Espadas recebeu três propostas.
Então, ele escolhe sua rainha mais popular,
que é, na verdade, a Rainha de Ouros,
e ele rejeita as outras duas.
Então, temos dois relacionamentos provisórios
e duas rejeições.
Nós, agora, removemos
as primeiras escolhas rejeitadas pelas rainhas.
E é hora da segunda rodada.
Então, a Rainha de Espadas irá se oferecer
ao Rei de Ouros.
E a Rainha de Paus irá se oferecer ao Rei de Paus.
Mas, agora, o Rei de Paus recebeu duas propostas,
e ele, na verdade, prefere a Rainha de Paus.
Então, ele rejeita a Rainha de Copas -
seu relacionamento provisório
da primeira rodada do algoritmo -
e nós precisamos começar novamente.
A cada rodada, as rainhas rejeitadas
se oferecem ao próximo rei de sua lista.
E os reis sempre irão querer a melhor oferta.
Nessa rodada do algoritmo,
ela se oferece ao Rei de Copas
e, finalmente, todos se emparelharam -
um rei para cada rainha -
e todos os casamentos são estáveis.
O Algoritmo de Gale-Shapley
é, agora, usado em todo o mundo.
Na Dinamarca, para emparelhar crianças
e locais de creches.
Na Hungria, para emparelhar estudantes e escolas.
Em Nova York, para alocar rabinos em sinagogas.
E na China, Alemanha e Espanha,
para emparelhar estudantes com universidades.
Enquanto isso, no Reino Unido, ele levou ao desenvolvimento
de um algoritmo de emparelhamento que,
para algumas pessoas, salvou suas vidas.
Aos 20 anos, Seraya, no sul de Londres,
foi diagnosticada com falência crônica renal,
e disseram-lhe que precisava de um transplante.
Eu fiquei na hemodiálise durante 18 meses,
e estava muito mal.
Eu não conseguia trabalhar. Não tinha vida social.
Era, literalmente, hospital -
três vezes por semana, para tratamento - e casa.
Um amigo íntimo se dispôs a doar,
mas seus tipos de tecido não eram compatíveis.
Em St. Albans, Tamir estava seriamente doente,
e sua esposa, Lyndsey, desejava doar.
Mas eles tinham o mesmo problema.
Fizemos todos os testes sanguíneos
e todas as análises,
e foi revelado que nós tínhamos
grupos sanguíneos incompatíveis.
Muitas vezes, pacientes renais
que têm sorte o bastante
para encontrar um voluntário doador
descobrem que há uma incompatibilidade
com o grupo sanguíneo ou tipo de tecido do doador.
Mas desde 2007, o NHS tem usado
um algoritmo de emparelhamento especial,
para encontrar doadores dispostos
possivelmente compatíveis
para pacientes renais de todo o Reino Unido.
Quando encaramos esse problema pela 1ª vez,
realmente subestimamos a complexidade.
E, inicialmente,
começamos apenas com trocas entre dois pares,
então, era bem simples,
mas logo ficou óbvio
que precisávamos de algo bem mais complexo.
Eu entrei em contato com Rachel Johnson, no NHS,
e, na época, nós nos envolvemos, então,
em tentar projetar algoritmos
que permitiriam não só trocas entre pares,
mas, também, trocas entre três pares.
O algoritmo considera diversos cenários.
O mais simples é uma troca de duas vias,
com dois pares trocando rins.
Uma troca de três vias é mais complicada,
onde os rins circulam em ciclo.
Há 200 pacientes
em cada um de nossos testes de emparelhamento.
Precisamos examinar
todos os transplantes possíveis.
E sua quantidade é surpreendente.
Há, literalmente, centenas, às vezes,
milhares de possibilidades.
É algo que não conseguiríamos obter
sem o algoritmo.
Certo dia, Seraya recebeu uma ligação
de que um doador fora encontrado
a 640 km de distância, com Linda -
uma doadora em Bowness, próximo a Edimburgo.
O pai de meu marido precisava de um novo rim.
Ele já estava doente há um tempo,
e eu não era compatível.
E, então, eu recebi uma ligação telefônica,
e foi quando tudo começou.
Recebemos uma primeira ligação telefônica,
dizendo que fôramos emparelhados
em uma rede de três vias.
Você fica com receio do que virá pela frente,
porque sua vida depende disso.
Para os casais emparelhados,
todas as operações precisavam ocorrer simultaneamente.
Era um enorme desafio logístico.
Quando meu doador foi ao hospital, ligaram para checar
que meu doador também estava em Newcastle,
dirigindo-se ao centro cirúrgico.
E elas aconteceram ao mesmo tempo.
E eles fizeram a ligação e o rim foi extraído.
Eu acho que ele foi de motocicleta.
Avisaram-nos que ele iria de helicóptero,
então, eu achava que,
ao menos uma parte minha fora de helicóptero,
mas, não, ela fora de motocicleta.
E, eventualmente, acabamos fazendo, em dezembro.
O melhor presente de Natal!
Pessoalmente, fico imaginando os médicos ali atrás,
emparelhando pessoas dessa lista.
Então, resulta um pouco estranho
que, no fim das contas, tudo se deva à Matemática.
É uma grande rede, e ela é bem recente.
Muitos anos atrás, eu não teria essa chance.
Eu me sinto muito grata a Linda
e, também, ao algoritmo.
Eu sou muito grata.
Até agora, mais de 400 pacientes
se beneficiaram da rede do NHS
e de seu algoritmo de emparelhamento especial.
Foi só quando começamos a ver artigos na imprensa
e começamos, de fato, a pensar:
"Oh, espere aí: essa pessoa deve, na verdade,
ser aquela que emparelhamos em outubro, em nossa troca"
que você, de fato, começa a ver as histórias
que estão por trás dos dados anônimos.
É bem engraçado, porque David sempre teme
que o algoritmo levará muito tempo para processar.
E ele só leva uns 30 minutos, mas ele já fica preocupado.
Mas, veja bem, 30 minutos...
...é incrível podermos fazer tudo isso em 30 minutos.
Até agora, nós vimos como os algoritmos
são capazes de feitos impressionantes.
De resolver problemas matemáticos abstratos
a nos ajudar a encontrar coisas
na Rede Mundial de Computadores.
E a chave de todos esses algoritmos é sua velocidade.
A característica importante de um bom algoritmo
é que, primeiro, ele esteja correto,
mas quando sabemos que ele está correto,
também é importante que ele funcione rapidamente.
Não é legal ter um algoritmo
que leve uma vida inteira para rodar,
se você precisa desses resultados para amanhã.
Esse algoritmo de detecção de rostos
é um exemplo de um algoritmo eficiente.
Como ele é eficiente,
ele é capaz de rodar em tempo real.
E é isso o que o torna útil.
Mas tal como na vida real,
alguns problemas são mais difíceis do que outros.
De vez em quando,
os algoritmos encontram um desafio à altura.
Acho que o equívoco mais comum sobre algoritmos
é crer que os algoritmos podem fazer tudo.
Eu acho que as pessoas não conhecem os limites.
Alguns problemas simplesmente não podem ser resolvidos
por algoritmos eficientes.
Há alguns locais aonde algoritmos eficientes
não conseguem ir.
Linhas na areia que não podem ser cruzadas.
O problema é saber que problemas podem resolver,
e quais não podem.
Pegue esse Cubo de Rubic e pense no desafio bem comum
de tentar resolver um cubo de dimensões arbitrárias.
Então, por exemplo, com 50 quadrados de cada lado.
Bem, você acharia que esse
seria um problema daqueles bem difíceis,
mas, na verdade, ele está no campo dos fáceis.
Nós conhecemos um algoritmo
que consegue resolver o cubo geral de Rubic
em uma quantidade razoável de tempo.
Apesar de parecer difícil,
esse problema pode ser resolvido
por algoritmos eficientes.
No entanto, eis um que definitivamente não pode.
Imagine um tabuleiro de tamanho qualquer,
e uma disposição de peças no tabuleiro.
O desafio é descobrir
se o branco pode vencer a partir dessa posição.
Bem, damas é um jogo bem fácil,
mas foi provado matematicamente
que não há um algoritmo
que consiga resolver esse problema eficientemente.
É um problema inerentemente difícil.
A única forma de resolver esse quebra-cabeça
é através do trabalho duro -
descobrindo todas as milhões de possibilidades.
Então, esse problema encontra-se claramente
além do alcance de algoritmos eficientes.
Ele não pode ser resolvido rapidamente.
Mas para alguns problemas,
sua dificuldade não fica tão clara.
Esse é um enorme Sudoku. Ele tem 625 quadrados.
Uma das coisas legais no Sudoku
é que quando você encontra uma solução,
é relativamente fácil ver se ela está certa, ou não.
E isso é verdadeiro, por maior que ele seja.
Nesse caso, basta eu checar que cada fileira,
coluna e bloco não contenha um número duas vezes.
O Sudoku pertence a um categoria bastante
especial de problemas,
onde todos partilham dessa característica:
quando você encontra uma solução,
é sempre fácil checá-la.
O mistério é se existe um algoritmo eficiente
capaz de, antes de tudo, encontrar uma solução.
E o Sudoku não está sozinho. Há diversos problemas assim.
O mais intensamente estudado de todos eles
é conhecido como o Problema do Caixeiro Viajante.
Um caixeiro viajante viaja de porta em porta,
de cidade em cidade, vendendo de tudo:
de escovas e aspiradores de pó a vidros reforçados.
Isso parece uma tarefa bem fácil.
Mas todos os caixeiros viajantes
enfrentam o mesmo dilema:
Qual será a rota mais curta?
Esse problema é tão importante
que o Instituto Clay de Matemática
ofereceu US$ 1 milhão
para quem conseguir encontrar um algoritmo eficiente,
ou provar que não existe nenhum.
O problema do caixeiro viajante é assim:
Imagine que você é um vendedor
e você precisa visitar uma lista de cidades,
representadas pelos pontos vermelhos.
O desafio é encontrar a rota mais curta,
de modo a visitar cada cidade uma única vez,
antes de retornar ao seu ponto de partida.
Bem, você poderia imaginar que a melhor solução
é simplesmente considerar todas as rotas - dessa forma...
O método de checar todas as possibilidades
é um tipo de algoritmo.
E para três cidades, ele funciona bem,
porque há apenas três rotas possíveis a checar.
Mas e se colocássemos mais duas cidades na lista?
Com cinco cidades,
existem 60 rotas possíveis diferentes.
E se colocássemos mais uma cidade,
então, haveria 360 rotas possíveis.
E para 10 cidades,
existiriam mais de 1.8 milhão de rotas possíveis.
Se nosso algoritmo considerasse todas,
checando cada uma, a uma taxa de 10 por segundo,
ele levaria dois dias antes de encontrar a mais curta.
Então, perceba que o método de tentar
todas as diferentes possibilidades -
um tipo de algoritmo de força bruta, por assim dizer -
é simplesmente impraticável.
Se alguém descobrisse um algoritmo rápido
para o problema do caixeiro,
isso seria bem significativo.
Se um de meus estudantes surgisse
com um algoritmo eficiente
para o problema do caixeiro viajante,
eu pediria que ele o explicasse para mim,
eu o mataria e reivindicaria
o prêmio Clay - US$1 milhão.
Mas eu acho que meus estudantes estão a salvo.
O problema tem aplicações em diversas áreas.
Da soldagem em placas de circuito...
...ao planejamento de rotas de entrega de supermercados.
Mas será que o problema do caixeiro viajante
já foi secretamente resolvido?
Uma equipe de cientistas
trabalhando no Instituto Rothamsted, em Harpenden,
recorreu à Natureza,
para ver se descobrem a resposta.
Eles estão realizando um experimento complexo
para estudar como o problema do caixeiro viajante
é abordado pelas abelhas.
As abelhas precisam procurar o néctar,
para que abasteçam sua colméia.
E, assim, elas precisam visitar, provavelmente,
centenas de flores em cada viagem.
O que elas querem fazer é encontrar uma forma eficiente
de se locomover entre todas essas flores que elas visitam.
A modesta abelha
enfrenta seu próprio problema do caixeiro viajante.
As flores são como as cidades.
E a abelha é o caixeiro viajante.
Uma abelha irá vasculhar diversas vezes por dia.
Então, ao longo do dia,
realmente compensa usar a rota mais eficiente possível.
Então, o que estamos fazendo é tentar descobrir
exatamente que regras elas estão usando
para limitar as possibilidades.
Joe colocou 5 alimentadores,
os quais desempenham o papel das flores.
Cada alimentador tem néctar o bastante
para garantir que a abelha precise visitar todos os 5,
para que seu estômago fique cheio de mel.
E como você realmente sabe para onde ela está indo?
Para isso, estamos usando um Radar Harmônico.
Então, conforme ele gira,
ele está emitindo um sinal de radar.
E nós prendemos uma pequena antena
nas costas da abelha,
a qual, reflete, então, o sinal do radar.
E, assim, isso nos permite ver, exatamente,
para onde a abelha foi,
conforme ela se move pelo campo.
Então, como será que a abelha lida
com o problema do caixeiro viajante?
- Pronto. - Ok, vamos ligá-lo, agora.
Com 5 alimentadores,
existe um total de 60 rotas possíveis.
O caminho mais curto é pelo perímetro externo.
Esse mapa de calor
mostra o percurso seguido por uma única abelha.
Inicialmente, ela só está descobrindo
as posições dos alimentadores.
A seguir, a abelha parece alterar, metodicamente,
diferentes partes da rota,
para ver se ela consegue encurtá-la.
Após 20 jornadas,
ela se concentra em uma rota eficiente.
Essa rota nem sempre é o caminho mais curto de todos,
mas, para a abelha, é bom o bastante.
É incrível que tão só após alguns testes,
ela tenha chegado em algo eficiente o bastante
para que ela se alimente.
Sim, exatamente.
Elas poderiam levar dias ou, até mesmo,
poderiam levar meses ou anos
para testarem todas as possibilidades,
então, elas precisam achar uma rota rapidamente,
que seja repetida diversas vezes,
para que consigam alimentos o bastante.
Fantástico.
Eu acho que a abelha
acaba de se tornar meu inseto favorito.
- É uma matemática nata! - Sem dúvidas.
Sejamos claros.
As abelhas não estão prestes a ganhar US$1 milhão.
Elas não resolveram, miraculosamente,
o problema do caixeiro viajante,
porque elas nem sempre encontram a rota mais curta.
Mas seu algoritmo é uma abordagem inteligente.
Na Matemática, isso é conhecido como Heurística.
Algoritmos que são eficientes,
que não encontram a solução perfeita,
mas que chegam o mais perto dela possível.
A mesma abordagem heurística
tem sido usada para desenvolver um algoritmo
para o aeroporto de Heathrow.
Heathrow lida com mais de 1.300 vôs por dia.
É o aeroporto mais movimentado da Europa.
O desafio para o controle de tráfego aéreo
é maximizar o número de aeronaves
que partem a cada hora,
e garantir que o aeroporto opere
de modo eficiente e seguro.
Uma das principais decisões é a ordem da decolagem.
Estamos cuidando da decolagem de um grupo
de aeronaves de médio porte,
as quais serão separadas por um minuto de distância.
E atrás delas, você pode ver um 747,
que é uma aeronave grande.
Aeronaves medianas precisam ser separadas
da turbulência gerada por aeronaves maiores.
Então, ordenar pelo tamanho é crucial.
A sequência ideal da decolagem envolve
juntar grupos de aeronaves.
Você quer que aviões grandes sejam agrupados juntos,
que aeronaves medianas sejam agrupadas juntas.
E isso permite que a separação entre essas aeronaves
seja minimizada.
O outro fator que precisa ser considerado,
no planejamento da decolagem,
é para onde os aviões estão indo.
Queremos que um se dirija ao norte,
que um vá para o sul,
que o próximo vá para norte, e, depois, para o sul.
Se todas as aeronaves fossem na mesma direção,
a separação seria bem maior,
e não conseguiríamos usar as pistas com eficiência.
Todos os controladores estão sentados
nas torres de controle, pensando:
"Eu tenho todos esses aviões indo pro norte,
todas essas aeronaves indo pro sul.
"Eu tenho essas, as quais são maiores,
então, eu quero tentar agrupar todas as grandes,
para que não passe de uma grande para uma pequena".
É um problema bem complicado para eles pensarem.
Em 2013, um algoritmo se juntou à equipe.
Seu trabalho é prever
a ordem mais provável de decolagem,
e advertir o controle de tráfego áereo,
quando aeronaves devam ser rebocadas dos portões.
Fazer isso envolve nada menos do que simular
toda a operação de pousos e decolagens do aeroporto.
Implica em milhões de cálculos por segundo.
O algoritmo funciona tentando prever
com que ordem as aeronaves deverão decolar.
Se ele souber em que ordem elas poderão decolar,
então, ele poderia retroceder e dizer:
"Se você precisa decolar, agora,
então, precisa entrar, agora, na pista de pouso,
então, precisa concluir o taxiamento, agora,
então, precisa começar o taxiamento, agora.
Então, precisa cessar o reboque, agora,
então, precisa começar o reboque, agora".
E podemos retroceder desde o momento da decolagem
até quando deveria começar a ser rebocada.
A saída do algoritmo
é repassada ao controle de tráfego aéreo
através do sistema computadorizado
interno do aeroporto,
e mostrada para o piloto, no portão,
na forma do TSAT -
o horário de reboque recomendado.
O piloto pode observar todo o sistema de entrada,
para ver qual o horário previsto de decolagem.
O maior benefício do algoritmo
é que ele significa que você pode manter
a aeronave parada por mais tempo,
sem que ela decole, posteriormente.
Então, não há prejuízo
para os passageiros em termos de atraso.
Podemos dar a partida nos motores mais tarde.
De fato, se pouparmos dois minutos de taxiamento,
da pista até sua cabeceira, ao fim de um ano,
teremos uma economia de £15 milhões em combustível.
O algoritmo de sequenciamento de Heathrow
mostra o que pode ser obtido com a abordagem heurística.
Assim como as abelhas,
o algoritmo não está encontrando
a solução absoluta perfeita, o tempo todo,
mas, no entanto, torna um trabalho duro
um pouco mais fácil.
Estamos muito orgulhosos do algoritmo,
porque ele, atualmente, modela o mundo real,
e isso é útil.
No início, algoritmos eram criados
por matemáticos, para matemáticos.
E durante o último século,
algoritmos têm sido criados para computadores.
Mas, talvez, nosso relacionamento
esteja prestes a passar por uma revolução dramática.
No Microsoft Research, em Cambridge,
cientistas estão usando novas técnicas
para desenvolver algoritmos...
...apagando a fronteira
entre o inventor e o próprio algoritmo.
Esse é o Algoritmo de Rastreio Esquelético via Kinect.
O incrível é que ele é capaz de identificar
as diferentes partes do meu corpo.
Então, você pode ver que ele pintou
o topo de minha cabeça de vermelho,
e minha mão direita, aqui, em azul.
Você pode ver que ele pintou meu pescoço de verde.
Esse algoritmo nunca me viu antes,
nem sequer sabe como eu me movo espacialmente,
mas simplesmente usando os dados transmitidos
por essa câmera especial, aqui,
medindo a distância da câmera para o meu corpo,
ele é capaz de produzir esse mapa.
Qualquer postura que eu assuma,
usando nada mais do que a entrada
dessa câmera especial com sensor de profundidade,
o algoritmo é capaz de identificar, precisamente,
pixel por pixel,
as diferentes partes de meu corpo.
Ele foi desenvolvido para o console XBox, da Microsoft,
para rastrear o movimento
da postura corporal de um jogador em tempo real.
Mas tão notável quanto
o que esse algoritmo é capaz de fazer,
é o processo por trás de como ele foi criado,
como o pesquisador Jamie Shotton explica.
O que está acontecendo é que cada pixel na imagem
é fruto de um algoritmo chamado Árvore de Decisões.
E você pode pensar na Árvore de Decisões
como um jogo de 20 perguntas.
Então, a Árvore de Decisão
está, por exemplo, pegando um pixel de minha mão
e tentando decidir:
"OK, eu preciso colori-la de azul,
porque está na mão, e não no corpo".
Exato.
A chave para uma Árvore de Decisão
é o fato de que as 20 perguntas que você faz
não são as mesmas para cada pixel
que estamos tentando classificar.
E o conjunto completo das questões possíveis
que poderiam ser feitas é exponencial.
- São 2 elevado a 20. - 20? Certo.
OK, isso dá mais de um milhão de perguntas -
é um bocado de perguntas
que você precisa programar nele.
Sim, levaríamos tempo demais
e estaríamos muito propensos a erros,
como seres humanos, ao programá-lo manualmente.
Então, o algoritmo está se reprogramando, ou...?
Exatamente!
O algoritmo não foi projetado por Jamie
mas, ao invés disso,
por um processo chamado Aprendizado de Máquina.
Isso envolveu mostrar ao algoritmo
milhões de imagens de treinamento
de corpos em diferentes posições
e de várias formas e tamanhos -
dos mais gordos aos mais magros,
dos mais baixos aos mais altos.
E, a partir disso,
o algoritmo essencialmente aprendeu via exemplos,
criando suas próprias regras.
Onde nossa inteligência entra,
como projetistas do sistema,
não está na programação do algoritmo em si,
mas em projetar o conjunto dos dados de treinamento,
para captar todos os tipos de variações
que você esperaria ver,
quando empregamos esse sistema
nas salas de estar das pessoas,
para brincarem com seus jogos.
Bem, mas você sabe o que o algoritmo está fazendo?
Nós temos uma idéia do que ele está tentando fazer,
e de como ele está basicamente funcionando,
mas, provavelmente, não podemos entender,
exatamente, o que está havendo.
A mesma abordagem do Aprendizado de Máquina
tem sido usada em outras aplicações.
Por exemplo, esse algoritmo é capaz
de fazer algo que, por um bom tempo,
acreditávamos ser uma habilidade exclusiva
de neurocirurgiões e radiologistas.
A partir de imagens de ressonância,
o algoritmo é capaz de identificar e mapear
um tumor cerebral em 3D.
O que significa que um trabalho que, normalmente,
levaria uma hora
pode ser feito em uma questão de minutos.
O Professor Chris Bishop
está interessado em desenvolver
ainda mais o conceito de Aprendizado de Máquina,
para criar algoritmos que
possam aprender da mesma forma que nós,
diretamente através da experiência.
Bem, eu creio que essa demonstração
ilustra o caminho
que os algoritmos seguirão nos próximos anos.
OK, eu posso ver vários filmes, aqui -
o que o algoritmo irá fazer?
O que temos são algumas das centenas
dos filmes mais comumente vistos,
e o que ele irá fazer é aprender
acerca de seus gostos e aversões pessoais.
Ele já foi treinado,
então, há um Aprendizado de Máquina nos bastidores,
mas ele já foi treinado
com dados oriundos de cerca de 10.000 pessoas.
O que ele irá fazer, agora,
é aprender acerca de suas preferências.
No momento, ele não conhece nada a seu respeito,
então, esses filmes foram dispostos
aleatoriamente na tela.
O que preciso que faça é pegar um desses filmes -
um que você goste ou um que não goste.
Se gostar dele, arraste-o para a região verde.
Se não gostar dele, para a região vermelha.
OK, certo. Rushmore! Sou grande fã de Rushmore.
Você gosta de Rushmore? Ok, certo.
Então, o que está acontecendo, agora,
é que, se o filme estiver perto do lado direito,
perto da região verde,
ele tem certeza que você irá gostar dele.
Então, se ficar perto da região vermelha,
ele tem certeza que você não gosta dele.
No meio, são 50-50%. Ele não tem certeza.
Então, se eu escolher um filme, aqui, do meio...
Eu não sou um grande fã de Austin Powers,
então, vamos jogá-lo para...
Certo, veja que começam a se espalhar para os lados.
Está se tornando mais confiante.
Sim, sim. Ele é muito bom.
Sim, sou um grande fã de Dr. Strangelove,
e, sim, um grande fã de Woody Allen...
mas Spinal Tap... ele acha que eu gosto disso.
Bem, isso é interessante.
Quando ele tinha certeza de que você gostava,
e você confirmou que gostava,
nada demais aconteceu,
porque ele não aprendeu muita coisa.
Quando tinha certeza de que você gostaria,
como no caso de Spinal Tap,
e você disse "não gosto", houve uma grande mudança.
Ele está aprendendo as coisas comigo.
Eu, de fato, estou alterando o algoritmo
conforme interajo com ele. - Exatamente.
Enquanto que o Kinect foi treinado em laboratório
e, a seguir, ficou estático,
esse algoritmo continua a se adaptar,
e continua a evoluir ao longo de sua vida.
Quanto mais filmes você classificar como
"gosto" ou "não gosto",
mais ele irá aprender sobre sua personalidade
e mais capaz ele será de fazer boas recomendações.
Esse algoritmo está começando a parecer bem mais humano,
pela forma com que ele interage com o mundo.
Esse é o seu objetivo?
Descobrir uma forma de produzir algoritmos
que se assemelhem à forma como nós
lidamos com o mundo? - Exato.
É um passo a menos na enorme jornada
de produzir máquinas
que sejam tão capazes quanto o cérebro humano.
Temos um longo caminho pela frente,
mas esse é um pequeno passo nessa direção,
porque ele não está mais fixado.
Ele segue aprendendo, exatamente da mesma forma
que seguimos aprendendo em nosso cotidiano.
Eu acho que estamos apenas começando
a perceber o potencial completo dos algoritmos,
e há apenas mais um local que eu quero visitar,
o qual disseram que me dará um vislumbre
do quanto eles são capazes de fazer por nós.
É um mundo onde quase tudo é automatizado.
Onde os algoritmos estão no controle.
É o maior armazém automatizado da Terra.
Ele pertence ao supermercado varejista online Ocado
e representa o equivalente a 45 supermercados.
Mais de 2 milhões de itens
fluem através desse armazém, diariamente.
A todo momento,
há algo em torno de 7.000 caixas
percorrendo 25 quilômetros de trilhos,
e controlando cada aspecto
desse espetáculo incrível estão os algoritmos.
Cada uma dessas caixas vermelhas
faz parte do pedido de um cliente,
e eles podem sair daqui
para encontrar outros itens que eles queiram,
através de todo o armazém,
até que tenham, eventualmente terminado,
descarregando tudo em uma van
e, a seguir, dirigindo por nosso sistema de roteamento -
por uma rota que é, em muitas formas,
resolver problemas como
o problema do caixeiro viajante.
Há decisões sendo tomadas por toda parte,
conforme uma caixa vermelha passa por aqui e por ali...
A complexidade por trás de tudo isso
está além do que qualquer ser humano
poderia controlar ou resolver,
e é aí onde entram esses algoritmos -
técnicas resolvedoras de problemas -
para superar esses desafios.
Para onde quer que você olhe,
a mão invisível do algoritmo está em ação.
Algoritmos de previsão
monitoram e reabastecem o estoque
de mais de 43.000 produtos,
antecipando a demanda dos clientes.
Algoritmos de controle de sistemas
gerenciam o tráfego das mais de 7.000 caixas
por todo o armazém.
E algoritmos de roteamento controlam o movimento
da frota de mais de 1.500 vans,
testando mais de 4 milhões
de diferentes combinações de rota a cada segundo.
Você quase consegue ver
a mente da máquina em operação,
e esse não é um processo estático,
então, é por isso que há uma enorme quantidade
de máquina de aprendizado por aqui -
ou seja, é como um organismo se auto-adaptando.
Ele está, constantemente, precisando aprender,
a como melhorar.
E as pessoas não conseguiriam fazer isso.
A máquina precisa ajustar a si própria.
Então, quem você diria
que está, na verdade, no controle de tudo isso?
Definitivamente,
são os algoritmos que estão no controle.
Acho que estou ficando com uma irritação algorítmica,
só de ver essa coisa incrível!
De algum modo, esse armazém é como
um pequeno microcosmos do mundo moderno.
Os algoritmos estão controlando tudo -
motores de busca na Internet, navegação via satélite
e até mantendo nossos cartões de crédito a salvo.
Nosso mundo não funcionaria
sem o poder desses algoritmos.
A Open University produziu
um pacote grauito para você aprender,
criar e descobrir mais
acerca da tecnologia digital do passado e do presente.
Para realizar seu pedido, ligue para...
...ou siga o link abaixo
até a Open University.
Tradução e Legendagem: VitDoc @docsPT
www.docspt.com