The VF2++ algorithm
The last and final post discussing the VF2++ helpers can be found here. Now that we’ve figured out how to solve all the sub-problems that VF2++ consists of, we are ready to combine our implemented functionalities to create the final solver for the Graph Isomorphism problem. Introduction We should quickly review the individual functionalities used in the VF2++ algorithm: Node ordering which finds the optimal order to access the nodes, such that those that are more likely to match are placed first in the order.
ISO Feasibility & Candidates
The previous post can be found here, be sure to check it out so you can follow the process step by step. Since then, another two very significant features of the algorithm have been implemented and tested: node pair candidate selection and feasibility checks. Introduction As previously described, in the ISO problem we are basically trying to create a mapping such that, every node from the first graph is matched to a node from the second graph.
Updates on VF2++
This post includes all the major updates since the last post about VF2++. Each section is dedicated to a different sub-problem and presents the progress on it so far. General progress, milestones and related issues can be found here. Node ordering The node ordering is one major modification that VF2++ proposes. Basically, the nodes are examined in an order that makes the matching faster by first examining nodes that are more likely to match.
GSoC 2022: NetworkX VF2++ Implementation
Intro I got accepted as a GSoC contributor, and I am so excited to spend the summer working on such an incredibly interesting project. The mentors are very welcoming, communicative, fun to be around, and I really look forward to collaborating with them. My application for GSoC 2022 can be found here. About me My name is Konstantinos Petridis, and I am an Electrical Engineering student at the Aristotle University of Thessaloniki.
SciPy Internship: 2021-2022
I was selected as an intern to work on SciPy build system. In this blog post, I will be describing my journey of this 10-months long internship at SciPy. I worked on a variety of topics starting from migrating the SciPy build system to Meson, cleaning up the public API namespaces and adding Uarray support to SciPy submodules. Experience Meson Build System The main reasons for switching to Meson include (in addition to distutils being deprecated):
Team up! Alt text and cross-project community
The Scientific Python blog has just gotten a little more accessible! If you didn’t catch our invite on Twitter or run into the problem firsthand, there’s a good chance you might not have noticed the new descriptions for a number of blog post images. Since it’s not a flashy improvement, we wanted to make a point to highlight the community effort to to make a more accessible blog–and internet as a whole–last week.
NumPy Contributor Spotlight: Mukulika Pahari
Our first Contributor Spotlight interview is with Mukulika Pahari, our “go-to” person for Numpy documentation. Mukulika is a Computer Science student at Mumbai University. Her passions outside of computing involve things with paper, including reading books (fiction!), folding origami, and journaling. During our interview she discussed why she joined NumPy, what keeps her motivated, and how likely she would recommend becoming a NumPy contributor. Tell us something about yourself. Hi, I am Mukulika.
A quick tour of QMC with SciPy
At the end of this article, my goal is to convince you that: if you need to use random numbers, you should consider using scipy.stats.qmc instead of np.random. In the following, we assume that SciPy, NumPy and Matplotlib are installed and imported: import numpy as np from scipy.stats import qmc import matplotlib.pyplot as plt Note that no seeding is used in these examples. This will be the topic of another article: seeding should only be used for testing purposes.
Scientific Python GSoD 2022 Proposal
Create educational content for the Scientific Python Blog About your organization With an extensive and high-quality ecosystem of libraries, scientific Python has emerged as the leading platform for data analysis. This ecosystem is sustained largely by volunteers working on independent projects with separate mailing lists, websites, roadmaps, documentation, engineering and packaging solutions, and governance structures. The Scientific Python project aims to better coordinate the ecosystem and prepare the software projects in this ecosystem for the next decade of data science.
How to create custom tables
Introduction This tutorial will teach you how to create custom tables in Matplotlib, which are extremely flexible in terms of the design and layout. You’ll hopefully see that the code is very straightforward! In fact, the main methods we will be using are ax.text() and ax.plot(). I want to give a lot of credit to Todd Whitehead who has created these types of tables for various Basketball teams and players. His approach to tables is nothing short of fantastic due to the simplicity in design and how he manages to effectively communicate data to his audience.