Contexto:
He estado tratando de entender el algoritmo genético discutido en el documento Descomposición de matrices unitarias para encontrar circuitos cuánticos: Aplicación a Hamiltonianos moleculares (Daskin y Kais, 2011) (PDF aquí ) y Algoritmo de optimización de líderes de grupo (Daskin y Kais, 2010) . Trataré de resumir lo que entendí hasta ahora y luego formularé mis consultas.
Consideremos el ejemplo de la puerta de Toffoli en la sección III-A en el primer artículo. Sabemos por otras fuentes como esta , que se necesitan alrededor de 5 puertas cuánticas de dos qubits para simular la puerta Toffoli. Por lo tanto, elegimos arbitrariamente un conjunto de puertas como . Nos restringimos a un máximo de puertas y nos permitimos usar solo las puertas del conjunto de puertas . Ahora generamos grupos de cadenas aleatorias como:
1 3 2 0,0; 2 3 1 0,0; 3 2 1 0,0; 4 3 2 0,0; 2 1 3 0.0
En la cadena de números anterior, los primeros números en negrita son el número índice de las puertas (es decir, ), los últimos números son los valores de los ángulos en y los enteros medios son los qubits de destino y los qubits de control, respectivamente. Habría otras cadenas generadas aleatoriamente.
Nuestros grupos ahora se ven así (en la imagen de arriba) con y . La idoneidad de cada cadena es proporcional a la fidelidad de rastreo dondees la representación de matriz unitaria correspondiente a cualquier cadena que generamos yes la representación de matriz unitaria de la puerta Toffoli de 3 qubits. El líder del grupo en cualquier grupo es el que tiene el valor máximo de.
Una vez que tengamos los grupos, seguiremos el algoritmo:
La ecuación (4) mencionado en la imagen es básicamente:
1 3 2 0.0; 2 3 1 0.0; 3 2 1 0.0; 4 3 2 0.0; 2 1 3 0.0
, el elemento es 3
. En este contexto, tomamos y . Es decir, en cada iteración, todas las cadenas se mutan siguiendo la regla: para cada cadena en cada grupo, los elementos individuales (números) en la cadena se modifican siguiendo la ecuación. (4)
Además,
Además de la mutación, en cada iteración para cada grupo de la población, el cruce unidireccional (también denominado transferencia de parámetros) se realiza entre un miembro aleatorio elegido del grupo y un miembro aleatorio de un grupo aleatorio diferente. Esta operación reemplaza principalmente una parte aleatoria de un miembro con la parte equivalente de un miembro aleatorio de un grupo diferente. La cantidad de la operación de transferencia para cada grupo se define por un parámetro llamado velocidad de transferencia, aquí, que se define como
donde el numerador es el número de variables que forman una cadena numérica en la optimización.
Preguntas:
Después de la parte (en "Contexto") que discute la selección del conjunto de puertas y el número de puertas, ¿es correcta mi explicación / comprensión (párrafo 3 en adelante) del algoritmo?