tensorcircuit.applications.vags#

DQAS application kernels as vag functions

tensorcircuit.applications.vags.GHZ_vag(gdata: Any, nnp: Any, preset: Sequence[int], verbose: bool = False, n: int = 3) Tuple[Any, Any][源代码]#
tensorcircuit.applications.vags.GHZ_vag_tfq(gdata: Any, nnp: Any, preset: Sequence[int], verbose: bool = False, index: Tuple[int, int, int, int, int, int, int, int] = (1, 1, 1, 0, 0, 1, 0, 0)) Tuple[Any, Any][源代码]#
tensorcircuit.applications.vags.ave_func(state: Any, g: Any, *fs: Union[Tuple[Callable[[float], float], Callable[[Any], Any]], Tuple[Callable[[float], float], Callable[[Any], Any], Callable[[Any, Any], Any]]]) Sequence[Any][源代码]#
参数
  • state -- 1D array for full wavefunction, the basis is in lexcical order

  • g -- nx.Graph

  • fs -- transformation functions before averaged

返回

tensorcircuit.applications.vags.compose_tc_circuit_with_multiple_pools(theta: Any, preset: Sequence[int], g: Any, pool_choice: Sequence[int], cset: Optional[Sequence[Any]] = None, measure_func: Optional[Callable[[tensorcircuit.densitymatrix.DMCircuit, Any], Any]] = None) tensorcircuit.circuit.Circuit[源代码]#
tensorcircuit.applications.vags.correlation(m: Any, rho: Any) Any[源代码]#
tensorcircuit.applications.vags.cvar(r: List[float], p: Any, percent: float = 0.2) Sequence[float][源代码]#

as f3

参数
  • r --

  • p --

  • percent --

返回

tensorcircuit.applications.vags.double_qubits_initial() Iterator[Sequence[Any]][源代码]#
tensorcircuit.applications.vags.double_state(h: Any, beta: float = 1) Any[源代码]#
tensorcircuit.applications.vags.energy(i: int, n: int, g: Any) float[源代码]#

maxcut energy for n qubit wavefunction i-th basis

参数
  • i -- ranged from 0 to 2**n-1

  • n -- number of qubits

  • g -- nx.Graph

返回

tensorcircuit.applications.vags.entanglement_entropy(state: Any) Any[源代码]#

deprecated as non tf and non flexible, use the combination of reduced_density_matrix and entropy instead.

tensorcircuit.applications.vags.entropy(rho: Any, eps: float = 1e-12) Any[源代码]#

deprecated, current version in tc.quantum

tensorcircuit.applications.vags.evaluate_vag(params: Any, preset: Sequence[int], g: Any, lbd: float = 0.0, overlap_threhold: float = 0.0) Tuple[Any, Any, Any, Any][源代码]#

value and gradient, currently only tensorflow backend is supported jax and numpy seems to be slow in circuit simulation anyhow. deprecated

参数
  • params --

  • preset --

  • g --

  • lbd -- if lbd=0, take energy as objective

  • overlap_threhold -- if as default 0, overlap will not compute in the process

返回

tensorcircuit.applications.vags.exp_forward(theta: Any, preset: Sequence[int], g: Any, *fs: Tuple[Callable[[float], float], Callable[[Any], Any]]) Sequence[Any][源代码]#
tensorcircuit.applications.vags.fidelity(rho: Any, rho0: Any) Any[源代码]#
tensorcircuit.applications.vags.free_energy(rho: Any, h: Any, beta: float = 1, eps: float = 1e-12) Any[源代码]#
tensorcircuit.applications.vags.gapfilling(circuit: cirq.circuits.circuit.Circuit, placeholder: Sequence[Any]) cirq.circuits.circuit.Circuit[源代码]#

Fill single qubit gates according to placeholder on circuit

参数
  • circuit --

  • placeholder --

返回

tensorcircuit.applications.vags.gatewise_vqe_vag(gdata: Any, nnp: Any, preset: Sequence[int], pool_choice: Sequence[int], measure_func: Optional[Callable[[Union[tensorcircuit.circuit.Circuit, tensorcircuit.densitymatrix.DMCircuit], Any], Any]] = None) Tuple[Any, Any][源代码]#
tensorcircuit.applications.vags.gibbs_state(h: Any, beta: float = 1) Any[源代码]#
tensorcircuit.applications.vags.heisenberg_measurements(g: Any, hxx: float = 1.0, hyy: float = 1.0, hzz: float = 1.0, one: bool = True) Any[源代码]#

Hamiltonian measurements for Heisenberg model on graph lattice g

参数
  • g --

  • hxx --

  • hyy --

  • hzz --

  • one --

返回

tensorcircuit.applications.vags.heisenberg_measurements_tc(c: Union[tensorcircuit.circuit.Circuit, tensorcircuit.densitymatrix.DMCircuit], g: Any, hzz: float = 1.0, hxx: float = 1.0, hyy: float = 1.0, hz: float = 0.0, hx: float = 0.0, hy: float = 0.0, reuse: bool = True) Any[源代码]#
tensorcircuit.applications.vags.maxcut_measurements_tc(c: Union[tensorcircuit.circuit.Circuit, tensorcircuit.densitymatrix.DMCircuit], g: Any) Any[源代码]#
tensorcircuit.applications.vags.noise_forward(theta: Any, preset: Sequence[int], g: Any, measure_func: Callable[[tensorcircuit.densitymatrix.DMCircuit, Any], Any], is_mc: bool = False) Any[源代码]#
tensorcircuit.applications.vags.noisyfy(circuit: cirq.circuits.circuit.Circuit, error_model: str = 'bit_flip', p_idle: float = 0.2, p_sep: float = 0.02) cirq.circuits.circuit.Circuit[源代码]#
tensorcircuit.applications.vags.q(i: int) cirq.devices.line_qubit.LineQubit[源代码]#

short cut for cirq.LineQubit(i)

参数

i --

返回

tensorcircuit.applications.vags.qaoa_block_vag(gdata: Any, nnp: Any, preset: Sequence[int], f: Tuple[Callable[[float], float], Callable[[Any], Any]]) Tuple[Any, Any][源代码]#

QAOA block encoding kernel, support 2 params in one op

参数
  • gdata --

  • nnp --

  • preset --

  • f --

返回

tensorcircuit.applications.vags.qaoa_block_vag_energy(gdata: Any, nnp: Any, preset: Sequence[int], *, f: Tuple[Callable[[float], float], Callable[[Any], Any]] = (<function _identity>, <function _neg>)) Tuple[Any, Any]#

QAOA block encoding kernel, support 2 params in one op

参数
  • gdata --

  • nnp --

  • preset --

  • f --

返回

tensorcircuit.applications.vags.qaoa_noise_vag(gdata: Any, nnp: Any, preset: Sequence[int], measure_func: Optional[Callable[[tensorcircuit.densitymatrix.DMCircuit, Any], Any]] = None, forward_func: Optional[Callable[[Any, Sequence[int], Any, Callable[[tensorcircuit.densitymatrix.DMCircuit, Any], Any]], Any]] = None, **kws: Any) Tuple[Any, Any][源代码]#
tensorcircuit.applications.vags.qaoa_train(preset: Sequence[int], g: Union[Any, Iterator[Any]], *, epochs: int = 100, batch: int = 1, initial_param: Optional[Any] = None, opt: Optional[Any] = None, lbd: float = 0.0, overlap_threhold: float = 0.0, verbose: bool = True) Tuple[Any, Sequence[float], Sequence[float], Sequence[float]][源代码]#

training QAOA with only optimizing circuit parameters, can be well replaced with more general function DQAS_search

参数
  • preset --

  • g --

  • epochs --

  • batch --

  • initial_param --

  • opt --

  • lbd --

  • overlap_threhold --

  • verbose --

返回

tensorcircuit.applications.vags.qaoa_vag(gdata: Any, nnp: Any, preset: Sequence[int], f: Optional[Tuple[Callable[[float], float], Callable[[Any], Any]]] = None, forward_func: Optional[Callable[[Any, Sequence[int], Any, Tuple[Callable[[float], float], Callable[[Any], Any]]], Tuple[Any, Any]]] = None, verbose_fs: Optional[Sequence[Tuple[Callable[[float], float], Callable[[Any], Any]]]] = None) Tuple[Any, Any][源代码]#
tensorcircuit.applications.vags.qaoa_vag_energy(gdata: Any, nnp: Any, preset: Sequence[int], *, f: Optional[Tuple[Callable[[float], float], Callable[[Any], Any]]] = (<function _identity>, <function _neg>), forward_func: Optional[Callable[[Any, Sequence[int], Any, Tuple[Callable[[float], float], Callable[[Any], Any]]], Tuple[Any, Any]]] = None, verbose_fs: Optional[Sequence[Tuple[Callable[[float], float], Callable[[Any], Any]]]] = None) Tuple[Any, Any]#
tensorcircuit.applications.vags.qft_circuit(n: int) cirq.circuits.circuit.Circuit[源代码]#
tensorcircuit.applications.vags.qft_qem_vag(gdata: Any, nnp: Any, preset: Sequence[int], n: int = 3, p_idle: float = 0.2, p_sep: float = 0.02) Tuple[Any, Any][源代码]#
tensorcircuit.applications.vags.quantum_mp_qaoa_vag(gdata: Any, nnp: Any, preset: Sequence[int], measurements_func: Optional[Callable[[...], Any]] = None, **kws: Any) Tuple[Any, Any][源代码]#

multi parameter for one layer

参数
  • gdata --

  • nnp --

  • preset --

  • measurements_func --

  • kws -- kw arguments for measurements_func

返回

loss function, gradient of nnp

tensorcircuit.applications.vags.quantum_qaoa_vag(gdata: Any, nnp: Any, preset: Sequence[int], measurements_func: Optional[Callable[[...], Any]] = None, **kws: Any) Tuple[Any, Any][源代码]#

tensorflow quantum backend compare to qaoa_vag which is tensorcircuit backend

参数
  • gdata --

  • nnp --

  • preset --

  • measurements_func --

  • kws -- kw arguments for measurements_func

返回

tensorcircuit.applications.vags.reduced_density_matrix(state: Any, freedom: int, cut: Union[int, List[int]], p: Optional[Any] = None) Any[源代码]#

deprecated, current version in tc.quantum

tensorcircuit.applications.vags.renyi_entropy(rho: Any, k: int = 2, eps: float = 1e-12) Any[源代码]#
tensorcircuit.applications.vags.renyi_free_energy(rho: Any, h: Any, beta: float = 1) Any[源代码]#
tensorcircuit.applications.vags.taylorlnm(x: Any, k: int) Any[源代码]#
tensorcircuit.applications.vags.tfim_measurements(g: Any, hzz: float = 1, hx: float = 0, hz: float = 0, one: bool = True) Any[源代码]#

Hamiltonian for tfim on lattice defined by graph g

参数
  • g --

  • hzz --

  • hx --

  • hz --

  • one --

返回

cirq.PauliSum as operators for tfq expectation layer

tensorcircuit.applications.vags.tfim_measurements_tc(c: Union[tensorcircuit.circuit.Circuit, tensorcircuit.densitymatrix.DMCircuit], g: Any, hzz: float = 1.0, hx: float = 0.0, hz: float = 0.0) Any[源代码]#
tensorcircuit.applications.vags.trace_distance(rho: Any, rho0: Any, eps: float = 1e-12) Any[源代码]#
tensorcircuit.applications.vags.truncated_free_energy(rho: Any, h: Any, beta: float = 1, k: int = 2, eps: float = 1e-12) Any[源代码]#
tensorcircuit.applications.vags.unitary_design(n: int, l: int = 3) cirq.circuits.circuit.Circuit[源代码]#

generate random wavefunction from approximately Haar measure, reference: https://doi.org/10.1063/1.4983266

参数
  • n -- number of qubits

  • l -- repetition of the blocks

返回

tensorcircuit.applications.vags.unitary_design_block(circuit: cirq.circuits.circuit.Circuit, n: int) cirq.circuits.circuit.Circuit[源代码]#

random Haar measure approximation

参数
  • circuit -- cirq.Circuit, empty circuit

  • n -- # of qubit

返回