{"id":19755901,"url":"https://github.com/it4innovations/handicap","last_synced_at":"2025-07-11T16:16:31.992Z","repository":{"id":87916570,"uuid":"162554166","full_name":"It4innovations/Handicap","owner":"It4innovations","description":null,"archived":false,"fork":false,"pushed_at":"2018-12-26T16:41:28.000Z","size":115,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-28T09:10:19.456Z","etag":null,"topics":["graph","labeling","labeling-graphs","regular-graphs"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/It4innovations.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-20T09:07:32.000Z","updated_at":"2024-05-21T12:32:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"5facae6d-e2d7-4ea4-81ab-76c817133dae","html_url":"https://github.com/It4innovations/Handicap","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/It4innovations/Handicap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/It4innovations%2FHandicap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/It4innovations%2FHandicap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/It4innovations%2FHandicap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/It4innovations%2FHandicap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/It4innovations","download_url":"https://codeload.github.com/It4innovations/Handicap/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/It4innovations%2FHandicap/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264851354,"owners_count":23673234,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graph","labeling","labeling-graphs","regular-graphs"],"created_at":"2024-11-12T03:14:14.719Z","updated_at":"2025-07-11T16:16:31.985Z","avatar_url":"https://github.com/It4innovations.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# About\nMagic-type labelings are a well established topic of graph theory.\nThere are hundreds of scientific papers published. For a comprehensive\noverview we recommend Gallians Dynamic Survey of Graph Labeling\npublished in the The Electronic Journal of Combinatorics and updated\nannually.\n\nGiven a certain labeling there are typically three types of results:\n- i) constructions of the labeling for a specific class of graphs,\n- ii) nonexistence results based on structure or parity\n- iii) construction of graphs with a specified parameters e.g. order,\nregularity.\n\nOur contribution is mostly to the second and third branch. Typically, an\ninductive construction is given that exploits all feasible values of\ngiven parameters and for the remaining values non-existence is proven.\n\n\n# Acknowledgement\nThis work was supported by The Ministry of Education, Youth and Sports\nfrom the National Programme of Sustainability (NPU II) project\n„IT4Innovations excellence in science - LQ1602“ and by the\nIT4Innovations infrastructure which is supported from the Large\nInfrastructures for Research, Experimental Development and Innovations\nproject „IT4Innovations National Supercomputing Center – LM2015070“.\n\n\n# Quick install\n\nInstallation is very simple on operating systems Linux\\MacOsX\n\n## Before we start\n\nPlease check the necessary program requirements on your local machine.\n- compiler ***g++*** at  version  4.2.1 or greater with support lang std=c++11\n- command for a g++ compiler test version ```g++ -v```\n- a ***Make*** manager for a building program on your local machine\n- the command for a make manager exists ```make --help``` if not please install them.\n- ***git*** client for download a project from gitlab server\n- the command for a exists git client on the machine ```git --version``` if not please install them on this sites [https://git-scm.com/downloads](https://git-scm.com/downloads)\n\n## Download and install project\n\nFor this purpose, we use git client.\nAt the first step, we will open terminal and execute command ```git clone https://github.com/It4innovations/Handicap```.\nAfter that, we open folder `Handicap` via command `cd Handicap` and \nenter the final command for compilation `make`.\n\n## Running a program\n\nAfter entering the command `make`, we will find execute file name `ExtendingHandicapGraphLabeling`. \nFor correct test, please enter a command ```./ExtendingHandicapGraphLabeling```. Program in default settings prints all ten 4-regular graphs with extended handicap labeling.\n\nFor searching another graphs, please edit parameters in the file `src\\main.cpp`. There are defined global constants:\n- ***THREAD_COUNTS*** - there is a number of threads for making parallelism, it is recommended set value like as number of CPUs -1\n- ***REGULAR_GRAPHS*** - there is a number of regularity graphs\n- ***VERTICES_COUNT*** - there is a number of vertices\n- ***START_LABEL*** - there is a first labeled label at the searching process\n\n# Benchmark \nWe tested this program on Anselm computres cluster of IT4I.cz. Program ran at one node which included 16 CPUs. The scaling factor, you can see on image. \nWe search all a 4-regular graphs on 20 vertices with extended handicap labeling. \n\n![Benchmark]( documentation/benchmark.png?raw=true \"Benchmark\")\n\n# Parallelism  \nThe main idea is a brute-force search for all feasible permutations  of\nlabels that yield a regular graph with the extended handicap labeling.\nThe search space is reduced by pruning branches that clearly do not\nallow this particular labeling.\nThe key building block is generating for each vertex only such list of\nneighbors that have the required weight. Then each such list is pushed\nto a thread-safe queue. After that, the program runs a given number of N\nthreads, where each thread explores one branch of the search space. If s\nthread is finished, it will pick up the next job from the queue (pool).\nThis model of parallelism is called ThreadPool.\nMoreover, the execution can be stopped once at least one job gave a\npositive answer: when a graph with the extended handicap labeling and\ngiven order and regularity was found.\n\n# Example\nWe prepared some example of this program. If you set the main constantats for:\nREGULARITY: 4, VERTICES_COUNT = 12, THREAD_COUNT = 1, STARTING_LABEL = 1 and after that save the file main.cpp. Compaile it and run it. The result will be same like file locates in test/result4-12.txt. The result has got 10 results of labeling graphs.\n\n# License\nThis project is made available under the BSD 2-Clause License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fit4innovations%2Fhandicap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fit4innovations%2Fhandicap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fit4innovations%2Fhandicap/lists"}