This project refers to the Temporal Matching paper.
Specifically, this project has as main focus Theorem 1, in which a reduction of the Temporal Matching problem to 3-SAT is shown. The web application allows the user to input a formula and an assignment for its symbols, together with the value of γ.
An example of input is the following:
-
Formula:
(w or x or y) and (w or x or z)
-
Assignment:
{
"w": "true",
"x": "true",
"y": "false",
"z": "true"
}
- Gamma: 3
After the Compute button is pressed, the corresponding Link Stream and Matching will be built according to the paper.
This project has the only didactic purpose of giving a visualisation on how the Link Stream and Matching construction works from a 3-sat formula.
The web server that takes care of the Link Stream and Matching computation is implemented in Python and contained in the app
folder.
I have implemented the Link Stream as a list of NetworkX graphs. The code for the link stream implementation is contained in the app/LinkStream
package.
The frontend has been implemented in React. The code can be found in the frontend
folder.
Both frontend and web server have been containerised with Docker.
The application has been deployed in Kubernetes through Helm charts.
The charts can be found inside the Kubernetes
folder.
The charts are not currently installed online as I do not hold an Helm repo.
So far I have been using Charmuseum locally.
Given a chart repository and a set kubernetes config, the kubernetes/deploy.sh
script takes care of deploying the whole stack to a target cluster.