Skip to content

Releases: ChitambarLab/qNetVO

v0.4.4

27 Jul 19:23
b516495
Compare
Choose a tag to compare

Non-Breaking Changes

* The Pennylane dependency was updated to the most recent version (v0.37)

  • Docs dependencies on m2r2 were removed and replaced with sphinx-mdinclude
  • The sphinx build action was removed from the project's github action workflows due to sphinx being v2 rather than v8. A custom docs build command using the most recent sphinx version was used instead.
  • All qnetvo issues related to this update were resolved.

v0.4.3

01 Oct 18:42
Compare
Choose a tag to compare
  • Added Demos for training quantum networking protocols using classical and quantum communications
  • Added support for qml.AdamOptimizer in qnetvo.gradient_descent
  • Fixed bug in qnetvo.behavior_fn where multiple layers were not handled properly.

v0.4.2

15 Mar 18:21
2c456fa
Compare
Choose a tag to compare

Updates:

  • PennyLane has been upgraded to the most recent version (v0.29.1)

Non-breaking changes:

  • Flaky unit test failures are rerun on failure for stability
  • File-IO functionality broken in v0.3 release is fixed so that optimization dictionaries can be written and read from json.

v0.4.1

20 Jan 21:14
5cea880
Compare
Choose a tag to compare

In this release we add a few new utilities and ansatzes.

  • state_vec_fn : constructs a function that obtains the vector representation of a quantum state output from a circuit.
  • density_mat_fn : constructs a function that obtains the density matrix representation of a quantum state output from a circuit.
  • W_state : Initializes the 3-qubit W state
  • nonmax_entangled_state : initializes a GHZ-like state that is nonmaximally entangled.
  • shared_coin_flip_state: generates a mixed state that mimics the a biased coinflip shared between multiple parties.
  • graph_state_fn : generates a circuit that initializes a pre-specified graph state.

v0.4.0

13 Jan 18:50
a695dba
Compare
Choose a tag to compare

In this release we are pleased to announce that local operations and classical communication (LOCC) is now supported by qNetVO simulation and variational optimization software. This new functionality allows users to implement and optimize protocols such as teleportation, entanglement swapping, entanglement distillation, and many more!

Our new features allow for CCSender nodes to measure a quantum state and broadcast the classical result. A CCReceiver node can then receive the broadcast and use the classical information to condition an input. The midcircuit measurements and conditioned operations are implemented from trainable unitary circuits.

Modifications:

  • Restructured network node class hierarchy and introduce CCSender and CCReceiver` network nodes.
  • Added support for classical communication within the NetworkAnsatz class is considered.
  • Update qNetVO to use the most recent version of PennyLane (v0.28.0)

Breaking Changes:

Minor breaking changes are incorporated in this release. In particular, the attributes of the NetworkAnsatz.

More generally, we observe that the parallelized gradient evaluation available for the CHSH and nlocal star/chain cost functions becomes flaky in PennyLane v0.28. If utilizing the parallel gradient evaluation methods, consider using qNetVO v0.3.0 and PennyLane v0.27.0 for improved stability.

v0.3.0

17 Nov 16:36
2a69613
Compare
Choose a tag to compare

New Features

  1. Processing Nodes: Networks can now have an arbitrary numbers of node layers. The first layer contains PrepareNodes, the final layer contains MeasureNodes, and intermediate layers contain either NoiseNodes or ProcessingNodes.
  2. Cost functions were updated to handle arbitrary numbers of layers.
  3. PennyLane is updated to current version 0.27.

Breaking Changes

  1. for the NetworkAnsatz constructor, the positional argument noise_nodes can no longer go behind the measurement node layer. All nodes, must be passed to NetworkAnsatz as positional arguments in the appropriate ordering. The last set of nodes must be a measurement layer, however, the remaining layers are generic.
  2. Networks with noise nodes no longer use "default.mixed" automatically. All devices must be specified manually using the dev_kwargs keyword argument for the NetworkAnsatz constructor.
  3. All supported cost functions are updated to handle processing nodes, which changed the behavior of a few cost function constructors:
    • For the shannon_entropy_cost_fn method all nodes are passed input 0 explicitly.
    • In the mutual_info_cost_fn the static_layer argument is removed where the mutual information is evaluated for all inputs and outputs.

Release v0.2.0: Updating to PennyLane v0.26

07 Oct 13:05
e1e3b45
Compare
Choose a tag to compare

Breaking Changes

  • Network settings are now stored in a 1D list rather than the nested ragged array structure used previously. As part of this change, requires_grad can be set individually for each network parameter. As a result, there is no longer a need for the static_settings attribute to be set at the node level. Instead, fixed or static settings are specified when creating settings with the rand_network_settings and similar functions.

v0.1.4

24 Jul 04:40
8a3ac3d
Compare
Choose a tag to compare

Features:

  • shannon_entropy_cost_fn : optimize shannon entropy in network
  • added __version__ attribute to qnetvo package

v0.1.3

04 May 22:37
69515ac
Compare
Choose a tag to compare

Fixing import bug.

v0.1.2

18 Apr 01:12
69ab844
Compare
Choose a tag to compare

Updating PennyLane to v0.22