{"id":8010,"date":"2019-12-18T00:00:00","date_gmt":"2019-12-18T05:00:00","guid":{"rendered":"https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/"},"modified":"2024-09-24T05:49:10","modified_gmt":"2024-09-24T09:49:10","slug":"deterministic-finite-automata","status":"publish","type":"glossary","link":"https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/","title":{"rendered":"Deterministic Finite Automata"},"content":{"rendered":"<ul class=\"anchorlinks\">\r\n<li><a href=\"#what\">What is Deterministic Finite Automata?<\/a><\/li>\r\n<li><a href=\"#use\">How can I use Deterministic Finite Automata?<\/a><\/li>\r\n<\/ul>\r\n\r\n<h2 class=\"wp-block-heading\" id=\"what\">What is Deterministic Finite Automata?<\/h2>\r\n\r\n\r\n\r\n<p>Deterministic finite automata (or DFA) are finite state machines that accept or reject strings of characters by parsing them through a sequence that is uniquely determined by each string.<\/p>\r\n\r\n\r\n\r\n<p>The term \u201cdeterministic\u201d refers to the fact that each string, and thus each state sequence, is unique. In a DFA, a string of symbols is parsed through a DFA automata, and each input symbol will move to the next state that can be determined.<\/p>\r\n\r\n\r\n\r\n<p>These machines are called finite because there are a limited number of possible states which can be reached. A finite automaton is only called deterministic if it can fulfill both conditions. DFAs differ from non-deterministic automata in that the latter are able to transition to more than one state at a time and be active in multiple states at once.<\/p>\r\n\r\n\r\n\r\n<p>In practice, DFAs are made up of five components (and they\u2019re often denoted by a five-symbol set known as a 5-tuple). These components include:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>A finite number of states<\/li>\r\n<li>A set of symbols known as the alphabet, also finite in number<\/li>\r\n<li>A function that operates the transition between states for each symbol<\/li>\r\n<li>An initial start state where the first input is given or processed<\/li>\r\n<li>A final state or states, known as accepting states.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id=\"use\">How can I use Deterministic Finite Automata?<\/h2>\r\n\r\n\r\n\r\n<p>Although they were originally created as abstract mathematical models, DFAs today have become widespread in both computer and data science. Finite automata are used by most computer language compilers to assist in parsing and preparing code for actual use. Additionally, they are used extensively in language processing systems, including in natural language processing, to assist programs in understanding how to respond to unique and varied inputs.<\/p>\r\n\r\n\r\n\r\n<p>DFAs, because of their inability to actively inhabit multiple states at once, are also essential in everything from password recognition algorithms (to determine whether a user\u2019s input is correct or incorrect) to filtering algorithms and even in text processing applications. In data science, basic deterministic finite automata can be used as sorting tools when building <a href=\"\/glossary\/data-warehouse-architecture\/\">data warehouses<\/a> and other storage systems.<\/p>\r\n\r\n\r\n\r\n<p>By parsing data as it arrives and determining its proper location, a DFA can automate a large portion of the sorting and do so significantly faster than manually performing the task. When combined with a Non-deterministic Finite Automaton (or NFA), data warehouses can also ascertain whether data belongs in more than one location. DFA and NFA can be used separately to create a much broader and effective solution.<\/p>\r\n\r\n\r\n\r\n\r\n\r\n<p><a class=\"action-btn \" href=\"\/resources\/glossary\/\">Back to Glossary<\/a><\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Deterministic finite automata are finite state machines that accept or reject strings of characters by parsing them through a uniquely determined sequence.<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"_acf_changed":false,"_searchwp_excluded":"","_links_to":"","_links_to_target":""},"application":[],"department":[],"glossary-category":[],"industry":[],"role":[],"topic":[],"class_list":["post-8010","glossary","type-glossary","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.5 (Yoast SEO v23.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>What is Deterministic Finite Automata? &#187; Sisense<\/title>\n<meta name=\"description\" content=\"Deterministic finite automata are finite state machines that accept or reject strings of characters by parsing them through a uniquely determined sequence.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deterministic Finite Automata\" \/>\n<meta property=\"og:description\" content=\"Deterministic finite automata are finite state machines that accept or reject strings of characters by parsing them through a uniquely determined sequence.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/\" \/>\n<meta property=\"og:site_name\" content=\"Sisense\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-24T09:49:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.sisense.com\/wp-content\/uploads\/header-logo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"154\" \/>\n\t<meta property=\"og:image:height\" content=\"32\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/cdn.sisense.com\/wp-content\/uploads\/header-logo.png\" \/>\n<meta name=\"twitter:site\" content=\"@sisense\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/\",\"url\":\"https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/\",\"name\":\"What is Deterministic Finite Automata? &#187; Sisense\",\"isPartOf\":{\"@id\":\"https:\/\/www.sisense.com\/#website\"},\"datePublished\":\"2019-12-18T05:00:00+00:00\",\"dateModified\":\"2024-09-24T09:49:10+00:00\",\"description\":\"Deterministic finite automata are finite state machines that accept or reject strings of characters by parsing them through a uniquely determined sequence.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sisense.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deterministic Finite Automata\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sisense.com\/#website\",\"url\":\"https:\/\/www.sisense.com\/\",\"name\":\"Sisense\",\"description\":\"Build your business with anywhere-analytics\",\"publisher\":{\"@id\":\"https:\/\/www.sisense.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sisense.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.sisense.com\/#organization\",\"name\":\"Sisense\",\"url\":\"https:\/\/www.sisense.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sisense.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdn.sisense.com\/wp-content\/uploads\/sisense-yoast-og.jpg\",\"contentUrl\":\"https:\/\/cdn.sisense.com\/wp-content\/uploads\/sisense-yoast-og.jpg\",\"width\":1200,\"height\":600,\"caption\":\"Sisense\"},\"image\":{\"@id\":\"https:\/\/www.sisense.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/sisense\",\"https:\/\/www.linkedin.com\/company\/sisense\",\"https:\/\/github.com\/sisense\/\"],\"description\":\"Sisense accelerates product innovation through AI\/ML capabilities. Our global analytics platform lets customers drive better, faster decisions for their business and end users.\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"What is Deterministic Finite Automata? &#187; Sisense","description":"Deterministic finite automata are finite state machines that accept or reject strings of characters by parsing them through a uniquely determined sequence.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/","og_locale":"en_US","og_type":"article","og_title":"Deterministic Finite Automata","og_description":"Deterministic finite automata are finite state machines that accept or reject strings of characters by parsing them through a uniquely determined sequence.","og_url":"https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/","og_site_name":"Sisense","article_modified_time":"2024-09-24T09:49:10+00:00","og_image":[{"width":154,"height":32,"url":"https:\/\/cdn.sisense.com\/wp-content\/uploads\/header-logo.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_image":"https:\/\/cdn.sisense.com\/wp-content\/uploads\/header-logo.png","twitter_site":"@sisense","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/","url":"https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/","name":"What is Deterministic Finite Automata? &#187; Sisense","isPartOf":{"@id":"https:\/\/www.sisense.com\/#website"},"datePublished":"2019-12-18T05:00:00+00:00","dateModified":"2024-09-24T09:49:10+00:00","description":"Deterministic finite automata are finite state machines that accept or reject strings of characters by parsing them through a uniquely determined sequence.","breadcrumb":{"@id":"https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sisense.com\/glossary\/deterministic-finite-automata\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sisense.com\/"},{"@type":"ListItem","position":2,"name":"Deterministic Finite Automata"}]},{"@type":"WebSite","@id":"https:\/\/www.sisense.com\/#website","url":"https:\/\/www.sisense.com\/","name":"Sisense","description":"Build your business with anywhere-analytics","publisher":{"@id":"https:\/\/www.sisense.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sisense.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.sisense.com\/#organization","name":"Sisense","url":"https:\/\/www.sisense.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sisense.com\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.sisense.com\/wp-content\/uploads\/sisense-yoast-og.jpg","contentUrl":"https:\/\/cdn.sisense.com\/wp-content\/uploads\/sisense-yoast-og.jpg","width":1200,"height":600,"caption":"Sisense"},"image":{"@id":"https:\/\/www.sisense.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/sisense","https:\/\/www.linkedin.com\/company\/sisense","https:\/\/github.com\/sisense\/"],"description":"Sisense accelerates product innovation through AI\/ML capabilities. Our global analytics platform lets customers drive better, faster decisions for their business and end users."}]}},"_links":{"self":[{"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/glossary\/8010"}],"collection":[{"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/glossary"}],"about":[{"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/types\/glossary"}],"version-history":[{"count":0,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/glossary\/8010\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/media?parent=8010"}],"wp:term":[{"taxonomy":"application","embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/application?post=8010"},{"taxonomy":"department","embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/department?post=8010"},{"taxonomy":"glossary-category","embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/glossary-category?post=8010"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/industry?post=8010"},{"taxonomy":"role","embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/role?post=8010"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.sisense.com\/wp-json\/wp\/v2\/topic?post=8010"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}