Package google.research.optimization.v1

সূচক

অপ্টিমাইজেশান

একটি ওয়ান প্ল্যাটফর্ম API উচ্চ-স্তরের অপারেশন গবেষণা সমস্যার জন্য অপ্টিমাইজেশান সমাধানকারীর একটি সেট প্রকাশ করে। MOE:begin_strip

ডিজাইন শিপিং নেটওয়ার্ক

rpc DesignShippingNetwork( DesignShippingNetworkRequest ) returns ( DesignShippingNetworkResponse )

প্রদত্ত DesignShippingNetworkRequest থেকে লাইনার শিপিং নেটওয়ার্ক ডিজাইন এবং শিডিউলিং সমস্যা (LSNDSP) সমাধান করে।

LSNDSP একটি জটিল অপ্টিমাইজেশান সমস্যা যা একটি লাইনার শিপিং নেটওয়ার্কের সর্বোত্তম নকশা এবং সময়সূচী খুঁজে পেতে চায়। লক্ষ্য হল নেটওয়ার্ক পরিচালনার মোট খরচ কমিয়ে আনা, যখন পোর্টের মধ্যে যতটা সম্ভব পণ্যসম্ভারের চাহিদা মেটানো।

LSNDSP কে দুটি প্রধান উপসমস্যায় বিভক্ত করা যেতে পারে: নেটওয়ার্ক ডিজাইন এবং সময়সূচী। নেটওয়ার্ক ডিজাইনের উপ-সমস্যা নেটওয়ার্ক দ্বারা পরিবেশন করা পোর্টের সেট, প্রতিটি রুটে মোতায়েন করা জাহাজের সংখ্যা এবং জাহাজগুলি যে রুটগুলি নেবে তা নির্ধারণ করে। শিডিউলিং সাব-সমস্যা জাহাজগুলির জন্য পালতোলা সময়সূচী নির্ধারণ করে, বন্দরগুলির মধ্যে যাত্রা করতে যে সময় লাগে, কার্গো লোড এবং আনলোড করতে যে সময় লাগে এবং বন্দরের মধ্যে কার্গো পরিবহনের চাহিদা বিবেচনা করে।

সহজ কথায়, LSNDSP হল কোন পোর্টে পরিষেবা দিতে হবে, কতগুলি জাহাজ ব্যবহার করতে হবে এবং কীভাবে জাহাজের সময়সূচী নির্ধারণ করতে হবে তা নির্ধারণ করার সমস্যা যাতে কার্গো চাহিদা পূরণের জন্য সর্বাধিক আয়ের সময় নেটওয়ার্ক পরিচালনার খরচ কম হয়। LSNDSP-এর একটি চ্যালেঞ্জিং সাবকম্পোনেন্ট হল কার্গো রাউটিং, যা নির্ধারণ করে কোন চাহিদা পূরণ করতে হবে এবং কোন রুটগুলিকে কার্গোতে বরাদ্দ করতে হবে রাজস্ব সর্বাধিক করার জন্য।

SolveMathOptModel

rpc SolveMathOptModel( SolveMathOptModelRequest ) returns ( SolveMathOptModelResponse )

ইনপুট মডেল সমাধান করে এবং একবারে ফলাফল প্রদান করে। যখন আপনার কলব্যাক, ইনক্রিমেন্টালিটি এবং সমাধানের অগ্রগতি ট্র্যাক করার প্রয়োজন নেই তখন এটি ব্যবহার করুন।

সলভশিফট জেনারেশন

rpc SolveShiftGeneration( SolveShiftGenerationRequest ) returns ( SolveShiftGenerationResponse )

প্রদত্ত SolveShiftGenerationRequest থেকে একটি শিফট জেনারেশন সমস্যা সমাধান করে কর্মচারীর চাহিদা পূরণ করার জন্য প্রদত্ত শিফট টেমপ্লেট থেকে শিফট জেনারেট করে।

সল্ভশিফ্ট শিডিউলিং

rpc SolveShiftScheduling( SolveShiftSchedulingRequest ) returns ( SolveShiftSchedulingResponse )

প্রদত্ত SolveShiftSchedulingRequest থেকে একটি স্থির শিফট শিডিউলিং সমস্যা সমাধান করে যাতে কর্মচারীদের শিফ্টগুলিতে নিয়োগ করা হয় যাতে কর্মচারীদের সময়সূচী পছন্দগুলি সর্বাধিক করা হয় এবং সময়সূচী সীমাবদ্ধতা লঙ্ঘন কম করা হয়।

ডিজাইনশিপিং নেটওয়ার্ক অনুরোধ

অনুরোধটি LSNDSP-এর একটি উদাহরণ ধারণ করে এবং এতে অবশ্যই পোর্টের একটি সেট, লেগ প্রার্থীদের একটি সেট, জাহাজের ক্লাসের একটি সেট এবং পূরণ করার জন্য পণ্যের চাহিদার একটি সেট থাকতে হবে।

ক্ষেত্র
request_id

string

সমস্যা বা অনুরোধ আইডি.

solver_parameters

SolverParameters

সমাধানকারীর জন্য পরামিতি।

ports[]

Port

সম্ভাব্য বন্দরের তালিকা যা জাহাজ পরিষেবাগুলিতে ডাকা হবে। অনুরোধে শুধুমাত্র এই তালিকায় থাকা পোর্ট আইডি থাকতে হবে।

leg_candidates[]

LegCandidate

সম্ভাব্য লেগ প্রার্থীদের তালিকা যা জাহাজ পরিষেবাগুলিতে যোগ করা হবে। অনুরোধে শুধুমাত্র লেগ প্রার্থীর আইডি থাকতে হবে যা এই তালিকায় আছে।

vessel_classes[]

VesselClass

জাহাজ পরিষেবা সঞ্চালনের জন্য জাহাজ ক্লাসের তালিকা। মনে রাখবেন যে একই শ্রেণীর সমস্ত জাহাজ সম্পূর্ণরূপে বিনিময়যোগ্য। অনুরোধে শুধুমাত্র এই তালিকায় থাকা জাহাজ শ্রেণীর আইডি থাকতে হবে।

commodity_demands[]

CommodityDemand

সম্ভাব্য পণ্যের তালিকা (অর্থাৎ কন্টেইনার) যা জাহাজ পরিষেবা দ্বারা পূরণ করা হবে।

vessel_services[]

VesselService

বৈধ জাহাজ পরিষেবাগুলির একটি নেটওয়ার্ক (সাধারণত নেটওয়ার্কের বর্তমান অবস্থা) অপ্টিমাইজেশনের জন্য একটি সূচনা পয়েন্ট হিসাবে ব্যবহার করার জন্য প্রদান করা যেতে পারে।

ডিজাইনশিপিংনেটওয়ার্ক রেসপন্স

প্রতিক্রিয়াটি অনুরোধে পাস করা LSNDSP উদাহরণের সমাধান ধারণ করে। এটিতে জাহাজ পরিষেবা এবং পণ্য চাহিদা পাথগুলির একটি বৈধ নেটওয়ার্ক রয়েছে৷ প্রতিটি পায়ের মধ্য দিয়ে যাওয়া মোট পণ্যের চাহিদা এই পায়ে পরিবেশনকারী জাহাজ শ্রেণীর ক্ষমতার বেশি হতে পারে না। মনে রাখবেন যে চাহিদা পূরণ না করে কোনো জাহাজ পরিষেবা না থাকা সবসময়ই লাইনার শিপিং নেটওয়ার্ক ডিজাইন এবং সময় নির্ধারণের সমস্যার একটি সম্ভাব্য সমাধান।

ক্ষেত্র
request_id

string

অনুরোধের আইডি যেটির সাথে এই প্রতিক্রিয়া যুক্ত।

vessel_services[]

VesselService

জাহাজ পরিষেবা নেটওয়ার্ক. প্রতিটি জাহাজের শ্রেণীর জন্য, ব্যবহৃত জাহাজের মোট সংখ্যা এই শ্রেণীর জন্য উপলব্ধ জাহাজের সংখ্যা অতিক্রম করতে পারে না।

commodity_demand_paths[]

CommodityDemandPath

সমস্ত পণ্য চাহিদা পথের তালিকা যার মাধ্যমে ইতিবাচক পণ্য চাহিদা পাঠানো হয়। নোট করুন যে কিছু পণ্য চাহিদা আইডি অন্তর্ভুক্ত নাও হতে পারে যদি কোনো চাহিদা পাঠানো না হয়। বিকল্পভাবে, একটি পণ্য চাহিদা আংশিকভাবে পূরণ করা যেতে পারে. প্রতিটি পণ্যের চাহিদার জন্য, মোট পরিপূর্ণ পরিমাণ মোট চাহিদার বেশি হতে পারে না। অবশেষে, পণ্য_চাহিদা_পথগুলি জাহাজের_পরিষেবাগুলির উপর নির্ভর করে (পণ্য চাহিদার সংজ্ঞা দেখুন)।

SolveMathOptModelRequest

MathOpt এ একটি unary রিমোট সমাধানের জন্য অনুরোধ।

ক্ষেত্র
solver_type

SolverTypeProto

ঐচ্ছিক। সংখ্যাগতভাবে সমস্যা সমাধানের জন্য সমাধানকারী প্রকার। মনে রাখবেন যে যদি একটি সমাধানকারী মডেলের একটি নির্দিষ্ট বৈশিষ্ট্য সমর্থন না করে, তাহলে অপ্টিমাইজেশন পদ্ধতি সফল হবে না।

model

ModelProto

প্রয়োজন। সমাধান করার জন্য অপ্টিমাইজেশন সমস্যার একটি গাণিতিক উপস্থাপনা।

parameters

SolveParametersProto

ঐচ্ছিক। একটি একক সমাধান নিয়ন্ত্রণ করার পরামিতি। enable_output প্যারামিটারটি বিশেষভাবে পরিচালনা করা হয়। সমাধানকারীদের জন্য যারা বার্তা কলব্যাক সমর্থন করে, এটিকে সত্যে সেট করলে সার্ভার একটি বার্তা কলব্যাক নিবন্ধন করবে। ফলস্বরূপ বার্তাগুলি SolveMathOptModelResponse.messages এ ফেরত দেওয়া হবে। অন্যান্য সমাধানকারীদের জন্য, enable_output সত্যে সেট করার ফলে একটি ত্রুটি দেখা দেবে।

model_parameters

ModelSolveParametersProto

ঐচ্ছিক। ইনপুট মডেলের জন্য নির্দিষ্ট একটি একক সমাধান নিয়ন্ত্রণ করার পরামিতি (মডেল স্বাধীন প্যারামিটারের জন্য SolveParametersProto দেখুন)।

SolveMathOptModelResponse

MathOpt এ একটি unary রিমোট সমাধানের জন্য প্রতিক্রিয়া।

ক্ষেত্র
result

SolveResultProto

অনুরোধে মডেল সমাধানের আউটপুট বর্ণনা।

messages[]

string

যদি SolveParametersProto.enable_output ব্যবহার করা হয়ে থাকে, তাহলে এতে সমাধানকারীদের জন্য লগ বার্তা থাকবে যা বার্তা কলব্যাক সমর্থন করে।

সমাধান শিফট জেনারেশন অনুরোধ

শিফট জেনারেশন সমস্যা সমাধানের জন্য অনুরোধ। শিফট জেনারেট করার নিয়ম প্রতিটি ShiftTemplate এ বর্ণিত আছে। প্রতিক্রিয়াতে একাধিক শিফট একটি একক ShiftTemplate থেকে তৈরি করা যেতে পারে। সলভার দ্বারা উত্পন্ন এবং নির্বাচিত শিফটগুলিকে অবশ্যই ShiftTemplate-এ বর্ণিত নিয়মগুলি মেনে চলতে হবে এবং নির্দিষ্ট কর্মচারীর চাহিদা পূরণ করতে হবে।

ক্ষেত্র
solver_config

SolverConfig

ঐচ্ছিক। সমাধানকারীর জন্য পরামিতি।

shift_templates[]

ShiftTemplate

প্রয়োজন। শিফট জেনারেট করার নিয়ম উল্লেখ করে শিফট টেমপ্লেটের সেট।

employee_demands[]

EmployeeDemand

প্রয়োজন। মোট কর্মচারীদের দাবি যে shift_templates দ্বারা উত্পন্ন শিফটগুলিকে কভার করতে হবে।

সলভশিফট জেনারেশন রেসপন্স

শিফট জেনারেশন সমস্যার জন্য প্রতিক্রিয়া। যদি solution_status ফেরত দেওয়া হয় SOLVED , তাহলে সমাধানকারীর দ্বারা উত্পন্ন বৈধ শিফটের একটি সেট employee_schedules এ ফেরত দেওয়া হয়। একটি বৈধ শিফট সময়সূচীর জন্য, নিম্নলিখিত বৈশিষ্ট্যগুলি ধারণ করে:

  1. employee_schedules এ উত্পন্ন প্রতিটি শিফট সংশ্লিষ্ট ShiftTemplate এ উল্লিখিত নিয়ম মেনে চলে।
  2. প্রতিটি শিফটে নির্বাচিত প্রতিটি ইভেন্ট সংশ্লিষ্ট ShiftTemplate.Event এ উল্লেখিত নিয়ম মেনে চলে।
  3. একই ShiftTemplate থেকে উৎপন্ন শিফটের সেটে নিয়োগকৃত কর্মচারীর মোট সংখ্যা সেই টেমপ্লেটের maximum_employee_count বেশি নয়।
  4. নির্ধারিত কর্মচারীদের সেট প্রতিটি নির্দিষ্ট ব্যবধানে চাহিদা কভার করে।

ক্ষেত্র
solution_status

ShiftGenerationSolutionStatus

ফিরে আসা সমাধানের অবস্থা। যদি solution_status SOLVED না হয়, তাহলে employee_schedules খালি থাকবে।

employee_schedules[]

EmployeeSchedule

প্রতিটি সময়সূচীতে নির্ধারিত কর্মচারীর সংখ্যা সহ সমাধানকারী দ্বারা উত্পন্ন শিফটের সেট।

demand_coverage_violations[]

DemandCoverageViolation

প্রদত্ত employee_schedules নির্ধারিত employee_counts উপর ভিত্তি করে চাহিদা কভারেজ লঙ্ঘন। অনুরোধে প্রদত্ত employee_demands একত্রিত হয় -- যদি দুটি employee_demand ব্যবধান ওভারল্যাপ হয়, তাহলে চাহিদাটি ব্যবধানের ওভারল্যাপিং অংশের সাথে যোগ করা হয়।

সল্ভশিফ্ট শিডিউলিং রিকোয়েস্ট

কর্মশক্তি সময়সূচী API জন্য অনুরোধ. সর্বনিম্নভাবে, অনুরোধটি কর্মচারীদের একটি সেট, শিফটের একটি সেট, একজন কর্মচারী সম্পাদন করতে পারে এমন সম্ভাব্য ভূমিকাগুলির একটি সেট এবং কভারেজ প্রয়োজনীয়তার একটি সেট নির্দিষ্ট করে৷ কভারেজ প্রয়োজনীয়তা নির্দিষ্ট করে, একটি সময় উইন্ডোতে, প্রতিটি ভূমিকা পালন করার জন্য প্রয়োজনীয় কর্মচারীর সংখ্যা। একটি শিফটে নিযুক্ত কর্মচারীদেরও সেই শিফটের জন্য একটি (এবং শুধুমাত্র একটি) ভূমিকাতে নিয়োগ করা হয় এবং কর্মচারীদের দুটি ওভারল্যাপিং শিফটে নিয়োগ করা যায় না। কোন শিফট অ্যাসাইনমেন্ট বৈধ করে সে সম্পর্কে আরও বিশদ বিবরণের জন্য নীচের SolveShiftSchedulingResponse দেখুন।

সমস্যাটিকে আরও সীমাবদ্ধ করার জন্য প্রতিটি কর্মচারীর জন্য অতিরিক্ত সময় নির্ধারণের সীমাবদ্ধতা নির্দিষ্ট করা যেতে পারে। সমস্ত সময়সূচী সীমাবদ্ধতা এবং কভারেজ প্রয়োজনীয়তা একটি অগ্রাধিকার স্তর দেওয়া হয় (বাধ্যতামূলক, উচ্চ, মাঝারি, নিম্ন)। অগ্রাধিকার স্তর PRIORITY_MANDATORY সহ সমস্ত সীমাবদ্ধতা সমাধানকারীকে অবশ্যই সন্তুষ্ট করতে হবে৷ অন্য কোনো অগ্রাধিকারের সাথে সীমাবদ্ধতা সমাধানকারীর দ্বারা লঙ্ঘন করা যেতে পারে, তবে এই লঙ্ঘনগুলি অগ্রাধিকারের ক্রমে ন্যূনতম করা হয়। প্রতিটি সীমাবদ্ধতার জন্য অগ্রাধিকার স্তরগুলি কীভাবে পরিচালনা করা হয় সে সম্পর্কে আরও বিশদ বিবরণের জন্য Priority তালিকা দেখুন।

সমাধানকারী প্রদত্ত সীমাবদ্ধতার উপরে প্রতিটি কর্মচারীর জন্য ShiftPreference.preference মান সর্বাধিক করার চেষ্টা করবে। সমাধানকারী আরও পছন্দগুলি সন্তুষ্ট করার জন্য কোনও সীমাবদ্ধতা লঙ্ঘন করবে না; এটি শুধুমাত্র একটি সীমাবদ্ধতা লঙ্ঘন করবে যদি প্রদত্ত সীমাবদ্ধতার অধীনে সময় নির্ধারণ অ্যাসাইনমেন্ট অকার্যকর হয়।

সময় সম্পর্কে দ্রষ্টব্য: সমস্যার সমস্ত সময় তারিখ সময় বার্তা ব্যবহার করে নির্দিষ্ট করা হয়েছে৷ এই বার্তাটিতে একটি TimeZone ক্ষেত্র অন্তর্ভুক্ত রয়েছে। টাইমজোনটিকে UTC বলে ধরে নেওয়া হয় যদি না ব্যবহারকারীর দ্বারা অন্যথায় নির্দিষ্ট করা হয়। তারিখের সময় বার্তাগুলি শুধুমাত্র মিনিটে নির্দিষ্ট করা উচিত; সমস্ত সেকেন্ড এবং ন্যানো উপেক্ষা করা হয়।

ক্ষেত্র
request_id

string

সমস্যা বা অনুরোধ আইডি.

solve_parameters

SolveParameters

সমস্যার একটি একক সমাধান নিয়ন্ত্রণ করার পরামিতি।

employees[]

Employee

সমস্ত উপলব্ধ কর্মচারী নির্ধারিত হবে.

shifts[]

Shift

সময়সূচী গঠনের জন্য সমস্ত পরিবর্তন।

coverage_requirements[]

CoverageRequirement

সমগ্র পরিকল্পনা দিগন্তের জন্য কভারেজ প্রয়োজনীয়তা. এগুলি নির্দিষ্ট করে যে কর্মচারীদের প্রতিটি ভূমিকা পালন করতে হবে, বা একটি দক্ষতা থাকতে হবে, হয় একটি টাইম উইন্ডো বা শিফট আইডিগুলির একটি তালিকার সময়৷ সমস্ত কভারেজ প্রয়োজনীয়তা অবশ্যই টাইম উইন্ডো বা শিফট আইডিগুলির একটি তালিকার সাথে নির্দিষ্ট করতে হবে (কিন্তু উভয়ই নয়)৷ কভারেজ প্রয়োজনীয়তার জন্য সময় উইন্ডো (যদি দেওয়া হয়) প্রতিটি প্রদত্ত অবস্থানের জন্য ওভারল্যাপ করতে পারে না। এই প্রতিটি সীমাবদ্ধতার জন্য ডিফল্ট অগ্রাধিকার স্তর হল ভূমিকার প্রয়োজনীয়তার জন্য PRIORITY_MANDATORY এবং দক্ষতার প্রয়োজনীয়তার জন্য PRIORITY_LOW ৷ আরো বিস্তারিত জানার জন্য Priority enum দেখুন.

role_ids[]

string

কর্মশক্তি জুড়ে সম্ভাব্য সমস্ত ভূমিকার তালিকা। প্রতিটি কর্মচারীর কমপক্ষে একটি ভূমিকা থাকতে হবে যা তাদের একটি শিফটের জন্য নিযুক্ত করা যেতে পারে। একটি ভূমিকা একটি শিফটের সময় একটি নির্দিষ্ট কাজের অ্যাসাইনমেন্টকে বোঝায় (যেমন নিবন্ধিত নার্স, এক্সিকিউটিভ শেফ, ওয়েটার, ইত্যাদি)। যখন একজন কর্মচারীকে একটি শিফটে নিযুক্ত করা হয়, তখন তাদের একটি একক নির্দিষ্ট ভূমিকাতেও বরাদ্দ করা হয়।

skill_ids[]

string

কর্মশক্তি জুড়ে সমস্ত সম্ভাব্য দক্ষতার তালিকা। একটি দক্ষতা বলতে একজন কর্মচারীর যে কোন অতিরিক্ত যোগ্যতা থাকতে পারে যা একটি নির্দিষ্ট নিয়োগযোগ্য কাজের সাথে সম্পর্কিত নয় (যেমন সার্টিফিকেশন, কথ্য ভাষা, ইত্যাদি)। এই তালিকা খালি হতে পারে. যখন একজন কর্মচারীকে একটি শিফটে নিয়োগ করা হয়, তখন তাদের অবশ্যই সেই শিফটের জন্য প্রয়োজনীয় সমস্ত দক্ষতা পূরণ করতে হবে।

location_ids[]

string

সময়সূচীতে পরিবর্তনের সেটের জন্য সম্ভাব্য সমস্ত অবস্থানের তালিকা। এই তালিকা খালি হতে পারে. বিভিন্ন অবস্থান নির্দিষ্ট করা উপযোগী হতে পারে যখন, উদাহরণস্বরূপ, একজন নার্স ম্যানেজার একটি হাসপাতালে বিভিন্ন ইউনিট জুড়ে অনেক নার্সের সময়সূচী করতে চান বা, অন্য একটি উদাহরণের জন্য, একজন হোটেল ম্যানেজার একাধিক হোটেলে কর্মচারীদের সময়সূচী করতে চান।

budget_requirements[]

BudgetRequirement

সময়সূচী সমস্যার জন্য বাজেট স্পেসিফিকেশন। এই প্রতিটি প্রয়োজনীয়তার জন্য ডিফল্ট অগ্রাধিকার স্তর হল PRIORITY_LOW ৷ আরো বিস্তারিত জানার জন্য Priority enum দেখুন.

assignments_hint[]

ShiftAssignment

সময়সূচী সমস্যায় একটি অস্থায়ী সমাধান (ওরফে সমাধান ইঙ্গিত) হিসাবে ব্যবহার করার জন্য অ্যাসাইনমেন্টগুলি স্থানান্তর করুন। অ্যাসাইনমেন্টের ইঙ্গিতগুলি উপেক্ষা করা হয় যদি অ্যাসাইনমেন্টটি অ-অর্পণযোগ্য স্থানান্তর বা সময়সূচীর অনুরোধের বিরোধিতা করে।

সলভশিফ্ট শিডিউলিং রেসপন্স

কর্মশক্তি সময়সূচী API-এর জন্য প্রতিক্রিয়া। প্রতিটি প্রতিক্রিয়ার জন্য, shift_assignments খালি থাকবে যদি solution_status NOT_SOLVED_DEADLINE_EXCEEDED বা INFEASIBLE হয়। যদি solution_status ফেরত দেওয়া হয় তা OPTIMAL বা FEASIBLE , তাহলে একটি বৈধ শিফট অ্যাসাইনমেন্ট shift_assignments এ ফেরত দেওয়া হয়। একটি বৈধ শিফট অ্যাসাইনমেন্টের জন্য, নিম্নলিখিত বৈশিষ্ট্যগুলি ধারণ করে:

  1. অনুরোধে প্রদত্ত কর্মচারীদের সেটে প্রতিটি কর্মচারী আইডি থাকে।
  2. কর্মচারীকে বরাদ্দ করা প্রতিটি রোল আইডি প্রদত্ত কর্মচারীর জন্য রোল আইডিগুলির সেটে থাকে৷
  3. অনুরোধে প্রদত্ত শিফটের সেটে প্রতিটি শিফট আইডি থাকে।
  4. প্রতিটি শিফট আইডি প্রদত্ত কর্মচারীর জন্য অনির্ধারণযোগ্য শিফট আইডিগুলির একটি নয়৷
  5. একজন কর্মচারীকে কখনই দুটি ওভারল্যাপিং শিফটে নিয়োগ করা হবে না।
  6. প্রদত্ত সময়সূচীর জন্য, অগ্রাধিকার স্তরের PRIORITY_MANDATORY সহ কোনও বাধা বা অনুরোধ লঙ্ঘন করা হয়নি৷

ক্ষেত্র
request_id

string

অনুরোধের আইডি যেটির সাথে এই প্রতিক্রিয়া যুক্ত।

solution_status

SolutionStatus

ফিরে আসা সমাধানের অবস্থা। যদি সমাধানটি সম্ভাব্য বা অনুকূল না হয় তবে এই প্রোটোর অন্যান্য ক্ষেত্রগুলি খালি হতে পারে৷ যদি স্ট্যাটাসটি NOT_SOLVED_DEADLINE_EXCEEDED হয়, তাহলে একটি সম্ভাব্য সমাধান খুঁজে না পেয়ে বা একটি সম্ভাব্য সমাধান বিদ্যমান আছে কিনা তা নির্ধারণ না করেই সময়সীমা পৌঁছে গেছে। যদি অগ্রাধিকার স্তরের বাধ্যতামূলক সীমাবদ্ধতাগুলি সমস্ত সন্তুষ্ট না করা যায় তবে অনুরোধগুলি অকার্যকর হতে পারে৷

shift_assignments[]

ShiftAssignment

সমস্ত অ্যাসাইনমেন্টের তালিকা। প্রতিটি ShiftAssignment একজন কর্মচারীকে নির্দিষ্ট করে, তারা যে শিফটের জন্য বরাদ্দ করা হয়েছে এবং সেই শিফটের জন্য তাদের যে ভূমিকা অর্পণ করা হয়েছে।

status_message

string

solution_status সর্বোত্তম না হলে, এই ক্ষেত্রটিতে সমাধানকারী সম্পর্কে অতিরিক্ত তথ্য থাকতে পারে।