terça-feira, 23 de julho de 2019

O Cubo de Rubik

Já se vão 45 anos de quando o húngaro Erno Rubik criou um apetrecho usado num jogo desafiador: o “cubo mágico”, rebatizado para “Cubo de Rubik”. Suas 6 faces, inicialmente uma de cada cor, estão divididas em 9 facetas de cubos menores, resultando em 54 facetas visíveis de 26 cubinhos engenhosamente acoplados a uma estrutura que permite rotações dos planos desses cubinhos. O desafio consiste em, partindo de uma disposição inicial aleatória, fazer as rotações necessárias para que 0 cubo volte a ter uma face de cada cor.

Não são nada simples ou intuitivos os movimentos que levavam à solução. Lembro-me de colegas, objeto de admiração (e de alguma inveja...), mostrando o cubo resolvido após alguma longa e misteriosa manipulação.

Na semana passada, surgiu na rede um artigo científico anunciando uma solução para o cubo, que excede em velocidade os melhores humanos e usou aprendizado profundo (em “deepcube.igb.uci.edu”) . É mais um passo na solução de desafios com o uso de inteligência artificial, com variantes.

Na programação tradicional estática, a forma de atacar o problema do cubo seria escrever um algoritmo reproduzindo o que um humano faria, passo a passo. Uma receita de bolo, a ser seguida pelo computador. Se a opção é usar aprendizado de máquina, o usual seria criar uma base de soluções já conhecidas e fazer o programa definir uma estratégia a partir disso. Era a abordagem em programas para xadrez, onde a experiência de jogos de grandes mestres orientou o “aprendizado” do programa. Também o aperfeiçoamento dos sistemas de tradução por máquina valeu-se da base existente de traduções. Com o uso pesado de dados, associado à tutoria humana, tem-se um comportamento similar e eficiente.

Evolução do “aprendizado supervisionado”, mencionado acima, seria o “auto aprendizado”: fornece-se ao programa apenas as regras de como as peças se movem. Ele partirá, assim, do zero e, por experiência e erro, treinará sua rede neural para identificar estratégias vencedoras. Foi o método adotado no sistema AlphaZero, que de início sabia apenas como mover as peças do xadrez. Fazendo-o jogar contra si mesmo, “aprendeu” estratégias vencedoras a ponto de, após apenas quatro horas alegadas de autotreinamento, bater grandes mestres e programas convencionais. Espantosamente, o AlphaZero escolhia movimentos inusitados numa primeira análise humana e, mesmo assim, vencia.

Até há uns anos, a via do auto aprendizado era um caminho lento e pouco animador. Hoje, com a velocidade de processamento disponível, a opção de “deep learning” (ou aprendizado profundo) é cada vez mais viável.

A solução proposta para o Cubo é uma variante do aprendizado profundo. Afinal este é um jogo solitário, sem “treino” possível, com uma infinidade de configurações iniciais e única posição final vencedora. Movimentos aleatórios buscando solução poderiam levar um tempo imenso e sequer convergir.

A proposta descrita no artigo envolveu criar uma estratégia que mistura avaliações do progresso já feito, com a árvore de decisões a ser seguida. O resultado foi um programa que aprendeu, sem tutoria humana, a solucionar o Cubo de Rubik com mais eficiência que os melhores especialistas humanos. Interessante e preocupante: afinal, é mais uma situação em que geramos algo que, ao mesmo tempo, nos ajuda e... nos torna obsoletos.
















===

A demonstração do Cubo com IA:
http://deepcube.igb.uci.edu/

O artigo referido acima:
https://openreview.net/pdf?id=Hyfn2jCcKm

Solução tradicional, em até 30 movimentos,  e o "número de Deus"
https://www.newscientist.com/article/dn19301-god-couldnt-do-faster-rubiks-cube-mystery-solved/

Referências na rede:

https://pt.wikipedia.org/wiki/Cubo_de_Rubik

https://news.uci.edu/2019/07/15/uci-researchers-deep-learning-algorithm-solves-rubiks-cube-faster-than-any-human/

https://www.cnet.com/news/ai-can-solve-a-rubiks-cube-before-you-even-get-started/#ftag=COS-05-10aaa0j

terça-feira, 9 de julho de 2019

ICANN em Marrakesh


A Corporação da Internet para Atribuição de Nomes e Números (ICANN na sigla em inglês), criada em Los Angeles, Estados Unidos, em setembro de 1998, é uma organização privada, sem fins de lucro, que cuida de nomes de domínio e números IP na Internet. 

Em junho realizou sua reunião de número 65. As reuniões tem rodízio regional e são classificadas conforme seu formato. Esta última correspondeu à África e foi do tipo B, “política”. Há as do tipo A, “comunidade” e do tipo C, “reunião geral anual”). A próxima, em novembro, será em Montreal, no Canadá, do tipo C.

Em sua criação, a ICANN escolheu ter uma estrutura muito ampla, para além dos operadores técnicos de nomes (registros e registradores) e de números (provedores de acesso). Incorporou um grupo de assessoria de governos (GAC) e criou conexões com diversos órgãos técnicos, além do conjunto geral de usuários.

Estava claro que a expansão não seria simples nem indolor – lembre-se que, originalmente, a atividade era feita pela IANA, com um punhado de pesquisadores na USC, Universidade da Califórnia do Sul. Tensões surgiram de imediato e estão longe de se dissipar.

Uma, logo no início, se deveu a que parte dos representantes de governos que entraram no GAC original em 1998, sequer sabiam da Internet, ou que havia acesso local em seu país, ou que um domínio de duas letras fora alocado para a comunidade, em geral sediado numa universidade ou numa organização não governamental.

Com o tempo houve algum nivelamento, mas outros conflitos surgiram. Um deles foi o debate e a posterior adoção, sob pressão de países que não usam o conjunto de caracteres latinos, de formas internacionalizadas de se grafar um nome de domínio. Com uma solução técnica compatível, tornou-se possível o uso de caracteres não latinos em nomes de domínio. No Brasil, por exemplo, há a possibilidade do uso de acentos, til e cedilha. Assim, é possível registrar e usar “peça-café-e-pão.com.br”.

Outra decisão da ICANN – a de introduzir levas de novos domínio genéricos na raiz – gerou tensão com os envolvidos em “propriedade intelectual” e marcas, dado que teriam que proteger seus identificadores nos novos espaços. Para aliviar o problema, a Icann trouxe à cena a Organização Internacional de Propriedade Intelectual (WIPO, na sigla em inglês), que lidaria com os conflitos.

Mais à frente, a ICANN permitiu que as próprias instituições pudessem registrar sua marca diretamente na raiz. Certamente aí se identificaria a origem do conflito entre a empresa Amazon, que solicitou o registro do domínio “.amazon”, com diversos países da região amazônica, apoiados por outros mais, que se opõem a essa concessão. Foi outro tema quente em Marrakesh.

Claro que nada está tão complicado que não possa piorar... Discute-se hoje se emojis poderiam ser usados como parte de um nome de domínio (!).

Essas “boas ideias” nem sempre levam em consideração que não se trata apenas da identificação de um sítio: para ser de fato útil, além de “divertida e criativa”, a “novidade” teria que funcionar harmonicamente numa diversidade de navegadores e de serviços.

Ainda no tema de DNS (sistema de nomes de domínio) foi discutida sua extensão para uso em protocolos Web (HTTPS) e de transporte (TLS), além do estímulo à adoção maciça do DNSSEC, temas que se revestem de significância especial, tendo em vista a iminente expansão da Internet das Coisas.

Ao final, mesmo com algum sério risco de a reunião acabar indo “para lá de Marrakesh”, sobreviveu-se.


===

Relatório Post-ICANN 65:
https://meetings.icann.org/en/marrakech65/post-icann65-policy-report-11jul19-en.pdf

Sobre o uso de "emoji" em DNS:
https://nic.br/media/docs/publicacoes/4/sac-095-en-converted_pt-br.pdf

Documento do SSAC - Security and Stability Advisory Committee,  maio 2019
https://www.icann.org/en/system/files/files/sac-105-en.pdf

Resultados da reunião de Berlim, Internet & Juridiction, junho 2019
https://www.internetjurisdiction.net/uploads/pdfs/Berlin-Roadmap-and-Secretariat-Summary-Global-Conference-Internet-Jurisdiction-Policy-Network.pdf

"Qualquer coisa˜, de Caetano Veloso:
https://www.youtube.com/watch?v=iNUsnjV3FIc