প্রদত্ত SolveShiftGenerationRequest
থেকে একটি শিফট জেনারেশন সমস্যা সমাধান করে কর্মচারীর চাহিদা পূরণ করার জন্য প্রদত্ত শিফট টেমপ্লেট থেকে শিফট জেনারেট করে।
HTTP অনুরোধ
POST https://optimization.googleapis.com/v1/scheduling:solveShiftGeneration
URL gRPC ট্রান্সকোডিং সিনট্যাক্স ব্যবহার করে।
শরীরের অনুরোধ
অনুরোধের অংশে নিম্নলিখিত কাঠামো সহ ডেটা রয়েছে:
JSON প্রতিনিধিত্ব |
---|
{ "solverConfig": { object ( |
ক্ষেত্র | |
---|---|
solverConfig | ঐচ্ছিক। সমাধানকারীর জন্য পরামিতি। |
shiftTemplates[] | প্রয়োজন। শিফট জেনারেট করার নিয়ম উল্লেখ করে শিফট টেমপ্লেটের সেট। |
employeeDemands[] | প্রয়োজন। মোট কর্মচারীদের দাবি যে |
প্রতিক্রিয়া শরীর
শিফট জেনারেশন সমস্যার জন্য প্রতিক্রিয়া। যদি solutionStatus
SOLVED
করা হয়, তাহলে সমাধানকারীর দ্বারা উত্পন্ন বৈধ শিফটের একটি সেট employeeSchedules
ফেরত দেওয়া হয়। একটি বৈধ শিফট সময়সূচীর জন্য, নিম্নলিখিত বৈশিষ্ট্যগুলি ধারণ করে:
-
employeeSchedules
শিডিউলে উত্পন্ন প্রতিটি শিফট সংশ্লিষ্টShiftTemplate
এ উল্লেখিত নিয়ম মেনে চলে। - প্রতিটি শিফটে নির্বাচিত প্রতিটি ইভেন্ট সংশ্লিষ্ট
ShiftTemplate.Event
এ উল্লেখিত নিয়ম মেনে চলে। - একই ShiftTemplate থেকে উত্পন্ন শিফটের সেটে নিয়োগকৃত মোট কর্মচারীর সংখ্যা সেই টেমপ্লেটের
maximumEmployeeCount
বেশি নয়। - নির্ধারিত কর্মচারীদের সেট প্রতিটি নির্দিষ্ট ব্যবধানে চাহিদা কভার করে।
সফল হলে, প্রতিক্রিয়া বডিতে নিম্নলিখিত কাঠামোর সাথে ডেটা থাকে:
JSON প্রতিনিধিত্ব |
---|
{ "solutionStatus": enum ( |
ক্ষেত্র | |
---|---|
solutionStatus | ফিরে আসা সমাধানের অবস্থা। |
employeeSchedules[] | প্রতিটি সময়সূচীতে নির্ধারিত কর্মচারীর সংখ্যা সহ সমাধানকারী দ্বারা উত্পন্ন শিফটের সেট। |
demandCoverageViolations[] | প্রদত্ত |
SolverConfig
শিফট জেনারেশন সমস্যা সমাধানের জন্য অতিরিক্ত প্যারামিটার নির্দিষ্ট করে।
JSON প্রতিনিধিত্ব |
---|
{ "timeLimit": string, "multiDaySchedule": boolean, "shiftEventsCanChange": boolean } |
ক্ষেত্র | |
---|---|
timeLimit | সমস্যার সমাধানকারীর সর্বোচ্চ সময় ব্যয় করা উচিত। সেট না থাকলে, ডিফল্ট 1 মিনিট। একটি সময়সীমার পছন্দ সমস্যার আকারের উপর নির্ভর করে। একটি উদাহরণ দেওয়ার জন্য, 2টি এই মানটি একটি কঠিন সীমা নয় এবং এটি যোগাযোগের ওভারহেডের জন্য অ্যাকাউন্ট করে না। সমস্যা সমাধানের প্রত্যাশিত বিলম্ব এই মানটিকে সামান্য অতিক্রম করতে পারে। নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা সহ সেকেন্ডে একটি সময়কাল, ' |
multiDaySchedule | সত্য হলে, সমাধানকারী |
shiftEventsCanChange | সত্য হলে, বহু-দিনের |
শিফট টেমপ্লেট
টেমপ্লেট শিফট জেনারেট করার নিয়ম উল্লেখ করে। একটি শিফট হল কাজের একটি ইউনিট যা একটি শুরুর সময়, শেষ সময় নির্দিষ্ট করে এবং এতে ইভেন্ট থাকতে পারে (যেমন লাঞ্চ, বিরতি, ইত্যাদি)। প্রতিক্রিয়ায় একটি নির্দিষ্ট তারিখে একটি স্থানান্তর বরাদ্দ করা হবে।
JSON প্রতিনিধিত্ব |
---|
{ "id": string, "earliestStartTime": { object ( |
ক্ষেত্র | |
---|---|
id | এই টেমপ্লেটের অনন্য আইডি। |
earliestStartTime | দিনের প্রথমতম সময় যেখানে একটি শিফট শুরু হতে পারে। এই মান ঘন্টা এবং মিনিটের সাথে নির্দিষ্ট করা হয়; সেকেন্ড এবং ন্যানো উপেক্ষা করা হয়। |
latestStartTime | দিনের সর্বশেষ সময় যেখানে একটি শিফট শুরু হতে পারে। এই মান ঘন্টা এবং মিনিটের সাথে নির্দিষ্ট করা হয়; সেকেন্ড এবং ন্যানো উপেক্ষা করা হয়। যদি এই মানটি |
durationMinutes | এই টেমপ্লেট দ্বারা উত্পন্ন একটি স্থানান্তরের নির্দিষ্ট সময়কাল। |
startTimeIncrementMinutes | |
daysOffCountPerWeek | প্রতি সপ্তাহে ছুটির নির্দিষ্ট সংখ্যা। একজন কর্মচারীর একটি নির্দিষ্ট দিন ছুটি থাকে যদি তাদের সেই দিন শুরু হওয়া শিফটে নিয়োগ না করা হয়। একটি সপ্তাহ 7 দিন এবং রবিবার শুরু হয়। |
eventTemplates[] | প্রতিটি শিফটের জন্য ইভেন্ট তৈরি করার নিয়ম। নির্দিষ্ট করা প্রতিটি ইভেন্টের জন্য প্রতিটি শিফটে ঠিক একটি ইভেন্ট অন্তর্ভুক্ত করা হবে। |
minimumIntereventGapMinutes | একটি ইভেন্টের শেষ এবং পরবর্তী শুরুর মধ্যে ন্যূনতম মিনিট। |
maximumEmployeeCount | এই টেমপ্লেট দ্বারা উত্পন্ন সমস্ত শিফটে সর্বাধিক সংখ্যক কর্মচারী নিয়োগ করা যেতে পারে৷ |
TimeOfDay
দিনের একটি সময় প্রতিনিধিত্ব করে। তারিখ এবং সময় অঞ্চল হয় উল্লেখযোগ্য নয় বা অন্য কোথাও নির্দিষ্ট করা হয়েছে৷ একটি API লিপ সেকেন্ডের অনুমতি দিতে বেছে নিতে পারে। সম্পর্কিত প্রকারগুলি হল google.type.Date
এবং google.protobuf.Timestamp
।
JSON প্রতিনিধিত্ব |
---|
{ "hours": integer, "minutes": integer, "seconds": integer, "nanos": integer } |
ক্ষেত্র | |
---|---|
hours | 24 ঘন্টা বিন্যাসে দিনের ঘন্টা. 0 থেকে 23 পর্যন্ত হওয়া উচিত। ব্যবসা বন্ধ হওয়ার সময় মত পরিস্থিতির জন্য একটি API "24:00:00" মানকে অনুমতি দিতে পারে। |
minutes | দিনের ঘন্টার মিনিট। 0 থেকে 59 এর মধ্যে হতে হবে। |
seconds | সময়ের মিনিটের সেকেন্ড। সাধারণত 0 থেকে 59 এর মধ্যে হতে হবে। একটি API 60 মান অনুমোদন করতে পারে যদি এটি লিপ-সেকেন্ডের অনুমতি দেয়। |
nanos | ন্যানোসেকেন্ডে সেকেন্ডের ভগ্নাংশ। 0 থেকে 999,999,999 পর্যন্ত হতে হবে। |
ইভেন্ট টেমপ্লেট
একটি শিফটের সময় ঘটে এমন একটি একক ইভেন্ট তৈরি করার নিয়ম নির্দিষ্ট করে টেমপ্লেট৷ একটি ইভেন্ট একটি মিটিং, বিরতি, মধ্যাহ্নভোজ ইত্যাদি প্রতিনিধিত্ব করতে পারে।
JSON প্রতিনিধিত্ব |
---|
{ "id": string, "minimumMinutesAfterShiftStart": integer, "maximumMinutesAfterShiftStart": integer, "durationMinutes": integer, "startTimeIncrementMinutes": integer } |
ক্ষেত্র | |
---|---|
id | এই টেমপ্লেটের অনন্য আইডি। |
minimumMinutesAfterShiftStart | এই ইভেন্টটি শুরু হতে পারে এমন একটি শিফট শুরু হওয়ার পর ন্যূনতম সংখ্যক মিনিট। |
maximumMinutesAfterShiftStart | এই ইভেন্টটি শুরু হতে পারে এমন একটি শিফট শুরু হওয়ার পর সর্বাধিক সংখ্যক মিনিট৷ |
durationMinutes | এই ইভেন্টের মিনিটের মধ্যে নির্দিষ্ট সময়কাল। |
startTimeIncrementMinutes | |
কর্মচারীর চাহিদা
প্রদত্ত তারিখ সময়ের ব্যবধানে চাহিদা পূরণের জন্য প্রয়োজনীয় কর্মচারীর সংখ্যা নির্দিষ্ট করে৷
JSON প্রতিনিধিত্ব |
---|
{ "startDateTime": { object ( |
ক্ষেত্র | |
---|---|
startDateTime | প্রদত্ত চাহিদার জন্য সময়ের ব্যবধানের শুরু (অন্তর্ভুক্ত)। এই মানগুলি মিনিটে পড়া হয়; সেকেন্ড এবং সমস্ত ছোট ইউনিট উপেক্ষা করা হয়। |
endDateTime | প্রদত্ত চাহিদার জন্য সময়ের ব্যবধানের সমাপ্তি (একচেটিয়া)। এই মানগুলি মিনিটে পড়া হয়; সেকেন্ড এবং সমস্ত ছোট ইউনিট উপেক্ষা করা হয়। |
employeeCount | এই ব্যবধানের চাহিদা পূরণের জন্য প্রয়োজনীয় কর্মচারীর সংখ্যা। |
শিফট জেনারেশনসলিউশন স্ট্যাটাস
সমাধানকারীর প্রতিক্রিয়ায় দেওয়া সমাধানের স্থিতি।
Enums | |
---|---|
SHIFT_GENERATION_SOLUTION_STATUS_UNSPECIFIED | প্রতিক্রিয়া জন্য অনির্দিষ্ট অবস্থা. |
SHIFT_GENERATION_SOLVED | সমাধানকারী প্রদত্ত সময়সীমার মধ্যে একটি সমাধান খুঁজে পেয়েছে। |
SHIFT_GENERATION_NOT_SOLVED | একটি সমস্যা সমাধানকারীকে শিফট জেনারেট করতে বাধা দেয়। |
SHIFT_GENERATION_NOT_SOLVED_DEADLINE_EXCEEDED | প্রদত্ত সময়ের মধ্যে চাহিদা মেটাতে শিফট তৈরি করা যায়নি। |
কর্মচারী শিডিউল
একটি একক ShiftTemplate
সাথে সম্পর্কিত শিফটের একটি আদেশকৃত তালিকা যা অনেক সংখ্যক কর্মচারীকে বরাদ্দ করা হবে।
JSON প্রতিনিধিত্ব |
---|
{
"shiftTemplateId": string,
"shifts": [
{
object ( |
ক্ষেত্র | |
---|---|
shiftTemplateId | টেমপ্লেটের আইডি যা শিফটের এই সেট তৈরি করতে ব্যবহৃত হয়েছিল। |
shifts[] | শিফটের তালিকা কোন |
employeeCount | চাহিদা পূরণের জন্য শিফটের এই সেটে নিয়োগ করা উচিত এমন কর্মচারীর সংখ্যা। |
ShiftWithEvents
সমাধানকারীর দ্বারা উত্পন্ন একটি স্থানান্তরের নির্দিষ্ট ইভেন্টের তালিকা সহ শুরু এবং শেষের তারিখ নির্দিষ্ট করে৷
JSON প্রতিনিধিত্ব |
---|
{ "startDateTime": { object ( |
ক্ষেত্র | |
---|---|
startDateTime | শিফট শুরুর তারিখ এবং সময়। এই মানটি মিনিটে নির্দিষ্ট করা হয়েছে; সেকেন্ড এবং ছোট ইউনিট দেওয়া হয় না। |
endDateTime | শিফটের শেষ তারিখ এবং সময়। এই মানটি মিনিটে নির্দিষ্ট করা হয়েছে; সেকেন্ড এবং ছোট ইউনিট দেওয়া হয় না। |
events[] | এই শিফটে অন্তর্ভুক্ত ইভেন্টের তালিকা, ঠিক ম্যাপ করা হয়েছে, এবং একই ক্রমে, |
ঘটনা
সমাধানকারী দ্বারা উত্পন্ন একটি শিফটে একটি নির্দিষ্ট ইভেন্টের শুরু এবং শেষের তারিখ নির্দিষ্ট করে৷
JSON প্রতিনিধিত্ব |
---|
{ "eventTemplateId": string, "startDateTime": { object ( |
ক্ষেত্র | |
---|---|
eventTemplateId | এই ইভেন্ট তৈরি করতে ব্যবহৃত টেমপ্লেটের আইডি। |
startDateTime | অনুষ্ঠান শুরুর তারিখ এবং সময়। এই মানটি মিনিটে নির্দিষ্ট করা হয়েছে; সেকেন্ড এবং ছোট ইউনিট দেওয়া হয় না। |
endDateTime | ইভেন্টের শেষ তারিখ এবং সময়। এই মানটি মিনিটে নির্দিষ্ট করা হয়েছে; সেকেন্ড এবং ছোট ইউনিট দেওয়া হয় না। |
চাহিদা কভারেজ লঙ্ঘন
প্রদত্ত ব্যবধানের জন্য চাহিদা কভারেজ লঙ্ঘন নির্দিষ্ট করে। পুরো নির্দিষ্ট ব্যবধানে কর্মচারীর চাহিদা একই থাকে।
JSON প্রতিনিধিত্ব |
---|
{ "startDateTime": { object ( |
ক্ষেত্র | |
---|---|
startDateTime | চাহিদা ব্যবধানের শুরুর তারিখ এবং সময় (অন্তর্ভুক্ত)। এই মানটি মিনিট পর্যন্ত নির্দিষ্ট করা হয়েছে। |
endDateTime | চাহিদা ব্যবধানের শেষ তারিখ এবং সময় (একচেটিয়া)। এই মানটি মিনিট পর্যন্ত নির্দিষ্ট করা হয়েছে। |
coverageViolation | নির্দিষ্ট ব্যবধানে কভারেজ লঙ্ঘন। একটি ইতিবাচক মান নির্দেশ করে যে চাহিদা ওভারকভার করা হয়েছে, এবং একটি নেতিবাচক মান নির্দেশ করে যে চাহিদা আড়াল করা হয়েছে। |