نظام المُحلّات
يمتلك dispatchatlas.solve بيانات المُحلّات الوصفية، والاختيار، وبناء الجداول، والإصلاح،
وضمانات الأداء، وعائلات خط-الأساس، والمحوّلات الاختيارية، وعائلة NDSO.
تستورد الحزمة dispatchatlas.core فقط. تختبارات تكامل الدخان للمعايير المرجعية تعيش في
tests/solve/ كي لا تعتمد حزمة وقت-التشغيل على مُولّدات معايير مرجعية محدّدة.
مثال قابل للتشغيل: examples/compare_solvers.py يجدول مجموعة مُحلّات بالتوازي ويُرسيها بأمثلية دقيقة مُبرهَنة.
السجل
يخزّن SolverRegistry مصانع مُحلّات عديمة-الحالة ببيانات وصفية غنية:
- وسوم قدرة مثل
capacity-awareوprecedence-awareوrepairوlocal-searchوndso - أهداف مدعومة مثل
makespanوenergyوcost - قيود مُعلَنة مُعبَّر عنها عبر وسوم القدرة
- معايير توقّف افتراضية
- سلوك إعادة-تشغيل حتمي أو عشوائي-مُبذَّر
- ترميز حل (
permutationأوmappingأوassignmentأوnative) - إعلانات تبعية اختيارية وإفصاح خلفية-تجارية
- رؤية مستوى-الدليل للتصديرات المرحلية
- استشهاد قانوني، أو مبرّر صريح للاستشهاد-غير-المنطبق
تحمل كل عائلة مُحلّ مُسمّاة استشهادًا يفشل مُغلقًا: عائلة ذات أصل تأسيسي قانوني تحذف مرجعها لا يمكن بناؤها، وعائلة بلا أصل قانوني وحيد تسجّل السبب بدل اختلاق واحد.
from dispatchatlas.solve import SolverCapability, default_solver_registry
registry = default_solver_registry()
metaheuristics = registry.select(
required_capabilities=(SolverCapability.METAHEURISTIC,),
objective="makespan",
)كتالوج السجل
كل مُحلّ في السجل، في جدول واحد قابل للفرز والبحث. الجدول ومجاميعه مُولَّدة من
default_solver_registry()، بحيث تكون العدّات أدناه قابلة للعدّ من الصفوف ذاتها. يُلخّص مخطط تغطية-القدرات أعلى الجدول كم من مُحلّات السجل يُعلِن كل قدرة مُعلَنة.
Generated from the solver registry: 87 solvers across 6 groups — constructive (5), dispatching (14), exact (7), learning (11), metaheuristic (47), ndso (3).
Showing 87 of 87 solvers.
| Supported objectives | Notes | ||
|---|---|---|---|
adpso | metaheuristic | makespan, energy, cost | Inspect
|
age-moea-ii | metaheuristic | makespan, lateness, fairness, energy, cost, carbon | Inspect
|
ant-colony | metaheuristic | makespan, energy, cost | Inspect
|
apparent-tardiness-cost | dispatching | makespan, lateness, energy, cost | Inspect
|
arithmetic-optimization | metaheuristic | makespan, energy, cost | Inspect
|
artificial-bee-colony | metaheuristic | makespan, energy, cost | Inspect
|
artificial-fish-swarm | metaheuristic | makespan, energy, cost | Inspect
|
beam-search | constructive | makespan, energy, cost | Inspect
|
branch-and-bound | exact | makespan, energy, cost | Inspect
|
ccgp | metaheuristic | makespan, energy, cost | Inspect
|
clpso | metaheuristic | makespan, energy, cost | Inspect
|
cma-es | metaheuristic | makespan, energy, cost | Inspect
|
cpop | dispatching | makespan, energy, cost | Inspect
|
critical-path-tabu | metaheuristic | makespan, energy, cost | Inspect
|
cuckoo-search | metaheuristic | makespan, energy, cost | Inspect
|
d-clpso | metaheuristic | makespan, energy, cost | Inspect
|
d-depso | metaheuristic | makespan, energy, cost | Inspect
|
d-lshade | metaheuristic | makespan, energy, cost | Inspect
|
dan-dual-attention | learning | makespan, energy, cost | Inspect
|
decima-dag-rl | learning | makespan, energy, cost | Inspect
|
decision-diagram-sequencing | exact | makespan, energy, cost | Inspect
|
differential-evolution | metaheuristic | makespan, energy, cost | Inspect
|
earliest-deadline | dispatching | makespan, energy, cost | Inspect
|
earliest-finish-time | dispatching | makespan, energy, cost | Inspect
|
earliest-start | dispatching | makespan, energy, cost | Inspect
|
epso | metaheuristic | makespan, energy, cost | Inspect
|
exhaustive-enumeration | exact | makespan, energy, cost | Inspect
|
firefly-algorithm | metaheuristic | makespan, energy, cost | Inspect
|
fjsp-hgnn-drl | learning | makespan, energy, cost | Inspect
|
genetic-algorithm | metaheuristic | makespan, energy, cost | Inspect
|
grasshopper-optimization | metaheuristic | makespan, energy, cost | Inspect
|
gravitational-search | metaheuristic | makespan, energy, cost | Inspect
|
greedy-completion | dispatching | makespan, energy, cost | Inspect
|
grey-wolf-optimizer | metaheuristic | makespan, energy, cost | Inspect
|
guided-local-search | metaheuristic | makespan, energy, cost | Inspect
|
gurobi-exact | exact | makespan, energy, cost | Inspect
|
harris-hawks-optimization | metaheuristic | makespan, energy, cost | Inspect
|
heft | dispatching | makespan, energy, cost | Inspect
|
ibea | metaheuristic | makespan, lateness, fairness, energy, cost, carbon | Inspect
|
iterated-greedy-rs | metaheuristic | makespan, energy, cost | Inspect
|
jaya-algorithm | metaheuristic | makespan, energy, cost | Inspect
|
l2d-disjunctive-gnn | learning | makespan, energy, cost | Inspect
|
l2s-improvement | learning | makespan, energy, cost | Inspect
|
learned-priority-policy | learning | makespan, energy, cost | Inspect
|
logic-based-benders-decomposition | exact | makespan, energy, cost | Inspect
|
longest-processing-time | dispatching | makespan, energy, cost | Inspect
|
lshade | metaheuristic | makespan, energy, cost | Inspect
|
marine-predators | metaheuristic | makespan, energy, cost | Inspect
|
matheuristic-restricted-neighbourhood | metaheuristic | makespan | Inspect
|
max-min | dispatching | makespan, energy, cost | Inspect
|
min-min | dispatching | makespan, energy, cost | Inspect
|
minimum-slack | dispatching | makespan, energy, cost | Inspect
|
moead | metaheuristic | makespan, lateness, fairness, energy, cost | Inspect
|
monte-carlo-tree-search | metaheuristic | makespan, energy, cost | Inspect
|
moth-flame-optimization | metaheuristic | makespan, energy, cost | Inspect
|
ndso-core | ndso | makespan, energy, cost | Inspect
|
ndso-fast | ndso | makespan, energy, cost | Inspect
|
ndso-summit | ndso | makespan, energy, cost | Inspect
|
neh | constructive | makespan, energy, cost | Inspect
|
nsga2 | metaheuristic | makespan, lateness, fairness, energy, cost | Inspect
|
nsga3 | metaheuristic | makespan, lateness, fairness, energy, cost, carbon | Inspect
|
ortools-cp-sat | exact | makespan, energy, cost | Inspect
|
particle-swarm | metaheuristic | makespan, energy, cost | Inspect
|
peft | dispatching | makespan, energy, cost | Inspect
|
pulp-milp | exact | makespan, energy, cost | Inspect
|
residual-scheduling | learning | makespan, energy, cost | Inspect
|
rl-dispatching | learning | makespan, energy, cost | Inspect
|
rollout | constructive | makespan, energy, cost | Inspect
|
rvea | metaheuristic | makespan, lateness, fairness, energy, cost, carbon | Inspect
|
salp-swarm | metaheuristic | makespan, energy, cost | Inspect
|
sarsa-dispatching | learning | makespan, energy, cost | Inspect
|
scatter-search | metaheuristic | makespan, energy, cost | Inspect
|
selection-hyper-heuristic | metaheuristic | makespan, energy, cost | Inspect
|
serial-sgs-justification | constructive | makespan, energy, cost | Inspect
|
shifting-bottleneck | constructive | makespan, energy, cost | Inspect
|
shortest-processing-time | dispatching | makespan, energy, cost | Inspect
|
simulated-annealing | metaheuristic | makespan, energy, cost | Inspect
|
sine-cosine-algorithm | metaheuristic | makespan, energy, cost | Inspect
|
slim-self-labeling | learning | makespan, energy, cost | Inspect
|
sms-emoa | metaheuristic | makespan, lateness, fairness, energy, cost, carbon | Inspect
|
spea2 | metaheuristic | makespan, lateness, fairness, energy, cost, carbon | Inspect
|
squeaky-wheel | metaheuristic | makespan, energy, cost | Inspect
|
sufferage | dispatching | makespan, energy, cost | Inspect
|
surrogate-assisted-gp-hh | learning | makespan, energy, cost | Inspect
|
tabu-mrcpsp-mode-search | metaheuristic | makespan, energy, cost | Inspect
|
teaching-learning-optimization | metaheuristic | makespan, energy, cost | Inspect
|
whale-optimization | metaheuristic | makespan, energy, cost | Inspect
|
All objective support is declared registry metadata, not a performance claim. The solver recommender ranks these solvers by declared fit.
قابلية تطبيق المحلل
أي المحللات تنطبق على أي عائلة معيارية، مقروءة من مصفوفة قابلية التطبيق. كل خلية هي قابلية تطبيق معلنة، وليست ادعاء أداء: تستشهد الخلايا المتحقق منها بحملة عامة أو استشهاد أو اختبار مسمى، وتُشتق الخلايا التقريبية من قدرات المحلل المعلنة وسمات العائلة المعيارية. يُنشأ الجدول أدناه من حزمة قابلية التطبيق العامة، لذا يمكن حساب إجماليات حالته من الصفوف نفسها.
Generated from the applicability matrix: 69 benchmark families by 87 public solvers. 10 verified · 5835 approximate · 158 not applicable.
Cell status is declared applicability, never a performance claim. Verified cells cite a named public campaign artifact, citation source, or test; approximate cells are derived from declared solver capabilities and benchmark-family traits and are labeled as such.
Showing 6003 of 6003 cells.
| Basis | |||
|---|---|---|---|
accelerator-coschedulingdistributed-computing | adpso | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; searches a continuous space decoded via the random-key-adapter with topological repair. |
accelerator-coschedulingdistributed-computing | age-moea-ii | Approximate | family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; no repair or dispatching mechanism for the family's declared uncertainty. |
accelerator-coschedulingdistributed-computing | ant-colony | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | apparent-tardiness-cost | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity. |
accelerator-coschedulingdistributed-computing | arithmetic-optimization | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | artificial-bee-colony | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | artificial-fish-swarm | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | beam-search | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; no repair or dispatching mechanism for the family's declared uncertainty. |
accelerator-coschedulingdistributed-computing | branch-and-bound | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; no repair or dispatching mechanism for the family's declared uncertainty. |
accelerator-coschedulingdistributed-computing | ccgp | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | clpso | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; searches a continuous space decoded via the random-key-adapter with topological repair. |
accelerator-coschedulingdistributed-computing | cma-es | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; no repair or dispatching mechanism for the family's declared uncertainty. |
accelerator-coschedulingdistributed-computing | cpop | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity. |
accelerator-coschedulingdistributed-computing | critical-path-tabu | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | cuckoo-search | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | d-clpso | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; searches a continuous space decoded via the spv-adapter with topological repair. |
accelerator-coschedulingdistributed-computing | d-depso | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | d-lshade | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; searches a continuous space decoded via the rounding-adapter with topological repair. |
accelerator-coschedulingdistributed-computing | dan-dual-attention | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity. |
accelerator-coschedulingdistributed-computing | decima-dag-rl | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity. |
accelerator-coschedulingdistributed-computing | decision-diagram-sequencing | Not applicable | native exact search caps at 12 tasks; family instances carry 96; optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; no repair or dispatching mechanism for the family's declared uncertainty. |
accelerator-coschedulingdistributed-computing | differential-evolution | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | earliest-deadline | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity. |
accelerator-coschedulingdistributed-computing | earliest-finish-time | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity. |
accelerator-coschedulingdistributed-computing | earliest-start | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity. |
accelerator-coschedulingdistributed-computing | epso | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; searches a continuous space decoded via the random-key-adapter with topological repair. |
accelerator-coschedulingdistributed-computing | exhaustive-enumeration | Not applicable | native exact search caps at 8 tasks; family instances carry 96; optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; no repair or dispatching mechanism for the family's declared uncertainty. |
accelerator-coschedulingdistributed-computing | firefly-algorithm | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | fjsp-hgnn-drl | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity. |
accelerator-coschedulingdistributed-computing | genetic-algorithm | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | grasshopper-optimization | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | gravitational-search | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | greedy-completion | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity. |
accelerator-coschedulingdistributed-computing | grey-wolf-optimizer | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | guided-local-search | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; no repair or dispatching mechanism for the family's declared uncertainty. |
accelerator-coschedulingdistributed-computing | gurobi-exact | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; no repair or dispatching mechanism for the family's declared uncertainty. |
accelerator-coschedulingdistributed-computing | harris-hawks-optimization | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | heft | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity. |
accelerator-coschedulingdistributed-computing | ibea | Approximate | family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; no repair or dispatching mechanism for the family's declared uncertainty. |
accelerator-coschedulingdistributed-computing | iterated-greedy-rs | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | jaya-algorithm | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | l2d-disjunctive-gnn | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity. |
accelerator-coschedulingdistributed-computing | l2s-improvement | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity. |
accelerator-coschedulingdistributed-computing | learned-priority-policy | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity. |
accelerator-coschedulingdistributed-computing | logic-based-benders-decomposition | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; no repair or dispatching mechanism for the family's declared uncertainty. |
accelerator-coschedulingdistributed-computing | longest-processing-time | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity. |
accelerator-coschedulingdistributed-computing | lshade | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; searches a continuous space decoded via the random-key-adapter with topological repair. |
accelerator-coschedulingdistributed-computing | marine-predators | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling. |
accelerator-coschedulingdistributed-computing | matheuristic-restricted-neighbourhood | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity; produces a static schedule for a family with dynamic arrivals/rescheduling; no repair or dispatching mechanism for the family's declared uncertainty. |
accelerator-coschedulingdistributed-computing | max-min | Approximate | optimizes one objective axis of a multi-objective family; family declares constraint features with no capability-tag counterpart: affinity. |
Cell status is declared applicability, never a performance claim. Verified cells cite a named public campaign, citation, or test; approximate cells are derived from declared solver capabilities and benchmark-family traits. The solver recommender scores solvers against this matrix by scheduling family.
خطوط-أساس الإرسال
خطوط-الأساس الحتمية المحزومة هي مُحلّات جدولة-قائمة بنائية. يتحكّم كلٌّ في ترتيب المهام؛ يُكرّم البنّاء التسلسلي مطالب الموارد المُعلَنة لكل مهمة ويُسنِد كل مهمة إلى مَوردها المطلوب الأبكر-توفّرًا. تُسمّي كل عائلة مرجعها التأسيسي القانوني.
| Solver | أساس الأولوية | المرجع القانوني |
|---|---|---|
earliest-start | ترتيب الإدخال الطوبولوجي | غير منطبق (خط-أساس الهوية) |
shortest-processing-time | المهمة الأقصر مدةً أولًا | Smith (1956) |
longest-processing-time | المهمة الأطول مدةً أولًا | Graham (1969) |
earliest-deadline | أبكر deadline أولًا (مُدرِك-لـ deadline) | Jackson (1955) |
earliest-finish-time | أبكر إنهاء قابل-للوصول أولًا | Topcuoglu et al. (2002) |
minimum-slack | أصغر فُسحة جدول أولًا | Conway, Maxwell & Miller (1967) |
greedy-completion | أبكر إتمام مُدرِك-للحالة أولًا | Graham (1966) |
apparent-tardiness-cost | أعلى مؤشّر تكلفة-التأخّر-الظاهري أولًا (مُدرِك-لـ deadline) | Vepsalainen & Morton (1987) |
عائلات الإرسال المُتقاعدة
تُسجَّل عائلات تخطيط-الموارد صراحةً بدل طيّها بصمت في نوع عام. تتحكّم في إسناد الموارد، لا في ترتيب المهام، والبنّاء التسلسلي المُحترِم-للطلب لا يكشف أي قرار تخطيط حرّ تحت نموذج المسألة النواة الحالي:
- تخطيط الموارد (
olb،met،mct،round-robin،load-balanced): يُسنِد البنّاء كل مهمة إلى مَوردها المُعلَن، فليس لهذه الاستدلالات درجة حرية قابلة-للتحقيق؛ التخطيط المُدرِك-لزمن-التنفيذ مِلك عمل الأهداف والقيود، لا هذا الأساس. - وسوم النوع غائبة (
type-aware،domain-aware): تتطلّب وسوم نوع-المهمة ونوع-المورد التي لا يحملها نموذج المسألة النواة الحالي.
تُرجِع retired_dispatching_families() السجل الكامل بمبرّر واستشهاد لكل-عائلة.
مُجدوِلات القوائم القائمة-على-الرتبة
تتشارك ثلاث مُجدوِلات قوائم مُدرِكة-للتغايُر شكلًا ثنائي-الطور: طور تحديد-أولوية ساكن يُرتّب كل مهمة فوق مُخطَّط الأسبقية الموجَّه اللادوري (DAG) من متوسّطات أزمنة التنفيذ وتكاليف الاتصال، وطور اختيار-معالج يربط كل مهمة وفق ترتيب الأولوية عبر قاعدة الإنهاء-الأبكر للبنّاء التسلسلي. تأتي أزمنة التنفيذ لكل-مورد من أنماط التنفيذ المُعلَنة لمهمة قابلة-للتشكيل، وتنحلّ المهمة الصلبة إلى التخصُّص المتجانس المُوثَّق.
| Solver | أساس الأولوية | المرجع القانوني |
|---|---|---|
heft | الرتبة الصاعدة | Topcuoglu, Hariri & Wu (2002) |
cpop | رتبة صاعدة-زائد-هابطة مُدمَجة، مهام المسار-الحرج أولًا | Topcuoglu, Hariri & Wu (2002) |
peft | رتبة جدول-التكلفة-المتفائل | Arabnejad & Barbosa (2014) |
قواعد تخطيط المجموعة-الجاهزة
تُسجّل ثلاث قواعد تخطيط دُفعي كل مهمة جاهزة-للأسبقية بأبكر إتمام لها عبر ارتباطاتها المرشّحة، ثم تُخطِّط مهمة واحدة في كل خطوة. تُخطِّط القواعد المنشورة دُفعةً من المهام المستقلّة؛ هنا الدُّفعة هي المجموعة الجاهزة-للأسبقية، فتمتدّ القواعد إلى أحمال العمل المُعتمِدة وتختزل إلى السلوك المنشور على نسخ المهام-المستقلّة. غادرت هذه العائلات سجلّ العائلات المُتقاعدة إلى تسجيل من-الطراز-الأول حالما جعلت TaskSpec.modes القابلة-للتشكيل مصفوفة الإتمام-المتوقَّع لكل-آلة قابلةً للتمثيل.
| Solver | أساس الأولوية | المرجع القانوني |
|---|---|---|
min-min | أصغر أفضل-إتمام تاليًا | Ibarra & Kim (1977); Braun et al. (2001) |
max-min | أكبر أفضل-إتمام تاليًا | Ibarra & Kim (1977); Braun et al. (2001) |
sufferage | أكبر فجوة إتمام بين ثاني-الأفضل والأفضل تاليًا | Maheswaran et al. (1999) |
خطوط-أساس الجشع-المُكرَّر والتابو وRCPSP
تبحث ثلاث طرائق منشورة أحادية-الحل فضاء ترتيب-المهام الآمن-للأسبقية، كلٌّ تُسقِط آليتها القانونية على وصلة الترتيب-التشغيل المشتركة. serial-sgs-justification هو أول مُحلّ لجدولة-المشاريع المُقيَّدة-بالموارد (RCPSP) في المنصّة.
| Solver | الآلية | المرجع القانوني |
|---|---|---|
iterated-greedy-rs | بذرة NEH مع حلقة هدم-إعادة-بناء وقبول بحرارة-ثابتة | Ruiz & Stutzle (2007) |
critical-path-tabu | بحث تابو مُتقدّم فوق نقلات كتل المسار-الحرج | Nowicki & Smutnicki (2005) |
serial-sgs-justification | فكّ مخطط-توليد-جدول تسلسلي مع تبرير مُزدوج يمين-ثمّ-يسار | Valls, Ballestin & Quintanilla (2005) |
خطوط-أساس ما-وراء-الاستدلال
تتشارك خطوط-أساس ما-وراء-الاستدلال المُبذَّرة التمثيلية معاملات الجدوى والإصلاح والتسجيل والبحث-المحلي ذاتها، كلٌّ بمرجعها القانوني: الخوارزمية الجينية (Holland 1975)، التلدين المُحاكى (Kirkpatrick et al. 1983)، مستعمرة النمل (Dorigo, Maniezzo & Colorni 1996)، سرب الجسيمات (Kennedy & Eberhart 1995)، والتطوّر التفاضلي (Storn & Price 1997).
مُحلّات المحوّل المُرمَّز
يبحث تحسين سرب الجسيمات بالتعلّم الشامل والتطوّر التفاضلي التكيّفي بتاريخ-النجاح في متجه مستمر حقيقي-القيمة بمكوّن واحد لكل مهمة. كل نواة عامة على هدف مستمر، فيُتحقَّق من سلوك تقاربها مباشرةً على معيار مرجعي مستمر، وتُربَط بمسألة الجدولة عبر محوّل ترميز يفكّ متجهًا إلى ترتيب مهام قابل-للأسبقية.
| Solver | الإلهام | التكييف | الترميز |
|---|---|---|---|
clpso | سرب جسيمات بالتعلّم الشامل (Liang et al. 2006) | سرب مستمر مفكوك إلى ترتيب أسبقية | random-key |
d-clpso | سرب جسيمات بالتعلّم الشامل (Liang et al. 2006) | محوّل منفصل فوق فكّ أصغر-قيمة-موضع | spv |
lshade | DE تكيّفي بتاريخ-النجاح بتقليص سكّاني خطّي (Tanabe & Fukunaga 2014) | تطوّر تفاضلي مستمر مفكوك إلى ترتيب أسبقية | random-key |
d-lshade | DE تكيّفي بتاريخ-النجاح بتقليص سكّاني خطّي (Tanabe & Fukunaga 2014) | محوّل منفصل فوق التقريب برتبة-صحيحة | rounding |
يتعلّم CLPSO كل بُعد من قدوة تعلّم-شامل بدل أفضل-عالمي وحيد، فتتحسّن أفضل لياقة للسرب رتابيًا على حوض أحادي-النمط. يكيّف L-SHADE ذاكرتَي التعابر وعامل-المقياس من تاريخ نجاحه ويُقلّص السكّان خطّيًا إلى حدّ أدنى من أربعة أفراد. كلاهما يبلّغ مسار تقارب، ويفشل اختبار صحة-التقارب عندما يناقض المسار المُلاحَظ السلوك المرجعي المنشور، منفصلًا عن فحوص قابلية-إعادة-إنتاج-البذرة.
هذه المُحلّات مُحسِّنات مستمرة مُكيَّفة على مجال منفصل عبر جسر ترميز؛ ليست إعادة-تنفيذ دقيقة لأي شيفرة سابقة، ولا يُطلَق أي ادّعاء أداء قبل أن تجري الحملات المقارِنة.
محوّلات الترميز
كل ترميز مُسمّى مستمر-إلى-منفصل هو محوّل متمايز بسياسة إصلاح صريحة، فلا يُطوى أي ترميز بصمت في مُفكِّك عام. يُصلِح كل محوّل ترتيبه المفكوك إلى ترتيب قابل-للأسبقية ويسجّل ما إذا انطلق الإصلاح.
| المحوّل | النقل | قاعدة الفكّ | حالة الاستشهاد |
|---|---|---|---|
random-key | هوية | الفرز بمفتاح مُقيَّد | قانوني (Bean 1994) |
spv | هوية | أصغر قيمة موضع | قانوني (Tasgetiren et al. 2007) |
rounding | هوية | خانات رتبة صحيحة | غير-منطبق |
sigmoid | سيغمويد S | سحب احتمالي مُرجَّح | قانوني (Kennedy & Eberhart 1997) |
v-shaped | مقدار V | سحب احتمالي مُرجَّح | قانوني (Mirjalili & Lewis 2013) |
tanh | ظلّ زائدي مُزاح | سحب احتمالي مُرجَّح | قانوني (Mirjalili & Lewis 2013) |
تتجاهل الفكوك الحتمية (random-key، spv، rounding) المصدر العشوائي؛ تستهلك فكوك
دالة-النقل مصدرًا مُبذَّرًا وتُعيد التشغيل تحت بذرة ثابتة. يسجّل المحوّل rounding
استشهاد-غير-منطبق لأن التقريب برتبة إلى-أقرب-عدد-صحيح تجزئة عامة بلا أصل تأسيسي قانوني وحيد.
مجموعة المنافسين المُنوَّعة
توسّع مجموعة المنافسين المُنوَّعة المقارنة وراء خطوط-الأساس التمثيلية بحفنة صغيرة من النظراء الأقوياء الحديثين، كلٌّ مُحلّ مُسمّى بمرجعه كامل-النص مُسقَطًا على فضاء قرار الترتيب-فقط، بدل قائمة ضخمة من خطوط-الأساس الكلاسيكية. يبقى نظير على الميدان العام فقط حين يتجاوز عتبة قوة-المكان: منشور ضمن نافذة الراهنية ما-بعد-2020 في مكان مُفهرَس ومُحكَّم، مع تسجيل طبقة المكان كي يُرجِّحه قارئ بالدليل لا بالهيبة.
| Solver | الآلية | المكان | الاستشهاد |
|---|---|---|---|
epso | سرب بتهيئة-مُنحازة-لحمل-العمل مع تجميع مسارات | Electronics (MDPI), 2023 — مُفهرَس | Anbarkhan & Rakrouki (2023) |
adpso | بحث سربي بقصور ذاتي تنازلي تكيّفي-للنجاح | Sensors (MDPI), 2022 — مُفهرَس | Nabi et al. (2022) |
ccgp | تطوّر-مشترك تعاوني لأشجار قواعد-الأولوية | Computers & Operations Research (Elsevier), 2024 — OR من المرتبة-العليا | Zaki et al. (2024) |
يحمل كل نظير نقاط القوة والتحفّظات وصنف دليل خط-أساس-قابل-للتشغيل في بياناته الوصفية كي يستطيع المُوصِي شرح لماذا يُلائم مُحلّ سياقًا. تبقى مجموعة أوسع من خطوط-الأساس الكلاسيكية — الخوارزميات الجينية مفتاح-صحيح ومفتاح-عشوائي-مُنحاز وتقدير-التوزيع، وعمليات البحث جوار-كبير وجشع-مُكرَّر وتابو وجوار-متغيّر وميميتيكية — مُسجَّلة للمقارنة الداخلية لكنها تُبقى خارج الميدان العام، إذ تحمل الاستدلالات التمثيلية إشارة آليتها بالفعل. لا يُطلَق أي ادّعاء أداء قبل أن تجري الحملات المقارِنة.
مرساة الراهنية
تُوضَع مجموعة المنافسين والعمل-المرتبط مقابل عمل العقد-الحالي عبر مرساة راهنية ما-بعد-2020: Karimi-Mamaghan وMohammadi وPasdeloup وMeyer (2023، تعلّم اختيار المعاملات عبر Q-learning مُدمَج في الجشع المُكرَّر لورشة التدفّق التبديلية، European Journal of Operational Research 304(3):1296-1330, doi:10.1016/j.ejor.2022.03.054) وخوارزمية 2024 IEEE Transactions on Evolutionary Computation التطوّرية متعدّدة-الأهداف التعاونية المدفوعة-بمؤشّر لجدولة مجموعات ورشة التدفّق الموزّعة (doi:10.1109/TEVC.2023.3339558).
المنافسون متعدّدو-الأهداف
يُطوِّر منافسا باريتو تجمّعًا من ترتيبات المهام الآمنة-للأسبقية على متجه متعدّد-الأهداف، متمايزَين عن سطح nsga3 كثير-الأهداف. nsga2 هو المنافس القائم-على-الهيمنة — الفرز السريع لغير-المُهيمَن-عليه مع كسر-التعادل بمسافة-الازدحام — وmoead هو الثقل-المُوازِن القائم-على-التفكيك، يُقسِّم المسألة إلى مسائل-فرعية عددية بمقياس Tchebycheff على طول شبكة أوزان مُبسَّط مُهيكَلة ويستبدل الشاغلين عبر جوار الوزن-الأقرب لكل مسألة-فرعية.
| Solver | الآلية | المرجع القانوني |
|---|---|---|
nsga2 | باريتو قائم-على-الهيمنة: فرز سريع لغير-المُهيمَن-عليه، مسافة ازدحام | Deb et al. (2002) |
moead | باريتو قائم-على-التفكيك: تقييس Tchebycheff على شبكة أوزان مُبسَّط | Zhang & Li (2007) |
منافس متعدّد-الأهداف
nsga3 هو المنافس متعدّد-الأهداف المُسمّى (Deb & Jain 2014, doi:10.1109/TEVC.2013.2281535)،
متمايز عن سطح المنافس ثنائي-الهدف. يحافظ على تجمّع فوق ترتيبات مهام آمنة-للأسبقية، يُقيّم كل
ترتيب على متجه متعدّد-الأهداف (makespan، التأخّر، وعدالة الحمل)، وينجو كل جيل عبر اختيار
تخصيص-بنقاط-مرجعية فوق نقاط Das & Dennis المرجعية المُهيكَلة على المُبسَّط الواحدي. تصميم
نقاط-المرجع، وربط الحلول باتجاه مرجعها الأقرب، واختيار عدد-التخصيص هي التوقيع الخوارزمي؛ يُعلِن
المُحلّ قدرة many-objective إلى جانب multi-objective كي تستطيع حملة اختياره صراحةً.
مطابقة القدرات
يطابق SolverRegistry.select المُحلّات حسب القدرة والقيد والهدف. تُعبَّر متطلبات القدرة والقيد
كلاهما كوسوم قدرة وتُطابَق كعطف: حملة متعدّدة-الأهداف تحتاج أيضًا إدراك-deadline تمرّر
required_capabilities=(SolverCapability.MANY_OBJECTIVE,) و
required_constraints=(SolverCapability.DEADLINE_AWARE,)، ويُرجِع السجل فقط المُحلّات التي
تُعلِن كليهما. مرشّح objective يُقيّد النتيجة أكثر إلى المُحلّات التي تُعلِن دعمًا لذلك الهدف
المُسمّى.
عائلة NDSO
عائلة NDSO هي عائلة المُحلّ بالترميز-الأصلي للسجل: تبحث مباشرةً فوق الجداول القابلة. كل جدول
تُنتجه قابل بالبناء (بنّاء صلاحية-بالتصميم يبني ترتيبًا مُحترِمًا-للأسبقية عند كل خطوة)، فتحمل
العائلة الترميز native ولا تُشغّل أبدًا خطوة ترميز/فكّ ولا تمريرة إصلاح. تؤلّف العائلة مجموعة
صغيرة من الآليات المُسمّاة:
- مصفوفة الثقة — مخزن متفرّق للثقة المُتعلَّمة لكل خلية (موضع، مهمة)، يُحدَّث مع تعزيز الجداول الأفضل لخلاياها.
- التصويت المُرجَّح-بالثقة — يُركّب الجدول النخبة بالتصويت عبر التجمّع المُرجَّح بمصفوفة الثقة؛ يستخدم المتغيّر السريع بدلًا منه تصويت أغلبية غير-مُرجَّح.
- جداول الكمّ-والكيف — يُحدّد جدول الكمّ كم يتغيّر مرشّح؛ يُحدّد جدول الكيف من أي مصدر توجيه يتعلّم.
- توجيه ثلاثي-المصادر — يتعلّم مرشّح من النخبة المُركَّبة (الاستثمار)، نظير (التنوّع)، أو مصدر معرفة-متلاشية (الاستكشاف الجذري).
- معامل تكيّفي موحَّد — جدول لا-خطّي واحد يُزيح العائلة من الاستكشاف إلى الاستثمار ويُحرّك كلًّا من الحساسية وبؤرة-التعلّم؛ يُثبِّته المتغيّر السريع على قيمة ثابتة.
| المتغيّر | التأليف |
|---|---|
ndso-core | التصويت المُرجَّح-بالثقة، معامل تكيّفي، توجيه ثلاثي-المصادر |
ndso-fast | تركيب بتصويت-الأغلبية، معامل ثابت، مصدر توجيه وحيد |
ndso-summit | مجلس بين-الأسراب يُنسّق عدة أسراب بتركيب شامل |
المجلس بين-الأسراب
المتغيّر ndso-summit هو تأليف الكيف: يُشغّل عدة أسراب بالتوازي ويُنسّقها عبر مجلس واحد. يؤلّف
كل سرب الآليات النواة فوق تجمّعه الخاص؛ يُبقي المجلس بين-الأسراب تلك الأسراب عاملةً كبحث واحد بدل
عدة تشغيلات معزولة ويُركّب نتائجها في نخبة شاملة واحدة — الجدول الذي تقف خلفه القمّة كلها. المجلس
هو ما يُميّز المتغيّر بنظرة: ndso-core وndso-fast يبحث كلٌّ بتجمّع واحد، بينما ndso-summit
هو التأليف المبني للبحث متعدّد-الأسراب المُنسَّق.
سلوك تنسيق المجلس والتشخيصات لكل-سرب قابلة للتهيئة، وكل جدول تُنتجه يبقى قابلًا بالبناء.
خريطة الإبطال
تُعدّد خريطة الإبطال تهيئة عازلة واحدة لكل آلية مُسمّاة كي يستطيع التحليل اللاحق عزو إسهام كل آلية. مدخلات داخل-السرب يُعطّل كلٌّ منها مفتاحًا نواةً — مصفوفة الثقة، التصويت المُرجَّح-بالثقة، جدول الكمّ، جدول الكيف، بنية التوجيه متعدّد-المصادر، مصدر النظير، مصدر المعرفة-المتلاشية، والمعامل التكيّفي. مدخلات التنسيق يُعطّل كلٌّ منها معامل مجلس — التنسيق داخل- مقابل بين-الأسراب، والتركيب الشامل. تُعلِن كل مدخلة أرضية عدد-التشغيلات التي تُعاين عندها طبقة التحليل مقارنتها وتُسمّي الاختبارات الإحصائية التي تُطبّقها تلك الطبقة (اختبار دلالة لا-معلمي مُزدوج، اختبار بعدي لرتبة-متوسطة لـ Friedman بتصحيح مقارنة-متعدّدة لـ Holm، وحجم-أثر Cliff-delta). تُجسَّد المقارنة المُعايَنة بمحرّك التجارب اللاحق؛ يُبرهِن runner داخل-العملية أن كل عزل قابل.
يحكم مرشّح تصدير مرحلي أي الآليات يستطيع نطاق تقرير كشفها: النطاق الأساسي يكشف الآليات التأسيسية فقط، وبوابة fail-closed ترفع بدل تسريب آلية أسرع أو أعلى-جودة تحت نطاق أساسي، فلا يستطيع النطاقان التأسيسي والسريع كشف الآليات المجلسية-فقط. تشخيصات التقارب — تنوّع التجمّع، إنتروبيا مصفوفة-الثقة، نسبة الاستكشاف، حمل الموارد، التوقيت، وأثر التحسّن — اختيارية ولا تُضيف عبئًا عند التعطيل، ويُصدّر المجلس بيان JSON تبتلعه طبقة التحليل دون استيراد أي نوع مُحلّ.
المحوّلات الدقيقة
تتّخذ المحوّلات الدقيقة أحد شكلين. تُعلِن محوّلات الخلفية-الاختيارية تبعية اختيارية وتفحص جذر
استيرادها وقت التشغيل؛ إن غابت الخلفية ترفع MissingOptionalDependencyError باسم الـ extra
والغرض والعلَم التجاري وملاحظة الترخيص بدل استيراد تبعية ثقيلة أثناء استيراد الحزمة. لا تحمل
المحوّلات الأصلية-المحدودة تبعية طرف-ثالث وتحلّ النسخ الصغيرة بدقة ببحثها المحدود الخاص —
تعداد الترتيبات القابلة-للأسبقية في حالة، وتفرّع وتقييد بمخطّط القرار في الأخرى — رافعةً
UnsupportedCapabilityError حين تتجاوز النسخة عدد المهام المدعوم.
| Solver | الطريقة | الخلفية | Extra | تجاري |
|---|---|---|---|---|
ortools-cp-sat | CP-SAT | ortools | exact | لا |
pulp-milp | MILP / MIP | pulp | exact | لا |
branch-and-bound | branch-and-bound / cut | ortools | exact | لا |
logic-based-benders-decomposition | تفكيك بِندرز المنطقي-الأساس | pulp | exact | لا |
exhaustive-enumeration | تعداد شامل | أصلي (بلا خلفية) | — | لا |
decision-diagram-sequencing | تفرّع وتقييد بمخطّط القرار | أصلي (بلا خلفية) | — | لا |
gurobi-exact | MILP / MIP | gurobipy | exact-commercial | نعم |
الحفنة الدقيقة العامة هي المجموعة المفتوحة التمثيلية — CP-SAT وMILP وbranch-and-bound وتفكيك
بِندرز المنطقي-الأساس — زائد المُحلَّين الأصليين المحدودين وغلاف Gurobi المُستدعِي حقًا. يبقى
غلاف Gurobi التجاري خلف الـ extra
exact-commercial، ولا يُحزَم أبدًا، ويحمل ملاحظة ترخيص صريحة؛ ترخيص أكاديمي متوفّر. يبقى تجمّع
أوسع من الخلفيات الاختيارية مُسجَّلًا للاستخدام الداخلي.
طبقة الاختيار والتعلّم
تُرتّب طبقة الاختيار المُحلّات لمسألة دون أن تدّعي أبدًا مُحلًّا أفضل عالميًا. تستهلك سجلّ
SelectionFeatures — difficulty وheterogeneity وobjective_conflict وuncertainty و
dynamism وsolver_sensitivity — وبيانات المُحلّ العامة الوصفية، وتُرجِع صفوف
SolverRecommendation مُرتَّبة. تحمل كل توصية RecommendationSource (metadata أو
learned-model)، وConfidenceLabel، وملاحظات قيد صريحة، فلا تُخلَط توصية بيانات وصفية أبدًا
بمُتعلَّمة.
يتتبّع FEATURE_ORIGIN كل سمة إلى مقياس توصيف المعيار المرجعي الذي يقرؤه؛ يُخطِّط المستهلك
مقاييس توصيف dispatchatlas.bench إلى عقد السمات، فيبقى dispatchatlas.solve يستورد
dispatchatlas.core فقط. يُشحَن مُختاران: RuleBasedSelector يُرتّب من القدرات المُعلَنة
والتوصيف فقط (توصية بيانات وصفية)، وSupervisedSelector يُرتّب من متن مُوسَّم بنموذج
جار-أقرب مُرجَّح-بالمسافة حتمي (توصية نموذج-مُتعلَّم).
يبلّغ المُختار المُشرَف تعميمًا محجوزًا، لا ملاءمة تدريب. يُقسِّم بروتوكول التحقّق-المتقاطع متنًا
مُوسَّمًا بحيث لا تظهر أي نسخة، ولا عائلة معيار مرجعي، ولا سجلّ توصيف في قسمَي التدريب والاختبار
كليهما (partition_by_families، leave_one_family_out، leakage_report)، يتدرّب على العائلات
المتبقية، ويُسجّل العائلة المحجوزة (held_out_generalization، cross_validate). ترتفع ثقته
فوق البيانات-الوصفية-فقط فقط حين يدعمه تقييم محجوز خالٍ-من-التسرّب.
يُسجّل learning_interface_catalog() سبع واجهات تعلّم وهجينة مُسمّاة — اختيار خوارزمية مُشرَف،
بحث مُساعَد-ببديل، خطّافات تعلّم-بالتعزيز، استدلالات-فوقية، إصلاح مُوجَّه-بالسياسة، تهيئة
مُتعلَّمة، وخط-أساس معيار-مرجعي-فقط. تُعلِن كلٌّ LearningEvidencePolicy (بيانات التدريب،
ضوابط التسرّب، قابلية إعادة الإنتاج، صنف الدليل، أهلية مستوى-الدليل). اثنتان مُنفَّذتان هنا؛
الخمس الأخرى واجهات مؤجّلة مُسجَّلة تحقيقها مُبوَّب على الحملات المقارِنة التي تُنتِج بيانات
التدريب. تبقى خلفيات المُقدِّر الثقيلة خلف الـ extra الاختياري learning وتُستكشَف بجذر
الاستيراد، ولا تُستورَد أبدًا أثناء استيراد الحزمة؛ يرفع الغياب MissingOptionalDependencyError
بينما يبقى الاحتياط الحتمي متوفّرًا.
ضمانات الأداء
التسجيل الدُّفعي صريح عبر BatchScoringProfile. تستخدم النواة الحالية احتياط
مكتبة-قياسية وتسجّل ذلك الاحتياط في التشخيصات. يُبقي هذا الـ API مهيّأً لنوى مُتَّجهة أو مُسرَّعة
مع الحفاظ على مسار مُختبَر ومحمول.