Memecahkan masalah penjadwalan shift tetap dari SolveShiftSchedulingRequest
tertentu dengan menugaskan karyawan ke shift sehingga preferensi penjadwalan karyawan dapat dimaksimalkan dan pelanggaran batasan penjadwalan dapat 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 pemecahan masalah. |
employees[] |
Semua karyawan yang tersedia akan dijadwalkan. |
shifts[] |
Semua shift untuk membentuk jadwal. |
coverageRequirements[] |
Persyaratan cakupan untuk keseluruhan jangka waktu perencanaan. Batas ini menentukan jumlah karyawan yang harus menjalankan setiap peran, atau memiliki keterampilan, selama jangka waktu tertentu atau daftar ID shift. Semua persyaratan cakupan harus ditentukan dengan jangka waktu atau daftar ID shift (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 mungkin tersedia di seluruh tenaga kerja. Setiap karyawan harus memiliki setidaknya satu peran yang dapat ditetapkan kepada mereka untuk satu shift. Peran mengacu pada penugasan pekerjaan tertentu selama {i>shift<i} (yaitu perawat terdaftar, koki eksekutif, pelayan, dll.). Ketika seorang karyawan ditugaskan untuk sebuah shift, mereka juga ditugaskan ke satu peran tertentu. |
skillIds[] |
Daftar semua keterampilan yang tersedia di seluruh tenaga kerja. Keterampilan mengacu pada kualifikasi tambahan yang mungkin dimiliki karyawan yang tidak berhubungan dengan pekerjaan tertentu yang ditugaskan (yaitu sertifikasi, bahasa yang digunakan, dll.). Daftar ini boleh kosong. Ketika seorang karyawan ditugaskan untuk {i>shift<i}, dia harus memenuhi semua keterampilan yang dibutuhkan untuk {i>shift<i} tersebut. |
locationIds[] |
Daftar semua kemungkinan lokasi untuk kumpulan shift dalam jadwal. Daftar ini boleh kosong. Menentukan lokasi yang berbeda dapat berguna ketika, misalnya, seorang manajer perawat ingin menjadwalkan banyak perawat di unit yang berbeda di 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[] |
Alihkan penugasan untuk digunakan sebagai solusi tentatif (alias petunjuk solusi) untuk masalah penjadwalan. Petunjuk penetapan akan diabaikan jika penetapan 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
, tugas shift yang valid akan ditampilkan dalam shiftAssignments
. Untuk penetapan shift yang valid, properti berikut berlaku:
- Setiap ID karyawan terdapat dalam kumpulan karyawan yang diberikan dalam permintaan.
- Setiap ID peran yang ditetapkan untuk karyawan terdapat dalam kumpulan ID peran untuk karyawan tertentu.
- Setiap ID shift terdapat 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 untuk dua {i>shift<i} yang tumpang tindih.
- Untuk jadwal yang ditentukan, 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 terkait dengan respons ini. |
solutionStatus |
Status solusi yang ditampilkan. Jika solusi tidak MUDAH atau OPTIMAL, kolom lain dalam proto ini mungkin kosong. Jika statusnya adalah NOT_SOLVED_DEADLINE_EXCEEDED, batas waktu tercapai tanpa menemukan solusi yang layak atau menentukan apakah ada solusi yang layak. Permintaan mungkin tidak mungkin dilakukan jika batasan WAJIB tingkat prioritas tidak dapat dipenuhi semuanya. |
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 pemecah masalah untuk memecahkan masalah. Jika tidak disetel, durasi defaultnya adalah 1 menit. Nilai ini bukanlah batas mutlak dan tidak memperhitungkan overhead komunikasi. Latensi yang diharapkan untuk menyelesaikan masalah mungkin sedikit melebihi nilai ini. Durasi dalam detik dengan maksimal sembilan digit pecahan, 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 oleh karyawan ini. Setidaknya harus ada satu peran yang ditentukan. Saat seorang karyawan ditugaskan untuk shift, dia juga diberi satu peran dari daftar ini. Karyawan tersebut mungkin diberi peran yang berbeda selama periode penjadwalan. |
skillIds[] |
ID keahlian yang dimiliki karyawan ini. Daftar ini boleh kosong. Ketika seorang karyawan ditugaskan untuk shift, mereka menggunakan sebagian dari keterampilan yang tercantum di sini untuk mencakup persyaratan keterampilan selama durasi shift yang ditugaskan. |
shiftPreferences[] |
Ubah preferensi karyawan ini. Shift yang ditentukan di sini menunjukkan shift yang ingin ditugaskan kepada karyawan selama periode penjadwalan. ID shift yang ditentukan dalam |
schedulingConstraints[] |
Daftar batasan penjadwalan untuk karyawan ini. Tingkat prioritas default untuk setiap batasan ini adalah |
resourceConstraints[] |
Batasan penjadwalan tambahan yang tidak ditentukan dalam |
shiftRequests[] |
Daftar permintaan shift untuk karyawan. Permintaan tersebut bisa berupa penetapan karyawan atau tidak ditugaskan ke shift tertentu. Setiap tugas penjadwalan tetap untuk karyawan dapat direpresentasikan dengan |
hourlyContract |
Kontrak yang menentukan tarif per jam reguler dan lembur untuk karyawan. |
ShiftPreference
Preferensi numerik untuk ID shift tertentu.
Representasi JSON |
---|
{ "shiftId": string, "preference": integer } |
Kolom | |
---|---|
shiftId |
ID Shift yang preferensinya ditentukan. |
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 ditentukan [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 periode waktu yang ditentukan di atas. type hanya ada berupa salah satu diantara berikut: |
|
minimumMinutes |
Jumlah minimum menit yang dapat dikerjakan karyawan. Jika karyawan ditugaskan untuk melakukan shift yang tumpang tindih (sepenuhnya atau sebagian) dengan jangka waktu shift, jumlah menit shift yang tumpang tindih dengan jangka waktu akan disertakan dalam penghitungan ini. |
maximumMinutes |
Jumlah menit maksimum karyawan dapat bekerja dalam jangka waktu tersebut. Jika karyawan ditugaskan untuk melakukan shift yang tumpang tindih (sepenuhnya atau sebagian) dengan jangka waktu shift, jumlah menit shift yang tumpang tindih dengan jangka waktu akan disertakan dalam penghitungan ini. |
minimumConsecutiveWorkDays |
Jumlah minimum hari berturut-turut karyawan dapat bekerja. Seorang karyawan bekerja pada hari tertentu jika mereka ditugaskan untuk shift yang dimulai pada hari tersebut. Setiap shift yang ditetapkan kepada karyawan yang dimulai dalam jangka waktu akan disertakan dalam jumlah ini. |
maximumConsecutiveWorkDays |
Jumlah maksimum hari berturut-turut karyawan dapat bekerja. Seorang karyawan bekerja pada hari tertentu jika mereka ditugaskan untuk shift yang dimulai pada hari tersebut. Setiap shift yang ditetapkan kepada karyawan yang dimulai dalam jangka waktu akan disertakan dalam jumlah ini. |
minimumShiftCount |
Jumlah shift minimum yang dapat bekerja karyawan. Pergeseran apa pun yang ditugaskan kepada karyawan yang sepenuhnya tumpang tindih dengan periode waktu akan disertakan dalam jumlah ini. |
maximumShiftCount |
Jumlah maksimum shift yang dapat bekerja karyawan. Pergeseran apa pun yang ditugaskan kepada karyawan yang sepenuhnya tumpang tindih dengan periode waktu akan disertakan dalam jumlah ini. |
minimumRestMinutes |
Jumlah menit minimum karyawan harus istirahat setelah satu shift berakhir sebelum ditugaskan ke shift lain. Batasan ini berlaku untuk setiap pasangan shift yang sepenuhnya disertakan dalam [ |
Prioritas
Tingkat prioritas untuk batasan apa pun pada jadwal karyawan atau persyaratan cakupan. Ini mencakup SchedulingConstraint
, ResourceConstraint
, ShiftRequest
, dan CoverageRequirement
. Karena mungkin ada batasan yang bertentangan, setiap batasan tidak selalu mungkin 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 lengkap.
Enum | |
---|---|
PRIORITY_UNSPECIFIED |
Tingkat prioritas tidak diketahui. |
PRIORITY_LOW |
Tingkat prioritas terendah. Batasan dengan prioritas ini kurang penting dibandingkan batasan lainnya. Klaim tersebut akan menjadi pelanggaran pertama 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 dipertimbangkan berikutnya untuk pelanggaran. |
PRIORITY_HIGH |
Tingkat prioritas tertinggi. Batasan dengan tingkat prioritas ini adalah yang paling penting. Keputusan ini adalah yang terakhir 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 soal menampilkan SolutionStatus.INFEASIBLE , hal ini mungkin disebabkan oleh terlalu banyak batasan PRIORITY_MANDATORY . |
ResourceConstraint
Batasan umum yang membatasi jumlah "resource" tertentu yang digunakan oleh seorang karyawan. Ini adalah versi abstrak dari SchedulingConstraint
yang lebih spesifik dan lebih fleksibel bagi pengguna. Banyak batasan penjadwalan yang tidak dapat ditentukan dalam 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 resource yang digunakan berdasarkan shift. Misalnya, jika batasan ini berlaku untuk jam minimum dan maksimum yang bekerja oleh seorang karyawan dalam minggu tertentu, peta ini akan berisi shift yang terjadi dalam 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 ditetapkan atau tidak ditetapkan ke kumpulan shift. |
WorkStatus
Apakah seorang karyawan bekerja atau tidak.
Enum | |
---|---|
WORK_STATUS_UNSPECIFIED |
Status pekerjaan tidak diketahui. |
STATUS_WORK |
Status yang mewakili karyawan yang bekerja. |
STATUS_NOT_WORK |
Status yang mewakili karyawan tidak bekerja. |
HourlyContract
Menentukan tarif per jam dasar, diferensial tarif, dan pengganda lembur untuk menentukan kompensasi bagi karyawan. Perhatikan bahwa peraturan di berbagai tempat mungkin memerlukan komputasi kompensasi lembur yang berbeda. Pemecah masalah memperkirakan kompensasi lembur untuk meminimalkan proxy dari total biaya atau memenuhi anggaran (lihat BudgetRequirement
). Hal 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 beberapa tarif berlaku untuk karyawan, perbedaan tarif akan diterapkan relatif terhadap tarif per jam dasar ini. Selain itu, jika ada beberapa tarif, tarif per jam dasar harus merupakan tarif minimum dari tarif tersebut. |
hourlyRateShiftDifferentials |
Perbedaan tarif per jam, dibayar selain Objek yang berisi daftar pasangan |
overtimePeriods[] |
Daftar semua periode yang harus dihitung seiring waktu. Periode tersebut tidak boleh tumpang-tindih. |
OvertimePeriod
Periode tetap dan berulang (biasanya 168 jam atau tujuh periode 24 jam berturut-turut) yang digunakan untuk menentukan jumlah kompensasi lembur. Setiap periode memiliki pengganda dari waktu ke waktu (mis., 1.5) relatif terhadap baseHourlyRate
dan batas jumlah jam yang dianggap pekerjaan reguler (bukan lembur). Setiap pergeseran yang tumpang-tindih dengan periode waktu startDateTime
(inklusif) dan endDateTime
(eksklusif) akan dihitung dalam jumlah total jam kerja dalam periode tersebut. Jika tumpang-tindih tersebut 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 pergeseran tumpang-tindih kali ini, jam pergeseran tersebut akan dihitung dari |
endDateTime |
Waktu berakhir untuk periode lembur. Jika pergeseran tumpang-tindih kali ini, jam pergeseran tersebut dihitung hingga |
maximumRegularHours |
Jumlah maksimum jam kerja yang dibayar dengan tarif reguler (bukan lembur). Jumlah ini harus positif. |
Shift
Shift menentukan jangka waktu tetap yang dapat digunakan karyawan untuk bekerja.
Representasi JSON |
---|
{ "id": string, "locationId": string, "startDateTime": { object ( |
Kolom | |
---|---|
id |
ID unik yang ditetapkan untuk pergeseran ini. |
locationId |
ID lokasi tempat pergeseran ini bekerja. Daftar ini boleh kosong. |
startDateTime |
Waktu mulai perubahan (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 shift dan durasinya. Daftar semua kemungkinan jeda yang dipertimbangkan ditentukan dengan kelipatan ruleIncrementMinutes
. Misalnya, jika aturan jeda memodelkan jeda 30 menit yang dapat dimulai antara pukul 10.00 dan 11.00, dan penambahan aturan adalah 20 menit, daftar jeda yang dipertimbangkan adalah: [10:00, 10:30], [10:20, 10:50], [10:40, 11:10], [10:40, 11:10], [10:40, 11:10],
Representasi JSON |
---|
{ "earliestStartTime": { object ( |
Kolom | |
---|---|
earliestStartTime |
Waktu mulai jeda paling awal (inklusif). Hanya |
latestStartTime |
Waktu mulai jeda paling akhir (inklusif). Hanya |
durationMinutes |
Durasi jeda dalam hitungan menit. |
ruleIncrementMinutes |
[Opsional] Pertambahan waktu dalam menit untuk semua jeda yang dapat dipertimbangkan dalam aturan jeda iklan 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. Atau, daftar ID shift dapat diberikan sebagai ganti periode waktu dan lokasi. Hanya karyawan yang dapat ditugaskan untuk peran tertentu (atau yang memiliki keterampilan tertentu) yang dapat memenuhi persyaratan ini.
Untuk peran dan/atau keterampilan tertentu, persyaratan cakupan dipenuhi jika setidaknya targetEmployeeCount
jumlah karyawan bekerja pada setiap momen dalam jangka waktu tersebut (atau untuk setiap shift dalam shiftIds
). Sebaliknya, persyaratan cakupan dilanggar jika suatu titik dalam jangka waktu tertentu (atau untuk setiap shift dalam shiftIds
), terdapat kurang dari targetEmployeeCount
jumlah karyawan yang bekerja selama jangka waktu tersebut. Lebih banyak karyawan yang bekerja daripada targetEmployeeCount
masih memenuhi persyaratan, tetapi jumlah staf yang berlebihan diminimalkan 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 diterapkan satu per satu untuk setiap ID shift dalam daftar ini. Jika shiftId tidak kosong, |
roleRequirements[] |
Jumlah karyawan yang diperlukan yang akan diberi peran yang ditentukan selama jangka waktu tersebut. Maksimal satu |
skillRequirements[] |
Jumlah karyawan yang diperlukan dengan keterampilan tertentu yang ditugaskan untuk shift selama periode waktu. Maksimal satu |
RoleRequirement
Jumlah karyawan yang diperlukan yang akan diberi 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 untuk ditugaskan selama jangka waktu tertentu. |
priority |
Tingkat prioritas untuk batasan persyaratan ini. Prioritas default untuk semua batasan resource adalah |
SkillRequirement
Jumlah karyawan yang diperlukan yang bekerja selama jangka waktu tersebut dan memiliki keterampilan yang ditentukan.
Representasi JSON |
---|
{
"skillId": string,
"targetEmployeeCount": integer,
"priority": enum ( |
Kolom | |
---|---|
skillId |
ID keahlian untuk persyaratan. |
targetEmployeeCount |
Jumlah karyawan yang diinginkan dengan keterampilan tertentu yang bekerja selama periode waktu tersebut. |
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 disetel menjadi waktu mulai paling awal dari semua shift yang diberikan. |
endDateTime |
Waktu berakhir saat anggaran ini berlaku. Jika waktu berakhir tidak ditentukan, waktu berakhir akan ditetapkan sebagai waktu berakhir paling akhir dari semua shift yang diberikan. |
priority |
Tingkat prioritas untuk memenuhi persyaratan anggaran selama jangka waktu yang ditentukan. Prioritas defaultnya adalah Perlu diketahui bahwa jika prioritas ini lebih tinggi daripada prioritas batasan lain dan jika |
ShiftAssignment
Seorang karyawan untuk berganti peran.
Representasi JSON |
---|
{
"employeeId": string,
"shiftId": string,
"roleId": string,
"breaks": [
{
object ( |
Kolom | |
---|---|
employeeId |
ID karyawan yang ditetapkan. |
shiftId |
ID Shift yang ditetapkan ke karyawan. |
roleId |
ID Peran yang ditetapkan kepada karyawan untuk shift. |
breaks[] |
Daftar istirahat untuk tugas shift ini. |
Istirahat
Periode waktu di mana seorang karyawan menginterupsi pekerjaan mereka selama shift.
Representasi JSON |
---|
{
"startDateTime": {
object ( |
Kolom | |
---|---|
startDateTime |
Waktu mulai istirahat. |
durationMinutes |
Durasi jeda dalam hitungan menit. |
SolutionStatus
Status solusi (yaitu jadwal) yang diberikan dalam respons pemecah masalah.
Enum | |
---|---|
SOLUTION_STATUS_UNSPECIFIED |
Status respons belum ditentukan. |
FEASIBLE |
Jadwal yang ditampilkan 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 ada subset batasan dengan tingkat prioritas PRIORITY_MANDATORY tidak dapat dipenuhi. |
NOT_SOLVED |
Tidak ada jadwal yang ditemukan. |
NOT_SOLVED_DEADLINE_EXCEEDED |
Tidak ada jadwal yang ditemukan dalam batas waktu yang diberikan. |