From 98aa6df6393a0484ff4474b179bbeac28831fb5f Mon Sep 17 00:00:00 2001 From: Yusheng Zhao Date: Thu, 19 Sep 2024 15:14:59 +0800 Subject: [PATCH] up --- example/Manifest.toml | 91 ++++++++++++++++++++++++++++++++++++++++++- example/Project.toml | 1 + example/floquetify.jl | 13 ++++--- 3 files changed, 99 insertions(+), 6 deletions(-) diff --git a/example/Manifest.toml b/example/Manifest.toml index 9a75376..b294a84 100644 --- a/example/Manifest.toml +++ b/example/Manifest.toml @@ -2,7 +2,13 @@ julia_version = "1.10.5" manifest_format = "2.0" -project_hash = "b42a5fb017e826acfad69bafa7d12157ff542c4c" +project_hash = "e6b2d3006085b0b07a752d3c3fcf1f8a66aa957c" + +[[deps.ASL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6252039f98492252f9e47c312c8ffda0e3b9e78d" +uuid = "ae81ac8f-d209-56e5-92de-9978fef736f9" +version = "0.1.3+0" [[deps.AbstractFFTs]] deps = ["LinearAlgebra"] @@ -474,6 +480,11 @@ git-tree-sha1 = "1ed150b39aebcc805c26b93a8d0122c940f64ce2" uuid = "559328eb-81f9-559d-9380-de523a88c83c" version = "1.0.14+0" +[[deps.GMP_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "781609d7-10c4-51f6-84f2-b8444358ff6d" +version = "6.2.1+6" + [[deps.GeoFormatTypes]] git-tree-sha1 = "59107c179a586f0fe667024c5eb7033e81333271" uuid = "68eda718-8dee-11e9-39e7-89f7f65f511f" @@ -550,6 +561,12 @@ git-tree-sha1 = "401e4f3f30f43af2c8478fc008da50096ea5240f" uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" version = "8.3.1+0" +[[deps.Hwloc_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "5e19e1e4fa3e71b774ce746274364aef0234634e" +uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" +version = "2.11.1+0" + [[deps.HypergeometricFunctions]] deps = ["LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] git-tree-sha1 = "7c4195be1649ae622304031ed46a2f4df989f1eb" @@ -652,6 +669,12 @@ weakdeps = ["Random", "RecipesBase", "Statistics"] IntervalSetsRecipesBaseExt = "RecipesBase" IntervalSetsStatisticsExt = "Statistics" +[[deps.Ipopt_jll]] +deps = ["ASL_jll", "Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "MUMPS_seq_jll", "SPRAL_jll", "libblastrampoline_jll"] +git-tree-sha1 = "f06a7fd68e29c8acc96483d6f163dab58626c4b5" +uuid = "9cc047cb-c261-5740-88fc-0cf96f7bdcc7" +version = "300.1400.1302+0" + [[deps.IrrationalConstants]] git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" @@ -839,6 +862,12 @@ git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" version = "1.0.3" +[[deps.METIS_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "1fd0a97409e418b78c53fac671cf4622efdf0f21" +uuid = "d00139f3-1899-568f-a2f0-47f597d42d70" +version = "5.1.2+0" + [[deps.MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] git-tree-sha1 = "f046ccd0c6db2832a9f639e2c669c6fe867e5f4f" @@ -850,6 +879,12 @@ git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" uuid = "d8e11817-5142-5d16-987a-aa16d5891078" version = "0.4.17" +[[deps.MUMPS_seq_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "METIS_jll", "libblastrampoline_jll"] +git-tree-sha1 = "24dd34802044008ef9a596de32d63f3c9ddb7802" +uuid = "d7ed1dd3-d0ae-5e8e-bfb4-87a502085b8d" +version = "500.600.100+0" + [[deps.MacroTools]] deps = ["Markdown", "Random"] git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" @@ -943,6 +978,12 @@ git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" version = "1.0.2" +[[deps.Ncurses_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "3ac1ca10bae513c9cc8f83d7734b921b8007b574" +uuid = "68e3532b-a499-55ff-9963-d1c0c0748b3a" +version = "6.5.0+0" + [[deps.Netpbm]] deps = ["FileIO", "ImageCore", "ImageMetadata"] git-tree-sha1 = "d92b107dbb887293622df7697a2223f9f8176fcd" @@ -1011,6 +1052,12 @@ git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" version = "1.3.5+1" +[[deps.OpenBLAS32_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6065c4cff8fee6c6770b277af45d5082baacdba1" +uuid = "656ef2d0-ae68-5445-9ca0-591084a874a2" +version = "0.3.24+0" + [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" @@ -1208,6 +1255,12 @@ weakdeps = ["FixedPointNumbers"] [deps.Ratios.extensions] RatiosFixedPointNumbersExt = "FixedPointNumbers" +[[deps.Readline_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ncurses_jll"] +git-tree-sha1 = "9d70e0c890a6c7ca3eb1ca0eaabba4d34795b7fb" +uuid = "05236dd9-4125-5232-aa7c-9ec0c9b2c25a" +version = "8.2.1+0" + [[deps.RecipesBase]] deps = ["PrecompileTools"] git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" @@ -1248,6 +1301,24 @@ git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" version = "0.2.1" +[[deps.SCIP]] +deps = ["Libdl", "LinearAlgebra", "MathOptInterface", "OpenBLAS32_jll", "SCIP_PaPILO_jll", "SCIP_jll"] +git-tree-sha1 = "3d6a6516d6940a93b732e8ec7127652a0ead89c6" +uuid = "82193955-e24f-5292-bf16-6f2c5261a85f" +version = "0.11.14" + +[[deps.SCIP_PaPILO_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "GMP_jll", "Ipopt_jll", "JLLWrappers", "Libdl", "OpenBLAS32_jll", "Readline_jll", "Zlib_jll", "bliss_jll", "boost_jll", "oneTBB_jll"] +git-tree-sha1 = "c3cc2d09a8383a5dd01f136e4f398150921dae00" +uuid = "fc9abe76-a5e6-5fed-b0b7-a12f309cf031" +version = "800.100.0+0" + +[[deps.SCIP_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "GMP_jll", "Ipopt_jll", "JLLWrappers", "Libdl", "Readline_jll", "Zlib_jll", "bliss_jll", "boost_jll"] +git-tree-sha1 = "08f085b6144c47099ed81f564576530ce529ae87" +uuid = "e5ac4fe4-a920-5659-9bf8-f9f73e9e79ce" +version = "800.100.0+1" + [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" version = "0.7.0" @@ -1258,6 +1329,12 @@ git-tree-sha1 = "2803cab51702db743f3fda07dd1745aadfbf43bd" uuid = "fdea26ae-647d-5447-a871-4b548cad5224" version = "3.5.0" +[[deps.SPRAL_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "Libdl", "METIS_jll", "libblastrampoline_jll"] +git-tree-sha1 = "d1ca34081034a9c6903cfbe068a952a739c2aa5c" +uuid = "319450e9-13b8-58e8-aa9f-8fd1420848ab" +version = "2023.8.2+0" + [[deps.Scratch]] deps = ["Dates"] git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" @@ -1629,6 +1706,18 @@ deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" version = "1.2.13+1" +[[deps.bliss_jll]] +deps = ["Artifacts", "GMP_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f8b75e896a326a162a4f6e998990521d8302c810" +uuid = "508c9074-7a14-5c94-9582-3d4bc1871065" +version = "0.77.0+1" + +[[deps.boost_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "72f8f9628f7f008e2616fe4c32ceb96bc82da733" +uuid = "28df3c45-c428-5900-9ff8-a3135698ca75" +version = "1.79.0+0" + [[deps.isoband_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c" diff --git a/example/Project.toml b/example/Project.toml index a78ba9a..ee3dc5a 100644 --- a/example/Project.toml +++ b/example/Project.toml @@ -2,5 +2,6 @@ CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" GraphMakie = "1ecd5474-83a3-4783-bb4f-06765db800d2" JuMP = "4076af6c-e467-56ae-b986-b466b2749572" +SCIP = "82193955-e24f-5292-bf16-6f2c5261a85f" WGLMakie = "276b4fcb-3e11-5398-bf8b-a0c2d153d008" ZXCalculus = "3525faa3-032d-4235-a8d4-8c2939a218dd" diff --git a/example/floquetify.jl b/example/floquetify.jl index 45cba93..7819e9d 100644 --- a/example/floquetify.jl +++ b/example/floquetify.jl @@ -5,6 +5,8 @@ using ZXCalculus.ZX.Multigraphs, ZXCalculus.ZX.Graphs using ZXCalculus.Utils: Parameter using WGLMakie, GraphMakie using ZXCalculus.ZX.MLStyle +using JuMP +using SCIP function make_meas_mg(weight::T) where {T<:Integer} spiders_mg = Multigraph(weight * 3 + 1) @@ -77,11 +79,6 @@ four_layer_after_rewrite_zxwd = ZXW.concat!(copy(two_layer_after_rewrite_zxwd), ZXCalculus.ZXW.plot(four_layer_after_rewrite_zxwd) -for sp in ZXW.spiders(four_layer_after_rewrite_zxwd) - @show ZXW.degree(four_layer_after_rewrite_zxwd, sp) -end - - # Convert requirement checking into linear programming @@ -122,6 +119,12 @@ end function extract_k_qubit_circuit(zxwd::ZXWDiagram{T,P}) where {T,P} + + has_even_dg1_zx_spiders(zxwd) || error("We don't have even number of degree 1 spiders") + has_only_dg1_3_spiders(zxwd) || error("We don't have only degree 1 or 3 spiders") + + models = Model(SCIp.Optimizer) + # Req2: Causallity must not be violated in the colored version, assign variables to the vertices # Req4: topology of the finished diagram will be nice, i.e planar # Isn't this just extracting circuit from ZX-Diagram? It is proven to be #P-Complete. Need to search