{"id":22695818,"url":"https://github.com/vhtua/dfa-checking-tool","last_synced_at":"2025-03-29T18:10:17.787Z","repository":{"id":133137116,"uuid":"471631319","full_name":"vhtua/DFA-Checking-Tool","owner":"vhtua","description":"A tiny tool (developed in C++) to validate a given string if it is accepted by the input DFA","archived":false,"fork":false,"pushed_at":"2024-09-11T06:24:00.000Z","size":1622,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-04T18:50:53.888Z","etag":null,"topics":["cpp","dfa"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vhtua.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-03-19T08:05:30.000Z","updated_at":"2024-09-11T06:18:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"ede43cd5-c0f6-4abb-bc9b-ae933b4c4fc7","html_url":"https://github.com/vhtua/DFA-Checking-Tool","commit_stats":null,"previous_names":["vhtua/dfa-checking-tool"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vhtua%2FDFA-Checking-Tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vhtua%2FDFA-Checking-Tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vhtua%2FDFA-Checking-Tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vhtua%2FDFA-Checking-Tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vhtua","download_url":"https://codeload.github.com/vhtua/DFA-Checking-Tool/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246223319,"owners_count":20743165,"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":["cpp","dfa"],"created_at":"2024-12-10T04:12:04.163Z","updated_at":"2025-03-29T18:10:17.767Z","avatar_url":"https://github.com/vhtua.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DFA CHECKING TOOL DOCUMENTATION\n\n## Theoretical Computer Science  \n### Author: Vu Hoang Tuan Anh - 18812 \n\n![Demo program](img/demo.png)\n\nRead the documentation in pdf version: [here]([18812]%20DOCUMENTATION%20FOR%20USING%20MY%20DFA%20CHECK%20TOOL%20v2.pdf)\n\n# Simple version (Has only 2 columns of the transition table)\n\nInput requirement:\n\n- The number of rows of the exact DFA transition table\n- Every transition state of the transition table\n- The number of final states, and the index of them\n- The string which you want to check with the given DFA\n\nOutput:\n\n- The visualization of the DFA transition table\n- All the final states\n- Which states that the DFA stopped when completing checking the string\n- The validity of the string\n\n**Demo:**\n\n```\nGiven L(M) = {awa: w {a,b}*}, check the validity of the string bbabababababbaababbababbbbaa\n```\n![Demo Simple DFA](img/simpleDemo.png)\n\n```\nTransition Table:\na b\nq0 q2 q\nq1 q1 q\nq2 q3 q\nq3 q3 q\n```\n```\nThe final state is q\n```\n\nImplement this problem in the program:\n\n1. First we input the number of rows of the transition is 4, then enter each element of the table into the program like this:\n\n![Demo1 step1](img/demo1Step1.png)\n![Demo1 transition table](img/demo1TransTable1.png)\n\n2. Then we enter the number of final states and what they are:\n\n```\n(?) Enter the number of final states: 1\nEnter final state q_3\n```\n\n3. After all, enter the string:\n```\n(?) Enter the string: bbabababababbaababbababbbbaa\n```\n\n4. Enjoy the final result:\n![demo1 result](img/demo1Result.png)\n\n\nInput sample I used above (Just copy it and paste on the program, then press Enter to see the result):\n\n```\n4 2 1 1 1 3 2 3 2 1 3\nbbabababababbaababbababbbbaa\n```\n\n**Bonus Sample 2:**\n\n```\nGiven L(M) = {anb^2 : n ≥ 1} (all strings with at least one a and exactly two b’s). Check the validity\nof the string aaaaaaaaaaaabaaabaaaaaaaaaaaaa\n```\n![Sample 2](img/sample2.png)\n\n\n**Input sample:**\n\n```\n7 3 1 4 2 5 6 3 4 4 5 5 6 6 6 1 5\naaaaaaaaaaaabaaabaaaaaaaaaaaaa\n```\n\n \n\n# Extended version (able to input the number of columns of the transition table)\n\nInput requirement:\n\n- The number of rows of the exact DFA transition table\n- The number of columns of the exact DFA transition table\n- Every transition state of the transition table\n- The number of final states, and the index of them\n- The string which you want to check with the given DFA\n\nOutput:\n\n- The visualization of the DFA transition table\n- ~~All the final states ( _are disabled_ ) (uncomment on the source code to enable this feature)~~\n- Which states that the DFA stopped at when completing checking the string\n- The validity of the string\n\n**Demo:**\n![Sample2 Demo](img/sample2Demo.png)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvhtua%2Fdfa-checking-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvhtua%2Fdfa-checking-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvhtua%2Fdfa-checking-tool/lists"}