My project in the Qiskit Mentorship Program 2022

At last, I finished my project, “VQE optimization with dynamic shot scheduling”, in the Qiskit Mentorship Program 2022!

Here, some conclusions and tips for those who want to learn a lot in the raising field of Quantum Computing.

What is Qiskit and what is the Advocate Program?

Qiskit is the IBM programming language for Quantum Computing.

The Qiskit Mentorship Program is an initiative of IBM, to match Qiskit Advocates enthusiasts and IBM Quantum specialists, to increase contributions / participation in this small community of aficionados.

It is a great chance to learn a bit more about Quantum Computing, also to do a small contribution to the community.

About the prerequisites:

A prerequisite is to be a Qiskit Advocate. To be an advocate, the first step is to pass a test on Qiskit language, the IBM Certified Associate Developer. It also requires contributions in this field (a paper, or articles).

After that, you can apply to the Qiskit Advocate program. There is a yearly process to that. Once approved, you will be part of an exclusive group, and eligible to the Mentorship Program.

About the mentorship program and timeline of the project

There are two mentorship programs per year.

My application began in February 2022, with a list of projects suggested by mentors and necessary skills.

There are several themes, including tutorials, optimization, quantum machine learning and so on. The advocates can candidate to work in the projects, and, if they are accepted, the match is made. It is possible to have groups of advocates working together in the project.

A list of projects for QAMP can be consulted at [1].

From official kickoff to final showcase, we have three months to deliver the project, with the help of the mentor. In my case, my mentor was Julien Gacon, from Germany, currently working at IBM Swiss.

There are two intermediary checkpoints, first a kick meeting to show the status of the works, and the second, a written report.

I did a weekly meeting with the mentor, using Zoom. Besides, chat and exchange of information via Slack platform. In today’s world, we have several tools that makes it very easy to work with anyone around the world.

About the project: “VQE optimization with dynamic shot scheduling”

Despite the confusing name, the idea is not so strange for those who know a bit of optimization.

Let’s go bit by bit (or qubit by qubit).

In current near term quantum era, variational algorithms (like VQE — Variational Quantum Eigensolver) can be very useful. Those are hybrid classical-quantum: one part of the circuit is quantum (the encoded problem), and another part is classical (the parameters that minimize the output of the circuit).

There are applications of VQE in the simulation of chemical molecules, for example.

In current quantum era, those are problems in VQE like circuits:

– Shots (evaluations of the circuit) are expensive in a real quantum computer

– Noise is a problem

There are several possible approaches to maximize performance:

– Choosing better Ansatz (circuits that represent the problem)

– Changing how to choose the cost function

– Use and tuning of several gradient and non-gradient methods

In the case of my project, we used a strategy that adapts the number of shots. In general terms, more noise, more shots are necessary.

The method is based on the paper of Kubler at al. [2], where he cites adaptive shots is the most efficient optimizer, looking at the total number of shots. The algorithm has the name ICANS (individual Coupled Adaptive Number of Shots).

How to measure the noise? A proxy for noise is the variance of results of shots. The bigger the variance, the bigger the noise, and then, more shots are necessary, in next round of optimization.

This method estimates the number of shots per round, also per partial derivative of the gradient.

I hope now the title of the work is clearer: VQE optimization (the hybrid quantum classical circuit) with dynamic shot scheduling (different shots per round per partial derivative, more noise more shots).

The tests we made, based on benchmarks against Gradient Descent and SPSA, confirmed results of reference papers.

As a deliverable, I wrote a code in Qiskit, with iCANS as new subclass of VQE. I opened a pull request on Github, to incorporate this code in Qiskit. It was my first contribution in an open source project.

Conclusion

In the end of the program, IBM kindly offers a certified badge for those who completed all the steps of the program:

(https://www.credly.com/badges/8c43a076-9de1-4af2-b054-e903473a7869).

I hope this little description of the program could clarify some questions and inspire more people to join us in this beautiful journey.

Quantum computing is a promising field. According to McKinsey: “Big pharma could apply quantum computing to protein structure and interactions, an opportunity worth $200 billion. Telecoms could use it to optimize their capital spending, worth a potential $50 billion to $70 billion.” [3]

Thanks, IBM, for the opportunity and my mentor Julien Gacon for the patience and dedication.

By Arnaldo Gunzi, Project Manager on Advanced Analytics, AI and Quantum Computing, in a big paper & pulp industry in Brazil.

Follow me on LinkedIn: https://www.linkedin.com/in/arnaldogunzi/

[1] https://github.com/qiskit-advocate/qamp-spring-22

[2] An Adaptive Optimizer for Measurement-Frugal Variational Algorithms. Jonas M. Kübler, Andrew Arrasmith, Lukasz Cincio, Patrick J. Coles https://arxiv.org/abs/1909.09083.

[3] https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/tech-forward/the-path-forward-for-quantum-computing

Computação Quântica na capa da Scientific American Brasil, junho de 2022

Fico feliz ao ver o meu tema favorito de todos os tempos começando a ganhar destaque!

Enquanto a computação clássica usa o bit, 0 ou 1, o paradigma da computação quântica é o qubit (quantum bit), que pode ser 0, 1, ou qualquer superposição entre ambos os valores. A superposição vale até o qubit ser medido, e então o valor colapsa para 0 ou 1 (lembra do gato de Schrödinger, ao mesmo tempo vivo e morto, até alguém abrir a caixa?).

Além da superposição, outra propriedade-chave é o emaranhamento: dois qubits podem ficar entrelaçados, de modo que ambos colapsem para o mesmo valor quando medidos – o que Einstein chamou de “Ação fantasmagórica à distância”.

O artigo foca em correção de erros. Erros sempre existem e sempre existirão, devido à ruído na comunicação, decoerência de qubits, etc. É importante ter taxa de erro baixa e tratar os erros que acontecerem.

Em computação clássica, uma forma de fazer correção de erros é inserindo redundância. Posso simplesmente replicar o valor: se quero transmitir 0, posso repetir o mesmo três vezes (000). Se, por algum ruído, o 000 virar 010, tenho como saber que há algo estranho e corrigir a informação.

Replicar qubits não funciona. Um qubit não pode ser clonado (teorema da não-clonagem). A técnica para correção de erros deve ser mais sutil e indireta: usar qubits auxiliares emaranhados com os qubits de dados, como uma grade quadrada bidimensional, parecendo um tabuleiro de xadrez. Esta técnica é chamada de “código de superfície”.

Porém, o código de superfície é denso demais, e a autora (Zaira Nazario, da IBM) relata interferência entre qubits, nos computadores quânticos a supercondutores da IBM.

Por fim, o artigo comenta outra configuração entre qubits de dados e auxiliares que eles estão pesquisando, o layout “hexadecimal pesado”. Este lembra um grid de hexágonos, que tem a vantagem de ser menos denso que o layout do tabuleiro de xadrez, mitigando problemas. É o estado-da-arte da correção de erros quântica.

Mais do que o conteúdo técnico, é muito bom ver este tópico sendo discutido nas revistas de divulgação científica.

Aplicações potencialmente disruptivas de Quantum computing: cybersegurança, otimização combinatória e simulação de moléculas químicas.

Aproveitando. Gerencio um grupo de whatsapp sobre #quantumcomputing, com os amigos da Brazil Quantum e outros entusiastas sobre o tema. Para quem quiser receber notícias como essa, o link é: https://lnkd.in/dRm_MbD4 (vou desativar o mesmo em 24h, para evitar spammers).

Post no Linkedin.

Destaques de Hanover 2022 – Cybersegurança

Cybersegurança é extremamente importante no mundo de hoje, e foi um dos temas quentes abordados na feira de Hannover 2022. Seguem algumas reflexões:

  • Ocorre um cyberataque a cada 39 s, e houve aumento de 300% durante pandemia
  • 85% mais Malwares atualmente (Wanna Cry, Log4J)
  • Evolução diária, difícil prever
  • Além da segurança em IT, mais dois elos frágeis: OT e supply chain. 2/3 dos ataques ocorrem via supply chain
  • Arquitetura Zero trust. Antigamente, era só uma barreira externa, quem passasse tinha acesso a todo o sistema. Agora, mesmo com acesso permitido, o escopo de atuação é limitado e há constante checagem de acesso
Sobre zero trust network. Natalia Oropeza, Chief Cybersecurity Officer, Siemens

  • Chart of trust: grupo de fornecedores e reguladores, para troca rápida de informação sobre ataques
  • A maioria das empresas não possui um plano de respostas a incidentes. Quando possui geralmente não há procedimentos claros contendo as responsabilidades de cada área, pessoas treinadas ou ferramentas para auxiliar na análise e investigação
  • Muitas vezes se compram ferramentas tecnológicas para atender solicitações de acionistas, clientes, etc. Porém não se sabe como e quando usar essas ferramentas

Tendências:

  • Corrida evolutiva do tipo predador-presa. A evolução de ataques está sujeita à Lei de Moore, daí tomar cuidado
  • Fronteiras OT-IT aumentando (dispositivos na nuvem, edge computing, IOT), por consequência aumenta a necessidade de ferramentas e processos de proteção
  • O primeiro passo é fazer o gerenciamento de riscos
  • Depois, conhecer bem a topologia do seu sistema e ter um inventário dos ativos
  • Ter definida de forma clara as responsabilidades de cada área / pessoas
  • Em caso de um incidente a empresa precisa ser proativa e saber onde e como coletar as evidências para melhorar na investigação
  • Possuir empresas parceiras para consultoria, implementação de SIEM (Security Information and Event Management) e outras ferramentas de análise

By Arnaldo Gunzi / Guilherme Bittencourt

Veja também:

Meetup Computação Quântica

Tive a honra de ser convidado para um Meetup do Centro de #Analytics Raízen, para comentar do meu tema favorito: computadores quânticos.

Discutimos conceitos básicos Bit x Qubit, sobreposição, entanglement. Algumas aplicações possíveis: quebrar criptografia atual, criar uma nova criptografia à prova de espiões, avanços em algoritmos de otimização e de simulação de moléculas químicas.

Como o pessoal ali é fera, também pediram algumas demonstrações na linguagem #Qiskit, da #IBM.

Por fim, experimentos que venho conduzindo na #Klabin e algumas das (enormes) dificuldades encontradas para fazer esta tecnologia virar realidade na prática.

Em resumo, #quantumcomputing é uma tecnologia que pode ser disruptiva (ou não) nos anos vindouros: se vingar, alguns setores da indústria e do governo podem sofrer enorme impacto, se não vingar, pelo menos parte da teoria será útil para atacar problemas do mundo atual, por uma perspectiva completamente nova.

Caça-Palavras em Excel-VBA

Para que comprar Caça-Palavras em bancas de jornal? Crie o seu próprio passatempo personalizado com suas palavras.

Segue para download (https://1drv.ms/x/s!Aumr1P3FaK7joBK0yc8350kgX5rH) uma implementação em VBA.

Basta listar as palavras a serem escondidas e rodar, com macros ativadas.

É uma rotina relativamente simples, e um bom exercício é tentar reescrevê-la do zero.

O procedimento é:

– Ler as strings

– Para cada uma, sortear se a posição é horizontal ou vertical

– Pelo tamanho, verificar quais as posições iniciais onde a palavra “cabe”

– Sortear uma posição inicial

– Verificar se a palavra inteira coincide com outras palavras já postas e repetir até conseguir

– Preencher casas restantes com letras aleatórias

O “Modo debug” não preenche o restante com letras aleatórias, é só para conferir se a lógica funciona.

É possível adaptar para deixar mais fácil e lúdico, para crianças: mudar a fonte, aumentar tamanho das células, cores, etc…

A cada vez que rodar, um resultado diferente vai ser gerado.

No exemplo a seguir, inseri um “BLUEBERRY” a mais.

Outro exercício computacional é o inverso: a partir do caça-palavras, tentar descobrir onde está a palavra, a partir de uma lista – basta algumas varreduras com loop “for”.

Dica: Coloco no link a seguir alguns dos trabalhos mostrados nesse espaço.

https://ferramentasexcelvba.wordpress.com/

Raspberry Pi

Recentemente, comprei um Raspberry Pi 3, com a ajuda do amigo Wagner Gurgel, e gostaria de compartilhar a experiência e usos possíveis.

O Raspberry é como um mini-computador, basicamente só uma placa. Todo o resto, teclado, mouse, monitor deve ser providenciado à parte, assim como cartão SD para instalar o sistema operacional. Em geral, qualquer teclado e mouse com porta USB funciona, e monitor ou televisão com entrada HDMI.

O jeitão do rasp é como o da foto abaixo. Cabe na palma da mão.

Como não tenho monitor sobrando, utilizo a televisão mesmo, para usar o rasp – também descobri que dá para acessar o mesmo remotamente, via SSH ou utilizando tipo um acesso remoto. O rasp 3 também tem wireless, isso é um recurso bem interessante.

É como se fosse realmente um pequeno computador, e um dos usos possíveis é exatamente este: um pequeno computador.

Ser um computador extra já é útil no meu caso. Tenho três filhas e a maior tem um notebook velho (com Linux porque Windows em computador velho é doloroso demais). Já a do meio, que está crescendo, vira e mexe tem que ou esperar ou pegar emprestado algum dos notebooks de casa, para fazer lição. O rasp é útil neste caso.

Alguns outros usos possíveis: como central multímidia, para ficar tocando músicas ou algum filme. Ou como uma espécie de servidor, para realizar tarefas periódicas. Ou para diversos projetos do tipo do-it-yourself, onde há inúmeros tutoriais pela internet.

Quem é muito aficcionado por eletrônica vai adorar.

Eu fiz segundo grau técnico em Telecomunicações, nos anos 90, e tinha muita eletrônica envolvida: protoboard, resistores, capacitores, transístores, multímetros… viagens à Rua Santa Efigênia, em São Paulo, para adquirir componentes… bons tempos.

Lembro que o trabalho final de uma das matérias era fazer algum projeto completo, incluindo a placa e soldar os componentes, e testar. O meu grupo pegou uma daquelas revistas do tipo Eletrônica Total, e escolhemos um bloqueador de DDD. Era muito muito primitivo, só funcionava naqueles telefones de disco antigos.

Isso porque o telefone de disco tinha um funcionamento extremamente simples. Se o 8 era discado, o telefone enviava 8 pulsos, por isso, era relativamente fácil detectar o número discado, e era a partir disso que funcionava o circuito. Dedicamos um bom tempo montando o trabalho.

O resultado final foi mais ou menos bom. O projeto funcionava parcialmente. Às vezes funcionava, outras não… o suficiente para passar de ano. Porém, foi muito divertido e extremamente didático.

O último uso do rasp é aprendizado. É extremamente didático. Recebemos uma placa só, e aí, montar o case, colocar os periféricos, tudo isso é opção nossa. Além disso, é um computador pequeno e com limites. Hoje em dia, os recursos computacionais são tão vastos que a gente esquece que memória tem limites e processamento é um recurso escasso.

É muito legal, recomendo para os curiosos e amantes de eletrônica!

https://www.raspberrypi.org/

Digital Minds – A Década Quântica

Participei da série Digital Minds, da IBM, com a participação de alguns dos maiores especialistas do Brasil. Uma mesa-redonda sobre computação quântica e aplicações.

Alguns dos tópicos:

  • Que sugestões você daria para CEOs e CIOs que pretendam implementar uma estratégia de computação quântica nos negócios?
  • Quais aplicações com maior potencial?
  • Quais os maiores riscos e qual o status atual da tecnologia?

Confira no link a seguir.

Sugestões para implementar Comp Quântica nos negócios

Dei uma entrevista à série “Digital minds”, da IBM, que será divulgada em alguns dias.

Foram várias perguntas e tinham outras pessoas na discussão, mas segue uma palhinha, sobre uma das perguntas:

Que sugestões você daria para CEOs e CIOs que pretendam implementar uma estratégia de computação quântica nos negócios?

As principais aplicações possíveis, para todas as indústrias, são: Cibersegurança / Simulação de moléculas químicas / Otimização.

  • Cyber: potencial de quebrar a criptografia atual / corrida para adotar protocolos resistentes à ataques de computadores quânticos.
  • Simulação de moléculas químicas: é a ideia original de Richard Feynman. Para simular propriedades quânticas dos átomos, porque não utilizar um computador quântico?
  • Otimização: problemas presentes em toda indústria, como roteirização de veículos, sequenciamento de produção, matching, trim da máquina de papel

É uma tecnologia disruptiva em futuro visível. E está havendo uma corrida para desenvolver melhores e maiores computadores. Ex. China X EUA.

Um dia a computação quântica vai se tornar tão relevante quanto IA é hoje.

Vejo dois maiores riscos, em paralelo com o que vem acontecendo com a Inteligência Artificial nos dias de hoje: 1) Falta de especialistas no mercado e 2) Aplicações que dizem usar IA mas que não geram valor real.

Para tal:
1) Já começar a preparar times internos que entendam do tema e que dominem os problemas do negócio. Ter pessoas minimamente antenadas no que vem acontecendo.

2) Ter em mente que vai demorar muitos anos para colher resultados, mas que sem o patrocínio das empresas atuais será muito difícil conseguir.

Para dar uma ideia do potencial, anotei alguns números deste relatório da McKinsey.

O tamanho do impacto na indústria farmacêutica $200 bilhões. Em Telecom, $50 bilhões.

https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/tech-forward/the-path-forward-for-quantum-computing

Quem conseguir se preparar vai ficar à frente das outras.

Escaravelho Dourado: decifre o enigma de Allan Poe com Python

“O Escaravelho Dourado” é um pequeno conto, do escritor americano Edgar Allan Poe, publicado em 1843.

O enredo narra a história de William Legrand, supostamente picado por um escaravelho dourado. Seu servo Júpiter teme que Legrand fique louco, e com a ajuda do narrador anônimo, partem para uma aventura que envolve uma mensagem criptografada e um tesouro escondido.

Sem mais delongas, os aventureiros se depararam com a seguinte mensagem.

53‡‡†305))6;4826)4‡.)4‡);80 6;48†8¶60))85;1‡(;:‡8†83(88) 5†;46(;8896?;8)‡(;485);5

2:‡(;49562(5-4)8¶8;40692

85);)6†8)4‡‡;1(‡9;48081;8:8‡1

;48†85;4)485†528806*81(‡9;48

;(88;4(‡?34;48)4‡;161;:188;‡?;

A primeira informação é que a mensagem está em inglês. O narrador cita que, tendo decifrado inúmeras mensagens criptogradas, é essencial saber qual a linguagem em que este está escrito.

A seguir, ele faz uma contagem dos caracteres existentes.

Em Python, podemos utilizar um set para listar os caracteres únicos, como mostra o código a seguir.

strOriginal = "53‡‡†305))6;4826)4‡.)4‡);806;48†8¶60))85;1‡(;:‡8†83(88)5†;46(;8896?;8)‡(;485);5†2:‡(;49562(5-4)8¶8;4069285);)6†8)4‡‡;1(‡9;48081;8:8‡1;48†85;4)485†528806*81(‡9;48;(88;4(‡?34;48)4‡;161;:188;‡?;"

caracteres = set(strOriginal)

A seguir, podemos contar o número de vezes que cada caractere aparece na string, e imprimir o resultado:

dictCaract ={}

for ch in caracteres:
dictCaract[ch] = strOriginal.count(ch)

for i in sorted(dictCaract, key = dictCaract.get, reverse=True):
print(i, dictCaract[i])

Resultado:
8 33
; 26
4 19
‡ 16
) 16

13
5 12
6 11
( 10
1 8
† 8
0 6
2 5
9 5
: 4
3 4
? 3
¶ 2
. 1

-1

O caractere ‘8’ aparece 33 vezes, seguido pelo caractere ‘;’, 26 vezes. Em inglês, “e” é a letra mais comum, então um bom chute é considerar ‘8’ -> ‘E’. Vou utilizar maiúsculas para indicar a string trocada.

A seguir, o narrador nota que a cadeia de strings ‘;48’ aparece com grande frequência no texto, e o último caractere é “E”.

O ‘THE’ é um artigo bastante comum na língua inglesa, de modo que as substituições ‘;’ -> ‘T’, ‘4’ -> ‘H’ parecem ser um bom chute.

Em Python, é só usar a função replace:

str2 = strOriginal.replace('8','E')
str2 = str2.replace(';','T')
str2 = str2.replace('4','H')

Resulta em:

53‡‡†305))6THE26)H‡.)H‡)TE06THE†E¶60))E5T1‡(T:‡E†E3(EE)5†TH6(TEE96?TE)‡(THE5)T5†2:‡(TH9562(5-H)E¶ETH0692E5)T)6†E)H‡‡T1(‡9THE0E1TE:E‡1THE†E5TH)HE5†52EE06*E1(‡9THET(EETH(‡?3HTHE)H‡T161T:1EET‡?T

Ainda bastante ininteligível, porém, um pouco mais familiar.

Pescando algumas palavras, há um trecho assim: ‘t(ee’, que pode ser ‘tree’, indicando a substituição ‘(‘ -> ‘R’.

O trecho fica:
the tree thr‡?3h the.

A palavra ‘through’ indica novas letras ‘O’, ‘U’ e ‘G’, representadas por ‘‡’, ‘?’ e ‘3’.

No Python, letra por letra (é possível por outros meios em massa, mas assim é mais didático).

str2 = str2.replace('(','R')

str2 = str2.replace('‡','O')
str2 = str2.replace('?','U')
str2 = str2.replace('3','G')

Resultando em:

5GOO†G05))6THE26)HO.)HO)TE06THE†E¶60))E5T1ORT:OE†EGREE)5†TH6RTEE96UTE)ORTHE5)T5†2:ORTH9562R5-H)E¶ETH0692E5)T)6†E)HOOT1RO9THE0E1TE:EO1THE†E5TH)HE5†52EE06*E1RO9THETREETHROUGHTHE)HOT161T:1EETOUT

Outras pistas:
†83(88, ou †egree,

Deixando clara a palavra ‘degree’, e a substituição ‘†’ por ‘D’.

Outro trecho parcialmente traduzido fica ”TH6RTEE‘, evidentemente ‘thirteen’, ‘6’ -> ‘I’ e ‘‘ -> ‘N’.

O início, ‘5GOOD’, indica o ‘5’ como ‘A’.

Colocando todas as pistas no Python, temos:

str2 = str2.replace('†','D')
str2 = str2.replace('6','I')
str2 = str2.replace('*','N')

str2 = str2.replace('5','A')

Texto parcialmente decifrado:

AGOODG0A))INTHE2I)HO.)HO)TE0INTHEDE¶I0))EAT1ORT:ONEDEGREE)ANDTHIRTEEN9INUTE)NORTHEA)TAND2:NORTH9AIN2RAN-H)E¶ENTH0I92EA)T)IDE)HOOT1RO9THE0E1TE:EO1THEDEATH)HEADA2EE0INE1RO9THETREETHROUGHTHE)HOT1I1T:1EETOUT

Allan Poe para por aí, dizendo que o resto segue a mesma lógica, e realmente não é difícil. Por exemplo, ‘9INUTE)’ significa ‘MINUTES’; pelo contexto de direção, ‘NORTHEA)T’ significa ‘NORTHEAST’ e assim por diante.

Fechando a cifra:

str2 = str2.replace('0','L')
str2 = str2.replace(')','S')
str2 = str2.replace('2','B')
str2 = str2.replace('.','P')
str2 = str2.replace('¶','V')
str2 = str2.replace('1','F')
str2 = str2.replace(':','Y')
str2 = str2.replace('9','M')
str2 = str2.replace('-','C')

Resulta em:

AGOODGLASSINTHEBISHOPSHOSTELINTHEDEVILSSEATFORTYONEDEGREESANDTHIRTEENMINUTESNORTHEASTANDBYNORTHMAINBRANCHSEVENTHLIMBEASTSIDESHOOTFROMTHELEFTEYEOFTHEDEATHSHEADABEELINEFROMTHETREETHROUGHTHESHOTFIFTYFEETOUT

Como está sem pontuação e espaço, estes devem ser inseridos:

“A good glass in the Bishop’s hostel in the Devil’s seat — forty-one degrees and thirteen minutes — northeast and by north — main branch seventh limb east side — shoot from the left eye of the death’s-head — a bee-line from the tree through the shot fifty feet out.'”

[Um bom vidro no hotel do bispo na cadeira do diabo – quarenta e um graus e treze
minutos nordeste quadrante norte – tronco principal sétimo galho lado leste – atirai do
olho esquerdo da caveira – uma linha de abelha da árvore através o tiro cinqüenta pés
distante.]

Esta é uma cifra de substituição simples, onde cada palavra é trocada por um caracter específico. Sabendo o dicionário, é possível cifrar e decifrar uma mensagem. Cifras deste tipo são conhecidas desde o Império Romano, e são muito frágeis, bastando um ataque de contagem e força bruta, como demonstrados no conto. Atualmente, há métodos de chave assimétrica como o RSA, extremamente mais avançados. Porém, na época de Allan Poe, este era o melhor que existia, e o conto do “Escaravelho dourado” ajudou a popularizar a ciência da criptografia.

Vide o código completo no Colab: https://colab.research.google.com/drive/1l1MztHdxUHdJl1yW4NZzn1heDUvoSoJJ?usp=sharing

Visite o meu blog pessoal https://ideiasesquecidas.com/

Conto ‘Golden Bug’, de Edgar Allan Poe https://poestories.com/read/goldbug

Conto em português, “O Escaravelho Dourado”

Certificado – Quantum Excellence

Compartilhando o Certificado de Quantum Excellence da IBM, para quem passou pelo Summer School deste ano.

Vide comentários sobre essas duas semanas de treinamento aqui: https://medium.com/arnaldo-gunzi-quantum/comments-on-qiskit-summer-school-2021-quantum-machine-learning-4ff5523c6761

Outro post que pode ser de interesse: https://medium.com/arnaldo-gunzi-quantum/how-to-get-the-qiskit-developer-certificate-8dcd3b31fcb0

Agradeço a todos pela ajuda e suporte de sempre!

Comentários sobre o Qiskit Summer School 2021 – Quantum Machine Learning

O Qiskit Summer School é um evento patrocinado pela IBM, para divulgação de computação quântica. Qiskit é o nome da linguagem desenvolvida pela IBM. Este ano, foi a segunda edição do evento, e o tema foi Quantum Machine Learning.

Uma primeira curiosidade, é que este ano foram 5000 vagas (ano passado, 2000), e essas acabaram em poucos minutos após a abertura das inscrições. Bastante gente reclamou que entrou exatamente no horário de abertura e já via o número de vagas esgotada. Isso mostra o interesse crescente pelo tema – e o privilégio de assistir as aulas.

Foram duas semanas de aulas, e 5 rodadas de laboratórios – cada qual com número variável de exercícios valendo nota.

Resumo rápido do conteúdo.


Semana 1:

  • Circuitos básicos
  • Algoritmos simples
  • Ruído em computadores quânticos
  • Machine learning clássico
  • Quantum classifier
  • QAOA

Mais da metade da semana 1 foi de conteúdo básico, só no finalzinho que realmente começou a ficar divertido. O conteúdo até falou de machine learning clássico (redes neurais, backpropagation), mas o foco foi em cima de Support Vector Machines, uma técnica de classificação um pouco diferente.

Por fim, introdução à técnica de otimização QAOA, que é um misto de quântico com clássico: a representação do problema é por um circuito quântico, porém a otimização dos parâmetros, via métodos clássicos.

O lab dos circuitos básicos foi tranquilo, o da parte SVM e QAOA deu um pouco mais de trabalho, mas nada impossível. Não posso divulgar minhas respostas, por enquanto. Vou esperar a IBM liberar oficialmente o conteúdo do curso para o público em geral.


Semana 2:

  • Classificadores lineares
  • Quantum kernel
  • Treinamento de circuitos quânticos
  • Hardware e ruído
  • Capacidade e circuitos avançados
  • Encerramento e discussões sobre rumos futuros

A melhor parte do curso foi a semana 2. Conhecimento de ponta, com conteúdo que não tem nem três anos desde a primeira citação.

O Support Vector Machine tem uma limitação, que é o fato de ser linear. É possível fazer um truque para contornar: pegar os mesmos dados e representá-los de forma não linear, através de um feature map. O kernel é uma generalização do feature map, para uma função mais complexa.

Pode haver vantagem quântica exponencial se a função for complicada para representar classicamente e simples de representar quanticamente – mas isso também não é garantido sempre.

Carregar dados em estados quânticos pode ter custo exponencial, o que pode jogar por terra qualquer vantagem quântica – uma solução possível é utilizar um esquema aproximado de dados, perdendo uma parte pequena da informação.

Muito impressionante é uma pesquisadora chamada Amira Abbas. Ela deu umas três aulas ou mais. Bastante didática, nova (assim como todos ali), realmente manjava do conteúdo – para quem se interessa pelo tema, vale a pena acompanhá-la.

Uma discussão bastante interessante foi a de capacidade. Em machine learning clássico, temos sempre o dilema underfitting (modelo fraco demais) – overfitting (parâmetros demais, o que causa perda de generalização). Sempre achei que isso era apenas dependendo do tamanho do modelo, mas foi demonstrado, através de experimento de labels aleatórios, que os dados também influem. Desde então, está havendo diversas propostas de medir a capacidade não só em função do tamanho, mas de características bem específicas dos dados também.

Sobre os labs: em geral, não foi difícil. Era basicamente seguir o roteiro dado pelos professores. Algumas poucas linhas, e a maioria já estava pronto. Tenho a impressão de que o Summer School foca mais na aula e no conteúdo teórico, e menos nos labs em si. Para códigos difíceis, a IBM lança os desafios.

Agradeço à IBM pela iniciativa, pelo conteúdo de mais alto nível disponibilizado, e parabenizo pela liderança no tema.

No formulário de feedback, era pedido uma foto para ajudar na divulgação do evento, e esta foi a que enviei.


Ideias Analíticas Avançadas
Um mundo melhor através do Analytics

Inovação e computação quântica

Bati um papo sobre computação quântica com o Rafael Veríssimo, fundador da startup Brazil Quantum.

A computação quântica é uma forma fundamentalmente diferente de fazer computação. Ao invés dos tradicionais bits (0 ou 1), temos qubits, utilizando propriedades quânticas como sobreposição e emaranhamento.

Não são todos os problemas em que há ganho em usar tal abordagem. Algumas das aplicações possíveis são: simulação de moléculas químicas, criptografia (tanto quebrar a criptografia atual quanto criar uma criptografia indecifrável por natureza) e otimização combinatória.

É uma tecnologia potencialmente disruptiva, que talvez se torne uma realidade nos próximos 10 anos.

Também falamos do projeto que estamos fazendo na empresa: o Trim Quântico. Como modelar o algoritmo do Trim, que roda em todas as empresas de papel, utilizando as técnicas citadas. A Klabin é pioneira na indústria nacional ao estudar este tipo de tecnologia.

Festival #InovaKlabin.