Suponha que fosse possível uma síntese exata para o seu unitário fornecido (o número de restrição teórica nas entradas) e, portanto, os algoritmos descritos na pergunta forneceram uma sequência de portas Clifford + T que implementaram esse unitário. Conforme declarado no artigo de Giles-Selinger, você obtém uma sequência que está muito longe do ideal. Portanto, nesse ponto, você reduziu o problema da palavra no grupo gerado pelo conjunto de portas Clifford + T. Alguns grupos têm algoritmos para encurtar uma determinada palavra enquanto ainda representam o mesmo elemento do grupo em uma forma normal que é a mais curta dentro dessa classe. Outros não fazem.
2S1 11 1CNO T121 1S4Eu= 1XEuYj= YjXEui ≠ jS1 1S1 1S2S1 1S1 1S1 1S2= S2S1 1S41 1= 1S2como uma palavra mais curta que representa o mesmo elemento do grupo. Para uma determinada apresentação em grupo, é necessário um algoritmo que pegue uma palavra arbitrária e a reduz. Em geral, isso não é possível.
Isenção de responsabilidade para abaixo: Projeto futuro / implementação conjunta de Haskell com Jon Aytac.
rEu( rEurj)meu j= 1. Esse é um grupo de Coxeter relacionado ao conjunto de portas Clifford + T, mas com um problema de palavras solucionável com eficiência. Portanto, pode-se pegar o resultado do algoritmo de Giles-Selinger e potencialmente encurtá-lo usando apenas essas relações muito simples (depois de examinar segmentos com apenas aquelas letras de involução). De fato, qualquer algoritmo que pega um dado unitário e o aproxima ou sintetiza exatamente no Clifford + T pode ser alimentado nesse procedimento para encurtá-lo um pouco.