पहुँच योग्य DFA अवस्थाओं की समतुल्यता
अधिकतम 16 अवस्थाओं और चार प्रतीकों वाले पूर्ण DFA की पहुँच योग्य अवस्थाएँ स्वीकृत प्रत्ययों के अनुसार समूहित करें।
def dfa_classes(table, accepting):
if type(table) is not list or not 1 <= len(table) <= 16:
raise ValueError("state count")
n = len(table)
if type(table[0]) is not list or not 1 <= len(table[0]) <= 4:
raise ValueError("alphabet size")
width = len(table[0])
if any(type(row) is not list or len(row) != width or
any(type(x) is not int or not 0 <= x < n for x in row)
for row in table):
raise ValueError("complete transition table")
if type(accepting) is not set or any(
type(x) is not int or not 0 <= x < n for x in accepting):
raise ValueError("accepting states")
seen, pending = {0}, [0]
while pending:
for dest in table[pending.pop()]:
if dest not in seen:
seen.add(dest); pending.append(dest)
groups = [g for g in (seen & accepting, seen - accepting) if g]
while True:
owner = {s: i for i, g in enumerate(groups) for s in g}
refined = []
for group in groups:
buckets = {}
for state in sorted(group):
key = tuple(owner[d] for d in table[state])
buckets.setdefault(key, set()).add(state)
refined.extend(buckets.values())
if len(refined) == len(groups):
return sorted([sorted(g) for g in refined])
groups = refined| प्रोजेक्ट | समतुल्य और भिन्न अवस्थाएँ जाँचें तथा अप्राप्य अवस्थाएँ हटाकर अमान्य संक्रमण अस्वीकार करें। |
|---|---|
| लागू करने से पहले समीक्षा करें | वास्तविक व्यवहार की अपेक्षित परिणाम से तुलना करें। जाँच असफल हो तो अगले बदलाव से पहले कारण समझें। |
| मॉडल | बेस URL और आवश्यक होने पर API कुंजी से OpenAI-संगत या Anthropic endpoint सेट करें। कनेक्शन जाँचें। स्थानीय मॉडल सर्वर चालू होना चाहिए; दूरस्थ उपकरण अलग से डेटा भेज सकते हैं। |
def dfa_classes(table, accepting):
if type(table) is not list or not 1 <= len(table) <= 16:
raise ValueError("state count")
n = len(table)
if type(table[0]) is not list or not 1 <= len(table[0]) <= 4:
raise ValueError("alphabet size")
width = len(table[0])
if any(type(row) is not list or len(row) != width or
any(type(x) is not int or not 0 <= x < n for x in row)
for row in table):
raise ValueError("complete transition table")
if type(accepting) is not set or any(
type(x) is not int or not 0 <= x < n for x in accepting):
raise ValueError("accepting states")
seen, pending = {0}, [0]
while pending:
for dest in table[pending.pop()]:
if dest not in seen:
seen.add(dest); pending.append(dest)
groups = [g for g in (seen & accepting, seen - accepting) if g]
while True:
owner = {s: i for i, g in enumerate(groups) for s in g}
refined = []
for group in groups:
buckets = {}
for state in sorted(group):
key = tuple(owner[d] for d in table[state])
buckets.setdefault(key, set()).add(state)
refined.extend(buckets.values())
if len(refined) == len(groups):
return sorted([sorted(g) for g in refined])
groups = refinedदिखने वाला व्यवहार बनाए रखते हुए अवस्थापूर्ण कोड सरल करें
StateAmaranth जुड़े एआई मॉडल से अवस्थापूर्ण सॉफ़्टवेयर जाँचने का Windows कोडिंग कार्यक्षेत्र है। सिस्टम के स्वीकृत इवेंट और कॉलर को दिखने वाले परिणामों से शुरू करें। अवस्थाएँ सरल करने के अनुरोध को यह संदर्भ चाहिए, ताकि छोटा निरूपण अनुप्रयोग के व्यवहार की कीमत पर लक्ष्य न बन जाए।
दिया गया निर्धारक अवस्था उदाहरण एक ठोस कार्य देता है: स्वीकृति व्यवहार सुरक्षित रखते हुए पहुँच योग्य अवस्थाओं में समतुल्यता जाँचना। संक्रमण तालिका और अपेक्षित प्रारंभिक अवस्था चर्चा में लाएँ। बदलाव माँगने से पहले मॉडल से महत्वपूर्ण अंतर समझाने को कहें, खासकर जब आसपास का अनुप्रयोग साधारण स्वीकार या अस्वीकार से अधिक परिणाम दिखाता हो।
ज्ञात परिणाम वाले छोटे इवेंट अनुक्रमों से प्रस्तावित समूहीकरण जाँचें। अलग अवस्थाओं तक पहुँचने वाले रास्ते और पहुँच से बाहर प्रविष्टियों वाले मामले लें, फिर परियोजना में जाँच चलाएँ। समूहीकरण उपयोग करने वाला इंटरफ़ेस भी देखें, क्योंकि स्वीकृति व्यवहार सुरक्षित रहने पर भी अवस्था संख्या या निरूपण बदलने से कॉलर टूट सकता है।
समर्थित OpenAI-संगत या Anthropic एंडपॉइंट उपलब्ध कराए तो अप्रतिबंधित एआई मॉडल चुन सकते हैं। जरूरत के अनुसार प्रवेश प्रमाण कॉन्फ़िगर करें और संदर्भ सीमाएँ तथा टूल उपलब्धता जाँचें। मॉडल का उत्तर व्यवहार एंडपॉइंट पर निर्भर रहता है; सुरक्षित सरलीकरण का प्रमाण आपके बताए अवलोकन और की गई जाँच से आता है।
अवस्था मशीन रीफ़ैक्टर के प्रश्न
- अनुरोध में किसे दिखाई देने वाला व्यवहार मानें?
केवल आंतरिक अवस्था नाम नहीं, कॉलर के निर्भर आउटपुट या निर्णय सूचीबद्ध करें। संक्रमण कार्रवाई या त्रुटियाँ देते हों तो वे शामिल करें। स्वीकृति आधारित उदाहरण वास्तविक अनुप्रयोग में सुरक्षित रखे जाने वाले व्यवहार से संकीर्ण हो सकता है।
- क्या समान स्वीकृति वाली अवस्थाएँ हमेशा मिला सकते हैं?
पूरे अनुबंध की जाँच के बिना नहीं। अनुप्रयोग पहचानकर्ता, कार्रवाइयाँ या अन्य अवस्था आधारित प्रभाव दिखा सकता है। केवल स्वीकृति पर आधारित समतुल्यता तर्क लगाने से पहले सहायक से उन उपभोक्ताओं की जाँच कराएँ।
- समीक्षा में पहुँच से बाहर अवस्थाएँ कैसे संभालें?
प्रारंभिक अवस्था और पहुँच का निर्धारण बताएँ। पहुँच से बाहर प्रविष्टियों और अपेक्षित आउटपुट वाला मामला लें। हटाने या फिर समूह बनाने का प्रस्ताव स्वीकार करने से पहले देखें कि कॉलर उन्हें पहचान योग्य रखना चाहता है या नहीं।
- अवस्था पहचानकर्ता बदलने के बाद क्या परखें?
संक्रमण, संग्रहित संदर्भ और पहचानकर्ता दिखाने या उपयोग करने वाला हर इंटरफ़ेस जाँचें। लौटाए समूहीकरण की संरचना जाँच के साथ व्यवहार अनुक्रम चलाएँ। केवल स्वीकृति सुरक्षित रहना साबित नहीं करता कि निर्भर कोड निरूपण सही समझता है।
StateAmaranth · अद्यतन 2026-10-25