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.
Download
You may download QSPR from here or from my github.
Change Log
- 1.00: Initial release.
Directories & File Structure
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
QSPR |-- build.xml -> Ant build file |-- 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
- Ant 1.7 or higher (http://ant.apache.org) or Eclipse 3.8 or higher (https://www.eclipse.org)
- Oracle Java 6-JDK or higher (http://www.oracle.com/technetwork/java/javase/downloads/index.html)
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:
1 |
ant |
This command will clean the built files:
1 |
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.
1 |
java -jar qspr.jar |
QSPR options are listed below:
1 2 3 4 5 6 7 8 9 10 |
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.
1 |
java -jar qspr.jar -i sample_inputs/7-1-3.qasm -f sample_inputs/fabric.ql -o output.txt -p baseline -v |
2- The following command maps circuit “5-1-3.qasm” to the fabric “fabric.ql”. It writes the detailed MCL to stdout. The “MVFB” method will be used for placement.
1 |
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:
1 2 3 4 |
Layout parsing completed successfully! QASM parsing completed successfully! Scheduling is completed succesfully! Done. |
Content of “output.txt”:
1 2 3 4 5 6 7 8 9 10 11 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 |
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
Mohammad Javad Dousti and Massoud Pedram
Questions or Bugs?
You may contact Mohammad Javad Dousti for any questions you may have or bugs that you find.
License
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Copyright (C) 2014 Mohammad Javad Dousti and Massoud Pedram, University of Southern California. All rights reserved. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any non-commercial purpose, provided that the above copyright notice and the following four paragraphs appear in all copies of this software, whether in binary form or not. IN NO EVENT SHALL THE AUTHORS OR THE UNIVERSITY OF SOUTHERN CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THEY HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE AUTHORS AND THE UNIVERSITY OF SOUTHERN CALIFORNIA SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE AUTHORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. If you use this software or a modified version of it, any of the following papers or an appropriate updated version by the same authors must be cited: - M. J. Dousti and M. Pedram, "LEQA: latency estimation for a quantum algorithm mapped to a quantum circuit fabric," Proc. of Design Automation Conference (DAC), Jun. 2013. - M. J. Dousti and M. Pedram, "Minimizing the latency of quantum circuits during mapping to the ion-trap circuit fabric," Proc. of Design Automation and Test in Europe (DATE), Mar. 2012. |