<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0009-6725</journal-id>
<journal-title><![CDATA[Ciência e Cultura]]></journal-title>
<abbrev-journal-title><![CDATA[Cienc. Cult.]]></abbrev-journal-title>
<issn>0009-6725</issn>
<publisher>
<publisher-name><![CDATA[Sociedade Brasileira para o Progresso da Ciência]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0009-67252003000300003</article-id>
<title-group>
<article-title xml:lang="pt"><![CDATA[A programação quântica: aproveitando os códigos clássicos]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Lungarzo]]></surname>
<given-names><![CDATA[Carlos A.]]></given-names>
</name>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidade Estadual de Campinas  ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>09</month>
<year>2003</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>09</month>
<year>2003</year>
</pub-date>
<volume>55</volume>
<numero>3</numero>
<fpage>04</fpage>
<lpage>05</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://cienciaecultura.bvs.br/scielo.php?script=sci_arttext&amp;pid=S0009-67252003000300003&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://cienciaecultura.bvs.br/scielo.php?script=sci_abstract&amp;pid=S0009-67252003000300003&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://cienciaecultura.bvs.br/scielo.php?script=sci_pdf&amp;pid=S0009-67252003000300003&amp;lng=en&amp;nrm=iso"></self-uri></article-meta>
</front><body><![CDATA[ <p align="center"><img src="/img/revistas/cic/v55n3/a03img01.gif"></p>     <p>&nbsp;</p>     <p align="center"><font size=5><b>A programa&ccedil;&atilde;o qu&acirc;ntica:    aproveitando os c&oacute;digos cl&aacute;ssicos     <br>   <i><font size="3">Carlos A. Lungarzo</font></i></b></font></p>     <p>&nbsp;</p>     <p>&nbsp;</p>     <p><font size="3"> Um computador processa um ente especial l&oacute;gico/f&iacute;sico,    a <b>informa&ccedil;&atilde;o</b>, que &eacute; codificada em d&iacute;gitos    bin&aacute;rios, transportada por objetos l&oacute;gicos do sistema, os programas,    e operada pelas <b>portas </b>l&oacute;gicas que usam a l&oacute;gica proposicional    cl&aacute;ssica. Os componentes l&oacute;gicos se traduzem em fen&ocirc;menos    el&eacute;tricos (tens&otilde;es) que fazem poss&iacute;vel sua execu&ccedil;&atilde;o    pelo processador.</font></p>     <p><font size="3">O computador qu&acirc;ntico <b>(CQ)</b> preserva a rela&ccedil;&atilde;o    entre l&oacute;gica e f&iacute;sica, pois tamb&eacute;m recebe informa&ccedil;&atilde;o    (<b>bits qu</b>&acirc;nticos <font face="Symbol">&ordm; </font><b>qubits</b>)    e a transforma em fen&ocirc;menos. O diferente &eacute; o suporte f&iacute;sico:    a porta l&oacute;gica cl&aacute;ssica &eacute; um circuito sob as leis cl&aacute;ssicas    do eletromagnetismo, mas a porta qu&acirc;ntica est&aacute; regida pela mec&acirc;nica    qu&acirc;ntica <b>(MQ)</b>. Assim, tamb&eacute;m os <b>estados</b> s&atilde;o    diferentes: enquanto os cl&aacute;ssicos s&atilde;o tens&otilde;es el&eacute;tricas,    medidas de maneira independente, os estados qu&acirc;nticos nem sempre s&atilde;o    <b>puros</b>, pois podem consistir na <b>superposi&ccedil;&atilde;o </b>de outros.</font></p>     <p><font size="3">Usualmente, um sistema qu&acirc;ntico &eacute; representado    por um 'espa&ccedil;o de Hilbert': um espa&ccedil;o vetorial complexo    com produto escalar, de dimens&atilde;o talvez infinita. As portas l&oacute;gicas    qu&acirc;nticas n&atilde;o s&atilde;o circuitos, mas <b>operadores</b> (matrizes)    aplicados aos vetores de um (sub) espa&ccedil;o bi-dimensional: <b>H<sup>2</sup></b>.    Por sua vez, as unidades de informa&ccedil;&atilde;o n&atilde;o s&atilde;o os    bits <b>0 </b>e <b>1 </b>que indicam o estado (aberto/fechado) do circuito,    mas os qubits |<b>0</b><font face="Symbol">&ntilde;</font>, |<b>1</b><font face="Symbol">&ntilde;</font>    que indicam estados ortogonais em <b>H<sup>n</sup></b> (<b>2</b><u>&lt;</u><b> n</b>).</font></p>     <p><font size="3">A base de informa&ccedil;&atilde;o qu&acirc;ntica tamb&eacute;m    &eacute; bin&aacute;ria, pois os qubits b&aacute;sicos s&atilde;o |<b>0</b><font face="Symbol">&ntilde;</font>    |<b>1</b><font face="Symbol">&ntilde;</font>, mas eles n&atilde;o s&atilde;o    os &uacute;nicos poss&iacute;veis. Todo objeto <b>E</b> = <font face="Symbol">a</font>|<b>0</b><font face="Symbol">&ntilde;</font>    + <font face="Symbol">b</font>|<b>1</b><font face="Symbol">&ntilde;</font>,    com |<font face="Symbol">a</font><b>|<sup>2</sup>+</b> |<font face="Symbol">b</font><b>|<sup>2</sup>    = 1</b>, &eacute; um estado, mas, se ambos |<font face="Symbol">a</font>|,|<font face="Symbol">b</font>|    &gt;0, ent&atilde;o <b>E </b>j&aacute; n&atilde;o &eacute; puro, pois &eacute;    superposi&ccedil;&atilde;o dos b&aacute;sicos.</font></p>     ]]></body>
<body><![CDATA[<p><font size="3">A superposi&ccedil;&atilde;o &eacute; comum a diversos processos    ondulat&oacute;rios, mas esta forma &eacute; t&iacute;pica da <b>MQ</b>. Na    mec&acirc;nica cl&aacute;ssica, os estados s&atilde;o conjuntos <b>mensur&aacute;veis</b>    do espa&ccedil;o de configura&ccedil;&atilde;o (de dimens&atilde;o finita) e    formam uma &aacute;lgebra de Boole, de caracter&iacute;stica <b>2</b>. Portanto,    n&atilde;o existe um equivalente da combina&ccedil;&atilde;o linear de vetores,    nem da superposi&ccedil;&atilde;o de estados. </font></p>     <p>&nbsp;</p>     <p align="center"><img src="/img/revistas/cic/v55n3/a03img02.gif"></p>     <p>&nbsp;</p>     <p><font size="3">A exist&ecirc;ncia de 'bits' qu&acirc;nticos superpostos &eacute;    a principal causa do interesse nos <b>CQ'</b>s, pois um <b>CQ</b> poderia utilizar    n&atilde;o apenas os estados b&aacute;sicos {|<b>0</b><font face="Symbol">&ntilde;</font>,    |<b>1</b><font face="Symbol">&ntilde;</font>}, mas tamb&eacute;m os estados    de superposi&ccedil;&atilde;o, que tamb&eacute;m correspondem a qubits. Isso    permitiria processamentos <b>fortemente paralelos</b>, pois a informa&ccedil;&atilde;o    se distribuiria entre os diversos estados de maneira simult&acirc;nea. Ora,    para que as leis qu&acirc;nticas se tornem relevantes, o processador deve ter    grandezas de ordem compat&iacute;vel com a constante de Planck, o que exige    objetos nanosc&oacute;picos. Uma escolha natural deveria incluir &aacute;tomos,    &iacute;ons, part&iacute;culas, etc. O modelo constitu&iacute;do por &iacute;ons    aprisionados em campos magn&eacute;ticos &eacute; um dos mais aceitos (1).</font></p>     <p><font size="3">As atuais tend&ecirc;ncias da pesquisa se dirigem, por um lado,    &agrave; constru&ccedil;&atilde;o de um <b>CQ real</b> e, por outro, &agrave;    formula&ccedil;&atilde;o dos <b>programas</b> que rodariam nesses <b>CQ'</b>s.</font></p>     <p><font size="3">O primitivo otimismo sobre a possibilidade de fabricar <b>CQ</b>'s    reais foi arrefecendo por causa de observa&ccedil;&otilde;es (2) sobre a sensibilidade    da informa&ccedil;&atilde;o qu&acirc;ntica ao ambiente e o car&aacute;ter quase    inevit&aacute;vel de erros de inicializa&ccedil;&atilde;o. Recentemente, foram    conjeturados m&eacute;todos para inibir essas perturba&ccedil;&otilde;es, e    no come&ccedil;o do ano, foi criada uma porta l&oacute;gica robusta, usando    dois &iacute;ons de ber&iacute;lio aprisionados (3). Mas, a possibilidade de    um computador qu&acirc;ntico &quot;pleno&quot; &eacute; ainda confusa. Existe    um estudo recente da atividade brasileira neste campo (4).</font></p>     <p><font size="3">As outras tend&ecirc;ncias de pesquisa seguem a dire&ccedil;&atilde;o    l&oacute;gica: constru&ccedil;&atilde;o de linguagens e programas. </font></p>     <p><font size="3">Mesmo em alto n&iacute;vel, a formaliza&ccedil;&atilde;o da    estrutura de um programa exige conhecer as variedades de organiza&ccedil;&atilde;o    dos <b>CQ's</b>, para saber de que maneira a parte l&oacute;gica deve ser expressada    pela parte f&iacute;sica. No entanto, at&eacute; que apare&ccedil;a uma arquitetura    completa, especificar uma linguagem com grande detalhe ser&aacute; dif&iacute;cil.</font></p>     <p><font size="3">&Eacute; poss&iacute;vel, por&eacute;m, uma aproxima&ccedil;&atilde;o    cl&aacute;ssica, motivada pela maneira em que um 'programa' para    um computador cl&aacute;ssico (a m&aacute;quina de Turing) foi projetado antes    da constru&ccedil;&atilde;o do computador f&iacute;sico. A possibilidade de    estender essa m&aacute;quina ao caso qu&acirc;ntico j&aacute; &eacute; conhecida    (5). Existem algumas propostas de linguagem experimental (6) que utilizam esse    car&aacute;ter ideal do <b>CQ</b>. </font></p>     ]]></body>
<body><![CDATA[<p><font size="3">As atuais pesquisas est&atilde;o centradas em linguagens procedimentais    estruturadas, que implementam programas que s&atilde;o tratados como <b>meta-programas</b>    cl&aacute;ssicos, e cujo &quot;objeto&quot; &eacute; um <b>CQ </b>ideal. A linguagem    de montagem &eacute; o formalismo dos operadores, ou seja, sua l&oacute;gica    &eacute; a l&oacute;gica qu&acirc;ntica em sentido estrito, abstra&iacute;da    das propriedades alg&eacute;bricas dos espa&ccedil;os de Hilbert, mas isso n&atilde;o    &eacute; suficiente para implementar algoritmos qu&acirc;nticos, que precisam    de uma linguagem de alto n&iacute;vel que, por sua vez, sup&otilde;e linguagens    livres de contexto n&atilde;o <b>deterministas</b>. </font></p>     <p><font size="3">Uma m&aacute;quina &eacute; determinista se cada estado possui    um &uacute;nico estado &quot;sucessor&quot;, enquanto que, numa m&aacute;quina    <b>probabil&iacute;stica</b>, podem existir v&aacute;rios &quot;sucessores&quot;    com uma certa probabilidade. A m&aacute;quina probabil&iacute;stica usar&aacute;    o meta-programa para controlar o <b>CQ</b> e processar as medi&ccedil;&otilde;es    dos dados de sa&iacute;da. </font></p>     <p><font size="3">Para manter a coer&ecirc;ncia entre ambas formas de programa&ccedil;&atilde;o,    deve existir alguma correspond&ecirc;ncia entre computadores cl&aacute;ssicos    e <b>CQ'</b>s<b><sup>7</sup></b>. O <b>CQ </b>ideal processa informa&ccedil;&atilde;o    codificada em qubits, a transforma com suas portas l&oacute;gicas e produz uma    sa&iacute;da, que &eacute; a <b>medida</b> do estado final do <b>CQ</b>    (vide figura). Nos computadores convencionais, o &quot;&uacute;ltimo passo&quot;    do processamento &eacute; um estado el&eacute;trico que oscila usualmente entre    <b>0 </b>e <b>5 </b>volts. Para o operador, a informa&ccedil;&atilde;o se apresenta    em alto n&iacute;vel, onde esse estado &eacute; ignorado. Para o observador    macrosc&oacute;pico, uma sa&iacute;da &eacute; um caractere, um som, uma imagem,    mas n&atilde;o um estado el&eacute;trico.</font></p>     <p><font size="3">No <b>CQ </b>considerado como objeto de programa&ccedil;&atilde;o    por um meta-computador cl&aacute;ssico, a sa&iacute;da &eacute; um estado que    deve ser medido de maneira probabil&iacute;stica (eventualmente, usando a fun&ccedil;&atilde;o    de onda). O meta-computador de controle deve decidir se a medida &eacute; ou    n&atilde;o correta para o problema dado. Neste enfoque da programa&ccedil;&atilde;o    qu&acirc;ntica &eacute; importante descrever os elementos do <b>CQ</b> que executam    fun&ccedil;&otilde;es an&aacute;logas aos componentes cl&aacute;ssicos. Isto    poderia ser evitado se program&aacute;ssemos o <b>CQ</b> no n&iacute;vel de    montagem, mas esse m&eacute;todo esbarra com v&aacute;rios problemas: os escassos    recursos da arquitetura qu&acirc;ntica para o usu&aacute;rio, a dificuldade    de preparar os qubits e o risco de produzir perturba&ccedil;&otilde;es (como    a perda de informa&ccedil;&atilde;o).</font></p>     <p><font size="3">O meta-programa de controle pode ser escrito numa linguagem    cl&aacute;ssica, como PASCAL ou C.Portanto, n&atilde;o &eacute; surpreendente    que a linguagem qu&acirc;ntica utilize os tipos e vari&aacute;veis dessas linguagens.    N&atilde;o obstante, nem sempre uma vari&aacute;vel ou um tipo poder&aacute;    ser interpretado da mesma maneira que na computa&ccedil;&atilde;o cl&aacute;ssica,    pois o objetivo do programa &eacute; processar resultados de medi&ccedil;&otilde;es    do <b>CQ</b>, que s&atilde;o obtidas em fun&ccedil;&atilde;o das leis da <b>MQ</b>    e n&atilde;o da cl&aacute;ssica.</font></p>     <p><font size="3">Assumimos que o <b>CQ</b> foi descrito por sua fun&ccedil;&atilde;o    <font face="Symbol">y</font>, e que a dimens&atilde;o do espa&ccedil;o de Hilbert    associado &eacute; <b>2<sup>n</sup></b>. Para cada n&uacute;mero <b>k</b><u>&lt;</u><b>n</b>,    um vetor de dimens&atilde;o <b>k </b>que pertence a um estado espec&iacute;fico    do <b>CQ</b>, &eacute; chamado <b>registrador </b>de comprimento <b>k</b>. Os    registradores assumem o papel das <b>vari&aacute;veis </b>na computa&ccedil;&atilde;o    convencional.</font></p>     <p><font size="3">Os <b>procedimentos </b>de um programa convencional correspondem    aos operadores (matrizes) <b>unit&aacute;rios </b>no modelo matem&aacute;tico    do <b>CQ</b>. Um operador unit&aacute;rio &eacute; invers&iacute;vel e, ainda,    seu inverso &eacute; igual ao resultado de trocar seus componentes complexos    pelos seus conjugados (e. g. <b>(a+ib) </b>por <b>(a-ib)</b>), e suas colunas    pelas filas horizontais.</font></p>     <p><font size="3">Um enunciado cl&aacute;ssico do tipo &quot;if... else&quot;    corresponde ao uso de um operador <b>condicional</b>. A aplica&ccedil;&atilde;o    desses operadores a um qubit &eacute; o resultado que depende de que um novo    qubit (equivalente &agrave; condi&ccedil;&atilde;o booleana do enunciado cl&aacute;ssico)    seja habilitado. </font></p>     <p><font size="3">Linhas de c&oacute;digo de programas para <b>CQ'</b>s t&ecirc;m    apar&ecirc;ncia similar &agrave;s linhas de linguagens cl&aacute;ssicas, como    <b>C</b>. Mas, dentro dos tipos de dados, alguns s&atilde;o espec&iacute;ficos    do <b>CQ </b>e n&atilde;o teriam fun&ccedil;&atilde;o no caso cl&aacute;ssico.    Por exemplo, a express&atilde;o 'qureg<b>'</b> refere-se a um tipo    de dado cuja sem&acirc;ntica cont&eacute;m os registradores qu&acirc;nticos.</font></p>     <p><font size="3">Uma linguagem para programas de <b>QC's </b>deve poder implementar    um <b>algoritmo qu&acirc;ntico</b>. Para certos problemas, j&aacute; foi poss&iacute;vel    encontrar algoritmos que, se implementados quanticamente, seriam mais eficientes    que os cl&aacute;ssicos (8). O que permite implementar um algoritmo em linguagens    para <b>CQ'</b>s, &eacute; a presen&ccedil;a, nessas linguagens, de categorias    formais (fun&ccedil;&otilde;es, opera&ccedil;&otilde;es, etc) que representem    a matem&aacute;tica interna do <b>CQ</b>, ou seja, a pr&oacute;pria l&oacute;gica    qu&acirc;ntica. </font></p>     ]]></body>
<body><![CDATA[<p><font size="3">Os problemas mais ricos da l&oacute;gica dos <b>CQ'</b>s est&atilde;o    relacionados com a implementa&ccedil;&atilde;o e redu&ccedil;&atilde;o da complexidade    temporal de algoritmos. Uma proposta recente de otimiza&ccedil;&atilde;o &eacute;    a de aumentar a <b>val&ecirc;ncia </b>das portas l&oacute;gicas. As portas cl&aacute;ssicas    s&atilde;o bin&aacute;rias, com os valores <b>0 </b>e <b>1</b>, como tamb&eacute;m    s&atilde;o as qu&acirc;nticas com: |<b>0</b><font face="Symbol">&ntilde;</font>    |<b>1</b><font face="Symbol">&ntilde;</font>. No entanto, nas portas cl&aacute;ssicas,    a extens&atilde;o ao caso polivalente n&atilde;o aparece como necessidade atual,    mas, nas portas qu&acirc;nticas, pode simplificar alguns algoritmos (9). </font></p>     <p>&nbsp; </p>     <p><font size="3"><i><b>Carlos Lungarzo</b> &eacute; professor titular aposentado    da &aacute;rea de l&oacute;gica da Universidade Estadual de Campinas. </i></font></p>     <p> <font size="3">O autor agradece    as vitais observa&ccedil;&otilde;es dos professores Alfredo Pereira Jr. E S&iacute;lvio    Senho Chibene. Algumas n&atilde;o puderam ser aproveitadas por causa do espa&ccedil;o.</font></p>     <p><font size=3>(1) SACKETT, C. et al. <i>Nature</i>, 404, 256 (2000)    <br>   (2) BENIOFF, P. <i>Superlattices and Microstructures</i>, vol. 23, N. 3/4, 1998,    p. 408-417    <br>   (3) STEANE, A. <i>Nature</i>, 422, mar 2003, 387-8    <br>   (4) ZOERZETTO, R. <i>Pesquisa Fapesp</i>, Abril 2003, num. 86, p.54-59.    <br>   (5) BENIOFF, P., Physica D, 1998, 12-19.    <br>   (6) &Ouml;MER, B., A Procedural Formalism for Quantum Computing (Master Dissertation,    Tech. Univ. Vienna, 1998)    ]]></body>
<body><![CDATA[<br>   (7) WALLACE, J., &quot;Quantum Computer Simulators&quot;, in Partial Proceedings    of the 4th Int. Conference CASYS 2000    <br>   (8) VAN DAM &amp; SEROUSSI, Efficient Quantum Algorithms for Estimating Gauss    Sums 2002, in <a href="http://www. hpl.hp.com/techreports/2002/HPL-2002-208.pdf"><i>http://www.    hpl.hp.com/techreports/2002/HPL-2002-208.pdf</i></a>    <br>   (9) LUNGARZO C., L&oacute;gicas polivalentes na representa&ccedil;&atilde;o    de portas cl&aacute;ssicas e qu&acirc;nticas (Campinas, XIII EBL, 2003), em    processo de publica&ccedil;&atilde;o.</font></p>      ]]></body>
</article>
