Skip to content

mjdousti/QSPR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QSPR: Quantum Scheduler, Placer, and Router

Description

Quantum Scheduler, Placer, and Router (QSPR) performs the scheduling and placement of quantum instructions, and routing of logical qubits. It finds the latency of a given QASM file when it is mapped to a given quantum circuit fabric.

Directories & File Structure

QSPR
|-- build.xml -> Ant build file
|-- qspr.pdf -> QSPR paper published in DATE 2013
|-- sample_inputs
   |-- *.qasm -> Circuit benchmarks
   |-- fabric.ql -> Quantum fabric description
|-- src
   |-- edu -> Java source code directory
   |-- libs
      |-- commons-cli-1.2.jar -> Appache Commons CLI library
      |-- commons-lang3-3.1.jar -> Apache Commons Lang library
      |-- javacc.jar -> Java Compiler Compiler (JavaCC)
      |-- jar-in-jar-loader.zip -> Jar loader file taken from Eclipse
      |-- jgrapht-core-0.9.0.jar -> JGraphT library
|-- qspr-prebuilt.jar -> Pre-built version of QSPR
`-- README -> This readme file.

Requirements

  1. Ant 1.7 or higher or Eclipse 3.8 or higher
  2. Oracle Java 6-JDK or higher

Preinstall

Make sure that all the requirements are already installed. The following environmental variable should be set before the installation/running of the program.

  • JAVA_HOME should point where java and javac binary files are located.

Compile

Method 1: Run the following command in the root directory of the project to build QSPR:

ant

This command will clean the built files:

ant clean

Method 2: You may use Eclipse to import source files as explained next.

  • Select File->Import.
  • Select General->Existing Projects into Workspace and choose Next.
  • In the root directory, point to the location of Java source files.
  • Select Finish.
  • Make sure JavaCC plugin is installed in Eclipse.

Note: We have included a pre-built version of QSPR called qspr-prebuilt.jar. It is recommended to use it if you do not want to modify QSPR.

Run

Run the following command to perform the scheduling and placement of quantum logical instructions, and routing of logical qubits.

java -jar qspr.jar

QSPR options are listed below:

usage: qspr [-d] [-f <file>] [-i <file>] [-o <file>] [-p <method>] [-s <#>] [-v]

QSPR maps a given QASM to a given PMD fabric. The resultant MCL file of the mapped circuit will be generated.
-d,--debug                Print debugging info
-f,--fabric <file>        Fabric specification
-i,--input <file>         QASM input file
-o,--output <file>        Quantum operation output file
-p,--placement <method>   Select a placement technique from {MVFB, MC, Center, and Baseline}.
-s,--seed <#>             Random seed count
-v,--verbose              Verbosely prints the quantum operations

Examples

  1. The following command maps circuit 7-1-3.qasm to the fabric fabric.ql. It writes the detailed MCL to a file called output.txt. The baseline method will be used for placement.
java -jar qspr.jar -i sample_inputs/7-1-3.qasm -f sample_inputs/fabric.ql -o output.txt -p baseline -v
  1. The following command maps circuit 5-1-3.qasm to the fabric fabric.ql. It writes the detailed MCL to stdout. The MVFB method with seed 2 will be used for placement.
java -jar qspr.jar -i sample_inputs/5-1-3.qasm -f sample_inputs/fabric.ql -p mvfb -v -s 2

Example Outputs

Example 1 output:

Layout parsing completed successfully!
QASM parsing completed successfully!
Scheduling is completed succesfully!
Done.

Content of output.txt:

SimTime:10	1) h q0	2) h q1	3) h q2	
SimTime:100	4) cnot q5, q3	
SimTime:110	6) cnot q4, q2	
SimTime:200	5) cnot q6, q3	
SimTime:210	7) cnot q5, q2	10) cnot q4, q1	
SimTime:310	8) cnot q6, q2	9) cnot q3, q1	14) cnot q5, q0	
SimTime:410	11) cnot q6, q1	12) cnot q3, q0	
SimTime:510	13) cnot q4, q0	
------------------------------------
Execution latency: 510.0 us
QSPR runtime 74 ms

Example 2 output:

Layout parsing completed successfully!
QASM parsing completed successfully!

SimTime:10	'h q2' @(16,39) 		'h q0' @(18,45) 		'h q1' @(18,39) 		'h q4' @(26,39) 		
SimTime:11	Move q2 (16,39)->(17,39) Move q3 (26,45)->(27,45) 
SimTime:21	Turn q2 @(17,39) Turn q3 @(27,45) 
SimTime:22	Move q2 (17,39)->(17,40) Move q3 (27,45)->(27,44) 
SimTime:23	Move q2 (17,40)->(17,41) Move q3 (27,44)->(27,43) 
SimTime:24	Move q2 (17,41)->(17,42) 
SimTime:25	Move q2 (17,42)->(17,43) 
SimTime:26	Move q2 (17,43)->(17,44) 
SimTime:27	Move q2 (17,44)->(17,45) 
SimTime:33	Turn q3 @(27,43) 
SimTime:34	Move q3 (27,43)->(26,43) 
SimTime:35	Move q3 (26,43)->(25,43) 
SimTime:36	Move q3 (25,43)->(24,43) 
SimTime:37	Turn q2 @(17,45) Move q3 (24,43)->(23,43) 
SimTime:38	Move q2 (17,45)->(16,45) Move q3 (23,43)->(22,43) 
SimTime:39	Move q3 (22,43)->(21,43) 
SimTime:40	Move q3 (21,43)->(20,43) 
SimTime:41	Move q3 (20,43)->(19,43) 
SimTime:42	Move q3 (19,43)->(18,43) 
SimTime:43	Move q3 (18,43)->(17,43) 
SimTime:53	Turn q3 @(17,43) 
SimTime:54	Move q3 (17,43)->(17,44) 
SimTime:55	Move q3 (17,44)->(17,45) 
SimTime:65	Turn q3 @(17,45) 
SimTime:66	Move q3 (17,45)->(16,45) 
SimTime:166	'cnot q3, q2' @(16,45) 		
SimTime:167	Move q4 (26,39)->(27,39) Move q2 (16,45)->(17,45) 
SimTime:177	Turn q4 @(27,39) Turn q2 @(17,45) 
SimTime:178	Move q4 (27,39)->(27,40) Move q2 (17,45)->(17,44) 
SimTime:179	Move q4 (27,40)->(27,41) Move q2 (17,44)->(17,43) 
SimTime:180	Move q2 (17,43)->(17,42) 
SimTime:181	Move q2 (17,42)->(17,41) 
SimTime:182	Move q2 (17,41)->(17,40) 
SimTime:183	Move q2 (17,40)->(17,39) 
SimTime:189	Turn q4 @(27,41) 
SimTime:190	Move q4 (27,41)->(26,41) 
SimTime:191	Move q4 (26,41)->(25,41) 
SimTime:192	Move q4 (25,41)->(24,41) 
SimTime:193	Turn q2 @(17,39) Move q4 (24,41)->(23,41) 
SimTime:194	Move q2 (17,39)->(16,39) Move q4 (23,41)->(22,41) 
SimTime:195	Move q4 (22,41)->(21,41) Move q3 (16,45)->(17,45) 
SimTime:196	Move q4 (21,41)->(20,41) 
SimTime:197	Move q4 (20,41)->(19,41) 
SimTime:198	Move q4 (19,41)->(18,41) 
SimTime:199	Move q4 (18,41)->(17,41) 
SimTime:205	Turn q3 @(17,45) 
SimTime:206	Move q3 (17,45)->(17,44) 
SimTime:207	Move q3 (17,44)->(17,43) 
SimTime:208	Move q3 (17,43)->(17,42) 
SimTime:209	Turn q4 @(17,41) Move q3 (17,42)->(17,41) 
SimTime:210	Move q4 (17,41)->(17,40) Move q3 (17,41)->(17,40) 
SimTime:211	
SimTime:221	Turn q4 @(17,39) Turn q3 @(17,39) 
SimTime:222	Move q4 (17,39)->(16,39) Move q3 (17,39)->(18,39) 
SimTime:322	'cnot q4, q2' @(16,39) 		'cnot q3, q1' @(18,39) 		
SimTime:323	Move q2 (16,39)->(17,39) Move q1 (18,39)->(17,39) 
SimTime:333	Turn q2 @(17,39) Turn q1 @(17,39) 
SimTime:334	
SimTime:335	
SimTime:345	Turn q2 @(17,37) Turn q1 @(17,37) 
SimTime:346	Move q2 (17,37)->(16,37) Move q1 (17,37)->(16,37) 
SimTime:347	Move q0 (18,45)->(17,45) Move q3 (18,39)->(17,39) 
SimTime:357	Turn q0 @(17,45) Turn q3 @(17,39) 
SimTime:358	Move q0 (17,45)->(16,45) Move q3 (17,39)->(17,40) 
SimTime:359	Move q3 (17,40)->(17,41) 
SimTime:360	Move q3 (17,41)->(17,42) 
SimTime:361	Move q3 (17,42)->(17,43) 
SimTime:362	Move q3 (17,43)->(17,44) 
SimTime:363	Move q3 (17,44)->(17,45) 
SimTime:373	Turn q3 @(17,45) 
SimTime:374	Move q3 (17,45)->(16,45) 
SimTime:446	'cnot q2, q1' @(16,37) 		
SimTime:447	Move q1 (16,37)->(17,37) 
SimTime:457	Turn q1 @(17,37) 
SimTime:458	Move q1 (17,37)->(17,38) 
SimTime:459	Move q1 (17,38)->(17,39) 
SimTime:469	Turn q1 @(17,39) 
SimTime:470	Move q1 (17,39)->(16,39) 
SimTime:474	'cnot q3, q0' @(16,45) 		
SimTime:475	Move q2 (16,37)->(17,37) Move q0 (16,45)->(17,45) 
SimTime:485	Turn q2 @(17,37) Turn q0 @(17,45) 
SimTime:486	Move q2 (17,37)->(17,38) Move q0 (17,45)->(17,44) 
SimTime:487	Move q2 (17,38)->(17,39) Move q0 (17,44)->(17,43) 
SimTime:488	Move q0 (17,43)->(17,42) 
SimTime:489	Move q0 (17,42)->(17,41) 
SimTime:490	Move q0 (17,41)->(17,40) 
SimTime:491	
SimTime:497	Turn q2 @(17,39) 
SimTime:498	Move q2 (17,39)->(18,39) 
SimTime:501	Turn q0 @(17,39) 
SimTime:502	Move q0 (17,39)->(18,39) 
SimTime:570	'cnot q4, q1' @(16,39) 		
SimTime:602	'cnot q2, q0' @(18,39) 		
SimTime:603	Move q4 (16,39)->(17,39) Move q0 (18,39)->(17,39) 
SimTime:613	Turn q4 @(17,39) Turn q0 @(17,39) 
SimTime:614	
SimTime:615	
SimTime:625	Turn q4 @(17,37) Turn q0 @(17,37) 
SimTime:626	Move q4 (17,37)->(16,37) Move q0 (17,37)->(16,37) 
SimTime:726	'cnot q4, q0' @(16,37) 		

SimTime:1	Move q4 (16,37)->(17,37) Move q0 (16,37)->(17,37) 
SimTime:11	Turn q4 @(17,37) Turn q0 @(17,37) 
SimTime:12	
SimTime:13	
SimTime:23	Turn q4 @(17,35) Turn q0 @(17,35) 
SimTime:24	Move q4 (17,35)->(16,35) Move q0 (17,35)->(16,35) 
SimTime:124	'cnot q4, q0' @(16,35) 		
SimTime:125	Move q3 (16,45)->(17,45) Move q0 (16,35)->(17,35) 
SimTime:135	Turn q3 @(17,45) Turn q0 @(17,35) 
SimTime:136	Move q3 (17,45)->(17,44) Move q0 (17,35)->(17,36) 
SimTime:137	Move q3 (17,44)->(17,43) Move q0 (17,36)->(17,37) 
SimTime:138	Move q3 (17,43)->(17,42) 
SimTime:139	Move q3 (17,42)->(17,41) 
SimTime:140	Move q3 (17,41)->(17,40) 
SimTime:141	
SimTime:142	
SimTime:143	
SimTime:147	Turn q0 @(17,37) 
SimTime:148	Move q0 (17,37)->(16,37) 
SimTime:153	Turn q3 @(17,37) 
SimTime:154	Move q3 (17,37)->(16,37) 
SimTime:155	Move q4 (16,35)->(17,35) Move q1 (16,39)->(17,39) 
SimTime:165	Turn q4 @(17,35) Turn q1 @(17,39) 
SimTime:166	
SimTime:167	
SimTime:177	Turn q4 @(17,37) Turn q1 @(17,37) 
SimTime:178	Move q4 (17,37)->(18,37) Move q1 (17,37)->(18,37) 
SimTime:254	'cnot q3, q0' @(16,37) 		
SimTime:255	Move q2 (18,39)->(17,39) Move q0 (16,37)->(17,37) 
SimTime:265	Turn q2 @(17,39) Turn q0 @(17,37) 
SimTime:266	Move q2 (17,39)->(16,39) Move q0 (17,37)->(17,38) 
SimTime:267	Move q0 (17,38)->(17,39) 
SimTime:277	Turn q0 @(17,39) 
SimTime:278	'cnot q4, q1' @(18,37) 		Move q0 (17,39)->(16,39) 
SimTime:279	Move q1 (18,37)->(17,37) 
SimTime:289	Turn q1 @(17,37) 
SimTime:290	Move q1 (17,37)->(16,37) 
SimTime:378	'cnot q2, q0' @(16,39) 		
SimTime:379	Move q0 (16,39)->(17,39) 
SimTime:389	Turn q0 @(17,39) 
SimTime:390	Move q0 (17,39)->(18,39) 'cnot q3, q1' @(16,37) 		
SimTime:391	Move q1 (16,37)->(17,37) 
SimTime:400	'h q0' @(18,39) 		
SimTime:401	Turn q1 @(17,37) 
SimTime:402	Move q1 (17,37)->(17,38) 
SimTime:403	Move q1 (17,38)->(17,39) 
SimTime:413	Turn q1 @(17,39) 
SimTime:414	Move q1 (17,39)->(16,39) 
SimTime:514	'cnot q2, q1' @(16,39) 		
SimTime:515	Move q2 (16,39)->(17,39) Move q1 (16,39)->(17,39) 
SimTime:525	Turn q2 @(17,39) Turn q1 @(17,39) 
SimTime:526	
SimTime:527	
SimTime:528	
SimTime:529	
SimTime:537	Turn q2 @(17,37) 
SimTime:538	Move q2 (17,37)->(18,37) 
SimTime:539	Turn q1 @(17,35) 
SimTime:540	Move q1 (17,35)->(16,35) 
SimTime:550	'h q1' @(16,35) 		
SimTime:638	'cnot q4, q2' @(18,37) 		
SimTime:639	Move q2 (18,37)->(17,37) Move q4 (18,37)->(17,37) 
SimTime:649	Turn q2 @(17,37) Turn q4 @(17,37) 
SimTime:650	Move q2 (17,37)->(16,37) Move q4 (17,37)->(17,36) 
SimTime:651	Move q4 (17,36)->(17,35) 
SimTime:661	Turn q4 @(17,35) 
SimTime:662	Move q4 (17,35)->(18,35) 
SimTime:672	'h q4' @(18,35) 		
SimTime:750	'cnot q3, q2' @(16,37) 		
SimTime:751	Move q2 (16,37)->(17,37) 
SimTime:761	Turn q2 @(17,37) 
SimTime:762	Move q2 (17,37)->(17,38) 
SimTime:763	Move q2 (17,38)->(17,39) 
SimTime:773	Turn q2 @(17,39) 
SimTime:774	Move q2 (17,39)->(16,39) 
SimTime:784	'h q2' @(16,39) 		

SimTime:10	'h q2' @(16,39) 		'h q0' @(18,39) 		'h q1' @(16,35) 		'h q4' @(18,35) 		
SimTime:11	Move q2 (16,39)->(17,39) Move q3 (16,37)->(17,37) 
SimTime:21	Turn q2 @(17,39) Turn q3 @(17,37) 
SimTime:22	Move q3 (17,37)->(18,37) 
SimTime:23	Move q2 (17,38)->(17,37) 
SimTime:33	Turn q2 @(17,37) 
SimTime:34	Move q2 (17,37)->(18,37) 
SimTime:134	'cnot q3, q2' @(18,37) 		
SimTime:135	Move q4 (18,35)->(17,35) Move q2 (18,37)->(17,37) 
SimTime:145	Turn q4 @(17,35) Turn q2 @(17,37) 
SimTime:146	Move q2 (17,37)->(16,37) 
SimTime:147	Move q4 (17,36)->(17,37) 
SimTime:157	Turn q4 @(17,37) 
SimTime:158	Move q4 (17,37)->(16,37) 
SimTime:159	Move q3 (18,37)->(17,37) Move q1 (16,35)->(17,35) 
SimTime:169	Turn q3 @(17,37) Turn q1 @(17,35) 
SimTime:170	Move q1 (17,35)->(18,35) 
SimTime:171	Move q3 (17,36)->(17,35) 
SimTime:181	Turn q3 @(17,35) 
SimTime:182	Move q3 (17,35)->(18,35) 
SimTime:258	'cnot q4, q2' @(16,37) 		
SimTime:282	'cnot q3, q1' @(18,35) 		
SimTime:283	Move q2 (16,37)->(17,37) Move q1 (18,35)->(17,35) 
SimTime:293	Turn q2 @(17,37) Turn q1 @(17,35) 
SimTime:294	Move q1 (17,35)->(16,35) 
SimTime:295	Move q2 (17,36)->(17,35) 
SimTime:305	Turn q2 @(17,35) 
SimTime:306	Move q2 (17,35)->(16,35) 
SimTime:307	Move q3 (18,35)->(17,35) Move q0 (18,39)->(17,39) 
SimTime:317	Turn q3 @(17,35) Turn q0 @(17,39) 
SimTime:318	
SimTime:319	
SimTime:329	Turn q3 @(17,37) Turn q0 @(17,37) 
SimTime:330	Move q3 (17,37)->(18,37) Move q0 (17,37)->(18,37) 
SimTime:406	'cnot q2, q1' @(16,35) 		
SimTime:407	Move q1 (16,35)->(17,35) 
SimTime:417	Turn q1 @(17,35) 
SimTime:418	Move q1 (17,35)->(17,36) 
SimTime:419	Move q1 (17,36)->(17,37) 
SimTime:429	Turn q1 @(17,37) 
SimTime:430	Move q1 (17,37)->(16,37) 'cnot q3, q0' @(18,37) 		
SimTime:431	Move q2 (16,35)->(17,35) Move q0 (18,37)->(17,37) 
SimTime:441	Turn q2 @(17,35) Turn q0 @(17,37) 
SimTime:442	Move q2 (17,35)->(18,35) Move q0 (17,37)->(17,36) 
SimTime:443	Move q0 (17,36)->(17,35) 
SimTime:453	Turn q0 @(17,35) 
SimTime:454	Move q0 (17,35)->(18,35) 
SimTime:530	'cnot q4, q1' @(16,37) 		
SimTime:554	'cnot q2, q0' @(18,35) 		
SimTime:555	Move q4 (16,37)->(17,37) Move q0 (18,35)->(17,35) 
SimTime:565	Turn q4 @(17,37) Turn q0 @(17,35) 
SimTime:566	Move q0 (17,35)->(16,35) 
SimTime:567	Move q4 (17,36)->(17,35) 
SimTime:577	Turn q4 @(17,35) 
SimTime:578	Move q4 (17,35)->(16,35) 
SimTime:678	'cnot q4, q0' @(16,35) 		

SimTime:1	Move q4 (16,35)->(17,35) Move q0 (16,35)->(17,35) 
SimTime:11	Turn q4 @(17,35) Turn q0 @(17,35) 
SimTime:12	
SimTime:13	
SimTime:14	
SimTime:15	
SimTime:25	Turn q4 @(17,39) Turn q0 @(17,39) 
SimTime:26	Move q4 (17,39)->(16,39) Move q0 (17,39)->(16,39) 
SimTime:126	'cnot q4, q0' @(16,39) 		
SimTime:127	Move q3 (18,37)->(17,37) Move q0 (16,39)->(17,39) 
SimTime:137	Turn q3 @(17,37) Turn q0 @(17,39) 
SimTime:138	Move q0 (17,39)->(18,39) 
SimTime:139	Move q4 (16,39)->(17,39) 
SimTime:149	Turn q4 @(17,39) Turn q3 @(17,39) 
SimTime:150	Move q3 (17,39)->(18,39) 
SimTime:151	Move q4 (17,38)->(17,37) 
SimTime:161	Turn q4 @(17,37) 
SimTime:162	Move q4 (17,37)->(16,37) 
SimTime:250	'cnot q3, q0' @(18,39) 		
SimTime:251	Move q2 (18,35)->(17,35) Move q0 (18,39)->(17,39) 
SimTime:261	Turn q2 @(17,35) Turn q0 @(17,39) 
SimTime:262	'cnot q4, q1' @(16,37) 		
SimTime:263	
SimTime:273	Turn q0 @(17,37) Turn q2 @(17,37) 
SimTime:274	Move q0 (17,37)->(18,37) Move q2 (17,37)->(18,37) 
SimTime:275	Move q3 (18,39)->(17,39) Move q1 (16,37)->(17,37) 
SimTime:285	Turn q3 @(17,39) Turn q1 @(17,37) 
SimTime:286	Move q3 (17,39)->(16,39) Move q1 (17,37)->(17,38) 
SimTime:287	Move q1 (17,38)->(17,39) 
SimTime:297	Turn q1 @(17,39) 
SimTime:298	Move q1 (17,39)->(16,39) 
SimTime:374	'cnot q2, q0' @(18,37) 		
SimTime:375	Move q0 (18,37)->(17,37) 
SimTime:385	Turn q0 @(17,37) 
SimTime:386	Move q0 (17,37)->(17,36) 
SimTime:387	Move q0 (17,36)->(17,35) 
SimTime:397	Turn q0 @(17,35) 
SimTime:398	Move q0 (17,35)->(18,35) 'cnot q3, q1' @(16,39) 		
SimTime:399	Move q2 (18,37)->(17,37) Move q1 (16,39)->(17,39) 
SimTime:408	'h q0' @(18,35) 		
SimTime:409	Turn q1 @(17,39) Turn q2 @(17,37) 
SimTime:410	Move q1 (17,39)->(18,39) Move q2 (17,37)->(17,38) 
SimTime:411	Move q2 (17,38)->(17,39) 
SimTime:421	Turn q2 @(17,39) 
SimTime:422	Move q2 (17,39)->(18,39) 
SimTime:522	'cnot q2, q1' @(18,39) 		
SimTime:523	Move q4 (16,37)->(17,37) Move q2 (18,39)->(17,39) 
SimTime:533	Turn q4 @(17,37) Turn q2 @(17,39) 
SimTime:534	Move q4 (17,37)->(18,37) Move q2 (17,39)->(17,38) 
SimTime:535	Move q2 (17,38)->(17,37) 
SimTime:544	'h q1' @(18,39) 		
SimTime:545	Turn q2 @(17,37) 
SimTime:546	Move q2 (17,37)->(18,37) 
SimTime:646	'cnot q4, q2' @(18,37) 		
SimTime:647	Move q3 (16,39)->(17,39) Move q2 (18,37)->(17,37) 
SimTime:657	Turn q3 @(17,39) Turn q2 @(17,37) 
SimTime:658	Move q2 (17,37)->(16,37) 
SimTime:659	Move q3 (17,38)->(17,37) 
SimTime:668	'h q4' @(18,37) 		
SimTime:669	Turn q3 @(17,37) 
SimTime:670	Move q3 (17,37)->(16,37) 
SimTime:770	'cnot q3, q2' @(16,37) 		
SimTime:771	Move q2 (16,37)->(17,37) 
SimTime:781	Turn q2 @(17,37) 
SimTime:782	Move q2 (17,37)->(17,36) 
SimTime:783	Move q2 (17,36)->(17,35) 
SimTime:793	Turn q2 @(17,35) 
SimTime:794	Move q2 (17,35)->(16,35) 
SimTime:804	'h q2' @(16,35) 		

SimTime:10	'h q2' @(16,35) 		'h q0' @(18,35) 		'h q1' @(18,39) 		'h q4' @(18,37) 		
SimTime:11	Move q3 (16,37)->(17,37) 
SimTime:21	Turn q3 @(17,37) 
SimTime:22	Move q3 (17,37)->(17,36) 
SimTime:23	Move q3 (17,36)->(17,35) 
SimTime:33	Turn q3 @(17,35) 
SimTime:34	Move q3 (17,35)->(16,35) 
SimTime:134	'cnot q3, q2' @(16,35) 		
SimTime:135	Move q4 (18,37)->(17,37) Move q2 (16,35)->(17,35) 
SimTime:145	Turn q4 @(17,37) Turn q2 @(17,35) 
SimTime:146	Move q4 (17,37)->(16,37) Move q2 (17,35)->(17,36) 
SimTime:147	Move q2 (17,36)->(17,37) 
SimTime:157	Turn q2 @(17,37) 
SimTime:158	Move q2 (17,37)->(16,37) 
SimTime:159	Move q3 (16,35)->(17,35) Move q1 (18,39)->(17,39) 
SimTime:169	Turn q3 @(17,35) Turn q1 @(17,39) 
SimTime:170	
SimTime:171	
SimTime:181	Turn q3 @(17,37) Turn q1 @(17,37) 
SimTime:182	Move q3 (17,37)->(18,37) Move q1 (17,37)->(18,37) 
SimTime:258	'cnot q4, q2' @(16,37) 		
SimTime:282	'cnot q3, q1' @(18,37) 		
SimTime:283	Move q2 (16,37)->(17,37) Move q1 (18,37)->(17,37) 
SimTime:293	Turn q2 @(17,37) Turn q1 @(17,37) 
SimTime:294	
SimTime:295	
SimTime:305	Turn q2 @(17,35) Turn q1 @(17,35) 
SimTime:306	Move q2 (17,35)->(16,35) Move q1 (17,35)->(16,35) 
SimTime:307	Move q3 (18,37)->(17,37) 
SimTime:317	Turn q3 @(17,37) 
SimTime:318	Move q3 (17,37)->(17,36) 
SimTime:319	Move q3 (17,36)->(17,35) 
SimTime:329	Turn q3 @(17,35) 
SimTime:330	Move q3 (17,35)->(18,35) 
SimTime:406	'cnot q2, q1' @(16,35) 		
SimTime:407	Move q1 (16,35)->(17,35) 
SimTime:417	Turn q1 @(17,35) 
SimTime:418	Move q1 (17,35)->(17,36) 
SimTime:419	Move q1 (17,36)->(17,37) 
SimTime:429	Turn q1 @(17,37) 
SimTime:430	Move q1 (17,37)->(16,37) 'cnot q3, q0' @(18,35) 		
SimTime:431	Move q0 (18,35)->(17,35) 
SimTime:441	Turn q0 @(17,35) 
SimTime:442	Move q0 (17,35)->(16,35) 
SimTime:530	'cnot q4, q1' @(16,37) 		
SimTime:542	'cnot q2, q0' @(16,35) 		
SimTime:543	Move q4 (16,37)->(17,37) Move q0 (16,35)->(17,35) 
SimTime:553	Turn q4 @(17,37) Turn q0 @(17,35) 
SimTime:554	
SimTime:555	
SimTime:556	
SimTime:557	
SimTime:565	Turn q4 @(17,39) 
SimTime:566	Move q4 (17,39)->(16,39) 
SimTime:567	Turn q0 @(17,39) 
SimTime:568	Move q0 (17,39)->(16,39) 
SimTime:668	'cnot q4, q0' @(16,39) 		

SimTime:1	Move q4 (16,39)->(17,39) Move q0 (16,39)->(17,39) 
SimTime:11	Turn q4 @(17,39) Turn q0 @(17,39) 
SimTime:12	Move q4 (17,39)->(18,39) Move q0 (17,39)->(18,39) 
SimTime:112	'cnot q4, q0' @(18,39) 		
SimTime:113	Move q3 (18,35)->(17,35) Move q0 (18,39)->(17,39) 
SimTime:123	Turn q3 @(17,35) Turn q0 @(17,39) 
SimTime:124	
SimTime:125	
SimTime:135	Turn q3 @(17,37) Turn q0 @(17,37) 
SimTime:136	Move q3 (17,37)->(18,37) Move q0 (17,37)->(18,37) 
SimTime:137	Move q4 (18,39)->(17,39) Move q1 (16,37)->(17,37) 
SimTime:147	Turn q4 @(17,39) Turn q1 @(17,37) 
SimTime:148	Move q4 (17,39)->(16,39) Move q1 (17,37)->(17,38) 
SimTime:149	Move q1 (17,38)->(17,39) 
SimTime:159	Turn q1 @(17,39) 
SimTime:160	Move q1 (17,39)->(16,39) 
SimTime:236	'cnot q3, q0' @(18,37) 		
SimTime:237	Move q2 (16,35)->(17,35) Move q0 (18,37)->(17,37) 
SimTime:247	Turn q2 @(17,35) Turn q0 @(17,37) 
SimTime:248	Move q0 (17,37)->(16,37) 
SimTime:249	Move q2 (17,36)->(17,37) 
SimTime:259	Turn q2 @(17,37) 
SimTime:260	'cnot q4, q1' @(16,39) 		Move q2 (17,37)->(16,37) 
SimTime:261	Move q3 (18,37)->(17,37) Move q1 (16,39)->(17,39) 
SimTime:271	Turn q3 @(17,37) Turn q1 @(17,39) 
SimTime:272	Move q1 (17,39)->(18,39) 
SimTime:273	Move q3 (17,38)->(17,39) 
SimTime:283	Turn q3 @(17,39) 
SimTime:284	Move q3 (17,39)->(18,39) 
SimTime:360	'cnot q2, q0' @(16,37) 		
SimTime:361	Move q0 (16,37)->(17,37) 
SimTime:371	Turn q0 @(17,37) 
SimTime:372	Move q0 (17,37)->(17,36) 
SimTime:373	Move q0 (17,36)->(17,35) 
SimTime:383	Turn q0 @(17,35) 
SimTime:384	Move q0 (17,35)->(16,35) 'cnot q3, q1' @(18,39) 		
SimTime:385	Move q2 (16,37)->(17,37) Move q1 (18,39)->(17,39) 
SimTime:394	'h q0' @(16,35) 		
SimTime:395	Turn q1 @(17,39) Turn q2 @(17,37) 
SimTime:396	Move q2 (17,37)->(18,37) 
SimTime:397	Move q1 (17,38)->(17,37) 
SimTime:407	Turn q1 @(17,37) 
SimTime:408	Move q1 (17,37)->(18,37) 
SimTime:508	'cnot q2, q1' @(18,37) 		
SimTime:509	Move q4 (16,39)->(17,39) Move q2 (18,37)->(17,37) 
SimTime:519	Turn q4 @(17,39) Turn q2 @(17,37) 
SimTime:520	Move q2 (17,37)->(16,37) 
SimTime:521	Move q4 (17,38)->(17,37) 
SimTime:530	'h q1' @(18,37) 		
SimTime:531	Turn q4 @(17,37) 
SimTime:532	Move q4 (17,37)->(16,37) 
SimTime:632	'cnot q4, q2' @(16,37) 		
SimTime:633	Move q3 (18,39)->(17,39) Move q2 (16,37)->(17,37) 
SimTime:643	Turn q3 @(17,39) Turn q2 @(17,37) 
SimTime:644	Move q3 (17,39)->(16,39) Move q2 (17,37)->(17,38) 
SimTime:645	Move q2 (17,38)->(17,39) 
SimTime:654	'h q4' @(16,37) 		
SimTime:655	Turn q2 @(17,39) 
SimTime:656	Move q2 (17,39)->(16,39) 
SimTime:756	'cnot q3, q2' @(16,39) 		
SimTime:757	Move q2 (16,39)->(17,39) 
SimTime:767	Turn q2 @(17,39) 
SimTime:768	Move q2 (17,39)->(18,39) 
SimTime:778	'h q2' @(18,39) 		

SimTime:10	'h q2' @(18,39) 		'h q0' @(16,35) 		'h q1' @(18,37) 		'h q4' @(16,37) 		
SimTime:11	Move q3 (16,39)->(17,39) 
SimTime:21	Turn q3 @(17,39) 
SimTime:22	Move q3 (17,39)->(18,39) 
SimTime:122	'cnot q3, q2' @(18,39) 		
SimTime:123	Move q4 (16,37)->(17,37) Move q2 (18,39)->(17,39) 
SimTime:133	Turn q4 @(17,37) Turn q2 @(17,39) 
SimTime:134	Move q2 (17,39)->(16,39) 
SimTime:135	Move q4 (17,38)->(17,39) 
SimTime:145	Turn q4 @(17,39) 
SimTime:146	Move q4 (17,39)->(16,39) 
SimTime:147	Move q3 (18,39)->(17,39) Move q1 (18,37)->(17,37) 
SimTime:157	Turn q3 @(17,39) Turn q1 @(17,37) 
SimTime:158	Move q1 (17,37)->(16,37) 
SimTime:159	Move q3 (17,38)->(17,37) 
SimTime:169	Turn q3 @(17,37) 
SimTime:170	Move q3 (17,37)->(16,37) 
SimTime:246	'cnot q4, q2' @(16,39) 		
SimTime:270	'cnot q3, q1' @(16,37) 		
SimTime:271	Move q2 (16,39)->(17,39) Move q1 (16,37)->(17,37) 
SimTime:281	Turn q2 @(17,39) Turn q1 @(17,37) 
SimTime:282	Move q1 (17,37)->(18,37) 
SimTime:283	Move q2 (17,38)->(17,37) 
SimTime:293	Turn q2 @(17,37) 
SimTime:294	Move q2 (17,37)->(18,37) 
SimTime:295	Move q3 (16,37)->(17,37) Move q0 (16,35)->(17,35) 
SimTime:305	Turn q3 @(17,37) Turn q0 @(17,35) 
SimTime:306	Move q0 (17,35)->(18,35) 
SimTime:307	Move q3 (17,36)->(17,35) 
SimTime:317	Turn q3 @(17,35) 
SimTime:318	Move q3 (17,35)->(18,35) 
SimTime:394	'cnot q2, q1' @(18,37) 		
SimTime:395	Move q4 (16,39)->(17,39) Move q1 (18,37)->(17,37) 
SimTime:405	Turn q4 @(17,39) Turn q1 @(17,37) 
SimTime:406	Move q1 (17,37)->(16,37) 
SimTime:407	Move q4 (17,38)->(17,37) 
SimTime:417	Turn q4 @(17,37) 
SimTime:418	Move q4 (17,37)->(16,37) 'cnot q3, q0' @(18,35) 		
SimTime:419	Move q2 (18,37)->(17,37) Move q0 (18,35)->(17,35) 
SimTime:429	Turn q2 @(17,37) Turn q0 @(17,35) 
SimTime:430	Move q0 (17,35)->(16,35) 
SimTime:431	Move q2 (17,36)->(17,35) 
SimTime:441	Turn q2 @(17,35) 
SimTime:442	Move q2 (17,35)->(16,35) 
SimTime:518	'cnot q4, q1' @(16,37) 		
SimTime:542	'cnot q2, q0' @(16,35) 		
SimTime:543	Move q4 (16,37)->(17,37) Move q0 (16,35)->(17,35) 
SimTime:553	Turn q4 @(17,37) Turn q0 @(17,35) 
SimTime:554	
SimTime:555	
SimTime:556	
SimTime:557	
SimTime:565	Turn q4 @(17,39) 
SimTime:566	Move q4 (17,39)->(16,39) 
SimTime:567	Turn q0 @(17,39) 
SimTime:568	Move q0 (17,39)->(16,39) 
SimTime:668	'cnot q4, q0' @(16,39) 		

SimTime:1	Move q4 (16,39)->(17,39) Move q0 (16,39)->(17,39) 
SimTime:11	Turn q4 @(17,39) Turn q0 @(17,39) 
SimTime:12	Move q4 (17,39)->(18,39) Move q0 (17,39)->(18,39) 
SimTime:112	'cnot q4, q0' @(18,39) 		
SimTime:113	Move q3 (18,35)->(17,35) Move q0 (18,39)->(17,39) 
SimTime:123	Turn q3 @(17,35) Turn q0 @(17,39) 
SimTime:124	
SimTime:125	
SimTime:135	Turn q3 @(17,37) Turn q0 @(17,37) 
SimTime:136	Move q3 (17,37)->(18,37) Move q0 (17,37)->(18,37) 
SimTime:137	Move q4 (18,39)->(17,39) Move q1 (16,37)->(17,37) 
SimTime:147	Turn q4 @(17,39) Turn q1 @(17,37) 
SimTime:148	Move q4 (17,39)->(16,39) Move q1 (17,37)->(17,38) 
SimTime:149	Move q1 (17,38)->(17,39) 
SimTime:159	Turn q1 @(17,39) 
SimTime:160	Move q1 (17,39)->(16,39) 
SimTime:236	'cnot q3, q0' @(18,37) 		
SimTime:237	Move q2 (16,35)->(17,35) Move q0 (18,37)->(17,37) 
SimTime:247	Turn q2 @(17,35) Turn q0 @(17,37) 
SimTime:248	Move q0 (17,37)->(16,37) 
SimTime:249	Move q2 (17,36)->(17,37) 
SimTime:259	Turn q2 @(17,37) 
SimTime:260	'cnot q4, q1' @(16,39) 		Move q2 (17,37)->(16,37) 
SimTime:261	Move q3 (18,37)->(17,37) Move q1 (16,39)->(17,39) 
SimTime:271	Turn q3 @(17,37) Turn q1 @(17,39) 
SimTime:272	Move q1 (17,39)->(18,39) 
SimTime:273	Move q3 (17,38)->(17,39) 
SimTime:283	Turn q3 @(17,39) 
SimTime:284	Move q3 (17,39)->(18,39) 
SimTime:360	'cnot q2, q0' @(16,37) 		
SimTime:361	Move q0 (16,37)->(17,37) 
SimTime:371	Turn q0 @(17,37) 
SimTime:372	Move q0 (17,37)->(17,36) 
SimTime:373	Move q0 (17,36)->(17,35) 
SimTime:383	Turn q0 @(17,35) 
SimTime:384	Move q0 (17,35)->(16,35) 'cnot q3, q1' @(18,39) 		
SimTime:385	Move q2 (16,37)->(17,37) Move q1 (18,39)->(17,39) 
SimTime:394	'h q0' @(16,35) 		
SimTime:395	Turn q1 @(17,39) Turn q2 @(17,37) 
SimTime:396	Move q2 (17,37)->(18,37) 
SimTime:397	Move q1 (17,38)->(17,37) 
SimTime:407	Turn q1 @(17,37) 
SimTime:408	Move q1 (17,37)->(18,37) 
SimTime:508	'cnot q2, q1' @(18,37) 		
SimTime:509	Move q4 (16,39)->(17,39) Move q2 (18,37)->(17,37) 
SimTime:519	Turn q4 @(17,39) Turn q2 @(17,37) 
SimTime:520	Move q2 (17,37)->(16,37) 
SimTime:521	Move q4 (17,38)->(17,37) 
SimTime:530	'h q1' @(18,37) 		
SimTime:531	Turn q4 @(17,37) 
SimTime:532	Move q4 (17,37)->(16,37) 
SimTime:632	'cnot q4, q2' @(16,37) 		
SimTime:633	Move q3 (18,39)->(17,39) Move q2 (16,37)->(17,37) 
SimTime:643	Turn q3 @(17,39) Turn q2 @(17,37) 
SimTime:644	Move q3 (17,39)->(16,39) Move q2 (17,37)->(17,38) 
SimTime:645	Move q2 (17,38)->(17,39) 
SimTime:654	'h q4' @(16,37) 		
SimTime:655	Turn q2 @(17,39) 
SimTime:656	Move q2 (17,39)->(16,39) 
SimTime:756	'cnot q3, q2' @(16,39) 		
SimTime:757	Move q2 (16,39)->(17,39) 
SimTime:767	Turn q2 @(17,39) 
SimTime:768	Move q2 (17,39)->(18,39) 
SimTime:778	'h q2' @(18,39) 		

SimTime:10	'h q2' @(18,45) 		'h q0' @(26,45) 		'h q1' @(16,39) 		'h q4' @(18,39) 		
SimTime:11	Move q2 (18,45)->(17,45) Move q3 (26,39)->(27,39) 
SimTime:21	Turn q2 @(17,45) Turn q3 @(27,39) 
SimTime:22	Move q2 (17,45)->(16,45) Move q3 (27,39)->(27,40) 
SimTime:23	Move q3 (27,40)->(27,41) 
SimTime:24	Move q3 (27,41)->(27,42) 
SimTime:25	Move q3 (27,42)->(27,43) 
SimTime:35	Turn q3 @(27,43) 
SimTime:36	Move q3 (27,43)->(26,43) 
SimTime:37	Move q3 (26,43)->(25,43) 
SimTime:38	Move q3 (25,43)->(24,43) 
SimTime:39	Move q3 (24,43)->(23,43) 
SimTime:40	Move q3 (23,43)->(22,43) 
SimTime:41	Move q3 (22,43)->(21,43) 
SimTime:42	Move q3 (21,43)->(20,43) 
SimTime:43	Move q3 (20,43)->(19,43) 
SimTime:44	Move q3 (19,43)->(18,43) 
SimTime:45	Move q3 (18,43)->(17,43) 
SimTime:55	Turn q3 @(17,43) 
SimTime:56	Move q3 (17,43)->(17,44) 
SimTime:57	Move q3 (17,44)->(17,45) 
SimTime:67	Turn q3 @(17,45) 
SimTime:68	Move q3 (17,45)->(16,45) 
SimTime:168	'cnot q3, q2' @(16,45) 		
SimTime:169	Move q4 (18,39)->(17,39) Move q2 (16,45)->(17,45) 
SimTime:179	Turn q4 @(17,39) Turn q2 @(17,45) 
SimTime:180	Move q4 (17,39)->(17,40) Move q2 (17,45)->(18,45) 
SimTime:181	Move q4 (17,40)->(17,41) Move q3 (16,45)->(17,45) 
SimTime:182	Move q4 (17,41)->(17,42) 
SimTime:183	Move q4 (17,42)->(17,43) 
SimTime:184	Move q4 (17,43)->(17,44) 
SimTime:185	
SimTime:191	Turn q3 @(17,45) 
SimTime:192	
SimTime:193	Move q3 (17,44)->(17,43) 
SimTime:194	Move q3 (17,43)->(17,42) 
SimTime:195	Turn q4 @(17,45) Move q3 (17,42)->(17,41) 
SimTime:196	Move q4 (17,45)->(18,45) Move q3 (17,41)->(17,40) 
SimTime:197	Move q3 (17,40)->(17,39) 
SimTime:207	Turn q3 @(17,39) 
SimTime:208	Move q3 (17,39)->(16,39) 
SimTime:296	'cnot q4, q2' @(18,45) 		
SimTime:308	'cnot q3, q1' @(16,39) 		
SimTime:309	Move q2 (18,45)->(17,45) Move q1 (16,39)->(17,39) 
SimTime:319	Turn q2 @(17,45) Turn q1 @(17,39) 
SimTime:320	Move q2 (17,45)->(16,45) Move q1 (17,39)->(17,40) 
SimTime:321	Move q1 (17,40)->(17,41) 
SimTime:322	Move q1 (17,41)->(17,42) Move q3 (16,39)->(17,39) Move q0 (26,45)->(27,45) 
SimTime:323	Move q1 (17,42)->(17,43) 
SimTime:324	Move q1 (17,43)->(17,44) 
SimTime:325	Move q1 (17,44)->(17,45) 
SimTime:332	Turn q0 @(27,45) Turn q3 @(17,39) 
SimTime:333	Move q0 (27,45)->(27,44) Move q3 (17,39)->(18,39) 
SimTime:334	Move q0 (27,44)->(27,43) 
SimTime:335	Turn q1 @(17,45) Move q0 (27,43)->(27,42) 
SimTime:336	Move q1 (17,45)->(16,45) Move q0 (27,42)->(27,41) 
SimTime:346	Turn q0 @(27,41) 
SimTime:347	Move q0 (27,41)->(26,41) 
SimTime:348	Move q0 (26,41)->(25,41) 
SimTime:349	Move q0 (25,41)->(24,41) 
SimTime:350	Move q0 (24,41)->(23,41) 
SimTime:351	Move q0 (23,41)->(22,41) 
SimTime:352	Move q0 (22,41)->(21,41) 
SimTime:353	Move q0 (21,41)->(20,41) 
SimTime:354	Move q0 (20,41)->(19,41) 
SimTime:355	Move q0 (19,41)->(18,41) 
SimTime:356	Move q0 (18,41)->(17,41) 
SimTime:366	Turn q0 @(17,41) 
SimTime:367	Move q0 (17,41)->(17,40) 
SimTime:368	Move q0 (17,40)->(17,39) 
SimTime:378	Turn q0 @(17,39) 
SimTime:379	Move q0 (17,39)->(18,39) 
SimTime:436	'cnot q2, q1' @(16,45) 		
SimTime:437	Move q1 (16,45)->(17,45) 
SimTime:447	Turn q1 @(17,45) 
SimTime:448	Move q1 (17,45)->(18,45) 
SimTime:479	'cnot q3, q0' @(18,39) 		
SimTime:480	Move q2 (16,45)->(17,45) Move q0 (18,39)->(17,39) 
SimTime:490	Turn q2 @(17,45) Turn q0 @(17,39) 
SimTime:491	Move q2 (17,45)->(17,44) Move q0 (17,39)->(16,39) 
SimTime:492	Move q2 (17,44)->(17,43) 
SimTime:493	Move q2 (17,43)->(17,42) 
SimTime:494	Move q2 (17,42)->(17,41) 
SimTime:495	Move q2 (17,41)->(17,40) 
SimTime:496	Move q2 (17,40)->(17,39) 
SimTime:506	Turn q2 @(17,39) 
SimTime:507	Move q2 (17,39)->(16,39) 
SimTime:548	'cnot q4, q1' @(18,45) 		
SimTime:607	'cnot q2, q0' @(16,39) 		
SimTime:608	Move q4 (18,45)->(17,45) Move q0 (16,39)->(17,39) 
SimTime:618	Turn q4 @(17,45) Turn q0 @(17,39) 
SimTime:619	Move q4 (17,45)->(16,45) Move q0 (17,39)->(17,40) 
SimTime:620	Move q0 (17,40)->(17,41) 
SimTime:621	Move q0 (17,41)->(17,42) 
SimTime:622	Move q0 (17,42)->(17,43) 
SimTime:623	Move q0 (17,43)->(17,44) 
SimTime:624	Move q0 (17,44)->(17,45) 
SimTime:634	Turn q0 @(17,45) 
SimTime:635	Move q0 (17,45)->(16,45) 
SimTime:735	'cnot q4, q0' @(16,45) 		

SimTime:1	Move q4 (16,45)->(17,45) Move q0 (16,45)->(17,45) 
SimTime:11	Turn q4 @(17,45) Turn q0 @(17,45) 
SimTime:12	
SimTime:13	
SimTime:23	Turn q4 @(17,47) Turn q0 @(17,47) 
SimTime:24	Move q4 (17,47)->(16,47) Move q0 (17,47)->(16,47) 
SimTime:124	'cnot q4, q0' @(16,47) 		
SimTime:125	Move q3 (18,39)->(17,39) Move q0 (16,47)->(17,47) 
SimTime:135	Turn q3 @(17,39) Turn q0 @(17,47) 
SimTime:136	Move q3 (17,39)->(17,40) Move q0 (17,47)->(17,46) 
SimTime:137	Move q3 (17,40)->(17,41) Move q0 (17,46)->(17,45) 
SimTime:138	Move q3 (17,41)->(17,42) 
SimTime:139	Move q3 (17,42)->(17,43) 
SimTime:140	Move q3 (17,43)->(17,44) 
SimTime:141	
SimTime:147	Turn q0 @(17,45) 
SimTime:148	Move q0 (17,45)->(16,45) 
SimTime:151	Turn q3 @(17,45) 
SimTime:152	Move q3 (17,45)->(16,45) 
SimTime:153	Move q4 (16,47)->(17,47) Move q1 (18,45)->(17,45) 
SimTime:163	Turn q4 @(17,47) Turn q1 @(17,45) 
SimTime:164	Move q4 (17,47)->(18,47) Move q1 (17,45)->(17,46) 
SimTime:165	Move q1 (17,46)->(17,47) 
SimTime:175	Turn q1 @(17,47) 
SimTime:176	Move q1 (17,47)->(18,47) 
SimTime:252	'cnot q3, q0' @(16,45) 		
SimTime:253	Move q0 (16,45)->(17,45) 
SimTime:263	Turn q0 @(17,45) 
SimTime:264	Move q0 (17,45)->(17,44) 
SimTime:265	Move q0 (17,44)->(17,43) 
SimTime:266	Move q0 (17,43)->(17,42) 
SimTime:267	Move q0 (17,42)->(17,41) 
SimTime:268	Move q0 (17,41)->(17,40) 
SimTime:269	Move q0 (17,40)->(17,39) 
SimTime:276	'cnot q4, q1' @(18,47) 		
SimTime:277	Move q3 (16,45)->(17,45) Move q1 (18,47)->(17,47) 
SimTime:279	Turn q0 @(17,39) 
SimTime:280	Move q0 (17,39)->(16,39) 
SimTime:287	Turn q1 @(17,47) Turn q3 @(17,45) 
SimTime:288	Move q1 (17,47)->(16,47) Move q3 (17,45)->(17,46) 
SimTime:289	Move q3 (17,46)->(17,47) 
SimTime:299	Turn q3 @(17,47) 
SimTime:300	Move q3 (17,47)->(16,47) 
SimTime:380	'cnot q2, q0' @(16,39) 		
SimTime:381	Move q0 (16,39)->(17,39) 
SimTime:391	Turn q0 @(17,39) 
SimTime:392	Move q0 (17,39)->(17,38) 
SimTime:393	Move q0 (17,38)->(17,37) 
SimTime:400	'cnot q3, q1' @(16,47) 		
SimTime:401	Move q2 (16,39)->(17,39) Move q1 (16,47)->(17,47) 
SimTime:403	Turn q0 @(17,37) 
SimTime:404	Move q0 (17,37)->(16,37) 
SimTime:411	Turn q1 @(17,47) Turn q2 @(17,39) 
SimTime:412	Move q1 (17,47)->(17,46) Move q2 (17,39)->(17,40) 
SimTime:413	Move q1 (17,46)->(17,45) Move q2 (17,40)->(17,41) 
SimTime:414	Move q2 (17,41)->(17,42) 'h q0' @(16,37) 		
SimTime:415	Move q2 (17,42)->(17,43) 
SimTime:416	Move q2 (17,43)->(17,44) 
SimTime:417	
SimTime:423	Turn q1 @(17,45) 
SimTime:424	Move q1 (17,45)->(16,45) 
SimTime:427	Turn q2 @(17,45) 
SimTime:428	Move q2 (17,45)->(16,45) 
SimTime:528	'cnot q2, q1' @(16,45) 		
SimTime:529	Move q4 (18,47)->(17,47) Move q2 (16,45)->(17,45) 
SimTime:539	Turn q4 @(17,47) Turn q2 @(17,45) 
SimTime:540	Move q2 (17,45)->(18,45) 
SimTime:541	Move q4 (17,46)->(17,45) 
SimTime:550	'h q1' @(16,45) 		
SimTime:551	Turn q4 @(17,45) 
SimTime:552	Move q4 (17,45)->(18,45) 
SimTime:652	'cnot q4, q2' @(18,45) 		
SimTime:653	Move q3 (16,47)->(17,47) Move q2 (18,45)->(17,45) 
SimTime:663	Turn q3 @(17,47) Turn q2 @(17,45) 
SimTime:664	Move q3 (17,47)->(18,47) Move q2 (17,45)->(17,46) 
SimTime:665	Move q2 (17,46)->(17,47) 
SimTime:674	'h q4' @(18,45) 		
SimTime:675	Turn q2 @(17,47) 
SimTime:676	Move q2 (17,47)->(18,47) 
SimTime:776	'cnot q3, q2' @(18,47) 		
SimTime:777	Move q2 (18,47)->(17,47) 
SimTime:787	Turn q2 @(17,47) 
SimTime:788	Move q2 (17,47)->(16,47) 
SimTime:798	'h q2' @(16,47) 		

SimTime:10	'h q2' @(16,47) 		'h q0' @(16,37) 		'h q1' @(16,45) 		'h q4' @(18,45) 		
SimTime:11	Move q3 (18,47)->(17,47) 
SimTime:21	Turn q3 @(17,47) 
SimTime:22	Move q3 (17,47)->(16,47) 
SimTime:122	'cnot q3, q2' @(16,47) 		
SimTime:123	Move q4 (18,45)->(17,45) Move q2 (16,47)->(17,47) 
SimTime:133	Turn q4 @(17,45) Turn q2 @(17,47) 
SimTime:134	Move q2 (17,47)->(18,47) 
SimTime:135	Move q4 (17,46)->(17,47) Move q3 (16,47)->(17,47) 
SimTime:145	Turn q4 @(17,47) Turn q3 @(17,47) 
SimTime:146	Move q4 (17,47)->(18,47) Move q3 (17,47)->(17,46) 
SimTime:147	Move q3 (17,46)->(17,45) 
SimTime:157	Turn q3 @(17,45) 
SimTime:158	Move q3 (17,45)->(16,45) 
SimTime:246	'cnot q4, q2' @(18,47) 		
SimTime:258	'cnot q3, q1' @(16,45) 		
SimTime:259	Move q2 (18,47)->(17,47) Move q1 (16,45)->(17,45) 
SimTime:269	Turn q2 @(17,47) Turn q1 @(17,45) 
SimTime:270	Move q2 (17,47)->(16,47) Move q1 (17,45)->(17,46) 
SimTime:271	Move q1 (17,46)->(17,47) Move q0 (16,37)->(17,37) Move q3 (16,45)->(17,45) 
SimTime:281	Turn q1 @(17,47) Turn q3 @(17,45) Turn q0 @(17,37) 
SimTime:282	Move q1 (17,47)->(16,47) Move q0 (17,37)->(17,38) Move q3 (17,45)->(17,44) 
SimTime:283	Move q0 (17,38)->(17,39) Move q3 (17,44)->(17,43) 
SimTime:284	Move q3 (17,43)->(17,42) 
SimTime:285	Move q3 (17,42)->(17,41) 
SimTime:286	Move q3 (17,41)->(17,40) 
SimTime:287	
SimTime:293	Turn q0 @(17,39) 
SimTime:294	Move q0 (17,39)->(16,39) 
SimTime:297	Turn q3 @(17,39) 
SimTime:298	Move q3 (17,39)->(16,39) 
SimTime:382	'cnot q2, q1' @(16,47) 		
SimTime:383	Move q1 (16,47)->(17,47) 
SimTime:393	Turn q1 @(17,47) 
SimTime:394	Move q1 (17,47)->(18,47) 
SimTime:398	'cnot q3, q0' @(16,39) 		
SimTime:399	Move q2 (16,47)->(17,47) Move q0 (16,39)->(17,39) 
SimTime:409	Turn q2 @(17,47) Turn q0 @(17,39) 
SimTime:410	Move q2 (17,47)->(17,46) Move q0 (17,39)->(17,40) 
SimTime:411	Move q2 (17,46)->(17,45) Move q0 (17,40)->(17,41) 
SimTime:412	Move q0 (17,41)->(17,42) 
SimTime:413	Move q0 (17,42)->(17,43) 
SimTime:414	Move q0 (17,43)->(17,44) 
SimTime:415	
SimTime:421	Turn q2 @(17,45) 
SimTime:422	Move q2 (17,45)->(16,45) 
SimTime:425	Turn q0 @(17,45) 
SimTime:426	Move q0 (17,45)->(16,45) 
SimTime:494	'cnot q4, q1' @(18,47) 		
SimTime:526	'cnot q2, q0' @(16,45) 		
SimTime:527	Move q4 (18,47)->(17,47) Move q0 (16,45)->(17,45) 
SimTime:537	Turn q4 @(17,47) Turn q0 @(17,45) 
SimTime:538	Move q4 (17,47)->(16,47) Move q0 (17,45)->(17,46) 
SimTime:539	Move q0 (17,46)->(17,47) 
SimTime:549	Turn q0 @(17,47) 
SimTime:550	Move q0 (17,47)->(16,47) 
SimTime:650	'cnot q4, q0' @(16,47) 		

SimTime:1	Move q4 (16,47)->(17,47) Move q0 (16,47)->(17,47) 
SimTime:11	Turn q4 @(17,47) Turn q0 @(17,47) 
SimTime:12	
SimTime:13	
SimTime:23	Turn q4 @(17,49) Turn q0 @(17,49) 
SimTime:24	Move q4 (17,49)->(16,49) Move q0 (17,49)->(16,49) 
SimTime:124	'cnot q4, q0' @(16,49) 		
SimTime:125	Move q3 (16,39)->(17,39) Move q0 (16,49)->(17,49) 
SimTime:135	Turn q3 @(17,39) Turn q0 @(17,49) 
SimTime:136	Move q3 (17,39)->(17,40) Move q0 (17,49)->(17,48) 
SimTime:137	Move q3 (17,40)->(17,41) Move q0 (17,48)->(17,47) 
SimTime:138	Move q3 (17,41)->(17,42) 
SimTime:139	Move q3 (17,42)->(17,43) 
SimTime:140	Move q3 (17,43)->(17,44) 
SimTime:141	
SimTime:142	
SimTime:143	
SimTime:147	Turn q0 @(17,47) 
SimTime:148	Move q0 (17,47)->(16,47) 
SimTime:153	Turn q3 @(17,47) 
SimTime:154	Move q3 (17,47)->(16,47) 
SimTime:155	Move q4 (16,49)->(17,49) Move q1 (18,47)->(17,47) 
SimTime:165	Turn q4 @(17,49) Turn q1 @(17,47) 
SimTime:166	Move q4 (17,49)->(18,49) Move q1 (17,47)->(17,48) 
SimTime:167	Move q1 (17,48)->(17,49) 
SimTime:177	Turn q1 @(17,49) 
SimTime:178	Move q1 (17,49)->(18,49) 
SimTime:254	'cnot q3, q0' @(16,47) 		
SimTime:255	Move q0 (16,47)->(17,47) 
SimTime:265	Turn q0 @(17,47) 
SimTime:266	Move q0 (17,47)->(17,46) 
SimTime:267	Move q0 (17,46)->(17,45) 
SimTime:277	Turn q0 @(17,45) 
SimTime:278	'cnot q4, q1' @(18,49) 		Move q0 (17,45)->(16,45) 
SimTime:279	Move q3 (16,47)->(17,47) Move q1 (18,49)->(17,49) 
SimTime:289	Turn q3 @(17,47) Turn q1 @(17,49) 
SimTime:290	Move q1 (17,49)->(16,49) 
SimTime:291	Move q3 (17,48)->(17,49) 
SimTime:301	Turn q3 @(17,49) 
SimTime:302	Move q3 (17,49)->(16,49) 
SimTime:378	'cnot q2, q0' @(16,45) 		
SimTime:379	Move q0 (16,45)->(17,45) 
SimTime:389	Turn q0 @(17,45) 
SimTime:390	Move q0 (17,45)->(17,46) 
SimTime:391	Move q0 (17,46)->(17,47) 
SimTime:401	Turn q0 @(17,47) 
SimTime:402	Move q0 (17,47)->(16,47) 'cnot q3, q1' @(16,49) 		
SimTime:403	Move q2 (16,45)->(17,45) Move q1 (16,49)->(17,49) 
SimTime:412	'h q0' @(16,47) 		
SimTime:413	Turn q1 @(17,49) Turn q2 @(17,45) 
SimTime:414	
SimTime:415	
SimTime:425	Turn q1 @(17,47) Turn q2 @(17,47) 
SimTime:426	Move q1 (17,47)->(18,47) Move q2 (17,47)->(18,47) 
SimTime:526	'cnot q2, q1' @(18,47) 		
SimTime:527	Move q2 (18,47)->(17,47) Move q1 (18,47)->(17,47) 
SimTime:537	Turn q2 @(17,47) Turn q1 @(17,47) 
SimTime:538	
SimTime:539	
SimTime:549	Turn q2 @(17,49) Turn q1 @(17,45) 
SimTime:550	Move q2 (17,49)->(18,49) Move q1 (17,45)->(18,45) 
SimTime:560	'h q1' @(18,45) 		
SimTime:650	'cnot q4, q2' @(18,49) 		
SimTime:651	Move q2 (18,49)->(17,49) Move q4 (18,49)->(17,49) 
SimTime:661	Turn q2 @(17,49) Turn q4 @(17,49) 
SimTime:662	Move q2 (17,49)->(16,49) Move q4 (17,49)->(17,48) 
SimTime:663	Move q4 (17,48)->(17,47) 
SimTime:673	Turn q4 @(17,47) 
SimTime:674	Move q4 (17,47)->(18,47) 
SimTime:684	'h q4' @(18,47) 		
SimTime:762	'cnot q3, q2' @(16,49) 		
SimTime:763	Move q2 (16,49)->(17,49) 
SimTime:773	Turn q2 @(17,49) 
SimTime:774	Move q2 (17,49)->(18,49) 
SimTime:784	'h q2' @(18,49) 		

SimTime:10	'h q2' @(18,49) 		'h q0' @(16,47) 		'h q1' @(18,45) 		'h q4' @(18,47) 		
SimTime:11	Move q3 (16,49)->(17,49) 
SimTime:21	Turn q3 @(17,49) 
SimTime:22	Move q3 (17,49)->(18,49) 
SimTime:122	'cnot q3, q2' @(18,49) 		
SimTime:123	Move q4 (18,47)->(17,47) Move q2 (18,49)->(17,49) 
SimTime:133	Turn q4 @(17,47) Turn q2 @(17,49) 
SimTime:134	Move q2 (17,49)->(16,49) 
SimTime:135	Move q4 (17,48)->(17,49) 
SimTime:145	Turn q4 @(17,49) 
SimTime:146	Move q4 (17,49)->(16,49) 
SimTime:147	Move q3 (18,49)->(17,49) Move q1 (18,45)->(17,45) 
SimTime:157	Turn q3 @(17,49) Turn q1 @(17,45) 
SimTime:158	
SimTime:159	
SimTime:169	Turn q3 @(17,47) Turn q1 @(17,47) 
SimTime:170	Move q3 (17,47)->(18,47) Move q1 (17,47)->(18,47) 
SimTime:246	'cnot q4, q2' @(16,49) 		
SimTime:270	'cnot q3, q1' @(18,47) 		
SimTime:271	Move q2 (16,49)->(17,49) Move q1 (18,47)->(17,47) 
SimTime:281	Turn q2 @(17,49) Turn q1 @(17,47) 
SimTime:282	Move q2 (17,49)->(18,49) Move q1 (17,47)->(17,48) 
SimTime:283	Move q1 (17,48)->(17,49) Move q3 (18,47)->(17,47) 
SimTime:293	Turn q1 @(17,49) Turn q3 @(17,47) 
SimTime:294	Move q1 (17,49)->(18,49) Move q3 (17,47)->(16,47) 
SimTime:394	'cnot q2, q1' @(18,49) 		'cnot q3, q0' @(16,47) 		
SimTime:395	Move q1 (18,49)->(17,49) 
SimTime:405	Turn q1 @(17,49) 
SimTime:406	Move q1 (17,49)->(16,49) 
SimTime:407	Move q2 (18,49)->(17,49) Move q0 (16,47)->(17,47) 
SimTime:417	Turn q2 @(17,49) Turn q0 @(17,47) 
SimTime:418	Move q0 (17,47)->(18,47) 
SimTime:419	Move q2 (17,48)->(17,47) 
SimTime:429	Turn q2 @(17,47) 
SimTime:430	Move q2 (17,47)->(18,47) 
SimTime:506	'cnot q4, q1' @(16,49) 		
SimTime:530	'cnot q2, q0' @(18,47) 		
SimTime:531	Move q4 (16,49)->(17,49) Move q0 (18,47)->(17,47) 
SimTime:541	Turn q4 @(17,49) Turn q0 @(17,47) 
SimTime:542	Move q4 (17,49)->(18,49) Move q0 (17,47)->(17,48) 
SimTime:543	Move q0 (17,48)->(17,49) 
SimTime:553	Turn q0 @(17,49) 
SimTime:554	Move q0 (17,49)->(18,49) 
SimTime:654	'cnot q4, q0' @(18,49) 		

SimTime:1	Move q4 (18,49)->(17,49) Move q0 (18,49)->(17,49) 
SimTime:11	Turn q4 @(17,49) Turn q0 @(17,49) 
SimTime:12	
SimTime:13	
SimTime:14	
SimTime:15	
SimTime:25	Turn q4 @(17,45) Turn q0 @(17,45) 
SimTime:26	Move q4 (17,45)->(18,45) Move q0 (17,45)->(18,45) 
SimTime:126	'cnot q4, q0' @(18,45) 		
SimTime:127	Move q3 (16,47)->(17,47) Move q0 (18,45)->(17,45) 
SimTime:137	Turn q3 @(17,47) Turn q0 @(17,45) 
SimTime:138	Move q0 (17,45)->(16,45) 
SimTime:139	Move q3 (17,46)->(17,45) 
SimTime:149	Turn q3 @(17,45) 
SimTime:150	Move q3 (17,45)->(16,45) 
SimTime:151	Move q4 (18,45)->(17,45) Move q1 (16,49)->(17,49) 
SimTime:161	Turn q4 @(17,45) Turn q1 @(17,49) 
SimTime:162	
SimTime:163	
SimTime:173	Turn q4 @(17,47) Turn q1 @(17,47) 
SimTime:174	Move q4 (17,47)->(16,47) Move q1 (17,47)->(16,47) 
SimTime:250	'cnot q3, q0' @(16,45) 		
SimTime:251	Move q2 (18,47)->(17,47) Move q0 (16,45)->(17,45) 
SimTime:261	Turn q2 @(17,47) Turn q0 @(17,45) 
SimTime:262	Move q0 (17,45)->(18,45) 
SimTime:263	Move q2 (17,46)->(17,45) 
SimTime:273	Turn q2 @(17,45) 
SimTime:274	'cnot q4, q1' @(16,47) 		Move q2 (17,45)->(18,45) 
SimTime:275	Move q1 (16,47)->(17,47) 
SimTime:285	Turn q1 @(17,47) 
SimTime:286	Move q1 (17,47)->(17,46) 
SimTime:287	Move q1 (17,46)->(17,45) 
SimTime:297	Turn q1 @(17,45) 
SimTime:298	Move q1 (17,45)->(16,45) 
SimTime:374	'cnot q2, q0' @(18,45) 		
SimTime:375	Move q0 (18,45)->(17,45) 
SimTime:385	Turn q0 @(17,45) 
SimTime:386	Move q0 (17,45)->(17,46) 
SimTime:387	Move q0 (17,46)->(17,47) 
SimTime:397	Turn q0 @(17,47) 
SimTime:398	Move q0 (17,47)->(18,47) 'cnot q3, q1' @(16,45) 		
SimTime:399	Move q1 (16,45)->(17,45) 
SimTime:408	'h q0' @(18,47) 		
SimTime:409	Turn q1 @(17,45) 
SimTime:410	Move q1 (17,45)->(18,45) 
SimTime:510	'cnot q2, q1' @(18,45) 		
SimTime:511	Move q2 (18,45)->(17,45) Move q1 (18,45)->(17,45) 
SimTime:521	Turn q2 @(17,45) Turn q1 @(17,45) 
SimTime:522	
SimTime:523	
SimTime:524	
SimTime:525	
SimTime:533	Turn q2 @(17,47) 
SimTime:534	Move q2 (17,47)->(16,47) 
SimTime:535	Turn q1 @(17,49) 
SimTime:536	Move q1 (17,49)->(18,49) 
SimTime:546	'h q1' @(18,49) 		
SimTime:634	'cnot q4, q2' @(16,47) 		
SimTime:635	Move q2 (16,47)->(17,47) Move q4 (16,47)->(17,47) 
SimTime:645	Turn q2 @(17,47) Turn q4 @(17,47) 
SimTime:646	
SimTime:647	
SimTime:657	Turn q2 @(17,45) Turn q4 @(17,49) 
SimTime:658	Move q2 (17,45)->(16,45) Move q4 (17,49)->(16,49) 
SimTime:668	'h q4' @(16,49) 		
SimTime:758	'cnot q3, q2' @(16,45) 		
SimTime:759	Move q2 (16,45)->(17,45) 
SimTime:769	Turn q2 @(17,45) 
SimTime:770	Move q2 (17,45)->(17,46) 
SimTime:771	Move q2 (17,46)->(17,47) 
SimTime:781	Turn q2 @(17,47) 
SimTime:782	Move q2 (17,47)->(16,47) 
SimTime:792	'h q2' @(16,47) 		
MVBF total iteration count: 14
------------------------------------
Execution latency: 650.0 us
QSPR runtime 170 ms
Done.

Developers

Questions or Bugs?

You may contact Mohammad Javad Dousti (dousti@usc.edu) for any questions you may have or bugs that you find.

License

Please refer to the LICENSE file.

About

Quantum scheduler, placer, and router

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages