DFA का अर्थ है डिटरमिनिस्टिक फाइनाइट ऑटोमेटा। यह एक परिमित स्टेट मशीन है जो अपने एक्सेप्टर के आधार पर एक स्ट्रिंग को स्वीकार या अस्वीकार करती है।
यहां, हम एक DFA बनाने जा रहे हैं जो ऐसी स्ट्रिंग को स्वीकार करता है जो 'a' से शुरू और 'a' पर समाप्त होती है। इनपुट सेट (a, b) से है। इसके आधार पर हम एक DFA डिजाइन करेंगे। आइए कुछ वैध और अवैध केस देखें जो DFA द्वारा स्वीकार किए जाते हैं।
DFA द्वारा स्वीकार की गई स्ट्रिंग्स: ababba, aabba, aa, a।
DFA द्वारा अस्वीकार की गई स्ट्रिंग्स: ab, b, aabab।
उदाहरण
यह प्रोग्राम उस स्ट्रिंग की जांच करता है जो 'a' से शुरू और 'a' पर समाप्त होती है। यह DFA उन सभी स्ट्रिंग्स को स्वीकार करेगा जो 'a' से शुरू और 'a' पर समाप्त होती हैं। कोड पहले और अंतिम तत्वों की समानता की जांच करता है और बीच में (a, b) से कुछ भी संभव है।
#include <iostream>
#include <string.h>
using namespace std;
int main() {
char str[] = "ababba";
int length = strlen(str);
if (str[0] == 'a' && str[length - 1] == 'a') {
printf("Accepted");
} else {
printf("Rejected");
}
return 0;
}
आउटपुट
Accepted