Qiskit Summer School 2020

Postagem sobre o summer school do Qiskit.

https://www.linkedin.com/posts/arnaldogunzi_ibm-qiskit-quantumcomputing-activity-6706320160816435201-EOMD

Quantum computing is a emerging field of knowledge. What was only theory years ago now is becoming reality.

I’m very proud and honoured to have attended the Qiskit Summer School 2020.

This course covered hot topics as quantum algorithms, error correction, superconducting devices and quantum chemistry, as well as labs to test our knowledge.

Thanks to Abraham Asfaw, James Wooton, Elisa Bäumer, Zlatko Minev and all the other members of #IBM.

A natureza probabilística, Heisenberg e o Eterno Retorno

Um dos resultados mais interessantes da física quântica é o de a natureza ser probabilística por princípio.

Até meados dos anos 1900, a física clássica reinava absoluta. Parecia explicar todos os fenômenos possíveis que ocorriam ao nosso redor.

A física clássica é determinística por natureza. As Leis de Newton, num espaço e tempo absolutos, governavam os movimentos de todos os corpos.

Isso levou o matemático Pierre de Laplace a pensar num “computador” ou “demônio de Laplace”. Se eu souber a posição e velocidade de todos os átomos do universo e jogar neste computador, poderei utilizar as leis de Newton para calcular a posição futura de tudo: todos os corpos do universo, todas as colisões, explosões e interações entre partículas.

Mais ainda. As Leis de Newton são reversíveis. Não há nenhuma seta do tempo, dizendo o que é passado ou futuro. Se eu filmar uma bola de bilhar batendo em outra, e reproduzir o filme ao contrário, vou ter outra interação possível entre corpos.

Deste modo, o computador de Laplace poderia calcular todo o futuro, e todo o passado, a partir do tempo presente.

O cálculo tradicional de probabilidades apenas reflete a nossa ignorância. Num jogo de cara ou coroa, por exemplo, se soubéssemos exatamente as interações de cada átomo da moeda, do ar, e as forças aplicadas, poderíamos predizer com certeza o resultado cara ou coroa. Só não conseguimos porque não sabemos as variáveis.

Outra ideia é a do Eterno Retorno, do filósofo Friedrich Nietzsche. Se existe uma quantidade de átomos finita, eles podem se recombinar de maneira finita (embora o número de combinações seja estratosférico, mas finito). Num tempo infinito (e o infinito é muito, muito grande), um dia a configuração de todos os átomos do universo será exatamente igual à configuração de hoje. Jogando no computador de Laplace, todo o presente vai se repetir exatamente da mesma maneira, por incontáveis ciclos, pela eternidade…

Um pouco de cultura pop: a série Dark explora o Eterno Retorno, com uma história completamente insana de pessoas viajando para o futuro e para o passado, tendo filhos que serão os seus próprios pais, encontrando os seus “eus” antigos, em ciclos que se repetem infinitamente.

Para furar o ciclo do Eterno Retorno, o Princípio da Incerteza de Heisenberg.

Em meados de 1900, algumas rachaduras na física clássica levaram à física quântica, que é o modelo que melhor descreve o mundo desde então: o problema da radiação do corpo negro, o efeito fotoelétrico, entre outros.

O Princípio da Incerteza é um dos pilares deste novo conhecimento. Este diz que não é possível saber ao mesmo tempo a posição e a velocidade (momento) de uma partícula, com uma precisão menor do que uma constante (a constante de Planck). Se eu sei a posição, perco precisão no momento, e vice-versa.

Para medir uma partícula subatômica, é necessário jogar uma luz, um fóton sobre este. A energia do fóton muda a posição e momento da partícula, de modo que a observação muda o experimento.

Isso de o observador mudar o experimento dá margem à várias interpretações exotéricas exploradas em cursos de autoajuda e afins: a consciência altera a realidade, basta desejar que o universo se molda em conformidade, etc. Menos… Uma coisa é mudar um partícula subatômica, outra, o universo!

Apesar de Werner Heisenberg ser uma pessoa real, talvez ele seja mais conhecido hoje, na  cultura pop, como o codinome de Walter White, da série Breaking Bad.

Pensando em elétrons nas camadas de um átomo, é como se fosse abelhas numa colmeia. Temos uma nuvem de probabilidades de encontrar uma determinada abelha ao redor da colmeia, porém não dá para dizer exatamente onde ela vai estar em dado momento.

Portanto, a natureza é probabilística. No menor nível de decisão possível, não vamos saber exatamente onde está o elétron, ou o fóton, ou qualquer outra partícula elementar. Este pode estar numa infinidade de lugares, vez por outra até atravessando barreiras de energia impossíveis de serem transpostas (que é o princípio do microscópio de tunelamento eletrônico).

Nem o computador de Laplace, com capacidade de computação infinita, conseguiria prever todo o futuro, pois há uma quantidade infinita de possibilidades.

Ao assumir a física quântica como pilar da ciência moderna, o Eterno Retorno fica sendo um conceito mais distante.

E se um dia ou uma noite um demônio se esgueirasse em tua mais solitária solidão e te dissesse: “Esta vida, assim como tu vives agora e como a viveste, terás de vivê-la ainda uma vez e ainda inúmeras vezes: e não haverá nela nada de novo, cada dor e cada prazer e cada pensamento e suspiro e tudo o que há de indivisivelmente pequeno e de grande em tua vida há de te retornar, e tudo na mesma ordem e sequência – e do mesmo modo esta aranha e este luar entre as árvores, e do mesmo modo este instante e eu próprio. A eterna ampulheta da existência será sempre virada outra vez – e tu com ela, poeirinha da poeira!

Nietzsche em Gaia a ciência

Veja também:

https://ideiasesquecidas.com/2019/08/23/mundo-bizarro/

https://ideiasesquecidas.com/2020/02/19/jogando-xadrez-com-deus/

https://ideiasesquecidas.com/2020/06/14/efeito-borboleta-a-roda-da-fortuna-e-as-moiras/

O Quadrado Mágico “esburacado”

Vi o puzzle a seguir, e parecia interessante. Por falta de um nome melhor, chamá-lo-ei de “quadrado mágico esburacado”.

Se o leitor quiser tentar resolver, aviso que há spoilers à frente.

Como eu já tinha feito uma rotina que resolve quadrados mágicos de qualquer tamanho, achei que poderia aproveitar algum padrão já existente.

Vide https://asgunzi.github.io/QuadradoMagicoD3/index.html

Entretanto, não foi possível partir para uma solução que utilizasse quadrados mágicos comuns. E também não consegui chegar numa fórmula matemática fechada, que chegue a uma solução.

O jeito foi apelar para os computadores. Mesmo assim, não é tarefa fácil.

O jeito “força bruta” pura chega a 20! (fatorial) combinações. Isso dá o número astronômico de 2,4*10^18 combinações. Computador algum no mundo consegue resolver.

O que fiz foi usar a estrutura do problema para diminuir drasticamente o número de combinações. Uma “força bruta” refinada…

Imagine fatiar o problema. Resolver somente a primeira linha.

Se olhar só para a primeira linha, há 20 números possíveis, e a combinação de 4 delas tem que somar 42.

O Python tem algumas rotinas de combinações e permutações que vêm bem a calhar. Elas geram todas as combinações possíveis.

   #Passo 0:
   comb = itertools.combinations(setNumbers,4)
   
   for c in comb:
       if sum(c)==42:
          #Faz alguma coisa

Esse código vai descartar uma combinação errada (digamos, [1,2,3,4]) e vai ficar com uma combinação correta (ex. [1, 2, 20,19]).

Dada essa combinação correta, ainda assim há todas as permutações possíveis dela (ex. [1,20, 19, 2], [20,19,2,1] ) a checar.

permut1 = list(itertools.permutations(c)) #Código para gerar permutações

Isso dá comb(20,4)*permut(4) = 116 mil

Para cada combinação possível da primeira linha, agora vamos tentar encaixar a primeira coluna:

São três espaços vazios, para encaixar 16 números (ou seja, 20 iniciais – 4 da primeira linha). A soma da coluna tem que dar 42.

O resto do procedimento é igual. Dá comb(16,3)*permut(3) = 3360.

Uma nota importante. Das 116 mil, somente uma fração preenche o critério da soma ser 42. Portanto, esses 3360 testes não são aplicados aos 116 mil, somente ao que passou. Ainda assim, dá um número enorme, mas dessa forma, vamos restringindo o problema.

A seguir, tento preencher a diagonal. Isso porque ela tem só duas casas vazias. É um espaço menor de busca de combinações, mais fácil. Vamos restringindo o problema aos poucos.

A seguir, a segunda coluna.

E assim, sucessivamente.

Com isso, a rotina chegou à diversas soluções:

6910017
0202137
1850163
1481910
40111215

Ou:

1219020
0181239
11160105
1764150
1307148

Ou:

2417019
020589
10150161
1831470
12061113

Na verdade, a rotina mostrou mais de 30 mil soluções (tinha várias permutações simples das soluções mostradas, e até repetidas).

Mesmo não tendo a elegância de ter solução única, é um desafio computacional interessante.

Download do código (em Python): https://github.com/asgunzi/QuadradoMagicoEsburacado

Veja também:

https://ideiasesquecidas.com/laboratorio-de-matematica/

O inverno e a primavera da Inteligência Artificial

Em 2006, fiz a cadeira de Redes Neurais da UFRJ, como parte do meu mestrado em Processamento Digital de Sinais, motivado pelas tais redes que imitavam o cérebro humano, aprendiam sozinhas e que poderiam nos superar um dia.

Achei decepcionante, na época. As redes pareciam mais uma curiosidade, com pouca aplicação prática, do que algo realmente útil.

Alguns motivos:

– Só conseguíamos criar redes de três, cinco camadas, com poucos neurônios por camada (shalow network)

– Aplicações restritas à interpolação de funções

– O software Estatística tinha algo pronto para redes pequenas. Qualquer aplicação mais complexa, seria necessário pegar toda a matemática e implementar do zero.

Os resultados frios e estéreis eram porque, em 2006, eu estava em pleno “Inverno da Inteligência Artificial”.

Contudo, 10 anos depois, o campo era quente e fértil de inovações: redes de centenas de camadas (daí o termo deep neural network), milhares de neurônios por camada, reconhecimento de imagens, transcrição da linguagem falada, automação de tarefas rotineiras, humanos superados em jogos complexos como o Go…

A curva acima é chamada de “curva S da inovação”.

A maior parte dos conceitos, como o neurônio artificial, a função de ativação, backpropagation, já existia desde a década de 70, e não tinham mudado nada.

Como a IA saiu do inverno para a primavera que vivenciamos nos dias de hoje?

Aponto para três tópicos principais:

– Hardware

– Software

– Dados

1 – Hardware

A evolução da capacidade computacional e o poder do processamento paralelo são dois itens importantes.

1.1 – Lei de Moore

A Lei de Moore diz que o poder computacional dobra a cada 18 meses, para o mesmo custo. A unidade básica de computação é o transístor, basicamente uma chave que pode assumir o valor 0 ou o valor 1.

A Lei de Moore deve-se, basicamente, à miniaturização do transístor. Foi isso que permitiu celulares de bolso mais poderosos do que os supercomputadores mais avançados de décadas atrás.

Do computador que eu tinha em 2006 para 2018, 12 anos, houve um avanço de 256 vezes!

Imagine se o meu rendimento no banco fosse assim…

1.2 – GPU

Outro fator é o processamento paralelo, principalmente devido à GPU (Graphic process unit). Não confundir com a CPU, que é o coração de um computador.

Com a evolução dos computadores, ocorreu uma exigência cada vez maior na parte gráfica, devido aos jogos. A solução foi criar unidades de processamento especializadas em processar gráficos, a GPU (ou seja, os gamers financiaram este avanço na área de IA).

A CPU é como um carro, que se move rápido, porém leva pouca gente. A GPU é como um trem. É mais devagar que a CPU, mas transporta muito mais informação. Se for para transportar milhares de pessoas, é melhor ir de metrô do que alocar vários carros.

A parte mais pesada da rede neural é o algoritmo de treinamento, o backpropagation. Os cientistas da computação criaram meios de ‘enganar’ a GPU: disfarçaram a informação como um gráfico, para ser processada e devolvida à rede.

Hoje em dia, temos até TPU (Tensor process unit). A ideia é a seguinte. A GPU é para computação gráfica, e estava sendo utilizada via gambiarra para processar informação. Que tal uma unidade especialmente projetada para processamento paralelo? É a TPU.

Isso sem contar que, hoje em dia, não precisamos nem comprar o hardware. Dá para utilizar via cloud, alugando o tempo gasto, e o provedor do serviço se encarrega de ter o melhor hardware possível.

2 – Software

Além do hardware, ocorreu um avanço significativo em software.

Em 2019, Yoshua Bengio, Geoffrey Hinton e Yann LeCun ganharam o prêmio Turing, tipo o Nobel da computação, por terem fundado as bases para a IA sair do inverno.

Todo prêmio é injusto, no sentido de que deixa de fora dezenas de pessoas que contribuíram.

Destaco aqui três inovações importantes: erros numéricos, novos truques, pacotes open-source.

2.1 – Erros numéricos

Um backpropagation com dezenas de camadas e milhares de neurônios causa o efeito do “vanishing gradient”. Basicamente, as correções acabam ficando tão pequenas que desaparecem.

Aqui, cabe destacar que houve um avanço nos pacotes de álgebra linear como um todo, possibilitando que a computação seja feita com menor erro numérico e viabilizando a o backpropagation em várias camadas.

2.2 – Novos truques

Com o uso das redes neurais, um arsenal de novas técnicas foi sendo incorporado. Algumas:

Convolutional neural network: é uma camada de rede neural que funciona como uma janela deslizante – esta técnica performou melhor que todos os algoritmos de classificação comuns da época em reconhecimento de escrita

ReLu: é uma função de ativação extremamente simples, (= x se maior que zero, 0 se menor), porém, acrescenta uma não-linearidade interessante, que ajuda no problema do gradiente acima

Dropout: a fim de deixar a rede mais robusta, a cada rodada parte da informação é “jogada fora”. É como ler o mesmo livro várias vezes, porém a cada vez tirando algumas palavras por página – cada treinamento é mais difícil, porém a capacidade de generalização final acaba ficando maior.

Com o saco de truques maior, a própria arquitetura da rede passa a ser extremamente mais complexa. Combinar parte da rede convolucional, camadas com dropout, número de camadas, número de neurônios.

Há tantos hiperparâmetros que o desafio dos dias de hoje é descobrir a arquitetura ideal, não treinar a rede ou programar ela do zero.

2.3 – Poderosos pacotes Open Source

O Google empacotou as inovações citadas acima e lançou o Tensor Flow em 2015. O Facebook fez algo semelhante, com o PyTorch, de 2016, e há outras alternativas existentes. Note o timing, exatamente 10 anos depois do começo da minha pesquisa.

Não há nada melhor para um pacote computacional do que ter uma base grande de usuários engajados na causa: pessoas que vão utilizar, encontrar erros, enviar sugestões etc.

Todos os pacotes acima continuam em desenvolvimento e vão continuar enquanto a primavera da IA continuar.

Para o usuário, é fantástico. Não é necessário programar o neurônio artificial nem os complexos algoritmos de treinamento e arquitetura da rede neuronal, e sim, utilizar o conhecimento best in class do mundo. Grande parte das startups que vemos hoje utilizam pacotes como os citados.

O resultado é o que conhecemos hoje: algoritmos diversos reconhecendo padrões em imagens, sons e vídeos, em carros autônomos, fazendo forecast de falhas, batendo o ser humano em diversas áreas do conhecimento.

3 – Dados

Tão importante quanto software e hardware, são os próprios dados.

Hoje em dia, há uma quantidade praticamente ilimitada de dados digitais: fotos, vídeos, áudio.

Em 2006, as câmeras digitais já existiam, porém não eram onipresentes como é hoje. Eu me lembro de possuir uma câmera analógica na época, pois ainda eram mais baratas e melhores do que as digitais. A internet, idem. A minha era conexão discada. Eu esperava dar meia-noite, para me conectar e pagar apenas um pulso de telefone.

O grande gargalo dos métodos de IA da atualidade são os dados. Eles têm que ter quantidade e qualidade suficientes.

Hoje em dia, bancos de dados como ImageNet tem mais de um milhão de imagens rotuladas. Não consigo nem imaginar a quantidade de dados que o Google ou a Amazon têm à sua disposição.

Menção honrosa ao Mechanical Turk da Amazon. Ela é uma “inteligência artificial artificial”. São seres humanos fazendo trabalhos simples, como reconhecer objetos em imagens e transcrever palavras num áudio (e sendo parcamente remunerados).

O Mechanical Turk permitiu que aos cientistas da computação obterem informações cruciais: dados rotulados. Alguém tem que ensinar o computador que um gato é um gato, e não um copo ou um elefante.

No futuro, teremos mais dados ainda. A Internet das Coisas está chegando. Deve demorar um tempo para se consolidar, mas vai chegar forte um dia.

E qual o futuro da IA?

Houve um avanço extraordinário no campo da inteligência artificial, impulsionada principalmente pelas redes neurais.

Estamos hoje na primavera da IA, com uma miríade de possibilidades surgindo.

A curva S da inovação, olhada a longo prazo, parece mais com a “espiral da inovação”: picos e vales sempre crescentes.

Vale citar a Lei de Amara: “Tendemos a superestimar as inovações a curto prazo, e subestimar a longo prazo.”

Nos primórdios das redes neurais, já se sonhava com dispositivos inteligentes, algoritmos que bateriam a bolsa de valores, robôs que conversariam com o ser humano e dominariam a Terra.

Grande parte dos sonhos dos anos 70 não ocorreram nas décadas seguintes ao previsto. Estão ocorrendo hoje, 50 anos depois!

Vale notar que, embora as conquistas tenham sido extraordinárias, a IA ainda é restrita para casos bastante específicos: automatizar rotinas simples, reconhecer objetos em imagens, transcrever a linguagem falada, criar música nova rearranjando músicas pré-existentes.

Ainda não chegamos na IA geral, aí sim, uma inteligência que realmente competiria com o ser humano em tarefas difíceis: gerenciar, tomar decisões abstratas, programar a si mesmo, criar novos algoritmos, novos jogos.

Provavelmente, a Lei de Amara ocorrerá novamente. O conhecimento atual não será suficiente para chegar na IA geral. Será necessária a evolução de outros campos: hardware, software, dados, computação quântica, computação biológica, chips em 3D, e outros conceitos que não existem ainda.

Passaremos pelo verão, outono, um novo inverno, para alcançar uma nova primavera, daqui a algumas décadas.

Trilha sonora: Vivaldi – Primavera

Vivaldi – Inverno

Outros Links:

https://ideiasesquecidas.com/2017/10/25/a-artificial-inteligencia-artificial/

https://ideiasesquecidas.com/2020/04/17/o-computador-quantico-que-sabe-tudo/

https://www.theverge.com/2019/3/27/18280665/ai-godfathers-turing-award-2018-yoshua-bengio-geoffrey-hinton-yann-lecun

https://en.wikipedia.org/wiki/Vanishing_gradient_problem

https://en.wikipedia.org/wiki/Yann_LeCun

https://www.tensorflow.org/

https://pytorch.org/

A saída da Lei de Moore: hardware e software

Segue um artigo interessante.

Este defende que uma das saídas para a limitação da evolução dos computadores, a Lei de Moore, pode ser em software.

A Lei de Moore afirma que o número de transístores (unidade básica de computação) dobra a cada 18 meses, para um mesmo custo.

A grande miniaturização dos componentes eletrônicos dos últimos anos (e décadas) segue a curva prevista.

No final do dia, foi a evolução do hardware que permitiu o grande avanço computacional visto nos dias de hoje, em que um celular que cabe no bolso tem milhares de vezes de capacidade a mais do que o mais moderno supercomputador do passado.

Há algumas alternativas em hardware sendo exploradas: chips em 3D, computação biológica, computação quântica.

O artigo fornece mais uma alternativa: evolução em software.

Atualmente, há uma grande quantidade de sistemas que utilizam soluções prontas, como blocos de Lego que vão sendo montados sucessivamente uns sobre os outros. Ex. Python é uma linguagem de programação de alto nível, com poucos comandos é possível fazer muita coisa. Isso não é de graça, o preço é o overhead de processamento.

Se tais sistemas forem reescritos, tendo em vista a performance ao invés da velocidade em programar, podemos ter um grande aumento de velocidade para a mesma capacidade de processamento.

Ele chama de “redução” a reutilização de blocos de programação.

It sometimes yields a staggering amount of inefficiency. And inefficiencies can quickly compound. If a single reduction is 80 percent as efficient as a custom solution, and you write a program with twenty layers of reduction, the code will be 100 times less efficient than it could be.

Segue link: https://spectrum.ieee.org/tech-talk/computing/software/software-engineering-can-save-us-from-the-end-of-moores-law

A era dos cursos presenciais acabou!

Em termos de custo, qualidade e praticidade, cursos on-line vencem com facilidade. A única real desvantagem é a falta de networking entre os alunos.

Seguem algumas indicações.

Bolsa da Amazon e a Udacity, de introdução a machine learning. Vai até Julho.
https://sites.google.com/udacity.com/aws-machine-learning/home

Sobre Power BI, a EDX tem o curso a seguir – gratuito para visualização
https://www.edx.org/course/analyzing-and-visualizing-data-with-power-bi-2

A Kaggle é uma plataforma de desafios de data science. Já participei de alguns, e é num nível bem alto, com equipes do mundo todo e prêmios para os melhores colocados. https://www.kaggle.com/

Há opções mais completas (e pagas). Seguem algumas:

Nanodegree em Python, análise e visualização de dados na Udacity
https://www.udacity.com/course/data-analyst-nanodegree–nd002

Python básico, voltado para análise de dados, na EDX
https://www.edx.org/course/analytics-in-python

Para profissionais de Supply Chain, a indicação abaixo é do amigo Marcelo Tescari, um dos maiores especialistas no tema.
https://www.edx.org/micromasters/mitx-supply-chain-management

Há um universo muito maior a ser explorado, em business, finanças e outros ramos do conhecimento. Favor deixar outras indicações nos comentários.

Husky ou Lobo?

Um algoritmo de IA da Universidade de Washington conseguiu distinguir Lobos de Huskies, com 90% de acurácia! Um feito fantástico, considerando que são muito parecidos.

Os protocolos usuais, como separar dados de treinamento e de testes, tinham sido obedecidos, e por todas as métricas, o algoritmo era excelente.

Analisando a fundo, os pesquisadores descobriram a mágica. Ele estava reconhecendo a neve no fundo da foto. Se tinha neve, era lobo, se não tinha, era husky!

Nos modelos atuais, entramos com dados e resultados, e o que acontece lá dentro é uma caixa-preta. Hoje em dia, nem precisamos saber a matemática envolvida (infelizmente).

Uma foto de husky pode ser inofensiva, porém, imagine um carro autônomo que não reconhece pedestres com máscara e chapéu, por exemplo.

Por isso, precisamos evoluir para uma IA Explicável, a fim de entender o que está acontecendo, estabelecer relações causais e colocar restrições além do que é possível no método caixa-preta.

Este foi um dos temas discutidos no Informs 2020, que acontece on-line essa semana.

Informs Analytics Conference

O Informs é a maior instituição de Analytics e Operations Research do mundo, e anualmente faz uma conferência internacional.

Este ano, será virtual e gratuita (normalmente, custa uns 1000 dólares). É uma boa oportunidade, para quem gosta do assunto.

Saiba mais no link a seguir.

http://meetings2.informs.org/wordpress/analytics2020

Data Science com Papai Noel

Ajude o Papai Noel a otimizar a sua agenda de entregas!

Para quem é fera em otimização combinatória, a Kaggle lançou um desafio de agendamento de entregas: o Santa workshop tour (Santa Claus = Papai Noel. É um desafio com prêmios. O time que apresentar a menor rota ganhará um prêmio.

O Kaggle é uma plataforma de educação para ciência de dados, que trabalha na forma de desafios. Há diversos datasets bastante ricos, e técnicas de ponta de cientistas top do mundo todo – o nível é muito alto.

É possível formar times de até 5 pessoas.

Eu gostaria de formar um time brasileiro forte para concorrer. Alguém se habilita? Pré-requisito: background forte em Analytics, Python e Pesquisa Operacional.

https://www.kaggle.com/c/santa-workshop-tour-2019

Satya Nadella (CEO Microsoft), sobre computação quântica

O indiano Satya Nadella é o atual CEO da Microsoft, empresa fundada por Bill Gates. Nadella foi o responsável pelas grandes mudanças recentes da empresa, como direcionar esforços para cloud (ex. o Office 365 é extremamente poderoso).

No livro “Hit Refresh”, ele cita três tecnologias disruptivas: realidade mista, inteligência artificial e computação quântica. Não à toa, a Microsoft está investindo pesado nas três áreas.

Abaixo algumas frases, sobre computação quântica.

A computação quântica nos permitirá ir além do limite da Lei de Moore – a observação de que o número de transístores num chip de computador dobra a cada 2 anos – mudando a própria física da computação como conhecemos hoje.

Uma empresa de tecnologia que perde múltiplas tendências como esta ficará inevitavelmente para trás. Ao mesmo tempo, é perigoso perseguir tecnologias futuras não testadas e negligenciar o core do negócio atual. É o clássico dilema do inovador – arriscar o sucesso existente ao perseguir novas oportunidades.

Se construir um computador quântico fosse fácil, já teria sido feito.

Ao invés de apenas 0 ou 1 como num bit clássico, qubits podem estar em superposição, que permite várias computações simultâneas. Num algoritmo quântico propriamente construído, de acordo com um de nossos cientistas, ocorre um grande massacre em que todas ou muitas das respostas erradas são canceladas.

Problemas que computadores clássicos demorariam séculos para resolver, poderiam ser resolvidos por computadores quânticos em poucos minutos ou horas. Por exemplo, os níveis atuais de criptografia. Um computador atualmente demandaria 1 bilhão de anos para quebrar o RSA-2048, mas um computador quântico conseguiria quebrar em menos de 2 minutos. Felizmente, a computação quântica também revolucionará a computação clássica e a criptografia, levando a maior segurança ainda.

Computação quântica é o Santo Graal da tecnologia.

Links:

https://www.ciodive.com/news/microsofts-ceo-nadella-ai-mixed-reality-quantum-computing/507134/

https://arstechnica.com/gadgets/2017/09/microsoft-quantum-toolkit/

Ideias técnicas com uma pitada de filosofia

https://ideiasesquecidas.com/

Evolução e dicionários

O Dicionário Aurélio da Língua Portuguesa tem mais de 2000 páginas, onde mais de 150 mil verbetes se espremem, impressos em letras pequenas.

Dicionário_Aurélio_da_Língua_Portuguesa.jpg

Quando eu era criança, eu achava que os professores de língua portuguesa sabiam todas as palavras do dicionário.

Mas a verdade é que ninguém sabe todas as palavras do dicionário, e ninguém precisa saber.


Vejamos quantas palavras têm alguns dicionários:
Dicionário Aurélio: 150 mil palavras
Grande Dicionário da Língua Portuguesa: 306 mil verbetes
Dicionário Houaiss: 228 mil verbetes
Dicionário Oxford de Inglês: 290 mil verbetes
Dicionário Larousse da Língua Francesa: 93 mil verbetes
grande-dicionário-da-língua-portuguesa-o-antes-e-o-depois-nova-edição-atualizada.jpgdicionario
Dizem que precisamos saber umas 15 mil palavras para falar fluentemente alguma língua, qualquer seja. O que acontece na prática é que, com muito menos palavras, digamos umas 5 mil palavras, já conseguimos entender muita coisa do contexto e formar combinações de palavras.

Mas se usamos 15 mil palavras, porque tem 300 mil palavras no dicionário?

Nas línguas ocidentais temos tantas palavras, mas somente 26 letras: a, b, c, etc. Mas quando se estuda uma língua como o chinês, há uma quantidade assustadora de caracteres: pelo menos 20 mil no chinês, 10 mil no japonês.

wallpaper_kanji_training_grade_2_1080p_by_palinus-d87nev3.jpg

De novo, não é necessário conhecer tudo. Sabendo uns 3 mil caracteres é suficiente para ser fluente (não significa que seja fácil decorar 3 mil caracteres).


Distribuição Exponencial
Saber 10% das palavras e 10% dos caracteres existentes indica que as línguas têm uma distribuição exponencial, um Pareto. Isto significa que uma pequena porcentagem das palavras responde por quase todo o uso cotidiano da linguagem. Poucos detêm tudo, enquanto muitos nada têm. É igual à economia, queiram ou não os socialistas utópicos.


Mas porque existem 300 mil palavras? Um palpite: Evolução.

A humanidade surgiu há uns 500 mil anos, e a linguagem é uma forma de comunicar a realidade numa comunidade. As palavras moldam o mundo em que vivemos, e têm que ser úteis hoje, agora.

Novas palavras surgem a cada vez que há uma nova necessidade. Ou a cada pequeno grupo de pessoas que têm uma necessidade específica. Ou a cada vez que há troca de ideias entre culturas diferentes.

Assim como na evolução das espécies, novas palavras surgem a todo momento. Algumas “pegam”, outras não, numa seleção natural. As palavras que usamos hoje não necessariamente serão usadas amanhã. As palavras antigas são descartadas da linguagem, no máximo se transformam num verbete esquecido num dicionário.


O nosso DNA também contém muitas palavras esquecidas. Cientistas estimam que 98 % do nosso DNA não serve para nada. É o que eles chamam de “junk DNA”. Talvez estes sejam pedaços de código que um dia serviram para alguma coisa, mas pela evolução foram deixados de lado em algum momento. Ou talvez nunca tenham servido para nada, mas é muito mais difícil subtrair algo que está pronto e rodando, do que simplesmente acrescentar uma funcionalidade a mais.
maxresdefault.jpg
Para os que escrevem códigos computacionais, a mesma coisa. Se um software evolui, ele vai deixar uma porção de “código legado”. Milhares de linhas de código ineficiente ou inútil, mas que um dia serviram para alguma coisa.
O tradeoff é o seguinte. Como tudo evolui, sempre surge a necessidade de alguma mudança, adequação, nova necessidade. Para fazer um puxadinho do sistema que está funcionando, o desenvolvedor vai gastar umas 40 horas. Para recomeçar tudo do zero, tornando todo o sistema o mais eficiente possível, o mesmo desenvolvedor vai demorar umas 500 horas, isso se não causar outros problemas.
Este mesmo comportamento é válido para as ideias, músicas (quantas músicas existem e quantas conhecemos?), filmes (quantos atores existem e quantos conhecemos?) e para quase tudo o que interessa neste mundo exponencial.

A linguagem ótima
Imagine que um acadêmico utópico invente uma linguagem otimizada. Somente as 15 mil palavras mais usadas, com regras gramaticais simples. E que o mundo inteiro adotasse essa linguagem: todos os outros dicionários de todas as línguas seriam apagados para sempre. O que aconteceria?
A sociedade não deixa de evoluir. Novos fenômenos teriam que ser descritos por novas palavras. Sei lá, um bando de pessoas criam uma religião chamada “barraquismo”, onde a missão deles é morar em barracas. E o mestre desta seita não é uma pessoa comum, não é um professor. É um “magnum barracão”.
2015-03-19-1426803829-9735139-8f524af8ef2b50a4dab24786229c28c11.jpg
A tecnologia não deixa de evoluir. Certamente novas palavras surgiriam para descrever novas empresas, ideias, técnicas. Digamos, um wi-fi por satélite é um “sat-fi”.
As coisas são diferentes de um lugar para o outro. O pãozinho do Brasil é diferente do pãozinho do Tibet. Como diferenciá-los se o nome for o mesmo?
Ou seja, mesmo que a linguagem ótima universal tenha 15 mil palavras, a linguagem real sujeita à evolução vai criar mais e mais palavras com o tempo, até voltar para as 300 mil palavras e infindáveis dialetos do nosso mundo!
Portanto, não precisamos saber todas as palavras do dicionário. Devemos saber usar o dicionário, saber que a linguagem é dinâmica e que podemos criar novas palavras e novos mundos através dela.

https://pt.wikipedia.org/wiki/Dicion%C3%A1rio_Aur%C3%A9lio

http://www.streetsmartlanguagelearning.com/2013/02/how-many-words-does-average-native.html

Fontes: dicionarioegramatica.com.br

How much of our DNA is junk?

O imbecil eletrônico

Linguagem de máquina de baixo nível:
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Vire 90 graus à esquerda
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Levante o braço direito 90 graus
Segure a porta
Puxe o braço direito
Levante o braço direito 135 graus
Pegue o conteúdo na primeira fileira à direita, na terceira posição
Puxe o braço direito
Segure a porta
Empurre a porta com o braço direito
Vire 180 graus
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Vire 90 graus à direita
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Ande um passo com a perna direita
Ande um passo com a perna esquerda
Ande um passo com a perna direita
Ande um passo com a perna esquerda


Linguagem de programação de alto nível:
for 1 to 3
{
Ande um passo com a perna direita
Ande um passo com a perna esquerda
}
Vire 90 graus à esquerda
for 1 to 2
{
Ande um passo com a perna direita
Ande um passo com a perna esquerda
}
Abra a porta da geladeira
Pegue o conteúdo na primeira fileira à direita, na terceira posição
Feche a porta
Vire 180 graus
for 1 to 2
{
Ande um passo com a perna direita
Ande um passo com a perna esquerda
}
Vire 90 graus à direita
for 1 to 3
{
Ande um passo com a perna direita
Ande um passo com a perna esquerda
}


Linguagem de seres humanos

    – Pegue uma cerveja para mim, por favor.

 


 

O mais poderoso supercomputador existente hoje em dia pesa 1,5 kg e está entre nossas orelhas: é o cérebro humano.

 

quote-the-computer-is-a-moron-peter-drucker-8-19-15.jpg