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 (14.3%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: elliheyes
  • Language: C
  • Default Branch: main
  • Size: 24.5 MB
Statistics
  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 3 years ago · Last pushed over 1 year ago
Metadata Files
Readme Citation

README.md

Reflexive Polytope Generation

This package is designed to generate reflexive polytopes of a certain type using a genetic algorithm.

https://arxiv.org/pdf/2306.06159.pdf

Authors: Per Berglund, Yang-Hui He, Elli Heyes, Edward Hirst, Vishnu Jejjala, Andre Lukas

If you experience any issues, please email elli.heyes@city.ac.uk.

C Installation:

To install this package and use it on your own machine follow these simple steps: - Step 0: If you do not have a C compiller and/or CMake installed on your machine start by downloading these. - Step 1: Download the zipped file for this package from GitHub. - Step 2: Unzip the file and move it somewhere convenient in your computer. - Step 3: From the command line move to the file directory and then inside the C folder. - Step 4: Type 'make' and hit Enter. This should compile all the necessary files in the package. - Step 5: To run the main function within the genpoly.c file simply type "./genpoly.x" and hit Enter.

C Code Notes:

  • Currently the main function in gen_poly.c is set to randomly initialise a population, evolve it, extract the terminal states (i.e. reflexive polytopes), remove redundancy in the list by computing the normal form, and repeat this several times. The reduced list of output reflexive polytopes are written to a file and the number of terminal states generated after each evolution, plus the total number of reduced terminal states are also written to a file.

  • To specify the type of reflexive polytopes you would like to generate, such as the polytope dimension, number of points, etc, one can change the global variables in the Global.h file accordingly. Here one can also change the global genetic algorithm variables like the number of generations, population size, mutation rate etc. In fact, in order to find the best performance one usually needs to play around with these variables quite a bit.

  • The content in the files Polynf.c, Rat.c, Rat.h and Vertex.c have been copied from the source code of PALP software. More information on this package can be found on the website: http://hep.itp.tuwien.ac.at/~kreuzer/CY/.

  • The content in the files bitlist.c, evolution.c and population.c have been copied from https://github.com/harveyThomas4692/GA-C.

Fitness

There are several components of the fitness function that can be turned on or off by the weight parameters. The two main components which should always remain on are the distance of the facets from the origin and the IP property. Their associated weights are defined in Global.h as DISTWEIGHT and IPWEIGHT respectively. If DISTWEIGHT > 0 then a penalty is added fitness for the average difference of the distance of the facets from the origin and 1. If IPWEIGHT > 0 then a penalty is added to the fitness if the polytope does not satisfy the interior point property.

On top of these two main components there are additional components one can include in the fitness to direct the search for reflexive polytopes with specific properties. To turn on these additional components, amend the global parameters in Global.h if using C or in the poly_genetic.py file if using Python.

  • NVERTS_WEIGHT: if this is > 0 then a penalty is added to the fitness if the polytope does not have NVERTS number of vertices. This causes the genetic algorithm to generate polytopes of a given number of vertices.

  • NPOINTS_WEIGHT: if this is > 0 then a penalty is added to the fitness if the polytope does not have NPTS number of points. This causes the genetic algorithm to generate polytopes of a given number of points.

  • H11WEIGHT: if this is > 0 then a penalty is added to the fitness if the polytope does not have a h11 hodge number equal to H11. This causes the genetic algorithm to generate polytopes of a given hodge number. Similarly for H12WEIGHT, H13WEIGHT, H22WEIGHT, EULER_WEIGHT.

Python Code Notes:

To use this code one must have CYTools installed. If you do not have CYTools installed, do this first by following the installation instructions on the website: https://cy.tools.

Owner

  • Name: Elli Heyes
  • Login: elliheyes
  • Kind: user
  • Location: United Kingdom

Mathematical Physics PhD student at City, University of London

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: Reflexive Polytope Genetic Algorithm
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Yang-Hui
    family-names: He
    email: yh@lims.ac.uk
    affiliation: London Institute for Mathematical Sciences
  - given-names: Elli
    family-names: Heyes
    email: elli.heyes@city.ac.uk
    affiliation: 'City, University of London'
  - given-names: 'Edward '
    family-names: Hirst
    affiliation: 'Queen Mary, University of London'
    email: e.hirst@qmul.ac.uk
  - given-names: Per
    family-names: Berglund
    email: per.berglund@unh.edu
    affiliation: University of New Hampshire
  - given-names: Vishnu
    family-names: Jejjala
    email: v.jejjala@wits.ac.za
    affiliation: University of the Witwatersrand
repository-code: 'https://github.com/elliheyes/Polytope-Generation'

GitHub Events

Total
Last Year