feasible-edge-replacements
Classes and algorithms for recursive amoeba trees and general framework for feasible edge replacements.
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.8%) to scientific vocabulary
Keywords
Repository
Classes and algorithms for recursive amoeba trees and general framework for feasible edge replacements.
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
Feasible Edge Replacements - Class and Algorithms
About
|
|
This repo contains four things: - A class for `Fer` objects in **feasible_edge_replacement.py**. - Some general methods for the study of amoeba graphs in **amoebas.py**. In particular, a method for finding `Fer` generators (called `updating_Cayley_populate`), something that is referenced but left out of [1]. - An implementation of the algorithm of [1] in **main.py**. - A construction of a recursive family of amoebas to apply the algorithm to, for illustrative purposes, in **treebonacci.py**. |
Every Fer object has two attributes: a sequence of feasible edge replacements and its corresponding permutation. The length of a sequence can be obtained by len(fer). The product * of two Fer objects multiplies their permutations and concatenates the edge replacements, updating the labels.
Note that products are written left-to-right, in contrast with traditional algebraic notation.
The algorithm produces a hash map that links every permutation in a generating set of the symmetric group to a Fer object.
Mathematical background
Let $G$ be a graph and $e$ an edge of $G$. We say $(e\to g)$ is a feasible edge replacement (Fer, for short) if $G-e+g$ is isomorphic to $G$. We say a graph is an amoeba if it can be transformed into any isomorphic copy of itself by means of a sequence of Fer objects. For more details on amoebas and the difference between local and global amoebas, consult [2].
This repo offers a class for Fer objects to study amoebas. Relevant operations are defined for these objects. This class is extensively used in the algorithms presented below.
In the paper [1], it is proved that a certain recursive family of graphs are all amoebas. In this repo, we give an implementation of the algorithm decribed in Section 5 that will factor any permutation of a stem-symmetric (see Definition 6 of [1]) amoeba into Fer objects in time $\Theta(n^2)$, where $n$ is the order of the graph. This succesfully provides an efficient method of finding, for any isomorphic copy of the amoeba, a sequence of replacements that will move the graph into its copy.
Furthermore, this repo contains a construction of one such type of recursive family, called Fibonacci-type trees in [1], to serve as an illustrative example of the algorithm.
Instructions
To use the algorithm, we need to provide a stem-symmetric recursive construction similar to the one given in Theorem 8 of [1]. One such example is provided in treebonacci.py.
Here is a minimal working example on how to use the main features of this repo:
- Download the folder and leave all Python scripts in the same working directory.
- Install all dependencies.
- Open main.py in your favorite editor and provide an input for
kandpermutation. Default is $k=6$ and random. - Output will be the sought sequence.
- To verify the
Ferobjects, usefer_verifierin amoebas.py. - To change the family of graphs, change line 8
import treebonacci as trband provide a valid stem-symmetric recursive amoeba family. Note you may need to use the methods in amoebas.py to regenerate the basis objects. - To animate the edge-replacements, wait for me to upload the animation module.
This program was developed by
|
- Tonatiuh Matos-[Wiederhold.dev](https://wiederhold.dev) Dept. of Mathematics, University of Toronto, Canada. tonamatos@gmail.com Based on the research of [1], below. |
|
References
[1] Eslava, L., Hansberg, A., _, Ventura, D., New recursive constructions of amoebas and their balancing number, Aequationes Mathematicae, 2023. Link
[2] Caro, Y., Hansberg, A., Montejano, A. (2023). Graphs isomorphisms under edge-replacements and the family of amoebas. Electronic Journal of Combinatorics 30(3) P3.9. Link
Owner
- Name: Tona
- Login: tonamatos
- Kind: user
- Location: Toronto
- Website: https://sites.google.com/view/wiederhold/home
- Repositories: 1
- Profile: https://github.com/tonamatos
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: Feasible Edge Replacements - Class and Algorithms
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Tonatiuh
family-names: Matos Wiederhold
email: tonamatos@gmail.com
affiliation: University of Toronto
orcid: 'https://orcid.org/0000-0002-3142-037X'
repository-code: 'https://github.com/tonamatos/Feasible-Edge-Replacements'
abstract: >-
Class of objects for working with general feasible edge
replacements to study Amoeba graphs. Also algorithms based
on a WIP research paper to factor permutations in
recursive Amoeba trees efficiently.
keywords:
- Graph theory
- Research
- Combinatorics
- Algorithm
- Amoebas
- Amoeba graphs
- Amoeba trees
- Recursive amoebas
- Balancing number
- Ramsey theory
- Algebra
- Algebraic graph theory
license: MIT
commit: e9d98d17bce193b1ff7aa1d255874cbac6176d92
version: 1.0.0
date-released: '2023-11-27'
GitHub Events
Total
- Push event: 2
Last Year
- Push event: 2