<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/networkx.git/doc/reference/algorithms, branch main</title>
<subtitle>github.com: networkx/networkx.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/networkx.git/'/>
<entry>
<title>Fix module docstring format for ismags reference article. (#6611)</title>
<updated>2023-04-03T19:44:39+00:00</updated>
<author>
<name>Ross Barnowski</name>
<email>rossbar@berkeley.edu</email>
</author>
<published>2023-04-03T19:44:39+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/networkx.git/commit/?id=020eaf626d6252f71a75751f63c57cbcc3d55573'/>
<id>020eaf626d6252f71a75751f63c57cbcc3d55573</id>
<content type='text'>
Improperly formatted Notes/References sections was causing a sphinx
parsing error which led to a very poorly formatted html page.

Fixing the numpydoc formatting for the module docstring + minor
munging of the heading levels was sufficient to fix this.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Improperly formatted Notes/References sections was causing a sphinx
parsing error which led to a very poorly formatted html page.

Fixing the numpydoc formatting for the module docstring + minor
munging of the heading levels was sufficient to fix this.</pre>
</div>
</content>
</entry>
<entry>
<title>add simple cycle enumerator for undirected class (#6461)</title>
<updated>2023-03-28T20:18:28+00:00</updated>
<author>
<name>Kelly Boothby</name>
<email>boothby@dwavesys.com</email>
</author>
<published>2023-03-28T20:18:28+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/networkx.git/commit/?id=e49d8db79eef19294acedae7425e8022a97a4891'/>
<id>e49d8db79eef19294acedae7425e8022a97a4891</id>
<content type='text'>
* add simple cycle enumerator for undirected class

* Implemented Gupta &amp; Suzumura and refactored Johnson in a common form
and unified their call-site.  Now, users can enumerate simple cycles
of directed or undireced graphs, with bounded or unbounded length,
all from the same `simple_cycles` function.  I abandoned the stretch
goal of enumerating chordless cycles, as they are not gracefully
handled by the algorithms of Johnson nor Gupta &amp; Suzumura.

* updated tests for simple_cycles to include undirected graphs

* * fixed documentation issues, elaborated on algorithm details
* restricted to nontrivial components
* removed specialized DFS to pick edges from undirected components
    lemma: if G is a biconnected graph with at least 3 nodes and
    e is an edge in G, then e belongs to a cycle

* added tests for undirected and bounded cases for simple_cycles

* added handling for digons in multigraphs

* * Improved support for multigraphs
* Split chordless_cycles out from simple_cycles because the case
  analysis got so tricky
* Added enhanced cycle-testing framework to tests for simple_cycles
* Added tests for multigraphs
* Needs more documentation

* * Documented simple_cycles
* Caught incorrectly-handled case of parallel self-loops

* removed chordless option from simple_cycles

* typos/raises/leftovers in docs and error/corner tests

* add a quick example to chordless_cycles

* Add chordless_cycles to docs

---------

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;
Co-authored-by: Mridul Seth &lt;git@mriduls.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* add simple cycle enumerator for undirected class

* Implemented Gupta &amp; Suzumura and refactored Johnson in a common form
and unified their call-site.  Now, users can enumerate simple cycles
of directed or undireced graphs, with bounded or unbounded length,
all from the same `simple_cycles` function.  I abandoned the stretch
goal of enumerating chordless cycles, as they are not gracefully
handled by the algorithms of Johnson nor Gupta &amp; Suzumura.

* updated tests for simple_cycles to include undirected graphs

* * fixed documentation issues, elaborated on algorithm details
* restricted to nontrivial components
* removed specialized DFS to pick edges from undirected components
    lemma: if G is a biconnected graph with at least 3 nodes and
    e is an edge in G, then e belongs to a cycle

* added tests for undirected and bounded cases for simple_cycles

* added handling for digons in multigraphs

* * Improved support for multigraphs
* Split chordless_cycles out from simple_cycles because the case
  analysis got so tricky
* Added enhanced cycle-testing framework to tests for simple_cycles
* Added tests for multigraphs
* Needs more documentation

* * Documented simple_cycles
* Caught incorrectly-handled case of parallel self-loops

* removed chordless option from simple_cycles

* typos/raises/leftovers in docs and error/corner tests

* add a quick example to chordless_cycles

* Add chordless_cycles to docs

---------

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;
Co-authored-by: Mridul Seth &lt;git@mriduls.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>DOC: Minor formatting fixups to get rid of doc build warnings. (#6363)</title>
<updated>2023-01-13T20:45:23+00:00</updated>
<author>
<name>Ross Barnowski</name>
<email>rossbar@berkeley.edu</email>
</author>
<published>2023-01-13T20:45:23+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/networkx.git/commit/?id=150daea06aeb7acd88d09fdf946a6210e97476a8'/>
<id>150daea06aeb7acd88d09fdf946a6210e97476a8</id>
<content type='text'>
Minor formatting fixups to get rid of doc build warnings.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Minor formatting fixups to get rid of doc build warnings.</pre>
</div>
</content>
</entry>
<entry>
<title>Laplace centrality for issue 4973 (#5399)</title>
<updated>2023-01-09T19:14:34+00:00</updated>
<author>
<name>Gabor Berei</name>
<email>42115089+gaborberei@users.noreply.github.com</email>
</author>
<published>2023-01-09T19:14:34+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/networkx.git/commit/?id=498bdfa33dd2869c3aae2ca87ec97223fdc0a2db'/>
<id>498bdfa33dd2869c3aae2ca87ec97223fdc0a2db</id>
<content type='text'>
* first commit, start testing

* rename

* formatting with black

* formating example based on testing failure

* deleting example from docstring

* rewriting example based on eigenvector.py

* rewrite docstring for other supplementary functions

* formating with black

* deleting custom scipy function

* rewriting matrix manipulation

* rewriting nbunch iteration based on review

* rewriting dictionary update

* update directed_laplacian_matrix_args params

* rewriting docstring based on comments

* update docstring

* update docstring with Laplacian energy def

* update docstring

* bringing package imports into the function

* adding laplacian.py to needs_numpy and needs_scipy tests

* addig Laplacian centrality to centrality.rst

* formatting with black

* dictionary update fix

* beatify docstring

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* beatify docstring

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* beatify docstring

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* beatify docstring

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* beautify with black

* add ** to kwargs in function

* add test file for local testing

* black test file

* black

* replace nx.laplacian to direct import

* adding pytest importskip and formating with black

* adding laplacian centrality to the init file

* changing import from direct to nx.laplacian

* rewriting output for non-normalized option

* rewriting tests using functions instead of class structure

* mod with black

* formating

* formating

* directed and undirected laplace and eigen values correction

* black formating

* adding asfptype for sparse eig solver and format with black

* change from sparse solver to dense solver

* change back A_2 eigval solver

* format with black

* black

* change back to previous state

* change back to previous state

* new eigh func

* fix eighvals func

* adding laplacian matrix parameters

* change alpha to None

* change back alpha to 0.95

* adding nodeset and ful nodelist objects

* adding nodeset and relevant error message

* solving directed-undirected issue converting everything to sparse matrix

* change line ending

* untrack env files

* isort test file

* adding nodelist and noteset

* black

* change centrality calculation to nodeset instead of full nodelist

* added comment

* eigh_f func to one-liner

* move eigh value calculation outside if condition

* simplify row/column by advanced indexing

* simplify row/column by advanced indexing for set diag

* format with black

* wrap doc_string to 88 chars and reword optional keywords.

* handle nodelist and nodeset

* remove casting as a csr_matrix

* covert to dense since we have to for computing the spectrum anyway.

* minor: ease readability

* fix normalization

* add tests for normalized and weight kwargs

* fix black

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;
Co-authored-by: Gabor Berei &lt;bereig@starschema.net&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* first commit, start testing

* rename

* formatting with black

* formating example based on testing failure

* deleting example from docstring

* rewriting example based on eigenvector.py

* rewrite docstring for other supplementary functions

* formating with black

* deleting custom scipy function

* rewriting matrix manipulation

* rewriting nbunch iteration based on review

* rewriting dictionary update

* update directed_laplacian_matrix_args params

* rewriting docstring based on comments

* update docstring

* update docstring with Laplacian energy def

* update docstring

* bringing package imports into the function

* adding laplacian.py to needs_numpy and needs_scipy tests

* addig Laplacian centrality to centrality.rst

* formatting with black

* dictionary update fix

* beatify docstring

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* beatify docstring

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* beatify docstring

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* beatify docstring

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* beautify with black

* add ** to kwargs in function

* add test file for local testing

* black test file

* black

* replace nx.laplacian to direct import

* adding pytest importskip and formating with black

* adding laplacian centrality to the init file

* changing import from direct to nx.laplacian

* rewriting output for non-normalized option

* rewriting tests using functions instead of class structure

* mod with black

* formating

* formating

* directed and undirected laplace and eigen values correction

* black formating

* adding asfptype for sparse eig solver and format with black

* change from sparse solver to dense solver

* change back A_2 eigval solver

* format with black

* black

* change back to previous state

* change back to previous state

* new eigh func

* fix eighvals func

* adding laplacian matrix parameters

* change alpha to None

* change back alpha to 0.95

* adding nodeset and ful nodelist objects

* adding nodeset and relevant error message

* solving directed-undirected issue converting everything to sparse matrix

* change line ending

* untrack env files

* isort test file

* adding nodelist and noteset

* black

* change centrality calculation to nodeset instead of full nodelist

* added comment

* eigh_f func to one-liner

* move eigh value calculation outside if condition

* simplify row/column by advanced indexing

* simplify row/column by advanced indexing for set diag

* format with black

* wrap doc_string to 88 chars and reword optional keywords.

* handle nodelist and nodeset

* remove casting as a csr_matrix

* covert to dense since we have to for computing the spectrum anyway.

* minor: ease readability

* fix normalization

* add tests for normalized and weight kwargs

* fix black

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;
Co-authored-by: Gabor Berei &lt;bereig@starschema.net&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Preliminary VF2++ Implementation (#5788)</title>
<updated>2022-09-06T22:04:39+00:00</updated>
<author>
<name>Konstantinos Petridis</name>
<email>petridkon@gmail.com</email>
</author>
<published>2022-09-06T22:04:39+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/networkx.git/commit/?id=bffcd74649fb95a57fb834846eb3c7d9693c55b8'/>
<id>bffcd74649fb95a57fb834846eb3c7d9693c55b8</id>
<content type='text'>
* Preliminary implementation of the candidate node pair ordering of VF2++

* Removed unused lines of code

* Added todos

* Added demo and pseudocode for VF2++

* Pointed out a problem with the pseudocode

* Initialisation of the VF2++ basis structure

* Initialise the GraphMatcher

* Remove useless changes

* Check labels for the node ordering + demo

* Code to verify the ordering

* Implement the ISO feasibility check

* Implement the IND feasibility

* Create State class

* Fixed Dan's code for the ordering

* Preliminary form of the node ordering

* Add visualisation

* Use list comprehension for the Ti computation

* Remove function

* Create Unit Tests

* Add labels check + update unit tests

* Add pre-computation of G-labels

* Remove todo

* First implementation of the candidate selection

* Initial version of candidate selection

* Remove unnecessary files

* Merge candidate selection cases into one

* Create a function to incrementally update Ti and Ti_out

* Unit Test for the Ti updating

* Implement the Ti/Ti_out restoring

* Finish the restoring of Ti and create unit test

* Update test file names

* Uncommented test section

* Replace redundant loop with for-any

* Create unit test for candidate selection using the same label for all nodes

* Create unit test for candidate selection using different labels for the nodes

* Update feasibility tests without the use of the state class

* Create more unit tests for the feasibility checking

* Provide explanation for the unit tests

* First successful test of the complete ISO VF2++ algorithm (except from the buggy ordering)

* Fix bug: when popping a node to climb up the DFS tree we need the previous node ordering (containing the node that we just popped)

* Create a separate file for the VF2++ ISO algorithm

* Delete file

* Remove redundant iteration and memory use

* Demo for different labels

* Add benchmark for the incremental Ti updating

* Remove unnecessary class

* Fix bug with the ordering WOOOHOOOOO

* Unit tests for the node ordering

* Add unit tests for the VF2++ ISO

* Fix ordering

* Probablly fix logic error in ordering

* Reformatted with black

* Test precommit

* Test precommit

* Test pre commit

* Testing pre commit

* Update networkx/algorithms/isomorphism/tests/VF2++/test_vf2pp.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Add unit tests for vf2++

* Added vf2++ unit test

* Added precheck for VF2++

* Add unit tests for the precheck

* Updated the benchmarking

* Updated the benchmark

* Apply hooks

* Add documentation for the ordering

* Add documentation for the candidate selection

* Added documentation for the feasibility

* Added documentation for vf2++

* Separate functions for ISO feasibility

* Refine unit tests

* Apply hooks

* Force reformat all files

* Remove redundant return statements from VF2__

* Apply hooks

* Apply hooks

* Format

* Minor changes

* Add unit tests

* Adjusted benchmark

* Fix benchmark

* Isort

* Isort benchmark

* Apply optimization in the candidate selection

* Track matched node with pointer

* Adjust benchmark

* Restructure in VF2 function

* Make VF2++ EXTREMELY PRETTY

* Removed sorting in feasibility rules

* Get rid of visited set, check mapping instead

* Update networkx/algorithms/isomorphism/tests/VF2++/test_vf2pp.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Made color assignement deterministic in VF2++ unit tests

* Add keyword argument in unit tests

* Hoepfully fix pipeline errors

* Add vf2++ unit tests for multigraphs

* Add Unit tests for Feasibility

* Add unit tests for feasibility on multi graphs

* Finalize feasibility tests for multigraph settings

* Update documentation

* Remove list comprehension and boost performance

* Add unit tests for both graphs and multi graphs, using same labels

* Isort

* Optimized precheck

* Replace loop with any

* Optimize multigraph chceck

* Transfer except statement

* Check order consistency

* Cache degrees and labels from the beginning

* Delete benchmark to create new

* Fix precheck bug

* Adjust unit tests

* Add benchmark for perofmance comparison between VF2 and VF2++

* Fix Ti computing tests

* Hopefully fix isort

* Add benchmark for the candidate selection methods

* Rename modules: lower case, remove +

* Refactor VF2++ arguments

* Adjust VF2++ to work with multiple node labels

* Add unit tests for multiple labels

* Adjust for different number of labels per node

* Finish arguments of VF2++

* Add user functions

* Exported the two vf2++ functions

* Added underscore prefix to private functions and fixed tests

* Update networkx/algorithms/isomorphism/vf2pp.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Update networkx/algorithms/isomorphism/demo.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Update networkx/algorithms/isomorphism/vf2pp.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Apply suggested changes

* Refactor rst files

* Rm unnecessary toctree from isomorphism page.

* Autodoc vf2pp module + public functions.

* Rm dedicated vf2pp reference article.

* Rm extra vf2pp listing from autosummaries.

* Add summary of three functions to module docstring.

* Make sure docstrings match their functions.

* Refactor everything

* Format code

* Add unit test

* Inline process level function in node ordering

* Perform intersection first rather than last

* Update networkx/algorithms/isomorphism/vf2pp_helpers/candidates.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Replace return statement with multiple operations and make it more readable

* Update networkx/algorithms/isomorphism/vf2pp_helpers/feasibility.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Fix multigraph bug in update_Tinout

* Abstract the argmax function

* Add unit test for first case of candidate selection

* Create unit test for all candidate selection cases

* Remove re-definition of namedtuple parameters

* Update doc/reference/algorithms/isomorphism.rst

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Update networkx/algorithms/__init__.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Delete benchmark file

* Add demo file

* Create util file containing the helper functions, common across all unit tests

* Fix CI/CD

* Make unit tests for Ti updating specific

* Remove util functions from vf2pp tests

* Remove utils functions from multivf2pp tests

* Remove utils functions from candidate tests

* Remove utils functions from ordering checks

* Remove utils functions from Ti tests

* Add example in docstring

* Remove unused utils functions

* Separate initialization of vf2pp

* Inline functions and add new abstract function for pushing to stack

* Inline push to stack

* Add commentsa

* Separate precheck functions

* Replace method with existing networkx function

* Include label initialization inside parameter initializer function

* Rename Tiout to Titilde

* Update networkx/algorithms/isomorphism/tests/vf2pp/test_Ti_computing.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Use canonical setitem for dictionary insertions

* Update networkx/algorithms/isomorphism/tests/vf2pp/test_precheck.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Remove variable assignement

* Merge unit tests of vf2pp for graphs and multigraphs into the same file

* Update networkx/algorithms/isomorphism/vf2pp.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Update networkx/algorithms/isomorphism/vf2pp.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Update networkx/algorithms/isomorphism/vf2pp.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Change variable name

* Update networkx/algorithms/isomorphism/vf2pp.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Re-write ordering unit tests

* Rename vf2pp solver

* Update networkx/algorithms/isomorphism/vf2pp_helpers/feasibility.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Replace abstractified argmax function with two loops for readability

* Apply final changes

* Fix mistake

* Update ref guide to reflect new fn names.

* Update docstrings
 * Fix line length in module docstring
 * Copy updated parameter section to all 3 public fns.
 * Add Yields section to all_isomorphisms fn.

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;
Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Preliminary implementation of the candidate node pair ordering of VF2++

* Removed unused lines of code

* Added todos

* Added demo and pseudocode for VF2++

* Pointed out a problem with the pseudocode

* Initialisation of the VF2++ basis structure

* Initialise the GraphMatcher

* Remove useless changes

* Check labels for the node ordering + demo

* Code to verify the ordering

* Implement the ISO feasibility check

* Implement the IND feasibility

* Create State class

* Fixed Dan's code for the ordering

* Preliminary form of the node ordering

* Add visualisation

* Use list comprehension for the Ti computation

* Remove function

* Create Unit Tests

* Add labels check + update unit tests

* Add pre-computation of G-labels

* Remove todo

* First implementation of the candidate selection

* Initial version of candidate selection

* Remove unnecessary files

* Merge candidate selection cases into one

* Create a function to incrementally update Ti and Ti_out

* Unit Test for the Ti updating

* Implement the Ti/Ti_out restoring

* Finish the restoring of Ti and create unit test

* Update test file names

* Uncommented test section

* Replace redundant loop with for-any

* Create unit test for candidate selection using the same label for all nodes

* Create unit test for candidate selection using different labels for the nodes

* Update feasibility tests without the use of the state class

* Create more unit tests for the feasibility checking

* Provide explanation for the unit tests

* First successful test of the complete ISO VF2++ algorithm (except from the buggy ordering)

* Fix bug: when popping a node to climb up the DFS tree we need the previous node ordering (containing the node that we just popped)

* Create a separate file for the VF2++ ISO algorithm

* Delete file

* Remove redundant iteration and memory use

* Demo for different labels

* Add benchmark for the incremental Ti updating

* Remove unnecessary class

* Fix bug with the ordering WOOOHOOOOO

* Unit tests for the node ordering

* Add unit tests for the VF2++ ISO

* Fix ordering

* Probablly fix logic error in ordering

* Reformatted with black

* Test precommit

* Test precommit

* Test pre commit

* Testing pre commit

* Update networkx/algorithms/isomorphism/tests/VF2++/test_vf2pp.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Add unit tests for vf2++

* Added vf2++ unit test

* Added precheck for VF2++

* Add unit tests for the precheck

* Updated the benchmarking

* Updated the benchmark

* Apply hooks

* Add documentation for the ordering

* Add documentation for the candidate selection

* Added documentation for the feasibility

* Added documentation for vf2++

* Separate functions for ISO feasibility

* Refine unit tests

* Apply hooks

* Force reformat all files

* Remove redundant return statements from VF2__

* Apply hooks

* Apply hooks

* Format

* Minor changes

* Add unit tests

* Adjusted benchmark

* Fix benchmark

* Isort

* Isort benchmark

* Apply optimization in the candidate selection

* Track matched node with pointer

* Adjust benchmark

* Restructure in VF2 function

* Make VF2++ EXTREMELY PRETTY

* Removed sorting in feasibility rules

* Get rid of visited set, check mapping instead

* Update networkx/algorithms/isomorphism/tests/VF2++/test_vf2pp.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Made color assignement deterministic in VF2++ unit tests

* Add keyword argument in unit tests

* Hoepfully fix pipeline errors

* Add vf2++ unit tests for multigraphs

* Add Unit tests for Feasibility

* Add unit tests for feasibility on multi graphs

* Finalize feasibility tests for multigraph settings

* Update documentation

* Remove list comprehension and boost performance

* Add unit tests for both graphs and multi graphs, using same labels

* Isort

* Optimized precheck

* Replace loop with any

* Optimize multigraph chceck

* Transfer except statement

* Check order consistency

* Cache degrees and labels from the beginning

* Delete benchmark to create new

* Fix precheck bug

* Adjust unit tests

* Add benchmark for perofmance comparison between VF2 and VF2++

* Fix Ti computing tests

* Hopefully fix isort

* Add benchmark for the candidate selection methods

* Rename modules: lower case, remove +

* Refactor VF2++ arguments

* Adjust VF2++ to work with multiple node labels

* Add unit tests for multiple labels

* Adjust for different number of labels per node

* Finish arguments of VF2++

* Add user functions

* Exported the two vf2++ functions

* Added underscore prefix to private functions and fixed tests

* Update networkx/algorithms/isomorphism/vf2pp.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Update networkx/algorithms/isomorphism/demo.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Update networkx/algorithms/isomorphism/vf2pp.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Apply suggested changes

* Refactor rst files

* Rm unnecessary toctree from isomorphism page.

* Autodoc vf2pp module + public functions.

* Rm dedicated vf2pp reference article.

* Rm extra vf2pp listing from autosummaries.

* Add summary of three functions to module docstring.

* Make sure docstrings match their functions.

* Refactor everything

* Format code

* Add unit test

* Inline process level function in node ordering

* Perform intersection first rather than last

* Update networkx/algorithms/isomorphism/vf2pp_helpers/candidates.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Replace return statement with multiple operations and make it more readable

* Update networkx/algorithms/isomorphism/vf2pp_helpers/feasibility.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Fix multigraph bug in update_Tinout

* Abstract the argmax function

* Add unit test for first case of candidate selection

* Create unit test for all candidate selection cases

* Remove re-definition of namedtuple parameters

* Update doc/reference/algorithms/isomorphism.rst

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Update networkx/algorithms/__init__.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Delete benchmark file

* Add demo file

* Create util file containing the helper functions, common across all unit tests

* Fix CI/CD

* Make unit tests for Ti updating specific

* Remove util functions from vf2pp tests

* Remove utils functions from multivf2pp tests

* Remove utils functions from candidate tests

* Remove utils functions from ordering checks

* Remove utils functions from Ti tests

* Add example in docstring

* Remove unused utils functions

* Separate initialization of vf2pp

* Inline functions and add new abstract function for pushing to stack

* Inline push to stack

* Add commentsa

* Separate precheck functions

* Replace method with existing networkx function

* Include label initialization inside parameter initializer function

* Rename Tiout to Titilde

* Update networkx/algorithms/isomorphism/tests/vf2pp/test_Ti_computing.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Use canonical setitem for dictionary insertions

* Update networkx/algorithms/isomorphism/tests/vf2pp/test_precheck.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Remove variable assignement

* Merge unit tests of vf2pp for graphs and multigraphs into the same file

* Update networkx/algorithms/isomorphism/vf2pp.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Update networkx/algorithms/isomorphism/vf2pp.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Update networkx/algorithms/isomorphism/vf2pp.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Change variable name

* Update networkx/algorithms/isomorphism/vf2pp.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Re-write ordering unit tests

* Rename vf2pp solver

* Update networkx/algorithms/isomorphism/vf2pp_helpers/feasibility.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Replace abstractified argmax function with two loops for readability

* Apply final changes

* Fix mistake

* Update ref guide to reflect new fn names.

* Update docstrings
 * Fix line length in module docstring
 * Copy updated parameter section to all 3 public fns.
 * Add Yields section to all_isomorphisms fn.

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;
Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Add function bfs_layers to docs (#5932)</title>
<updated>2022-08-17T07:22:08+00:00</updated>
<author>
<name>Dan Schult</name>
<email>dschult@colgate.edu</email>
</author>
<published>2022-08-17T07:22:08+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/networkx.git/commit/?id=09ded6ead5a9a3bb1d5b8349518fb5add6d10ca7'/>
<id>09ded6ead5a9a3bb1d5b8349518fb5add6d10ca7</id>
<content type='text'>
Add function bfs_layers to docs. fix two doc formatting typos</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add function bfs_layers to docs. fix two doc formatting typos</pre>
</div>
</content>
</entry>
<entry>
<title>Replace LCA with naive implementations (#5883)</title>
<updated>2022-08-13T23:59:11+00:00</updated>
<author>
<name>Ross Barnowski</name>
<email>rossbar@berkeley.edu</email>
</author>
<published>2022-08-13T23:59:11+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/networkx.git/commit/?id=19c1454d3dfa70a893ea67f2d78515658e8c08e5'/>
<id>19c1454d3dfa70a893ea67f2d78515658e8c08e5</id>
<content type='text'>
* WIP: Replace functions to evaluate tests.

* Raise prompt exceptions by wrapping generator.

* Fix erroneous ground-truth self-ancestor in tests.

* Move pair creation outside of generator and validate.

* Convert input with fromkeys to preserve order and rm duplicates.

* Replace LCA implementations &amp; update tests.

* Test cleanup: move new tests into old class.

Allows us to get rid of duplication/another test setup.

* Rm naive fns from refguide.

* Add release note.

* Remove unused imports.

* Remove missed duplicate function (bad rebase).

Co-authored-by: Dilara Tekinoglu &lt;dilaranurtuncturk@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* WIP: Replace functions to evaluate tests.

* Raise prompt exceptions by wrapping generator.

* Fix erroneous ground-truth self-ancestor in tests.

* Move pair creation outside of generator and validate.

* Convert input with fromkeys to preserve order and rm duplicates.

* Replace LCA implementations &amp; update tests.

* Test cleanup: move new tests into old class.

Allows us to get rid of duplication/another test setup.

* Rm naive fns from refguide.

* Add release note.

* Remove unused imports.

* Remove missed duplicate function (bad rebase).

Co-authored-by: Dilara Tekinoglu &lt;dilaranurtuncturk@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Minor doc fixups (#5868)</title>
<updated>2022-07-15T17:58:39+00:00</updated>
<author>
<name>Ross Barnowski</name>
<email>rossbar@berkeley.edu</email>
</author>
<published>2022-07-15T17:58:39+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/networkx.git/commit/?id=e79084b57e1553b5a1e3d80d940acc077ddb771a'/>
<id>e79084b57e1553b5a1e3d80d940acc077ddb771a</id>
<content type='text'>
* Fix examples section formatting in condensed docstr.

* Rm stray reference to ordered grpahs.

* Add naive LCA algs to reference guide.

* Fix heading names in LCA docstrings.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fix examples section formatting in condensed docstr.

* Rm stray reference to ordered grpahs.

* Add naive LCA algs to reference guide.

* Fix heading names in LCA docstrings.</pre>
</div>
</content>
</entry>
<entry>
<title>Corona Product (#5223)</title>
<updated>2022-07-05T10:20:52+00:00</updated>
<author>
<name>Ali Faraji</name>
<email>31096694+alifa98@users.noreply.github.com</email>
</author>
<published>2022-07-05T10:20:52+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/networkx.git/commit/?id=32c592325206c652c66ef58fdffbb8cc01278a15'/>
<id>32c592325206c652c66ef58fdffbb8cc01278a15</id>
<content type='text'>
* Corona product implemented.
Todos:
Docs
Test for corona product

* Corona Product Added and Works Correctly now.

* document added.

* corona product test added

* corona product added to __all__

* add corona_product to operators.rst

* precommit format fixed

* Memory usage problem in the corona product improved

* Update networkx/algorithms/operators/product.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* temp list replaced with generators

* single qoutes problem in doc string

* doc clean up

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* doc clean up

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Update Tests

`size()` is like the `number_of_edges()` method.

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Corona product implemented.
Todos:
Docs
Test for corona product

* Corona Product Added and Works Correctly now.

* document added.

* corona product test added

* corona product added to __all__

* add corona_product to operators.rst

* precommit format fixed

* Memory usage problem in the corona product improved

* Update networkx/algorithms/operators/product.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* temp list replaced with generators

* single qoutes problem in doc string

* doc clean up

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* doc clean up

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Update Tests

`size()` is like the `number_of_edges()` method.

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Implement directed edge swap (#5663)</title>
<updated>2022-06-24T16:31:01+00:00</updated>
<author>
<name>Ben Heil</name>
<email>ben.jer.heil@gmail.com</email>
</author>
<published>2022-06-24T16:31:01+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/python-packages/networkx.git/commit/?id=7d910e7184abd385c929f789b0c935ab143fc932'/>
<id>7d910e7184abd385c929f789b0c935ab143fc932</id>
<content type='text'>
* Add tests for directed edge swap

* Add directed edge swap algorithm

* Allow more swaps in directed tests

* Fix errors in swap.py to meet test criteria

* Remove TODOs

* Update documentation for directed_edge_swap and run black

* Fix incosistent spacing

* Add references

* Added PR to release docs

* Fix reference formatting

* Improve documentation

* An -&gt; A

* Update networkx/algorithms/swap.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Add 'Raises' section to documentation

* Update tests to use keyword arguments for directed_edge_swap

* Fix references to 'triple-edge' swap

* Use not_implemented_for decorator for directed_edge_swap

* Rename n to tries and remove unnecessary updates

* Rename e to msg

* Use 'succ' instead of 'out_edges' for getting successors

* Update networkx/algorithms/swap.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Update networkx/algorithms/tests/test_swap.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Update networkx/algorithms/tests/test_swap.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Update networkx/algorithms/tests/test_swap.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Update networkx/algorithms/swap.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Convert gnp graphs to path graphs for clarity

* Use seed when testing directed edge swap

* Check node equality sooner

* Add directed_edge_swap to documentation

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;
Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add tests for directed edge swap

* Add directed edge swap algorithm

* Allow more swaps in directed tests

* Fix errors in swap.py to meet test criteria

* Remove TODOs

* Update documentation for directed_edge_swap and run black

* Fix incosistent spacing

* Add references

* Added PR to release docs

* Fix reference formatting

* Improve documentation

* An -&gt; A

* Update networkx/algorithms/swap.py

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;

* Add 'Raises' section to documentation

* Update tests to use keyword arguments for directed_edge_swap

* Fix references to 'triple-edge' swap

* Use not_implemented_for decorator for directed_edge_swap

* Rename n to tries and remove unnecessary updates

* Rename e to msg

* Use 'succ' instead of 'out_edges' for getting successors

* Update networkx/algorithms/swap.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Update networkx/algorithms/tests/test_swap.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Update networkx/algorithms/tests/test_swap.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Update networkx/algorithms/tests/test_swap.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Update networkx/algorithms/swap.py

Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;

* Convert gnp graphs to path graphs for clarity

* Use seed when testing directed edge swap

* Check node equality sooner

* Add directed_edge_swap to documentation

Co-authored-by: Ross Barnowski &lt;rossbar@berkeley.edu&gt;
Co-authored-by: Dan Schult &lt;dschult@colgate.edu&gt;</pre>
</div>
</content>
</entry>
</feed>
