MCPcopy Create free account
hub / github.com/Apress/quantum-machine-learning-python / main

Method main

Chapter_7/listing7_3/QAOA.py:104–132  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

102
103
104 def main(self):
105 gammas = np.linspace(0, 1,50)
106 betas = np.linspace(0, np.pi, 50)
107 expectation_dict, waveform_dict = self.optimize_params(gammas, betas)
108 expectation_vals = np.array(list(expectation_dict.values()))
109 expectation_params = list(expectation_dict.keys())
110 waveform_vals = np.array(list(waveform_dict.values()))
111 optim_param = expectation_params[np.argmin(expectation_vals)]
112 optim_expectation = expectation_vals[np.argmin(expectation_vals)]
113 optim_waveform = waveform_vals[np.argmin(expectation_vals)]
114 print(f"Optimized parameters")
115 print(f"-----------------------------")
116 print(f" gamma,beta = {optim_param[0]}, {optim_param[1]}")
117 print(f" Expectation = {optim_expectation}")
118 print(f"-----------------------------")
119 optimal_waveform_prob = np.array([np.abs(x)**2 for x in optim_waveform])
120 states = np.array([bin(i).replace('0b', "") for i in range(2 ** self.num_elems)])
121 states = np.array([((self.num_elems - len(s)) * '0' + s) for s in states])
122 sort_indices = np.argsort(-1 * np.array(optimal_waveform_prob))
123 print(sort_indices)
124 optimal_waveform_prob = optimal_waveform_prob[sort_indices]
125 states = states[sort_indices]
126 print(f"State | Probability")
127 print(f"-----------------------------")
128 for i in range(len(states)):
129 print(f"{states[i]} | {np.round(optimal_waveform_prob[i],3)}")
130 print(f"-----------------------------")
131
132 return expectation_dict
133
134
135if __name__ == '__main__':

Callers 1

QAOA.pyFile · 0.45

Calls 1

optimize_paramsMethod · 0.95

Tested by

no test coverage detected