CComponentWisp
مساحة عمل برمجية بالذكاء الاصطناعي

المكونات الموجهة شديدة الاتصال

قسّم رسماً بيانياً موجهاً لا يتجاوز 64 رأساً إلى مكونات قوية الاتصال.

● ● ●ComponentWisp●
سير العمل · المكونات الموجهة شديدة الاتصال ×
def strong_components(graph):
    if type(graph) is not list or len(graph) > 64:
        raise ValueError("scc.graph")
    n = len(graph)
    if any(type(row) is not set or any(type(v) is not int or not 0 <= v < n for v in row) for row in graph):
        raise ValueError("scc.edge")
    seen, order = set(), []
    for start in range(n):
        if start in seen:
            continue
        seen.add(start)
        stack = [(start, iter(sorted(graph[start])))]
        while stack:
            node, edges = stack[-1]
            target = next(edges, None)
            if target is None:
                order.append(node)
                stack.pop()
            elif target not in seen:
                seen.add(target)
                stack.append((target, iter(sorted(graph[target]))))
    reverse = [set() for _ in graph]
    for node, edges in enumerate(graph):
        for target in edges:
            reverse[target].add(node)
    seen, result = set(), []
    for start in reversed(order):
        if start in seen:
            continue
        group, pending = [], [start]
        seen.add(start)
        while pending:
            node = pending.pop()
            group.append(node)
            for target in reverse[node]-seen:
                seen.add(target)
                pending.append(target)
        result.append(sorted(group))
    return sorted(result)
✳المكونات الموجهة شديدة الاتصال
✓ التغييراتراجع قبل التطبيق ↗
رسم توضيحي لمساحة العمل
  1. راجع قبل التطبيق

    قارن السلوك الفعلي بالنتيجة المتوقعة. إذا فشل فحص، تحقّق من السبب قبل إجراء تغييرات إضافية.

  2. النماذج

    اضبط نقطة اتصال متوافقة مع OpenAI أو Anthropic باستخدام العنوان الأساسي ومفتاح API عند الحاجة. اختبر الاتصال. يجب أن يعمل خادم النموذج المحلي؛ وقد ترسل الأدوات البعيدة البيانات بشكل منفصل.

  3. المشروع

    اختبر الدورات والرؤوس المعزولة والمدخل الفارغ، وارفض عناصر المجموعات غير الصالحة دون تغيير مجموعات التجاور.

سير العمل

المكونات الموجهة شديدة الاتصال

سير العمل ↗
سير العمل
def strong_components(graph):
    if type(graph) is not list or len(graph) > 64:
        raise ValueError("scc.graph")
    n = len(graph)
    if any(type(row) is not set or any(type(v) is not int or not 0 <= v < n for v in row) for row in graph):
        raise ValueError("scc.edge")
    seen, order = set(), []
    for start in range(n):
        if start in seen:
            continue
        seen.add(start)
        stack = [(start, iter(sorted(graph[start])))]
        while stack:
            node, edges = stack[-1]
            target = next(edges, None)
            if target is None:
                order.append(node)
                stack.pop()
            elif target not in seen:
                seen.add(target)
                stack.append((target, iter(sorted(graph[target]))))
    reverse = [set() for _ in graph]
    for node, edges in enumerate(graph):
        for target in edges:
            reverse[target].add(node)
    seen, result = set(), []
    for start in reversed(order):
        if start in seen:
            continue
        group, pending = [], [start]
        seen.add(start)
        while pending:
            node = pending.pop()
            group.append(node)
            for target in reverse[node]-seen:
                seen.add(target)
                pending.append(target)
        result.append(sorted(group))
    return sorted(result)
مساحة عمل برمجية بالذكاء الاصطناعي

امنح مجموعات الاعتماد معنى يستطيع التطبيق استخدامه

ComponentWisp مساحة عمل للبرمجة بالذكاء الاصطناعي على Windows للمطورين الذين يتتبعون العلاقات عبر بيانات المشروع وشيفرته. أدخل تمثيل الرسم البياني والمستهلك الذي يحتاج مجموعاته في المحادثة. اطلب من المساعد فحص معنى الحافة الموجّهة قبل اقتراح تغيير التجميع. لا تفيد النتيجة إلا عندما تطابق العلاقات التي تحفظها السؤال الذي يحاول تطبيقك الإجابة عنه.

يمكن لمهمة حول strong_components.py فحص مجموعات تستطيع رؤوسها الوصول بعضها إلى بعض عبر مسارات موجّهة. استخدم مثال اعتماد صغيرا لتمييز الوصول المتبادل من الاتصال أحادي الاتجاه، ثم راجع التنفيذ وترتيب مخرجاته. إذا طبّقت الشيفرة على الاعتماديات، فاجعل ربط العناصر الفعلية بالرؤوس صريحا؛ فالدالة المساعدة وحدها لا تثبت معنى تلك الاعتماديات.

بعد قراءة المقترح، شغّل فحوص المشروع بدورة ووصلة أحادية الاتجاه ورؤوس معزولة. افحص المستهلك للتأكد من تعامله المتسق مع المجموعات الناتجة. يتصل ComponentWisp بنقاط مدعومة متوافقة مع OpenAI أو تابعة لـ Anthropic، مع بيانات اعتماد عند الحاجة. يمكن اختيار نماذج بلا قيود حيث تتوفر، بينما يحدد النموذج والخادم القيود والأدوات وحدود السياق. أبق معنى الحواف والمجموعات المتوقعة في المحادثة كي تحافظ التعديلات اللاحقة على المتطلب البرمجي نفسه.

أسئلة حول شيفرة تجميع الاعتماديات

هل يكفي اعتماد أحادي الاتجاه لوضع العناصر معا؟

ليس لمجموعة تُعرّف بالوصول الموجّه المتبادل. حدّد قاعدة التجميع المقصودة وأدرج مثالا أحادي الاتجاه كي لا يعامل تنفيذ مقترح علاقة موجّهة كاتصال غير موجّه دون قصد.

كيف ينبغي ربط عناصر المشروع الفعلية بالرؤوس؟

احتفظ بخريطة ربط صريحة يستطيع المستهلك استخدامها لتفسير النتائج. افحص ما يحدث عند حذف العناصر أو إعادة ترتيبها، واختبر استمرار إشارة المجموعات المعادة إلى عناصر المشروع المقصودة.

هل يحدد تجميع الاعتماديات ترتيب التنفيذ؟

إنه يجيب عن سؤال مختلف. قد يحتاج تطبيقك منطقا إضافيا لترتيب المجموعات أو معالجة الدورات. حدّد ذلك المتطلب منفصلا وافحص المستهلك المعني بدلا من افتراض أن التقسيم خطة تنفيذ كاملة.

لماذا ندرج رؤوسا معزولة في الفحوص؟

تتحقق من أن العناصر بلا حواف تتلقى أيضا التمثيل الذي يتوقعه تطبيقك. افحص مخرجات الدالة وعرض المستهلك معا، خصوصا إذا كانت إعادة الهيكلة تبني بنى وسيطة بالمرور على الاتصالات القائمة فقط.

تنزيل لنظام Windows ↗

ComponentWisp · آخر تحديث 2026-10-25