@@ -83,15 +83,26 @@ class TestShannonEntropy:
8383 def test_shannon_entropy_pure_state (self ):
8484 np .random .seed (123 )
8585
86- prep_node = [qnet .PrepareNode (1 , [0 , 1 ], qnet .ghz_state , 0 )]
87- meas_node = [qnet .MeasureNode (1 , 4 , [0 , 1 ], qml .ArbitraryUnitary , 4 ** 2 - 1 )]
86+ def test_meas_circ (settings , wires ):
87+ qml .CNOT (wires = wires [0 :2 ])
88+ qml .RZ (settings [0 ], wires = wires [0 ])
89+ qml .RY (settings [1 ], wires = wires [0 ])
90+
91+ prep_node = [qnet .PrepareNode (wires = [0 , 1 ], ansatz_fn = qnet .ghz_state )]
92+ meas_node = [
93+ qnet .MeasureNode (num_out = 4 , wires = [0 , 1 ], ansatz_fn = test_meas_circ , num_settings = 2 )
94+ ]
8895
8996 ansatz = qnet .NetworkAnsatz (prep_node , meas_node )
9097 shannon_entropy = qnet .shannon_entropy_cost_fn (ansatz )
9198
9299 settings = ansatz .rand_network_settings ()
93100 opt_dict = qnet .gradient_descent (
94- shannon_entropy , settings , step_size = 0.08 , sample_width = 5 , num_steps = 30
101+ shannon_entropy ,
102+ settings ,
103+ step_size = 0.15 ,
104+ sample_width = 5 ,
105+ num_steps = 35 ,
95106 )
96107
97108 assert np .isclose (opt_dict ["scores" ][- 1 ], 0 , atol = 0.0005 )
0 commit comments