Skip to content

Commit d4cd393

Browse files
committed
1 parent 87f0cc1 commit d4cd393

File tree

17 files changed

+34
-34
lines changed

17 files changed

+34
-34
lines changed

content/about/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Community members must adhere to our
2222
## People
2323

2424
For more information, see our
25-
[governance and decision making process]({{< relref "/about/governance" >}}).
25+
[governance and decision making process](/about/governance).
2626

2727
### Blog Reviewers
2828

content/about/review.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ We distinguish contributors with 3 roles:
2020

2121
Contributors are promoted from one status to the other at the discretion of the
2222
editorial board. For more information, see our
23-
[governance and decision making process]({{< relref "/about/governance" >}}).
23+
[governance and decision making process](/about/governance).
2424

25-
The content must follow our [scope]({{< relref "/about/submit#scope" >}}).
25+
The content must follow our [scope](/about/submit#scope).
2626
As we thrive for quality posts, some submissions will not meet the bar.
2727
Please try to give clear feedback on how authors could revise their
2828
submission. It should also be clear if a submission would not be accepted.

content/posts/networkx/aTSP/a-closer-look-at-held-karp/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ After talking with my GSoC mentors about what we all believe to be the most diff
2222
An example of this would be the ellipsoid algorithm versus the simplex algorithm.
2323
While the simplex algorithm is exponential, in practice it is almost always faster than the ellipsoid algorithm.
2424
- Our interest in the ellipsoid algorithm was not based on performance, but rather the ability for the ellipsoid algorithm to be able to handle a linear program with an exponential number of constraints.
25-
This was done with a separation oracle, see my post [here]({{< relref "held-karp-separation-oracle" >}}) for more information about the oracle.
25+
This was done with a separation oracle, see my post [here](held-karp-separation-oracle) for more information about the oracle.
2626
- Implementing a robust ellipsoid algorithm solver (something notable missing from the scientific python ecosystem) was a GSoC project onto itself and beyond the scope of this project for NetworkX.
2727

2828
Thus, alternative methods for solving the Held-Karp relaxation needed to be investigated.

content/posts/networkx/aTSP/entropy-distribution/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Recall that the algorithm for creating the distribution is given in the Asadpour
2424
> - Set $\gamma \leftarrow \gamma'$.
2525
> 3. Output $\tilde{\gamma} := \gamma$.
2626
27-
Now, the procedure that I laid out in my last blog titled [Entropy Distribution Setup]({{< relref "entropy-distribution-setup" >}}) worked well for the while loop portion.
27+
Now, the procedure that I laid out in my last blog titled [Entropy Distribution Setup](entropy-distribution-setup) worked well for the while loop portion.
2828
All of my difficulties with the NetworkX API happened in the `q` inner function.
2929

3030
After I programmed the function, I of course needed to run it and at first I was just printing the `gamma` dict out so that I could see what the values for each edge were.

content/posts/networkx/aTSP/finalizing-held-karp/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ resources:
1616
---
1717

1818
This _should_ be my final post about the Held-Karp relaxation!
19-
Since my last post titled [Implementing The Held Karp Relaxation]({{< relref "implementing-the-held-karp-relaxation" >}}), I have been testing both the ascent method as well as the branch and bound method.
19+
Since my last post titled [Implementing The Held Karp Relaxation](implementing-the-held-karp-relaxation), I have been testing both the ascent method as well as the branch and bound method.
2020

2121
My first test was to use a truly asymmetric graph rather than a directed graph where the cost in each direction happened to be the same.
2222
In order to create such a test, I needed to know the solution to any such proposed graphs.

content/posts/networkx/aTSP/finding-all-minimum-arborescences/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ resources:
1717

1818
There is only one thing that I need to figure out before the first coding period for GSoC starts on Monday: how to find _all_ of the minimum arborescences of a graph.
1919
This is the set $K(\pi)$ in the Held and Karp paper from 1970 which can be refined down to $K(\pi, d)$ or $K\_{X, Y}(\pi)$ as needed.
20-
For more information as to why I need to do this, please see my last post [here]({{< relref "a-closer-look-at-held-karp" >}}).
20+
For more information as to why I need to do this, please see my last post [here](a-closer-look-at-held-karp).
2121

2222
This is a place where my contributions to NetworkX to implement the Asadpour algorithm [1] for the directed traveling salesman problem will be useful to the rest of the NetworkX community (I hope).
2323
The research paper that I am going to template this off of is [this](https://www.scielo.br/j/pope/a/XHswBwRwJyrfL88dmMwYNWp/?lang=en&format=pdf) 2005 paper by Sörensen and Janssens titled _An Algorithm to Generate all Spanning Trees of a Graph in Order of Increasing Cost_ [4].

content/posts/networkx/aTSP/implementing-the-held-karp-relaxation/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ resources:
1616
---
1717

1818
I have now completed my implementation of the ascent and the branch and bound method detailed in the 1970 paper _The Traveling-Salesman Problem and Minimum Spanning Trees_ by Micheal Held and Richard M. Karp.
19-
In my last post, titled [Understanding the Ascent Method]({{< relref "understanding-the-ascent-method" >}}), I completed the first iteration of the ascent method and found an important bug in the `find_epsilon()` method and found a more efficient way to determine substitutes in the graph.
19+
In my last post, titled [Understanding the Ascent Method](understanding-the-ascent-method), I completed the first iteration of the ascent method and found an important bug in the `find_epsilon()` method and found a more efficient way to determine substitutes in the graph.
2020
However the solution being given was still not the optimal solution.
2121

2222
After discussing my options with my GSoC mentors, I decided to move onto the branch and bound method anyways with the hope that because the method is more human-computable and an example was given in the paper by Held and Karp that I would be able to find the remaining flaws.

content/posts/networkx/aTSP/implementing-the-iterators/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ The code for the spanning tree iterator can be found [here](https://github.com/m
8484
## Arborescence Iterator
8585

8686
The arborescence iterator is what I actually need for my GSoC project, and as expected was more complicated to implement.
87-
In my original post titled [Finding All Minimum Arborescences]({{< relref "finding-all-minimum-arborescences" >}}), I discussed cases that Edmond's algorithm [1] would need to handle and proposed a change to the `desired_edge` method.
87+
In my original post titled [Finding All Minimum Arborescences](finding-all-minimum-arborescences), I discussed cases that Edmond's algorithm [1] would need to handle and proposed a change to the `desired_edge` method.
8888

8989
These changes where easy to make, but were not the extent of the changes that needed to be made as I originally thought.
9090
The original graph from Edmonds' 1967 paper is below

content/posts/networkx/aTSP/looking-at-the-big-picture/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Recall that from the Asadpour paper the overview of the algorithm is
4848
> ---
4949
5050
We are now firmly in the steps 3 and 4 area.
51-
Going all the way back to my post on 24 May 2021 titled [Networkx Function stubs]({{< relref "networkx-function-stubs" >}}) the only function left is `asadpour_tsp`, the main function which needs to accomplish this entire algorithm.
51+
Going all the way back to my post on 24 May 2021 titled [Networkx Function stubs](networkx-function-stubs) the only function left is `asadpour_tsp`, the main function which needs to accomplish this entire algorithm.
5252
But before we get to creating pseudo code for it there is still step 4 which needs a thorough examination.
5353

5454
## Circulation and Shortcutting
@@ -95,7 +95,7 @@ def asadpour_tsp
9595
```
9696

9797
This is exactly what we'd expect, take a complete graph $G$ satisfying the triangle inequality and return the edges in the approximate solution to the asymmetric traveling salesman problem.
98-
Recall from my post [Networkx Function Stubs]({{< relref "networkx-function-stubs" >}}) what the primary traveling salesman function, `traveling_salesman_problem` will ensure that we are given a complete graph that follows the triangle inequality by using all-pairs shortest path calculations and will handle if we are expected to return a true cycle or only a path.
98+
Recall from my post [Networkx Function Stubs](networkx-function-stubs) what the primary traveling salesman function, `traveling_salesman_problem` will ensure that we are given a complete graph that follows the triangle inequality by using all-pairs shortest path calculations and will handle if we are expected to return a true cycle or only a path.
9999

100100
The first step in the Asadpour algorithm is the Held Karp relaxation.
101101
I am planning on editing the flow of the algorithm here a bit.

content/posts/networkx/aTSP/my-summer-of-code-2021/index.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,9 @@ This class I'm sure will be useful to the other users of NetworkX and provided a
8181

8282
**Blog Posts about `SpanningTreeIterator`**
8383

84-
5 Jun 2021 - [Finding All Minimum Arborescences]({{< relref "finding-all-minimum-arborescences" >}})
84+
5 Jun 2021 - [Finding All Minimum Arborescences](../finding-all-minimum-arborescences)
8585

86-
10 Jun 2021 - [Implementing The Iterators]({{< relref "implementing-the-iterators" >}})
86+
10 Jun 2021 - [Implementing The Iterators](../implementing-the-iterators)
8787

8888
**Commits about `SpanningTreeIterator`**
8989

@@ -124,9 +124,9 @@ This was used as part of the branch and bound method, but is no longer a part of
124124

125125
**Blog Posts about `ArborescenceIterator`**
126126

127-
5 Jun 2021 - [Finding All Minimum Arborescences]({{< relref "finding-all-minimum-arborescences" >}})
127+
5 Jun 2021 - [Finding All Minimum Arborescences](finding-all-minimum-arborescences)
128128

129-
10 Jun 2021 - [Implementing The Iterators]({{< relref "implementing-the-iterators" >}})
129+
10 Jun 2021 - [Implementing The Iterators](implementing-the-iterators)
130130

131131
**Commits about `ArborescenceIterator`**
132132

@@ -190,21 +190,21 @@ All of this is detailed in the (many) blog posts I wrote on this topic, which ar
190190

191191
My first two posts were about the `scipy` solution and the ellipsoid algorithm.
192192

193-
11 Apr 2021 - [Held Karp Relaxation]({{< relref "held-karp-relaxation" >}})
193+
11 Apr 2021 - [Held Karp Relaxation](../held-karp-relaxation)
194194

195-
8 May 2021 - [Held Karp Separation Oracle]({{< relref "held-karp-separation-oracle" >}})
195+
8 May 2021 - [Held Karp Separation Oracle](../held-karp-separation-oracle)
196196

197197
This next post discusses the merits of each algorithm presenting in the original Held and Karp paper [3].
198198

199-
3 Jun 2021 - [A Closer Look At Held Karp]({{< relref "a-closer-look-at-held-karp" >}})
199+
3 Jun 2021 - [A Closer Look At Held Karp](../a-closer-look-at-held-karp)
200200

201201
And finally, the last three Held Karp related posts are about the debugging of the algorithms I did implement.
202202

203-
22 Jun 2021 - [Understanding The Ascent Method]({{< relref "understanding-the-ascent-method" >}})
203+
22 Jun 2021 - [Understanding The Ascent Method](../understanding-the-ascent-method)
204204

205-
28 Jun 2021 - [Implementing The Held Karp Relaxation]({{< relref "implementing-the-held-karp-relaxation" >}})
205+
28 Jun 2021 - [Implementing The Held Karp Relaxation](../implementing-the-held-karp-relaxation)
206206

207-
7 Jul 2021 - [Finalizing Held Karp]({{< relref "finalizing-held-karp" >}})
207+
7 Jul 2021 - [Finalizing Held Karp](../finalizing-held-karp)
208208

209209
**Commits about the Held Karp relaxation**
210210

@@ -278,9 +278,9 @@ Multiplying my original value of $q_e(\gamma)$ by $\exp(\gamma_e)$ proved to be
278278

279279
**Blog posts about `spanning_tree_distribution`**
280280

281-
13 Jul 2021 - [Entropy Distribution Setup]({{< relref "entropy-distribution-setup" >}})
281+
13 Jul 2021 - [Entropy Distribution Setup](../entropy-distribution-setup)
282282

283-
20 Jul 2021 - [The Entropy Distribution]({{< relref "entropy-distribution" >}})
283+
20 Jul 2021 - [The Entropy Distribution](../entropy-distribution)
284284

285285
**Commits about `spanning_tree_distribution`**
286286

@@ -336,9 +336,9 @@ Unfortunately, the test would still fail 1% of the time until I added the `@py_r
336336

337337
**Blog posts about `sample_spanning_tree`**
338338

339-
21 Jul 2021 - [Preliminaries For Sampling A Spanning Tree]({{< relref "preliminaries-for-sampling-a-spanning-tree" >}})
339+
21 Jul 2021 - [Preliminaries For Sampling A Spanning Tree](../preliminaries-for-sampling-a-spanning-tree)
340340

341-
28 Jul 2021 - [Sampling A Spanning Tree]({{< relref "sampling-a-spanning-tree" >}})
341+
28 Jul 2021 - [Sampling A Spanning Tree](../sampling-a-spanning-tree)
342342

343343
**Commits about `sample_spanning_tree`**
344344

@@ -373,9 +373,9 @@ A brief overview of the whole algorithm is given below:
373373

374374
**Blog posts about `asadpour_atsp`**
375375

376-
29 Jul 2021 - [Looking At The Big Picture]({{< relref "looking-at-the-big-picture" >}})
376+
29 Jul 2021 - [Looking At The Big Picture](../looking-at-the-big-picture)
377377

378-
10 Aug 2021 - [Completing The Asadpour Algorithm]({{< relref "completing-the-asadpour-algorithm" >}})
378+
10 Aug 2021 - [Completing The Asadpour Algorithm](../completing-the-asadpour-algorithm)
379379

380380
**Commits about `asadpour_atsp`**
381381

content/posts/networkx/aTSP/networkx-function-stubs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def asadpour_tsp(G, weight="weight"):
120120
pass
121121
```
122122

123-
Following my GSoC proposal, the next function is `held_karp`, which will solve the Held-Karp relaxation on the complete digraph using the ellipsoid method (See my last two posts [here]({{< relref "held-karp-relaxation" >}}) and [here]({{< relref "held-karp-separation-oracle" >}}) for my thoughts on why and how to accomplish this).
123+
Following my GSoC proposal, the next function is `held_karp`, which will solve the Held-Karp relaxation on the complete digraph using the ellipsoid method (See my last two posts [here](held-karp-relaxation) and [here](held-karp-separation-oracle) for my thoughts on why and how to accomplish this).
124124
Solving the Held-Karp relaxation is the first step in the algorithm.
125125

126126
Recall that the Held-Karp relaxation is defined as the following linear program:

content/posts/networkx/aTSP/sampling-a-spanning-tree/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ First recall how edge contraction, or in this case node contraction, works.
3838
Two nodes are merged into one which is connected by the same edges which connected the original two nodes.
3939
Edges between those two nodes become self loops, but in this case I prevented the creation of self loops as directed by Kulkarni.
4040
If a node which is not contracted has edges to both of the contracted nodes, we insert a parallel edge between them.
41-
I struggled with NetworkX's API about the graph classes in a past post titled [The Entropy Distribution]({{< relref "entropy-distribution" >}}).
41+
I struggled with NetworkX's API about the graph classes in a past post titled [The Entropy Distribution](entropy-distribution).
4242

4343
For NetworkX's implementation, we would call `nx.contracted_nodes(G, u, v)` and `u` and `v` would always be merged into `u`, so `v` is the node which is no longer in the graph.
4444

content/posts/networkx/outreachy2023/contribution-phase/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,4 @@ If this is your first time contributing to an open-source project you may feel o
4242

4343
I hope this information helps you to start your Open-Source journey! The NetworkX team is waiting for your great contributions!
4444

45-
If you are interested in my experience during the internship you can find the second part of this blog [here]({{< relref "internship" >}}).
45+
If you are interested in my experience during the internship you can find the second part of this blog [here](../internship).

content/posts/networkx/outreachy2023/internship/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ displayInList: true
1010
author: ["Paula Pérez Bianchi"]
1111
---
1212

13-
This is the second part of a blog series where I talk about my experience during my Outreachy internship at NetworkX. If you haven’t read the first part you can find it [here]({{< relref "contribution-phase" >}}).
13+
This is the second part of a blog series where I talk about my experience during my Outreachy internship at NetworkX. If you haven’t read the first part you can find it [here](../contribution-phase).
1414

1515
As you advance through the contribution phase you may wonder how your internship is gonna be in case you get selected. Here is my experience as a **NetworkX** intern and some tips that could help you through the internship.
1616

content/posts/networkx/vf2pp/ISO-feasibility-candidates/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ author: ["Konstantinos Petridis"]
1111

1212
---
1313

14-
The previous post can be found [here]({{< relref "node-ordering-Ti-updating" >}}), be sure to check it out so you
14+
The previous post can be found [here](../node-ordering-Ti-updating), be sure to check it out so you
1515
can
1616
follow the process step by step. Since then, another two very significant features of the algorithm have been
1717
implemented and tested: **node pair candidate selection** and **feasibility checks**.

content/posts/networkx/vf2pp/graph-iso-vf2pp/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ author: ["Konstantinos Petridis"]
1111

1212
---
1313

14-
The last and final post discussing the **VF2++ helpers** can be found [here]({{< relref "ISO-feasibility-candidates" >}}).
14+
The last and final post discussing the **VF2++ helpers** can be found [here](../ISO-feasibility-candidates).
1515
Now that we've figured out how to solve all the sub-problems that **VF2++** consists of, we are ready to combine our
1616
implemented functionalities to create the final solver for the **Graph Isomorphism** problem.
1717

content/posts/networkx/vf2pp/node-ordering-Ti-updating/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ author: ["Konstantinos Petridis"]
1111

1212
---
1313

14-
This post includes all the major updates since the [last post]({{< relref "GSoC-2022" >}}) about VF2++. Each section
14+
This post includes all the major updates since the [last post](../gsoc-2022) about VF2++. Each section
1515
is dedicated to a different sub-problem and presents the progress on it so far. General progress, milestones and related
1616
issues can be [found here](https://github.com/kpetridis24/networkx/milestone/1).
1717

0 commit comments

Comments
 (0)