Sistem Solver
dispatchatlas.solve memiliki metadata solver, seleksi, konstruksi jadwal, perbaikan,
pengaman kinerja, famili lini-dasar, adaptor opsional, dan famili NDSO.
Paket ini mengimpor hanya dispatchatlas.core. Tes integrasi smoke benchmark hidup di
tests/solve/ sehingga paket runtime tidak bergantung pada generator benchmark konkret.
Contoh yang dapat dijalankan: examples/compare_solvers.py menjadwalkan sebuah kohort solver secara paralel dan menambatkannya dengan sebuah optimum eksak yang terbukti.
Registri
SolverRegistry menyimpan pabrik solver tanpa-keadaan dengan metadata kaya:
- label kapabilitas seperti
capacity-aware,precedence-aware,repair,local-search, danndso - tujuan yang didukung seperti
makespan,energy, dancost - batasan yang dideklarasikan diekspresikan melalui label kapabilitas
- kriteria henti default
- perilaku replay deterministik atau stokastik-tersemai
- pengkodean solusi (
permutation,mapping,assignment, ataunative) - deklarasi dependensi opsional dan pengungkapan backend-komersial
- visibilitas tingkat-bukti untuk ekspor bertahap
- sebuah sitasi kanonik, atau sebuah alasan eksplisit sitasi-tidak-berlaku
Setiap famili solver bernama membawa sebuah sitasi yang gagal tertutup: sebuah famili dengan asal seminal kanonik yang menghilangkan referensinya tidak dapat dikonstruksi, dan sebuah famili tanpa asal kanonik tunggal mencatat alasannya alih-alih memfabrikasi satu.
from dispatchatlas.solve import SolverCapability, default_solver_registry
registry = default_solver_registry()
metaheuristics = registry.select(
required_capabilities=(SolverCapability.METAHEURISTIC,),
objective="makespan",
)Katalog Registri
Setiap solver di registri, dalam satu tabel yang dapat-diurutkan dan dapat-dicari. Tabel
dan totalnya dihasilkan dari default_solver_registry(), sehingga hitungan di bawah dapat
dihitung dari baris itu sendiri. Sebuah diagram cakupan-kapabilitas di atas tabel merangkum
berapa banyak solver registri yang mendeklarasikan setiap kapabilitas yang dideklarasikan.
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.
Keberlakuan Solver
Solver mana yang berlaku untuk keluarga tolok ukur mana, dibaca dari matriks keberlakuan. Setiap sel adalah keberlakuan yang dinyatakan, bukan klaim kinerja: sel terverifikasi mengutip kampanye publik, sitasi, atau pengujian bernama, dan sel perkiraan diturunkan dari kapabilitas solver yang dinyatakan dan sifat keluarga tolok ukur. Tabel di bawah dihasilkan dari bundel keberlakuan publik, sehingga total statusnya dapat dihitung dari barisnya sendiri.
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.
Lini-Dasar Pendispatchan
Lini-dasar deterministik yang dibundel adalah solver penjadwalan-daftar konstruktif. Masing-masing mengontrol urutan tugas; konstruktor serial menghormati permintaan sumber daya yang dideklarasikan setiap tugas dan menugaskan setiap tugas ke sumber daya yang diminta yang paling-cepat-tersedia. Setiap famili menamai referensi seminal kanoniknya.
| Solver | Basis prioritas | Referensi kanonik |
|---|---|---|
earliest-start | urutan masukan topologis | tidak berlaku (lini-dasar identitas) |
shortest-processing-time | tugas durasi terpendek dahulu | Smith (1956) |
longest-processing-time | tugas durasi terpanjang dahulu | Graham (1969) |
earliest-deadline | deadline paling cepat dahulu (sadar-deadline) | Jackson (1955) |
earliest-finish-time | penyelesaian terjangkau paling cepat dahulu | Topcuoglu et al. (2002) |
minimum-slack | slack jadwal terkecil dahulu | Conway, Maxwell & Miller (1967) |
greedy-completion | penyelesaian sadar-keadaan paling cepat dahulu | Graham (1966) |
apparent-tardiness-cost | indeks biaya-keterlambatan-tampak tertinggi dahulu (sadar-deadline) | Vepsalainen & Morton (1987) |
Famili Pendispatchan yang Dipensiunkan
Famili pemetaan-sumber-daya dicatat secara eksplisit alih-alih dilipat diam-diam ke dalam jenis generik. Mereka mengontrol penugasan sumber daya, bukan urutan tugas, dan konstruktor serial penghormat-permintaan tidak mengekspos keputusan pemetaan bebas apa pun di bawah model masalah inti saat ini:
- Pemetaan sumber daya (
olb,met,mct,round-robin,load-balanced): konstruktor menugaskan setiap tugas ke sumber daya yang dideklarasikannya, sehingga heuristik ini tidak memiliki derajat kebebasan yang dapat-direalisasikan; pemetaan sadar-waktu-eksekusi dimiliki oleh pekerjaan tujuan dan batasan, bukan fondasi ini. - Label jenis absen (
type-aware,domain-aware): memerlukan label jenis-tugas dan jenis-sumber-daya yang tidak dibawa model masalah inti saat ini.
retired_dispatching_families() mengembalikan buku-besar lengkap dengan alasan dan sitasi
per-famili.
Penjadwal-Daftar Berbasis-Peringkat
Tiga penjadwal-daftar sadar-heterogenitas berbagi bentuk dua-fase: sebuah fase prioritisasi statis merangking setiap tugas atas DAG presedensi dari waktu eksekusi rata-rata dan biaya komunikasi, dan sebuah fase seleksi-prosesor menambatkan setiap tugas dalam urutan prioritas melalui aturan penyelesaian-paling-cepat konstruktor serial. Waktu eksekusi per-sumber-daya berasal dari mode eksekusi yang dideklarasikan sebuah tugas dapat-dibentuk, dan sebuah tugas kaku merosot ke spesialisasi homogen yang terdokumentasi.
| Solver | Basis prioritas | Referensi kanonik |
|---|---|---|
heft | peringkat naik | Topcuoglu, Hariri & Wu (2002) |
cpop | peringkat naik-plus-turun gabungan, tugas jalur-kritis dahulu | Topcuoglu, Hariri & Wu (2002) |
peft | peringkat tabel-biaya-optimistik | Arabnejad & Barbosa (2014) |
Aturan Pemetaan Himpunan-Siap
Tiga aturan pemetaan batch menskor setiap tugas siap-presedensi menurut penyelesaian
paling-cepatnya atas tambatan kandidatnya, lalu memetakan satu tugas per langkah. Aturan
yang diterbitkan memetakan sebuah batch tugas independen; di sini batch adalah himpunan
siap-presedensi, sehingga aturan meluas ke beban kerja dependen dan menyusut ke perilaku
yang diterbitkan pada instans tugas-independen. Famili-famili ini meninggalkan buku-besar
pensiun untuk registrasi kelas-utama begitu TaskSpec.modes yang dapat-dibentuk membuat
matriks penyelesaian-diharapkan per-mesin mereka dapat-direpresentasikan.
| Solver | Basis prioritas | Referensi kanonik |
|---|---|---|
min-min | penyelesaian terbaik terkecil berikutnya | Ibarra & Kim (1977); Braun et al. (2001) |
max-min | penyelesaian terbaik terbesar berikutnya | Ibarra & Kim (1977); Braun et al. (2001) |
sufferage | selisih penyelesaian terbaik-kedua-dikurangi-terbaik terbesar berikutnya | Maheswaran et al. (1999) |
Lini-Dasar Serakah-Teriterasi, Tabu, dan RCPSP
Tiga metode solusi-tunggal yang diterbitkan mencari ruang urutan-tugas aman-presedensi,
masing-masing memproyeksikan mekanisme kanoniknya ke jahitan urutan-jalan bersama.
serial-sgs-justification adalah solver penjadwalan-proyek berbatasan-sumber-daya
(RCPSP) pertama pada platform ini.
| Solver | Mekanisme | Referensi kanonik |
|---|---|---|
iterated-greedy-rs | benih NEH dengan loop penghancuran-rekonstruksi dan penerimaan suhu-tetap | Ruiz & Stutzle (2007) |
critical-path-tabu | pencarian tabu lanjutan atas gerakan blok jalur-kritis | Nowicki & Smutnicki (2005) |
serial-sgs-justification | dekode skema-penghasil-jadwal serial dengan justifikasi ganda kanan-lalu-kiri | Valls, Ballestin & Quintanilla (2005) |
Lini-Dasar Metaheuristik
Lini-dasar metaheuristik tersemai representatif berbagi operator kelayakan, perbaikan, penskoran, dan pencarian-lokal yang sama, masing-masing dengan referensi kanoniknya: algoritma genetik (Holland 1975), simulated annealing (Kirkpatrick et al. 1983), koloni semut (Dorigo, Maniezzo & Colorni 1996), kawanan partikel (Kennedy & Eberhart 1995), dan evolusi diferensial (Storn & Price 1997).
Solver Adaptor Terkode
Optimisasi kawanan partikel pembelajaran komprehensif dan evolusi diferensial adaptif riwayat-keberhasilan mencari sebuah vektor kontinu bernilai-real dengan satu komponen per tugas. Setiap inti generik atas sebuah tujuan kontinu, sehingga perilaku konvergensinya divalidasi langsung pada sebuah benchmark kontinu, dan diikat ke masalah penjadwalan melalui sebuah adaptor pengkodean yang mendekode sebuah vektor menjadi sebuah urutan tugas layak-presedensi.
| Solver | Inspirasi | Adaptasi | Pengkodean |
|---|---|---|---|
clpso | Kawanan partikel pembelajaran komprehensif (Liang et al. 2006) | Kawanan kontinu didekode ke urutan presedensi | random-key |
d-clpso | Kawanan partikel pembelajaran komprehensif (Liang et al. 2006) | Adaptor diskret atas dekode nilai-posisi-terkecil | spv |
lshade | DE adaptif riwayat-keberhasilan dengan reduksi populasi linier (Tanabe & Fukunaga 2014) | Evolusi diferensial kontinu didekode ke urutan presedensi | random-key |
d-lshade | DE adaptif riwayat-keberhasilan dengan reduksi populasi linier (Tanabe & Fukunaga 2014) | Adaptor diskret atas pembulatan peringkat-bulat | rounding |
CLPSO mempelajari setiap dimensi dari sebuah eksemplar pembelajaran-komprehensif alih-alih sebuah terbaik-global tunggal, sehingga kebugaran terbaik kawanan membaik secara monoton pada sebuah cekungan unimodal. L-SHADE mengadaptasi memori crossover dan faktor-skala dari riwayat keberhasilannya dan menyusutkan populasi secara linier hingga minimum empat individu. Keduanya melaporkan sebuah lintasan konvergensi, dan sebuah tes kebenaran-konvergensi gagal ketika lintasan teramati bertentangan dengan perilaku referensi yang diterbitkan, terpisah dari pemeriksaan reproduktibilitas-benih.
Solver-solver ini adalah pengoptimal kontinu yang diadaptasi ke domain diskret melalui sebuah jembatan pengkodean; mereka bukan reimplementasi eksak dari kode sebelumnya mana pun, dan tidak ada klaim kinerja yang dibuat sebelum kampanye komparatif berjalan.
Adaptor Pengkodean
Setiap pengkodean kontinu-ke-diskret bernama adalah adaptor berbeda dengan kebijakan perbaikan eksplisit, sehingga tidak ada pengkodean yang dilipat diam-diam ke dalam sebuah dekoder generik. Setiap adaptor memperbaiki urutan terdekodenya menjadi sebuah urutan layak-presedensi dan mencatat apakah perbaikan terpicu.
| Adaptor | Transfer | Aturan dekode | Status sitasi |
|---|---|---|---|
random-key | identitas | urutkan menurut kunci terjepit | kanonik (Bean 1994) |
spv | identitas | nilai posisi terkecil | kanonik (Tasgetiren et al. 2007) |
rounding | identitas | slot peringkat bulat | tidak-berlaku |
sigmoid | sigmoid S | undian probabilistik berbobot | kanonik (Kennedy & Eberhart 1997) |
v-shaped | magnitudo V | undian probabilistik berbobot | kanonik (Mirjalili & Lewis 2013) |
tanh | tangen hiperbolik tergeser | undian probabilistik berbobot | kanonik (Mirjalili & Lewis 2013) |
Dekode deterministik (random-key, spv, rounding) mengabaikan sumber acak; dekode
fungsi-transfer mengonsumsi sebuah sumber tersemai dan mengulang di bawah sebuah benih
tetap. Adaptor rounding mencatat sitasi-tidak-berlaku karena pembulatan peringkat
ke-bilangan-bulat-terdekat adalah sebuah diskretisasi generik tanpa asal seminal kanonik
tunggal.
Himpunan Pesaing Terdiversifikasi
Himpunan pesaing terdiversifikasi memperluas perbandingan melampaui lini-dasar representatif dengan segenggam kecil rekan kuat terkini, masing-masing sebuah solver bernama dengan referensi teks-lengkapnya yang diproyeksikan ke ruang keputusan hanya-urutan, alih-alih sebuah daftar besar lini-dasar klasik. Sebuah rekan tetap di lapangan publik hanya ketika ia melewati sebuah bilah kekuatan-tempat: diterbitkan dalam jendela kekinian pasca-2020 di sebuah tempat terindeks, ditinjau-sejawat, dengan tingkat tempat dicatat agar pembaca menimbangnya berdasarkan bukti alih-alih prestise.
| Solver | Mekanisme | Tempat | Sitasi |
|---|---|---|---|
epso | Kawanan inisialisasi-terbias-beban-kerja dengan pengumpulan jalur | Electronics (MDPI), 2023 — terindeks | Anbarkhan & Rakrouki (2023) |
adpso | Pencarian kawanan dengan inersia menurun adaptif-keberhasilan | Sensors (MDPI), 2022 — terindeks | Nabi et al. (2022) |
ccgp | Koevolusi kooperatif pohon aturan-prioritas | Computers & Operations Research (Elsevier), 2024 — OR tingkat-atas | Zaki et al. (2024) |
Setiap rekan membawa kekuatan, peringatan, dan sebuah kelas bukti lini-dasar-dapat-dijalankan dalam metadatanya agar perekomendasi dapat menjelaskan mengapa sebuah solver cocok untuk sebuah konteks. Sebuah himpunan lini-dasar klasik yang lebih luas — algoritma genetik kunci-bulat, kunci-acak-terbias, dan estimasi-distribusi, serta pencarian lingkungan-besar, serakah-teriterasi, tabu, lingkungan-variabel, dan memetik — tetap terdaftar untuk perbandingan internal tetapi dijaga di luar lapangan publik, karena heuristik representatif sudah membawa sinyal mekanismenya. Tidak ada klaim kinerja yang dibuat sebelum kampanye komparatif berjalan.
Jangkar Kekinian
Himpunan pesaing dan pekerjaan-terkait diposisikan terhadap pekerjaan dekade-saat-ini melalui sebuah jangkar kekinian pasca-2020: Karimi-Mamaghan, Mohammadi, Pasdeloup, dan Meyer (2023, belajar memilih operator via Q-learning yang diintegrasikan ke serakah teriterasi untuk flowshop permutasi, European Journal of Operational Research 304(3):1296-1330, doi:10.1016/j.ejor.2022.03.054) dan algoritma evolusioner multi-tujuan kolaboratif terdorong-indikator 2024 IEEE Transactions on Evolutionary Computation untuk penjadwalan grup flowshop terdistribusi (doi:10.1109/TEVC.2023.3339558).
Pesaing Multi-Tujuan
Dua pesaing Pareto mengevolusikan sebuah populasi urutan tugas aman-presedensi pada
sebuah vektor multi-tujuan, berbeda dari permukaan nsga3 banyak-tujuan. nsga2 adalah
pesaing berbasis-dominasi — pengurutan tak-terdominasi cepat dengan pemecahan-seri
jarak-kerumunan — dan moead adalah penyeimbang berbasis-dekomposisi, memecah masalah
menjadi submasalah Tchebycheff skalar sepanjang sebuah kisi bobot simpleks terstruktur
dan menggantikan petahana lintas lingkungan bobot-terdekat setiap submasalah.
| Solver | Mekanisme | Referensi kanonik |
|---|---|---|
nsga2 | Pareto berbasis-dominasi: pengurutan tak-terdominasi cepat, jarak kerumunan | Deb et al. (2002) |
moead | Pareto berbasis-dekomposisi: skalarisasi Tchebycheff atas sebuah kisi bobot simpleks | Zhang & Li (2007) |
Pesaing Banyak-Tujuan
nsga3 adalah pesaing banyak-tujuan bernama (Deb & Jain 2014,
doi:10.1109/TEVC.2013.2281535), berbeda dari permukaan pesaing dwi-tujuan. Ia memelihara
sebuah populasi atas urutan tugas aman-presedensi, mengevaluasi setiap urutan pada sebuah
vektor multi-tujuan (makespan, keterlambatan, dan keadilan beban), dan bertahan setiap
generasi melalui sebuah seleksi pencerukan-titik-referensi atas titik referensi terstruktur
Das & Dennis pada simpleks satuan. Desain titik-referensi, asosiasi solusi ke arah referensi
terdekatnya, dan seleksi hitungan-ceruk adalah tanda-tangan algoritmik; solver
mendeklarasikan kapabilitas many-objective bersama multi-objective agar sebuah kampanye
dapat memilihnya secara eksplisit.
Pencocokan Kapabilitas
SolverRegistry.select mencocokkan solver menurut kapabilitas, batasan, dan tujuan.
Persyaratan kapabilitas dan batasan keduanya diekspresikan sebagai label kapabilitas dan
dicocokkan sebagai sebuah konjungsi: sebuah kampanye banyak-tujuan yang juga memerlukan
kesadaran-deadline meneruskan required_capabilities=(SolverCapability.MANY_OBJECTIVE,) dan
required_constraints=(SolverCapability.DEADLINE_AWARE,), dan registri mengembalikan hanya
solver yang mendeklarasikan keduanya. Sebuah filter objective lebih lanjut membatasi hasil
ke solver yang mendeklarasikan dukungan untuk tujuan bernama itu.
Famili NDSO
Famili NDSO adalah famili solver pengkodean-asli registri: ia mencari langsung atas jadwal
yang layak. Setiap jadwal yang diproduksinya layak menurut konstruksi (sebuah konstruktor
validitas-menurut-desain membangun sebuah urutan penghormat-presedensi di setiap langkah),
sehingga famili membawa pengkodean native dan tidak pernah menjalankan langkah
enkode/dekode atau lintasan perbaikan. Famili menyusun sebuah himpunan kecil mekanisme
bernama:
- Matriks Keyakinan — sebuah penyimpanan jarang kepercayaan terpelajar per sel (posisi, tugas), diperbarui seiring jadwal yang lebih baik memperkuat selnya.
- Pemungutan-Suara Terbobot-Keyakinan — mensintesis jadwal elit dengan memungut suara lintas populasi yang dibobot oleh Matriks Keyakinan; varian cepat menggunakan sebuah pemungutan suara mayoritas tak-terbobot sebagai gantinya.
- Jadwal kuantitas-dan-kualitas — jadwal Kuantitas menetapkan seberapa banyak sebuah kandidat berubah; jadwal Kualitas menetapkan dari sumber panduan mana ia belajar.
- Panduan tiga-sumber — sebuah kandidat belajar dari elit tersintesis (eksploitasi), sebuah rekan (keragaman), atau sebuah sumber pengetahuan-lenyap (eksplorasi radikal).
- Koefisien adaptif terpadu — satu jadwal non-linier menggeser famili dari eksplorasi ke eksploitasi dan menggerakkan baik sensitivitas maupun fokus-pembelajaran; varian cepat menyematkannya ke sebuah nilai tetap.
| Varian | Komposisi |
|---|---|
ndso-core | Pemungutan-Suara Terbobot-Keyakinan, koefisien adaptif, panduan tiga-sumber |
ndso-fast | sintesis suara-mayoritas, koefisien tetap, sumber panduan tunggal |
ndso-summit | Dewan Antar-Kawanan yang mengoordinasi beberapa kawanan dengan sintesis menyeluruh |
Dewan Antar-Kawanan
Varian ndso-summit adalah komposisi kualitas: ia menjalankan beberapa kawanan secara
paralel dan mengoordinasinya melalui satu dewan. Setiap kawanan menyusun mekanisme inti atas
populasinya sendiri; dewan Antar-Kawanan menjaga kawanan-kawanan itu bekerja sebagai satu
pencarian alih-alih beberapa jalannya terisolasi dan mensintesis hasilnya menjadi sebuah
elit menyeluruh tunggal — jadwal yang di belakangnya seluruh puncak berdiri. Dewan adalah
yang membedakan varian sekilas: ndso-core dan ndso-fast masing-masing mencari dengan
satu populasi, sementara ndso-summit adalah komposisi yang dibangun untuk pencarian
multi-kawanan terkoordinasi.
Perilaku koordinasi dewan dan diagnostik per-kawanan dapat-dikonfigurasi, dan setiap jadwal yang diproduksinya tetap layak menurut konstruksi.
Peta Ablasi
Peta ablasi menumerasi satu konfigurasi pengisolasi per mekanisme bernama agar analisis hilir dapat mengatribusikan kontribusi setiap mekanisme. Entri intra-kawanan masing-masing menonaktifkan satu sakelar inti — Matriks Keyakinan, Pemungutan-Suara Terbobot-Keyakinan, jadwal Kuantitas, jadwal Kualitas, struktur panduan multi-sumber, sumber rekan, sumber pengetahuan-lenyap, dan koefisien adaptif. Entri koordinasi masing-masing menonaktifkan satu parameter dewan — koordinasi Intra- versus Antar-Kawanan, dan sintesis menyeluruh. Setiap entri mendeklarasikan lantai hitungan-jalan di mana lapisan analisis menyampel perbandingannya dan menamai uji statistik yang diterapkan lapisan itu (sebuah uji signifikansi non-parametrik berpasangan, sebuah pasca-hoc peringkat-rata-rata Friedman dengan sebuah koreksi perbandingan-ganda Holm, dan sebuah ukuran-efek Cliff-delta). Perbandingan tersampel dimaterialisasi oleh mesin eksperimen hilir; runner dalam-proses membuktikan setiap isolasi layak.
Sebuah filter ekspor bertahap mengatur mekanisme mana yang dapat diekspos sebuah cakupan laporan: cakupan dasar mengekspos hanya mekanisme fondasional, dan sebuah gerbang fail-closed mengangkat alih-alih membocorkan sebuah mekanisme yang lebih-cepat atau lebih-tinggi-kualitas di bawah sebuah cakupan dasar, sehingga cakupan fondasional dan cepat tidak dapat mengekspos mekanisme hanya-dewan. Diagnostik konvergensi — keragaman populasi, entropi Matriks-Keyakinan, rasio eksplorasi, beban sumber daya, pewaktuan, dan jejak perbaikan — bersifat opsional dan tidak menambah overhead ketika dinonaktifkan, dan dewan mengekspor sebuah manifes JSON yang dicerna lapisan analisis tanpa mengimpor jenis solver apa pun.
Adaptor Eksak
Adaptor eksak mengambil salah satu dari dua bentuk. Adaptor backend-opsional mendeklarasikan
sebuah dependensi opsional dan memeriksa akar impornya saat runtime; jika backend absen
mereka mengangkat MissingOptionalDependencyError dengan nama extra, tujuan, bendera
komersial, dan catatan lisensi alih-alih mengimpor sebuah dependensi berat selama impor
paket. Adaptor asli-terbatas tidak membawa dependensi pihak-ketiga dan menyelesaikan
instans kecil secara eksak dengan pencarian terbatasnya sendiri — menumerasi urutan
layak-presedensi dalam satu kasus, branch-and-bound diagram-keputusan dalam yang lain —
mengangkat UnsupportedCapabilityError ketika instans melebihi hitungan tugas yang
didukung.
| Solver | Metode | Backend | Extra | Komersial |
|---|---|---|---|---|
ortools-cp-sat | CP-SAT | ortools | exact | tidak |
pulp-milp | MILP / MIP | pulp | exact | tidak |
branch-and-bound | branch-and-bound / cut | ortools | exact | tidak |
logic-based-benders-decomposition | dekomposisi Benders berbasis-logika | pulp | exact | tidak |
exhaustive-enumeration | enumerasi ekshaustif | asli (tanpa backend) | — | tidak |
decision-diagram-sequencing | branch-and-bound diagram-keputusan | asli (tanpa backend) | — | tidak |
gurobi-exact | MILP / MIP | gurobipy | exact-commercial | ya |
Segenggam eksak publik adalah himpunan terbuka representatif — CP-SAT, MILP,
branch-and-bound, dan dekomposisi Benders berbasis-logika — ditambah dua solver asli
terbatas dan pembungkus Gurobi yang sungguh-memanggil.
Pembungkus Gurobi komersial tetap di belakang extra exact-commercial, tidak pernah
dibundel, dan membawa sebuah catatan lisensi eksplisit; sebuah lisensi akademik tersedia.
Sebuah kumpulan backend opsional yang lebih luas tetap terdaftar untuk penggunaan internal.
Lapisan Seleksi dan Pembelajaran
Lapisan seleksi merangking solver untuk sebuah masalah tanpa pernah mengklaim sebuah solver
terbaik secara global. Ia mengonsumsi sebuah rekaman SelectionFeatures — difficulty,
heterogeneity, objective_conflict, uncertainty, dynamism, dan solver_sensitivity —
dan metadata solver publik, dan mengembalikan baris SolverRecommendation terangking. Setiap
rekomendasi membawa sebuah RecommendationSource (metadata atau learned-model), sebuah
ConfidenceLabel, dan catatan keterbatasan eksplisit, sehingga sebuah rekomendasi metadata
tidak pernah disalahartikan sebagai yang terpelajar.
FEATURE_ORIGIN melacak setiap fitur ke metrik karakterisasi benchmark yang dibacanya;
konsumer memetakan metrik karakterisasi dispatchatlas.bench ke dalam kontrak fitur,
sehingga dispatchatlas.solve masih mengimpor hanya dispatchatlas.core. Dua selektor
dikapalkan: RuleBasedSelector merangking dari kapabilitas yang dideklarasikan dan
karakterisasi saja (sebuah rekomendasi metadata), dan SupervisedSelector merangking dari
sebuah korpus berlabel oleh sebuah model tetangga-terdekat terbobot-jarak deterministik
(sebuah rekomendasi model-terpelajar).
Selektor tersupervisi melaporkan generalisasi tertahan, tidak pernah kecocokan pelatihan.
Protokol validasi-silang mempartisi sebuah korpus berlabel sehingga tidak ada instans, tidak
ada famili benchmark, dan tidak ada rekaman karakterisasi muncul di kedua partisi pelatihan
dan uji (partition_by_families, leave_one_family_out, leakage_report), berlatih pada
famili sisanya, dan menskor famili tertahan (held_out_generalization, cross_validate).
Keyakinannya naik di atas hanya-metadata hanya ketika sebuah evaluasi tertahan bebas-bocoran
mendukungnya.
learning_interface_catalog() mendaftarkan tujuh antarmuka pembelajaran dan hibrida bernama
— seleksi algoritma tersupervisi, pencarian terbantu-surogat, kait pembelajaran-penguatan,
hiper-heuristik, perbaikan terpandu-kebijakan, inisialisasi terpelajar, dan sebuah
lini-dasar hanya-benchmark. Masing-masing mendeklarasikan sebuah LearningEvidencePolicy
(data pelatihan, kontrol kebocoran, reproduktibilitas, kelas bukti, kelayakan
tingkat-bukti). Dua diimplementasikan di sini; lima lainnya adalah antarmuka tertunda
terdaftar yang realisasinya digerbangi pada kampanye komparatif yang menghasilkan data
pelatihan. Backend estimator berat tetap di belakang extra learning opsional dan diselidik
menurut akar impor, tidak pernah diimpor selama impor paket; ketiadaan mengangkat
MissingOptionalDependencyError sementara fallback deterministik tetap tersedia.
Pengaman Kinerja
Penskoran batch eksplisit melalui BatchScoringProfile. Kernel saat ini menggunakan sebuah
fallback pustaka-standar dan mencatat fallback itu dalam diagnostik. Ini menjaga API siap
untuk kernel tervektorisasi atau terakselerasi sambil memelihara sebuah jalur teruji dan
portabel.