Menyelesaikan masalah penjadwalan shift tetap dari SolveShiftSchedulingRequest
yang ditentukan dengan menugaskan karyawan untuk melakukan shift sehingga karyawan preferensi penjadwalan dimaksimalkan dan pelanggaran
batasan penjadwalan diminimalkan.
Permintaan HTTP
POST https://optimization.googleapis.com/v1/scheduling:solveShiftScheduling
URL menggunakan sintaksis gRPC Transcoding.
Isi permintaan
Isi permintaan memuat data dengan struktur berikut:
Representasi JSON |
---|
{ "requestId": string, "solveParameters": { object ( |
Kolom | |
---|---|
requestId |
ID masalah atau permintaan. |
solveParameters |
Parameter untuk mengontrol satu penyelesaian masalah. |
employees[] |
Semua karyawan yang tersedia untuk dijadwalkan. |
shifts[] |
Semua shift untuk mengikuti jadwal. |
coverageRequirements[] |
Persyaratan cakupan untuk seluruh cakrawala perencanaan. Daftar ini menentukan jumlah karyawan yang harus menjalankan setiap peran, atau memiliki keterampilan, selama jangka waktu atau daftar ID shift. Semua persyaratan cakupan harus ditentukan dengan jangka waktu atau daftar ID perubahan (tetapi tidak keduanya). Periode waktu (jika diberikan) untuk persyaratan cakupan tidak boleh tumpang-tindih untuk setiap lokasi yang ditentukan. Tingkat prioritas default untuk setiap batasan ini adalah |
roleIds[] |
Daftar semua peran yang memungkinkan di seluruh tenaga kerja. Setiap karyawan harus memiliki setidaknya satu peran yang dapat ditugaskan kepada mereka untuk shift. Peran mengacu pada penugasan pekerjaan tertentu selama {i>shift<i} (yaitu perawat terdaftar, koki eksekutif, pelayan, dll.). Saat seorang karyawan ditugaskan ke shift, mereka juga diberi satu peran tertentu. |
skillIds[] |
Daftar semua keterampilan yang tersedia di seluruh tenaga kerja. Keterampilan mengacu pada kualifikasi tambahan yang mungkin dimiliki seorang karyawan yang tidak berhubungan dengan pekerjaan tertentu (yaitu sertifikasi, bahasa yang digunakan, dll.). Daftar ini boleh kosong. Ketika seorang karyawan ditugaskan untuk sebuah {i>shift<i}, mereka harus memenuhi semua keterampilan yang dibutuhkan untuk {i>shift<i} itu. |
locationIds[] |
Daftar semua kemungkinan lokasi untuk rangkaian shift dalam jadwal. Daftar ini boleh kosong. Menentukan lokasi yang berbeda dapat berguna ketika, misalnya, manajer perawat ingin menjadwalkan banyak perawat di berbagai unit rumah sakit atau, misalnya, manajer hotel ingin menjadwalkan karyawan di beberapa hotel. |
budgetRequirements[] |
Spesifikasi anggaran untuk masalah penjadwalan. Tingkat prioritas default untuk setiap persyaratan ini adalah |
assignmentsHint[] |
Geser penugasan untuk digunakan sebagai solusi tentatif (alias petunjuk solusi) untuk masalah penjadwalan. Petunjuk penetapan akan diabaikan jika tugas bertentangan dengan shift yang tidak dapat ditetapkan atau permintaan penjadwalan. |
Isi respons
Respons untuk API penjadwalan tenaga kerja. Untuk setiap respons, shiftAssignments
akan kosong jika solutionStatus
yang ditampilkan adalah NOT_SOLVED_DEADLINE_EXCEEDED
atau INFEASIBLE
. Jika solutionStatus
yang ditampilkan adalah OPTIMAL
atau FEASIBLE
, penetapan shift yang valid akan ditampilkan dalam shiftAssignments
. Untuk penetapan shift yang valid, properti berikut berlaku:
- Setiap ID karyawan ada dalam kumpulan karyawan yang diberikan dalam permintaan.
- Setiap ID peran yang ditetapkan kepada karyawan terdapat dalam kumpulan ID peran untuk karyawan yang bersangkutan.
- Setiap ID pergeseran dimuat dalam kumpulan shift yang diberikan dalam permintaan.
- Setiap ID shift bukan salah satu ID shift yang tidak dapat ditetapkan untuk karyawan tertentu.
- Seorang karyawan tidak akan pernah ditugaskan ke dua {i>shift<i} yang tumpang tindih.
- Untuk jadwal yang diberikan, tidak ada batasan atau permintaan dengan tingkat prioritas
PRIORITY_MANDATORY
yang dilanggar.
Jika berhasil, isi respons memuat data dengan struktur berikut:
Representasi JSON |
---|
{ "requestId": string, "solutionStatus": enum ( |
Kolom | |
---|---|
requestId |
ID permintaan yang dikaitkan dengan respons ini. |
solutionStatus |
Status solusi yang ditampilkan. Jika solusi tidak FEASIBLE atau OPTIMAL, kolom lain dalam proto ini mungkin kosong. Jika statusnya NOT_SOLVED_DEADLINE_EXCEEDED, batas waktu tercapai tanpa menemukan solusi yang layak atau menentukan apakah solusi yang layak ada. Permintaan mungkin tidak layak jika batasan tingkat prioritas WAJIB tidak dapat dipenuhi. |
shiftAssignments[] |
Daftar semua tugas. Setiap |
statusMessage |
Jika |
SolveParameters
Parameter yang mengontrol satu pemecahan masalah penjadwalan shift.
Representasi JSON |
---|
{ "timeLimit": string } |
Kolom | |
---|---|
timeLimit |
Waktu maksimum yang harus dihabiskan oleh pemecah masalah untuk menyelesaikan soal. Jika tidak disetel, setelan defaultnya adalah 1 menit. Nilai ini bukan batas pasti dan tidak memperhitungkan overhead komunikasi. Latensi yang diharapkan untuk menyelesaikan masalah mungkin sedikit lebih besar daripada nilai ini. Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan ' |
Karyawan
Seorang karyawan dari tenaga kerja yang akan dijadwalkan.
Representasi JSON |
---|
{ "id": string, "roleIds": [ string ], "skillIds": [ string ], "shiftPreferences": [ { object ( |
Kolom | |
---|---|
id |
ID unik yang ditetapkan untuk karyawan ini. |
roleIds[] |
ID peran yang dapat dijalankan karyawan ini. Setidaknya harus ada satu peran yang ditentukan. Saat karyawan ditugaskan ke shift, mereka juga diberi satu peran dari daftar ini. Karyawan tersebut dapat diberi peran yang berbeda selama periode penjadwalan. |
skillIds[] |
ID keterampilan yang dimiliki karyawan ini. Daftar ini boleh kosong. Ketika seorang karyawan ditugaskan ke shift, mereka menggunakan keterampilan apa pun yang tercantum di sini untuk membahas persyaratan keterampilan selama durasi shift yang ditugaskan. |
shiftPreferences[] |
Shift preferensi karyawan ini. Shift yang ditentukan di sini mewakili shift yang ingin ditugaskan kepada karyawan selama periode penjadwalan. ID perubahan yang ditentukan di |
schedulingConstraints[] |
Daftar batasan penjadwalan untuk karyawan ini. Tingkat prioritas default untuk setiap batasan ini adalah |
resourceConstraints[] |
Batasan penjadwalan tambahan yang tidak ditentukan di |
shiftRequests[] |
Daftar permintaan shift untuk karyawan tersebut. Permintaan bisa berupa karyawan yang ditugaskan atau tidak untuk shift tertentu. Setiap tugas penjadwalan tetap untuk karyawan tersebut dapat ditampilkan dengan |
hourlyContract |
Kontrak yang menetapkan tarif per jam reguler dan lembur untuk karyawan. |
ShiftPreference
Preferensi numerik untuk ID pergeseran tertentu.
Representasi JSON |
---|
{ "shiftId": string, "preference": integer } |
Kolom | |
---|---|
shiftId |
ID Shift yang preferensinya ditetapkan. |
preference |
Nilai preferensi yang lebih besar menunjukkan pergeseran yang lebih diinginkan. |
SchedulingConstraint
Batasan penjadwalan khusus untuk karyawan tertentu. Batasan yang ditentukan hanya diterapkan selama interval yang diberikan [startDateTime,
endDateTime)
.
Representasi JSON |
---|
{ "priority": enum ( |
Kolom | |
---|---|
priority |
Tingkat prioritas untuk batasan penjadwalan ini. Prioritas default untuk semua batasan penjadwalan adalah |
startDateTime |
Waktu mulai saat batasan penjadwalan ini berlaku (inklusif). |
endDateTime |
Waktu berakhir saat batasan penjadwalan ini berlaku (eksklusif). |
Kolom union type . Jenis batasan yang ditentukan. Setiap batasan hanya diterapkan dalam jangka waktu yang ditentukan di atas. type hanya dapat berupa salah satu dari berikut: |
|
minimumMinutes |
Jumlah menit minimum yang dapat digunakan karyawan untuk bekerja. Jika karyawan ditugaskan ke shift yang tumpang tindih (seluruh atau sebagian) periode waktu tersebut, jumlah menit shift tumpang tindih dengan periode waktu tersebut akan dimasukkan dalam hitungan ini. |
maximumMinutes |
Jumlah menit maksimum karyawan dapat bekerja dalam jangka waktu tersebut. Jika karyawan ditugaskan ke shift yang tumpang tindih (seluruh atau sebagian) periode waktu tersebut, jumlah menit shift tumpang tindih dengan periode waktu tersebut akan dimasukkan dalam hitungan ini. |
minimumConsecutiveWorkDays |
Jumlah minimum hari berturut-turut karyawan dapat bekerja. Seorang karyawan bekerja pada hari tertentu jika mereka ditugaskan pada {i>shift<i} yang dimulai pada hari itu. Setiap shift yang ditugaskan kepada karyawan yang dimulai dalam jangka waktu ini termasuk dalam jumlah ini. |
maximumConsecutiveWorkDays |
Jumlah maksimum hari berturut-turut karyawan dapat bekerja. Seorang karyawan bekerja pada hari tertentu jika mereka ditugaskan pada {i>shift<i} yang dimulai pada hari itu. Setiap shift yang ditugaskan kepada karyawan yang dimulai dalam jangka waktu ini termasuk dalam jumlah ini. |
minimumShiftCount |
Jumlah minimum shift yang dapat dilakukan karyawan. Setiap shift yang ditugaskan kepada karyawan yang sepenuhnya tumpang-tindih dengan jangka waktu tersebut termasuk dalam jumlah ini. |
maximumShiftCount |
Jumlah maksimum shift yang dapat dilakukan karyawan. Setiap shift yang ditugaskan kepada karyawan yang sepenuhnya tumpang-tindih dengan jangka waktu tersebut termasuk dalam jumlah ini. |
minimumRestMinutes |
Jumlah menit minimum karyawan harus beristirahat setelah satu shift selesai sebelum ditugaskan ke shift lain. Batasan ini berlaku untuk setiap pasangan shift yang tercakup sepenuhnya dalam [ |
Prioritas
Tingkat prioritas untuk kendala apa pun pada jadwal karyawan atau persyaratan cakupan. Ini termasuk SchedulingConstraint
, ResourceConstraint
, ShiftRequest
, dan CoverageRequirement
. Karena bisa saja ada batasan yang bertentangan, setiap batasan tidak selalu dapat dipenuhi. Dengan demikian, setiap jenis batasan memiliki prioritas (diberikan oleh pengguna atau default) yang memberi tahu pemecah masalah tentang kepentingan relatif semua batasan yang diberikan ke jadwal yang lengkap.
Enum | |
---|---|
PRIORITY_UNSPECIFIED |
Tingkat prioritas tidak diketahui. |
PRIORITY_LOW |
Tingkat prioritas terendah. Batasan dengan prioritas ini tidak terlalu penting dibandingkan batasan lainnya. Mereka adalah pihak pertama yang dipertimbangkan untuk melakukan pelanggaran jika solusi yang layak tidak dapat ditemukan. |
PRIORITY_MEDIUM |
Tingkat prioritas sedang. Batasan dengan prioritas ini lebih penting daripada batasan dengan prioritas PRIORITY_LOW , tetapi kurang penting dibandingkan batasan dengan prioritas PRIORITY_HIGH . Jika solusi yang layak tidak dapat ditemukan setelah melonggarkan semua batasan dengan prioritas PRIORITY_LOW , batasan prioritas PRIORITY_MEDIUM akan dianggap berikutnya untuk pelanggaran. |
PRIORITY_HIGH |
Tingkat prioritas tertinggi. Batasan dengan tingkat prioritas ini adalah yang paling penting. Solusi ini adalah solusi terakhir yang dipertimbangkan untuk pelanggaran jika solusi yang layak tidak dapat ditemukan setelah melonggarkan batasan dari tingkat prioritas yang lebih rendah. |
PRIORITY_MANDATORY |
Tingkat prioritas yang mewakili sesuatu yang tidak dapat dilanggar oleh pemecah masalah. Jika pemecah masalah menampilkan SolutionStatus.INFEASIBLE , itu mungkin karena terlalu banyak batasan PRIORITY_MANDATORY . |
ResourceConstraint
Batasan umum yang membatasi jumlah "resource" tertentu digunakan oleh seorang karyawan. Ini adalah versi abstrak dari SchedulingConstraint
yang lebih spesifik yang lebih fleksibel bagi pengguna. Banyak batasan penjadwalan yang tidak dapat ditentukan di SchedulingConstraint.type
dapat ditentukan menggunakan pesan ini.
Representasi JSON |
---|
{
"priority": enum ( |
Kolom | |
---|---|
priority |
Tingkat prioritas batasan resource ini. Prioritas default untuk semua batasan resource adalah |
resourceUsages |
Jumlah sumber daya yang digunakan oleh shift. Misalnya, jika batasan ini berlaku untuk jam kerja minimum dan maksimum seorang karyawan dalam minggu tertentu, peta ini akan berisi pergeseran yang terjadi pada minggu tersebut dan lamanya setiap shift dalam jam. Objek yang berisi daftar pasangan |
minimumResourceUsage |
Penggunaan resource minimum untuk batasan resource yang harus dipenuhi. |
maximumResourceUsage |
Penggunaan resource maksimum untuk batasan resource yang harus dipenuhi. |
ShiftRequest
Permintaan karyawan untuk ditugaskan atau tidak ditugaskan ke shift tertentu.
Representasi JSON |
---|
{ "priority": enum ( |
Kolom | |
---|---|
priority |
Tingkat prioritas permintaan penjadwalan ini. Prioritas default untuk semua permintaan penjadwalan adalah |
shiftIds[] |
ID shift permintaan penjadwalan. |
type |
Jenis permintaan, misalnya, apakah permintaan ditugaskan atau tidak ditetapkan ke kumpulan shift. |
WorkStatus
Apakah seorang karyawan bekerja atau tidak.
Enum | |
---|---|
WORK_STATUS_UNSPECIFIED |
Status pekerjaan tidak diketahui. |
STATUS_WORK |
Status mewakili karyawan yang bekerja. |
STATUS_NOT_WORK |
Status mewakili karyawan yang tidak bekerja. |
HourlyContract
Menentukan tarif dasar per jam, diferensial tarif, dan pengganda waktu lembur guna menentukan kompensasi untuk satu karyawan. Perlu diperhatikan bahwa peraturan di tempat yang berbeda mungkin memerlukan komputasi kompensasi lembur yang berbeda. Pemecah masalah memperkirakan kompensasi lembur untuk meminimalkan proxy dari total biaya atau memenuhi anggaran (lihat BudgetRequirement
). Fitur ini tidak dimaksudkan sebagai alat untuk menghitung penggajian.
Representasi JSON |
---|
{
"baseHourlyRate": number,
"hourlyRateShiftDifferentials": {
string: number,
...
},
"overtimePeriods": [
{
object ( |
Kolom | |
---|---|
baseHourlyRate |
Kompensasi untuk bekerja di luar jam lembur. Jika karyawan memiliki beberapa tarif, perbedaan tarif akan diterapkan relatif terhadap tarif per jam dasar ini. Selain itu, jika ada beberapa tarif, tarif per jam dasar harus merupakan nilai minimum dari tarif tersebut. |
hourlyRateShiftDifferentials |
Perbedaan tarif per jam, dibayar berdasarkan Objek yang berisi daftar pasangan |
overtimePeriods[] |
Daftar semua periode yang memerlukan penghitungan lembur. Periode ini tidak boleh tumpang-tindih. |
OvertimePeriod
Periode tetap dan berulang yang teratur (biasanya 168 jam atau tujuh periode 24 jam berturut-turut) yang digunakan untuk menentukan jumlah kompensasi lembur. Setiap periode memiliki pengganda waktu tambahan (mis., 1.5) relatif terhadap baseHourlyRate
dan batas jumlah jam yang dianggap sebagai pekerjaan reguler (non-lembur). Setiap perubahan yang tumpang-tindih dengan jangka waktu startDateTime
(inklusif) dan endDateTime
(eksklusif) akan dihitung sebagai total jumlah jam kerja dalam periode tersebut. Jika tumpang tindih sebagian, hanya jam yang tumpang tindih yang akan dihitung.
Representasi JSON |
---|
{ "overtimeMultiplier": number, "startDateTime": { object ( |
Kolom | |
---|---|
overtimeMultiplier |
Pengganda untuk menghitung tarif per jam lembur (harus lebih besar atau sama dengan 1,0). Tarif per jam lembur biasanya akan dihitung sebagai |
startDateTime |
Waktu mulai untuk periode perpanjangan waktu. Jika shift tumpang-tindih pada waktu ini, jam shift tersebut akan dihitung dari |
endDateTime |
Waktu berakhir untuk periode perpanjangan waktu. Jika shift tumpang-tindih pada waktu ini, jam shift tersebut akan dihitung hingga |
maximumRegularHours |
Jumlah maksimum jam kerja yang dibayar dengan tarif reguler (bukan lembur). Jumlah ini harus positif. |
Shift
Shift menentukan jangka waktu tetap di mana karyawan dapat bekerja.
Representasi JSON |
---|
{ "id": string, "locationId": string, "startDateTime": { object ( |
Kolom | |
---|---|
id |
ID unik yang ditetapkan untuk peralihan ini. |
locationId |
ID lokasi tempat perubahan ini dilakukan. Daftar ini boleh kosong. |
startDateTime |
Waktu mulai shift (inklusif). |
endDateTime |
Waktu berakhir shift (eksklusif). Saat ini, pemecah masalah hanya mengizinkan shift yang berdurasi kurang dari 24 jam. |
breakRules[] |
Daftar aturan jeda yang terjadi selama shift. Karyawan yang melakukan shift ini diberi waktu istirahat per |
BreakRule
Aturan yang menentukan kapan jeda dapat dimulai dalam sebuah shift dan durasinya. Daftar semua kemungkinan jeda yang dipertimbangkan ditentukan dengan kelipatan ruleIncrementMinutes
. Misalnya, jika aturan jeda membuat model jeda 30 menit yang dapat dimulai antara pukul 10.00 dan 11.00, serta penambahan aturan adalah 20 menit, daftar jeda yang dipertimbangkan adalah: [10:00, 10:30], [10:20, 10:50], [10:40, 11:1], [10:40, 11:1]
Representasi JSON |
---|
{ "earliestStartTime": { object ( |
Kolom | |
---|---|
earliestStartTime |
Waktu mulai paling awal dari jeda (inklusif). Hanya |
latestStartTime |
Waktu mulai terbaru waktu istirahat (inklusif). Hanya |
durationMinutes |
Durasi istirahat dalam menit. |
ruleIncrementMinutes |
[Opsional] Penambahan waktu dalam menit untuk semua jeda yang dapat dipertimbangkan dalam aturan jeda ini. Jika tidak disetel, setelan defaultnya adalah |
CoverageRequirement
Persyaratan cakupan menentukan jumlah karyawan yang dibutuhkan untuk serangkaian peran dan/atau keterampilan selama jangka waktu tertentu dan di lokasi tertentu. Interval DateTime di lokasi tertentu tidak boleh tumpang-tindih. Sebagai alternatif, daftar ID shift dapat diberikan, sebagai ganti jangka waktu dan lokasi. Hanya karyawan yang dapat ditugaskan pada peran tertentu (atau yang memiliki keahlian tertentu) yang dapat memenuhi persyaratan ini.
Untuk peran dan/atau keterampilan tertentu, persyaratan cakupan akan terpenuhi jika ada minimal targetEmployeeCount
karyawan yang bekerja setiap saat dalam jangka waktu tertentu (atau untuk setiap shift di shiftIds
). Sebaliknya, persyaratan cakupan dilanggar jika dalam jangka waktu mana pun (atau untuk shift mana pun di shiftIds
), jumlah karyawan yang bekerja selama jangka waktu tersebut kurang dari targetEmployeeCount
. Jumlah karyawan yang bekerja lebih banyak daripada targetEmployeeCount
masih dapat memenuhi persyaratan ini, tetapi penambahan staf yang berlebihan dapat dikurangi oleh pemecah masalah.
Representasi JSON |
---|
{ "startDateTime": { object ( |
Kolom | |
---|---|
startDateTime |
Waktu mulai untuk persyaratan cakupan (inklusif). Jika ditetapkan, |
endDateTime |
Waktu berakhir untuk persyaratan cakupan (eksklusif). Jika ditetapkan, |
locationId |
Lokasi di mana karyawan dibutuhkan. |
shiftIds[] |
Jika ditetapkan, persyaratan peran dan keterampilan akan diterapkan satu per satu untuk setiap ID shift dalam daftar ini. Jika shiftId tidak kosong, |
roleRequirements[] |
Jumlah karyawan yang harus ditetapkan ke peran yang ditentukan selama jangka waktu tersebut. Maksimal satu |
skillRequirements[] |
Jumlah karyawan yang dibutuhkan dengan keterampilan tertentu yang ditugaskan untuk shift selama jangka waktu tertentu. Maksimal satu |
RoleRequirement
Jumlah karyawan yang harus ditetapkan pada peran yang ditentukan selama jangka waktu tersebut.
Representasi JSON |
---|
{
"roleId": string,
"targetEmployeeCount": integer,
"priority": enum ( |
Kolom | |
---|---|
roleId |
ID Peran untuk persyaratan. |
targetEmployeeCount |
Jumlah karyawan yang diinginkan yang ditugaskan untuk peran tersebut selama jangka waktu. |
priority |
Tingkat prioritas untuk batasan persyaratan ini. Prioritas default untuk semua batasan resource adalah |
SkillRequirement
Jumlah karyawan yang bekerja selama periode waktu tersebut dan memiliki keahlian tertentu.
Representasi JSON |
---|
{
"skillId": string,
"targetEmployeeCount": integer,
"priority": enum ( |
Kolom | |
---|---|
skillId |
ID keterampilan untuk persyaratan. |
targetEmployeeCount |
Jumlah karyawan yang diinginkan dengan keterampilan tertentu yang bekerja selama jangka waktu tertentu. |
priority |
Tingkat prioritas untuk batasan persyaratan ini. Prioritas default untuk semua batasan resource adalah |
BudgetRequirement
Persyaratan anggaran untuk interval tertentu.
Representasi JSON |
---|
{ "totalBudget": number, "startDateTime": { object ( |
Kolom | |
---|---|
totalBudget |
Total anggaran untuk interval yang ditentukan. Total anggaran harus diberikan jika prioritasnya adalah Jika |
startDateTime |
Waktu mulai saat anggaran ini berlaku. Jika waktu mulai tidak ditentukan, waktu mulai akan ditetapkan menjadi waktu mulai paling awal dari semua shift yang ditentukan. |
endDateTime |
Waktu berakhir saat anggaran ini berlaku. Jika waktu berakhir tidak ditentukan, waktu berakhir yang paling akhir dari semua shift yang ditentukan akan ditetapkan. |
priority |
Tingkat prioritas untuk memenuhi persyaratan anggaran selama jangka waktu yang ditentukan. Prioritas defaultnya adalah Perhatikan bahwa jika prioritas ini lebih tinggi daripada prioritas batasan lainnya dan jika |
ShiftAssignment
Seorang karyawan untuk penugasan shift.
Representasi JSON |
---|
{
"employeeId": string,
"shiftId": string,
"roleId": string,
"breaks": [
{
object ( |
Kolom | |
---|---|
employeeId |
ID karyawan yang ditugaskan. |
shiftId |
ID Shift yang ditetapkan kepada karyawan. |
roleId |
ID peran yang ditugaskan kepada karyawan untuk shift tersebut. |
breaks[] |
Daftar waktu istirahat untuk penugasan shift ini. |
Istirahat
Periode waktu di mana karyawan menginterupsi pekerjaannya selama {i>shift<i}.
Representasi JSON |
---|
{
"startDateTime": {
object ( |
Kolom | |
---|---|
startDateTime |
Waktu mulai istirahat. |
durationMinutes |
Durasi istirahat dalam menit. |
SolutionStatus
Status solusi (yaitu, jadwal) yang diberikan sebagai respons pemecah masalah.
Enum | |
---|---|
SOLUTION_STATUS_UNSPECIFIED |
Status respons belum ditentukan. |
FEASIBLE |
Jadwal yang dikembalikan layak, tetapi mungkin tidak optimal. |
OPTIMAL |
Jadwal yang dikembalikan optimal. |
INFEASIBLE |
Tidak ada jadwal yang valid untuk batasan yang diberikan. Pemecah masalah dapat menampilkan nilai ini jika subset batasan dengan tingkat prioritas PRIORITY_MANDATORY tidak dapat dipenuhi. |
NOT_SOLVED |
Jadwal tidak ditemukan. |
NOT_SOLVED_DEADLINE_EXCEEDED |
Tidak ada jadwal yang ditemukan dalam batas waktu yang ditentukan. |