Method: mathopt.solveMathOptModel

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

HTTP অনুরোধ

POST https://optimization.googleapis.com/v1/mathopt:solveMathOptModel

URL gRPC ট্রান্সকোডিং সিনট্যাক্স ব্যবহার করে।

শরীরের অনুরোধ

অনুরোধের অংশে নিম্নলিখিত কাঠামো সহ ডেটা রয়েছে:

JSON প্রতিনিধিত্ব
{
  "solverType": enum (SolverTypeProto),
  "model": {
    object (ModelProto)
  },
  "parameters": {
    object (SolveParametersProto)
  },
  "modelParameters": {
    object (ModelSolveParametersProto)
  }
}
ক্ষেত্র
solverType

enum ( SolverTypeProto )

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

model

object ( ModelProto )

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

parameters

object ( SolveParametersProto )

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

modelParameters

object ( ModelSolveParametersProto )

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

প্রতিক্রিয়া শরীর

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

সফল হলে, প্রতিক্রিয়া বডিতে নিম্নলিখিত কাঠামোর সাথে ডেটা থাকে:

JSON প্রতিনিধিত্ব
{
  "result": {
    object (SolveResultProto)
  },
  "messages": [
    string
  ]
}
ক্ষেত্র
result

object ( SolveResultProto )

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

messages[]

string

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

SolverTypeProto

সমাধানকারী MathOpt দ্বারা সমর্থিত।

Enums
SOLVER_TYPE_UNSPECIFIED
SOLVER_TYPE_GSCIP

সলভিং কনস্ট্রেন্ট ইন্টিজার প্রোগ্রাম (SCIP) সমাধানকারী (তৃতীয় পক্ষ)।

LP, MIP, এবং nonconvex পূর্ণসংখ্যা দ্বিঘাত সমস্যা সমর্থন করে। যদিও LP-এর জন্য কোনো দ্বৈত ডেটা ফেরত দেওয়া হয় না। LP-এর জন্য GLOP পছন্দ করুন।

SOLVER_TYPE_GUROBI

গুরোবি সমাধানকারী (তৃতীয় পক্ষ)।

LP, MIP, এবং nonconvex পূর্ণসংখ্যা দ্বিঘাত সমস্যা সমর্থন করে। সাধারণত দ্রুততম বিকল্প, কিন্তু বিশেষ লাইসেন্স আছে.

SOLVER_TYPE_GLOP

Google এর Glop সমাধানকারী।

প্রাথমিক এবং দ্বৈত সিমপ্লেক্স পদ্ধতি সহ LP সমর্থন করে।

SOLVER_TYPE_CP_SAT

Google এর CP-SAT সমাধানকারী।

সমস্যাগুলিকে সমর্থন করে যেখানে সমস্ত ভেরিয়েবল পূর্ণসংখ্যা এবং আবদ্ধ (বা সমাধানের পরে বোঝানো হয়)। ক্রমাগত ভেরিয়েবলের সাথে সমস্যা পুনঃস্কেল এবং বিচ্ছিন্ন করার জন্য পরীক্ষামূলক সমর্থন।

SOLVER_TYPE_PDLP

Google এর PDLP সমাধানকারী।

LP এবং উত্তল তির্যক চতুর্মুখী উদ্দেশ্য সমর্থন করে। সিমপ্লেক্সের পরিবর্তে প্রথম অর্ডার পদ্ধতি ব্যবহার করে। অনেক বড় সমস্যা সমাধান করতে পারে।

SOLVER_TYPE_GLPK

GNU লিনিয়ার প্রোগ্রামিং কিট (GLPK) (তৃতীয় পক্ষ)।

MIP এবং LP সমর্থন করে।

থ্রেড-নিরাপত্তা: GLPK মেমরি বরাদ্দের জন্য থ্রেড-স্থানীয় স্টোরেজ ব্যবহার করে। ফলস্বরূপ সমাধানকারী দৃষ্টান্তগুলিকে একই থ্রেডে ধ্বংস করতে হবে যেভাবে সেগুলি তৈরি করা হয়েছে বা GLPK ক্র্যাশ হবে। সলভার তৈরি করতে ব্যবহৃত থ্রেডের চেয়ে অন্য থ্রেড থেকে Solver::Solve() কল করা ঠিক আছে বলে মনে হচ্ছে কিন্তু এটি GLPK দ্বারা নথিভুক্ত নয় এবং এড়িয়ে যাওয়া উচিত।

প্রিসলভারের সাথে একটি LP সমাধান করার সময়, একটি সমাধান (এবং অবাউন্ড রশ্মি) শুধুমাত্র তখনই ফেরত দেওয়া হয় যদি একটি সর্বোত্তম সমাধান পাওয়া যায়। অন্যথায় কিছুই ফেরত দেওয়া হয় না। বিস্তারিত জানার জন্য glpk-5.0.tar.gz থেকে উপলব্ধ glpk-5.0/doc/glpk.pdf পৃষ্ঠা #40 দেখুন।

SOLVER_TYPE_OSQP

অপারেটর স্প্লিটিং কোয়াড্রেটিক প্রোগ্রাম (OSQP) সমাধানকারী (তৃতীয় পক্ষ)।

রৈখিক সীমাবদ্ধতা এবং রৈখিক বা উত্তল দ্বিঘাত উদ্দেশ্যগুলির সাথে ক্রমাগত সমস্যাগুলিকে সমর্থন করে। একটি প্রথম অর্ডার পদ্ধতি ব্যবহার করে।

SOLVER_TYPE_ECOS

এমবেডেড কনিক সলভার (ECOS) (তৃতীয় পক্ষ)।

LP এবং SOCP সমস্যা সমর্থন করে। অভ্যন্তরীণ পয়েন্ট পদ্ধতি (বাধা) ব্যবহার করে।

SOLVER_TYPE_SCS

স্প্লিটিং কনিক সলভার (এসসিএস) (তৃতীয় পক্ষ)।

LP এবং SOCP সমস্যা সমর্থন করে। একটি প্রথম অর্ডার পদ্ধতি ব্যবহার করে।

SOLVER_TYPE_HIGHS

হাইজিএইচএস সমাধানকারী (তৃতীয় পক্ষ)।

LP এবং MIP সমস্যাগুলিকে সমর্থন করে (উত্তল QP গুলি বাস্তবায়িত নয়)।

SOLVER_TYPE_SANTORINI

একটি MIP সমাধানকারীর MathOpt এর রেফারেন্স বাস্তবায়ন।

ধীর/উৎপাদনের জন্য প্রস্তাবিত নয়। একটি LP সমাধানকারী নয় (কোন দ্বৈত তথ্য ফেরত দেওয়া হয়নি)।

মডেলপ্রোটো

একটি অপ্টিমাইজেশান সমস্যা। MathOpt সমর্থন করে: - ঐচ্ছিক সসীম সীমার সাথে ক্রমাগত এবং পূর্ণসংখ্যার সিদ্ধান্তের ভেরিয়েবল। - রৈখিক এবং চতুর্মুখী উদ্দেশ্য (একক বা একাধিক উদ্দেশ্য), হয় ন্যূনতম বা সর্বাধিক। - বিভিন্ন ধরনের সীমাবদ্ধতা, যার মধ্যে রয়েছে: * রৈখিক সীমাবদ্ধতা * চতুর্মুখী সীমাবদ্ধতা * দ্বিতীয় ক্রম শঙ্কু সীমাবদ্ধতা * যৌক্তিক সীমাবদ্ধতা > SOS1 এবং SOS2 সীমাবদ্ধতা > নির্দেশক সীমাবদ্ধতা

ডিফল্টরূপে, সীমাবদ্ধতাগুলি "আইডি-টু-ডেটা" মানচিত্রে উপস্থাপন করা হয়। যাইহোক, আমরা আরও দক্ষ "স্ট্রাকট-অফ-অ্যারে" বিন্যাসে রৈখিক সীমাবদ্ধতার প্রতিনিধিত্ব করি।

JSON প্রতিনিধিত্ব
{
  "name": string,
  "variables": {
    object (VariablesProto)
  },
  "objective": {
    object (ObjectiveProto)
  },
  "auxiliaryObjectives": {
    string: {
      object (ObjectiveProto)
    },
    ...
  },
  "linearConstraints": {
    object (LinearConstraintsProto)
  },
  "linearConstraintMatrix": {
    object (SparseDoubleMatrixProto)
  },
  "quadraticConstraints": {
    string: {
      object (QuadraticConstraintProto)
    },
    ...
  },
  "secondOrderConeConstraints": {
    string: {
      object (SecondOrderConeConstraintProto)
    },
    ...
  },
  "sos1Constraints": {
    string: {
      object (SosConstraintProto)
    },
    ...
  },
  "sos2Constraints": {
    string: {
      object (SosConstraintProto)
    },
    ...
  },
  "indicatorConstraints": {
    string: {
      object (IndicatorConstraintProto)
    },
    ...
  }
}
ক্ষেত্র
name

string

variables

object ( VariablesProto )

objective

object ( ObjectiveProto )

মডেলের প্রাথমিক উদ্দেশ্য।

auxiliaryObjectives

map (key: string ( int64 format), value: object ( ObjectiveProto ))

বহু-উদ্দেশ্য মডেলে ব্যবহারের জন্য সহায়ক উদ্দেশ্য।

মানচিত্র কী আইডি অবশ্যই [0, সর্বোচ্চ(int64)) এর মধ্যে থাকতে হবে। প্রতিটি অগ্রাধিকার, এবং প্রতিটি খালি নাম অবশ্যই অনন্য এবং প্রাথমিক objective থেকে আলাদা হতে হবে।

"key": value জোড়া। উদাহরণ: { "name": "wrench", "mass": "1.3kg", "count": "3" }

linearConstraints

object ( LinearConstraintsProto )

linearConstraintMatrix

object ( SparseDoubleMatrixProto )

রৈখিক সীমাবদ্ধতার জন্য পরিবর্তনশীল সহগ।

যদি এই সীমাবদ্ধতার সাথে জড়িত একটি ভেরিয়েবল মুছে ফেলা হয়, তবে এটিকে শূন্যে সেট করা হিসাবে বিবেচনা করা হয়।

প্রয়োজনীয়তা: * linearConstraintMatrix.row_ids হল linearConstraints.ids এর উপাদান। * linearConstraintMatrix.column_ids হল variables.ids এর উপাদান। * ম্যাট্রিক্স এন্ট্রি নির্দিষ্ট নয় শূন্য। * linearConstraintMatrix.values ​​সব সীমিত হতে হবে।

quadraticConstraints

map (key: string ( int64 format), value: object ( QuadraticConstraintProto ))

মডেলে চতুর্মুখী সীমাবদ্ধতা।

"key": value জোড়া। উদাহরণ: { "name": "wrench", "mass": "1.3kg", "count": "3" }

secondOrderConeConstraints

map (key: string ( int64 format), value: object ( SecondOrderConeConstraintProto ))

মডেলে দ্বিতীয় ক্রম শঙ্কু সীমাবদ্ধতা.

"key": value জোড়া। উদাহরণ: { "name": "wrench", "mass": "1.3kg", "count": "3" }

sos1Constraints

map (key: string ( int64 format), value: object ( SosConstraintProto ))

SOS1 মডেলের সীমাবদ্ধতা, যা সীমাবদ্ধ করে যে সর্বাধিক একটি expression অশূন্য হতে পারে। ঐচ্ছিক weights এন্ট্রি হল একটি বাস্তবায়নের বিবরণ যা সমাধানকারীর দ্বারা (আশা করি) আরও দ্রুত একত্রিত হতে ব্যবহৃত হয়। আরও বিস্তারিতভাবে, সমাধানকারীরা এই ওজনগুলি ব্যবহার করতে পারে (বা নাও করতে পারে) ব্রাঞ্চিং সিদ্ধান্তগুলি নির্বাচন করতে যা "ভারসাম্যপূর্ণ" শিশু নোড তৈরি করে।

"key": value জোড়া। উদাহরণ: { "name": "wrench", "mass": "1.3kg", "count": "3" }

sos2Constraints

map (key: string ( int64 format), value: object ( SosConstraintProto ))

SOS2 মডেলের সীমাবদ্ধতা, যা সীমাবদ্ধ করে যে expression সর্বাধিক দুটি এন্ট্রি অশূন্য হতে পারে এবং সেগুলি অবশ্যই তাদের ক্রমানুসারে সংলগ্ন হতে হবে। যদি কোন weights প্রদান করা না হয়, এই ক্রমটি expressions তালিকায় তাদের রৈখিক ক্রম; weights উপস্থাপন করা হলে, ক্রমবর্ধমান ক্রমে এই মানগুলির সাপেক্ষে অর্ডার নেওয়া হয়।

"key": value জোড়া। উদাহরণ: { "name": "wrench", "mass": "1.3kg", "count": "3" }

indicatorConstraints

map (key: string ( int64 format), value: object ( IndicatorConstraintProto ))

মডেলে নির্দেশক সীমাবদ্ধতা, যা প্রয়োগ করে যে, যদি একটি বাইনারি "সূচক পরিবর্তনশীল" একটিতে সেট করা হয়, তাহলে একটি "উহ্য সীমাবদ্ধতা" অবশ্যই ধরে রাখতে হবে।

"key": value জোড়া। উদাহরণ: { "name": "wrench", "mass": "1.3kg", "count": "3" }

ভেরিয়েবল প্রোটো

নীচে ব্যবহৃত হিসাবে, আমরা "#variables" = size(VariablesProto.ids) সংজ্ঞায়িত করি।

JSON প্রতিনিধিত্ব
{
  "ids": [
    string
  ],
  "lowerBounds": [
    number
  ],
  "upperBounds": [
    number
  ],
  "integers": [
    boolean
  ],
  "names": [
    string
  ]
}
ক্ষেত্র
ids[]

string ( int64 format)

অ-নেতিবাচক এবং কঠোরভাবে বৃদ্ধি করা আবশ্যক। সর্বোচ্চ(int64) মান ব্যবহার করা যাবে না।

lowerBounds[]

number

# ভেরিয়েবলের সমান দৈর্ঘ্য, [-inf, inf-এ মান থাকতে হবে।

upperBounds[]

number

# ভেরিয়েবলের সমান দৈর্ঘ্য থাকা উচিত, (-inf, inf] এর মান।

integers[]

boolean

# ভেরিয়েবলের সমান দৈর্ঘ্য থাকা উচিত। ক্রমাগত ভেরিয়েবলের জন্য মান মিথ্যা এবং পূর্ণসংখ্যা ভেরিয়েবলের জন্য সত্য।

names[]

string

যদি সেট করা না থাকে, তাহলে ধরে নেওয়া হবে সব খালি স্ট্রিং। অন্যথায়, # ভেরিয়েবলের সমান দৈর্ঘ্য থাকা উচিত।

সব খালি নাম আলাদা হতে হবে।

উদ্দেশ্যপ্রণোদিত

JSON প্রতিনিধিত্ব
{
  "maximize": boolean,
  "offset": number,
  "linearCoefficients": {
    object (SparseDoubleVectorProto)
  },
  "quadraticCoefficients": {
    object (SparseDoubleMatrixProto)
  },
  "name": string,
  "priority": string
}
ক্ষেত্র
maximize

boolean

মিথ্যা হল মিনিমাইজ, সত্য হল সর্বোচ্চ করা

offset

number

সসীম হতে হবে এবং NaN নয়।

linearCoefficients

object ( SparseDoubleVectorProto )

উদ্দেশ্যপ্রণোদিত শর্তাবলী যা সিদ্ধান্তের ভেরিয়েবলে রৈখিক।

প্রয়োজনীয়তা: * linearCoefficients.ids হল VariablesProto.ids এর উপাদান। * VariablesProto নির্দিষ্ট করা হয়নি শূন্যের সাথে সঙ্গতিপূর্ণ। * linearCoefficients.values ​​সব সীমিত হতে হবে। * linearCoefficients.values ​​শূন্য হতে পারে, কিন্তু এটি শুধু স্থান নষ্ট করে।

quadraticCoefficients

object ( SparseDoubleMatrixProto )

উদ্দেশ্যমূলক পদ যা সিদ্ধান্তের ভেরিয়েবলে দ্বিঘাতী।

SparseDoubleMatrixProto বার্তাগুলি ছাড়াও প্রয়োজনীয়তাগুলি: * quadraticCoefficients.row_ids এর প্রতিটি উপাদান এবং quadraticCoefficients.column_ids এর প্রতিটি উপাদান অবশ্যই VariablesProto.ids এর একটি উপাদান হতে হবে৷ * ম্যাট্রিক্স অবশ্যই উপরের ত্রিভুজাকার হতে হবে: প্রতিটি i, quadraticCoefficients.row_ids[i] <= quadraticCoefficients.column_ids[i] এর জন্য।

দ্রষ্টব্য: * স্পষ্টভাবে সংরক্ষিত নয় এমন শর্তগুলির শূন্য সহগ রয়েছে৷ * quadraticCoefficients.coefficient এর উপাদান শূন্য হতে পারে, কিন্তু এটি শুধু স্থান নষ্ট করে।

name

string

এই ক্ষেত্রে অভিভাবক বার্তাগুলির স্বতন্ত্রতার প্রয়োজনীয়তা থাকতে পারে; যেমন, ModelProto.objectives এবং AuxiliaryObjectivesUpdatesProto.new_objectives দেখুন।

priority

string ( int64 format)

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

SparseDoubleVectorProto

দ্বিগুণ ভেক্টরের একটি বিক্ষিপ্ত উপস্থাপনা।

JSON প্রতিনিধিত্ব
{
  "ids": [
    string
  ],
  "values": [
    number
  ]
}
ক্ষেত্র
ids[]

string ( int64 format)

সমস্ত উপাদান স্বতন্ত্র সহ (ক্রমবর্ধমান ক্রমানুসারে) বাছাই করা আবশ্যক।

values[]

number

আইডির সমান দৈর্ঘ্য থাকতে হবে। NaN নাও থাকতে পারে।

SparseDoubleMatrixProto

ডাবলের একটি ম্যাট্রিক্সের একটি বিক্ষিপ্ত উপস্থাপনা।

ম্যাট্রিক্সটি সারি আইডি, কলাম আইডি এবং সহগ এর তিনগুণ হিসাবে সংরক্ষণ করা হয়। এই তিনটি ভেক্টর অবশ্যই সমান দৈর্ঘ্যের হতে হবে। সকল i-এর জন্য, tuple (rowIds[i], columnIds[i]) আলাদা হওয়া উচিত। এন্ট্রি প্রধান ক্রম সারি হতে হবে.

JSON প্রতিনিধিত্ব
{
  "rowIds": [
    string
  ],
  "columnIds": [
    string
  ],
  "coefficients": [
    number
  ]
}
ক্ষেত্র
rowIds[]

string ( int64 format)

columnIds[]

string ( int64 format)

coefficients[]

number

NaN নাও থাকতে পারে।

Linear ConstraintsProto

নীচে ব্যবহৃত হিসাবে, আমরা "#লিনিয়ার সীমাবদ্ধতা" = আকার (LinearConstraintsProto.ids) সংজ্ঞায়িত করি।

JSON প্রতিনিধিত্ব
{
  "ids": [
    string
  ],
  "lowerBounds": [
    number
  ],
  "upperBounds": [
    number
  ],
  "names": [
    string
  ]
}
ক্ষেত্র
ids[]

string ( int64 format)

অ-নেতিবাচক এবং কঠোরভাবে বৃদ্ধি করা আবশ্যক। সর্বোচ্চ(int64) মান ব্যবহার করা যাবে না।

lowerBounds[]

number

# রৈখিক সীমাবদ্ধতার সমান দৈর্ঘ্য থাকা উচিত, [-inf, inf) এর মান।

upperBounds[]

number

# রৈখিক সীমাবদ্ধতার সমান দৈর্ঘ্য থাকা উচিত, (-inf, inf] এর মান।

names[]

string

যদি সেট করা না থাকে, তাহলে ধরে নেওয়া হবে সব খালি স্ট্রিং। অন্যথায়, #রৈখিক সীমাবদ্ধতার সমান দৈর্ঘ্য থাকা উচিত।

সব খালি নাম আলাদা হতে হবে।

Quadratic ConstraintProto

ফর্মের একটি একক দ্বিঘাত সীমাবদ্ধতা: lb <= sum{linearTerms} + sum{quadraticTerms} <= ub.

যদি এই সীমাবদ্ধতার সাথে জড়িত একটি ভেরিয়েবল মুছে ফেলা হয়, তবে এটিকে শূন্যে সেট করা হিসাবে বিবেচনা করা হয়।

JSON প্রতিনিধিত্ব
{
  "linearTerms": {
    object (SparseDoubleVectorProto)
  },
  "quadraticTerms": {
    object (SparseDoubleMatrixProto)
  },
  "lowerBound": number,
  "upperBound": number,
  "name": string
}
ক্ষেত্র
linearTerms

object ( SparseDoubleVectorProto )

সিদ্ধান্তের ভেরিয়েবলে রৈখিক শর্তাবলী।

SparseDoubleVectorProto বার্তাগুলির প্রয়োজনীয়তাগুলি ছাড়াও আমাদের প্রয়োজন: * linearTerms.ids হল VariablesProto.ids-এর উপাদান। * linearTerms.values ​​অবশ্যই সীমিত হতে হবে এবং না-NaN।

দ্রষ্টব্য: * বাদ দেওয়া পরিবর্তনশীল আইডিগুলির একটি সংশ্লিষ্ট সহগ শূন্য রয়েছে। * linearTerms.values ​​শূন্য হতে পারে, কিন্তু এটি শুধু স্থান নষ্ট করে।

quadraticTerms

object ( SparseDoubleMatrixProto )

সিদ্ধান্তের ভেরিয়েবলের মধ্যে দ্বিঘাতমূলক পদ।

SparseDoubleMatrixProto বার্তাগুলির প্রয়োজনীয়তাগুলি ছাড়াও আমাদের প্রয়োজন যে: * quadraticTerms.row_ids-এর প্রতিটি উপাদান এবং quadraticTerms.column_ids-এর প্রতিটি উপাদান অবশ্যই VariablesProto.ids-এর একটি উপাদান হতে হবে। * ম্যাট্রিক্স অবশ্যই উপরের ত্রিভুজাকার হতে হবে: প্রতিটি i, quadraticTerms.row_ids[i] <= quadraticTerms.column_ids[i] এর জন্য।

দ্রষ্টব্য: * স্পষ্টভাবে সংরক্ষিত নয় এমন শর্তগুলির শূন্য সহগ রয়েছে৷ * quadraticTerms.coefficient এর উপাদান শূন্য হতে পারে, কিন্তু এটি শুধু স্থান নষ্ট করে।

lowerBound

number

[-inf, inf-এ মান থাকতে হবে, এবং upperBound এর থেকে কম বা সমান হতে হবে।

upperBound

number

(-inf, inf]-এ মান থাকতে হবে এবং lowerBound এর থেকে বড় বা সমান হতে হবে।

name

string

এই ক্ষেত্রে অভিভাবক বার্তাগুলির স্বতন্ত্রতার প্রয়োজনীয়তা থাকতে পারে; যেমন, ModelProto.quadratic_constraints এবং QuadraticConstraintUpdatesProto.new_constraints দেখুন।

SecondOrderConeConstraintProto

ফর্মের একটি একক দ্বিতীয়-ক্রম শঙ্কু সীমাবদ্ধতা:

|| argumentsToNorm ||_2 <= upperBound ,

যেখানে upperBound এবং argumentsToNorm এর প্রতিটি উপাদান লিনিয়ার এক্সপ্রেশন।

যদি এই সীমাবদ্ধতার সাথে জড়িত একটি ভেরিয়েবল মুছে ফেলা হয়, তবে এটিকে শূন্যে সেট করা হিসাবে বিবেচনা করা হয়।

JSON প্রতিনিধিত্ব
{
  "upperBound": {
    object (LinearExpressionProto)
  },
  "argumentsToNorm": [
    {
      object (LinearExpressionProto)
    }
  ],
  "name": string
}
ক্ষেত্র
upperBound

object ( LinearExpressionProto )

argumentsToNorm[]

object ( LinearExpressionProto )

name

string

এই ক্ষেত্রে অভিভাবক বার্তাগুলির স্বতন্ত্রতার প্রয়োজনীয়তা থাকতে পারে; যেমন, ModelProto.second_order_cone_constraints এবং SecondOrderConeConstraintUpdatesProto.new_constraints দেখুন।

LinearExpressionProto

একটি রৈখিক অভিব্যক্তির একটি বিক্ষিপ্ত উপস্থাপনা (ভেরিয়েবলের একটি ওজনযুক্ত সমষ্টি, এবং একটি ধ্রুবক অফসেট)।

JSON প্রতিনিধিত্ব
{
  "ids": [
    string
  ],
  "coefficients": [
    number
  ],
  "offset": number
}
ক্ষেত্র
ids[]

string ( int64 format)

ভেরিয়েবলের আইডি। সমস্ত উপাদান স্বতন্ত্র সহ (ক্রমবর্ধমান ক্রমানুসারে) বাছাই করা আবশ্যক।

coefficients[]

number

আইডির সমান দৈর্ঘ্য থাকতে হবে। মান সীমিত হতে হবে NaN নাও হতে পারে।

offset

number

সসীম হতে হবে এবং NaN নাও হতে পারে।

SosConstraintProto

একটি একক SOS1 বা SOS2 সীমাবদ্ধতা উপস্থাপনের জন্য ডেটা।

যদি এই সীমাবদ্ধতার সাথে জড়িত একটি ভেরিয়েবল মুছে ফেলা হয়, তবে এটিকে শূন্যে সেট করা হিসাবে বিবেচনা করা হয়।

JSON প্রতিনিধিত্ব
{
  "expressions": [
    {
      object (LinearExpressionProto)
    }
  ],
  "weights": [
    number
  ],
  "name": string
}
ক্ষেত্র
expressions[]

object ( LinearExpressionProto )

SOS সীমাবদ্ধতা প্রয়োগ করার জন্য অভিব্যক্তি: * SOS1: সর্বাধিক একটি উপাদান একটি অশূন্য মান নেয়। * SOS2: সর্বাধিক দুটি উপাদান অশূন্য মান নেয়, এবং সেগুলি অবশ্যই পুনরাবৃত্তি ক্রমানুসারে সংলগ্ন হতে হবে।

weights[]

number

হয় খালি বা অভিব্যক্তির সমান দৈর্ঘ্যের। যদি খালি থাকে, ডিফল্ট ওজন 1, 2, ... উপস্থিত থাকলে, এন্ট্রিগুলি অবশ্যই অনন্য হতে হবে।

name

string

এই ক্ষেত্রে অভিভাবক বার্তাগুলির স্বতন্ত্রতার প্রয়োজনীয়তা থাকতে পারে; যেমন, ModelProto.sos1_constraints এবং SosConstraintUpdatesProto.new_constraints দেখুন।

IndicatorConstraintProto

ফর্মের একটি একক সূচক সীমাবদ্ধতা উপস্থাপনের জন্য ডেটা: পরিবর্তনশীল(সূচক আইডি) = (অ্যাক্টিভেটঅনজিরো? 0 : 1) ⇒ নিম্নবাউন্ড <= অভিব্যক্তি <= উপরেরবাউন্ড।

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

JSON প্রতিনিধিত্ব
{
  "activateOnZero": boolean,
  "expression": {
    object (SparseDoubleVectorProto)
  },
  "lowerBound": number,
  "upperBound": number,
  "name": string,
  "indicatorId": string
}
ক্ষেত্র
activateOnZero

boolean

যদি সত্য হয়, তাহলে যদি নির্দেশক ভেরিয়েবলটি 0 মান নেয়, তাহলে অন্তর্নিহিত সীমাবদ্ধতা অবশ্যই ধরে রাখতে হবে। অন্যথায়, যদি সূচক ভেরিয়েবলটি মান 1 নেয়, তাহলে অন্তর্নিহিত সীমাবদ্ধতা অবশ্যই ধরে রাখতে হবে।

expression

object ( SparseDoubleVectorProto )

ধারণকৃত মডেলের ক্ষেত্রে একটি বৈধ লিনিয়ার এক্সপ্রেশন হতে হবে: * SparseDoubleVectorProto তে বর্ণিত সমস্ত শর্ত , * expression.values এর সমস্ত উপাদান অবশ্যই সসীম হতে হবে, * expression.ids হল VariablesProto.ids এর একটি উপসেট।

lowerBound

number

মান থাকতে হবে [-inf, inf); NaN হতে পারে না।

upperBound

number

(-inf, inf]-এ মান থাকতে হবে; NaN হতে পারে না।

name

string

এই ক্ষেত্রে অভিভাবক বার্তাগুলির স্বতন্ত্রতার প্রয়োজনীয়তা থাকতে পারে; যেমন, ModelProto.indicator_constraints এবং IndicatorConstraintUpdatesProto.new_constraints দেখুন।

indicatorId

string ( int64 format)

একটি বাইনারি ভেরিয়েবলের সাথে সম্পর্কিত একটি আইডি বা সেট করা নেই৷ সেট না থাকলে, নির্দেশক সীমাবদ্ধতা উপেক্ষা করা হয়। সেট করা হলে, আমাদের প্রয়োজন: * VariablesProto.integers[indicatorId] = সত্য, * VariablesProto.lower_bounds[indicatorId] >= 0, * VariablesProto.upper_bounds[indicatorId] <= 1. এই শর্তগুলি MathOpt দ্বারা বৈধ নয়, কিন্তু যদি না হয় সন্তুষ্ট হলে সমাধানকারীকে সমাধান করার সময় একটি ত্রুটি ফিরিয়ে দেবে।

সমাধান প্যারামিটার প্রোটো

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

সমস্ত সমাধানকারীর জন্য সাধারণ উভয় প্যারামিটার রয়েছে যেমন সময়সীমা, এবং একটি নির্দিষ্ট সমাধানকারীর জন্য পরামিতি, যেমন gscip। যদি একটি মান সাধারণ এবং সমাধানকারী নির্দিষ্ট ক্ষেত্রে সেট করা হয়, তাহলে সমাধানকারী নির্দিষ্ট সেটিং ব্যবহার করা হয়।

সাধারণ পরামিতিগুলি যেগুলি ঐচ্ছিক এবং আনসেট বা অনির্দিষ্ট মান সহ একটি enum নির্দেশ করে যে সমাধানকারী ডিফল্ট ব্যবহার করা হয়েছে।

ব্যবহৃত একটি ছাড়া অন্য সমাধানকারীদের জন্য সমাধানকারী নির্দিষ্ট পরামিতি উপেক্ষা করা হয়।

মডেলের উপর নির্ভর করে এমন প্যারামিটার (যেমন প্রতিটি ভেরিয়েবলের জন্য ব্রাঞ্চিং অগ্রাধিকার সেট করা হয়) ModelSolveParametersProto এ পাস করা হয়।

JSON প্রতিনিধিত্ব
{
  "timeLimit": string,
  "enableOutput": boolean,
  "lpAlgorithm": enum (LPAlgorithmProto),
  "presolve": enum (EmphasisProto),
  "cuts": enum (EmphasisProto),
  "heuristics": enum (EmphasisProto),
  "scaling": enum (EmphasisProto),
  "iterationLimit": string,
  "nodeLimit": string,
  "cutoffLimit": number,
  "objectiveLimit": number,
  "bestBoundLimit": number,
  "solutionLimit": integer,
  "threads": integer,
  "randomSeed": integer,
  "absoluteGapTolerance": number,
  "relativeGapTolerance": number,
  "solutionPoolSize": integer
}
ক্ষেত্র
timeLimit

string ( Duration format)

একটি সমাধানকারীকে সমস্যার জন্য সর্বাধিক সময় ব্যয় করা উচিত (বা সেট না থাকলে অসীম)।

এই মান একটি কঠিন সীমা নয়, সমাধান সময় সামান্য এই মান অতিক্রম করতে পারে. এই প্যারামিটারটি সর্বদা অন্তর্নিহিত সমাধানকারীকে প্রেরণ করা হয়, সমাধানকারী ডিফল্ট ব্যবহার করা হয় না।

নয়টি পর্যন্ত ভগ্নাংশের সংখ্যা সহ সেকেন্ডে একটি সময়কাল, ' s ' দিয়ে শেষ হয়৷ উদাহরণ: "3.5s"

enableOutput

boolean

সমাধানকারী বাস্তবায়ন ট্রেস মুদ্রণ সক্ষম করে। এই ট্রেসগুলির অবস্থান সমাধানকারীর উপর নির্ভর করে। SCIP এবং Gurobi-এর জন্য এটি হবে আদর্শ আউটপুট স্ট্রীম। Glop এবং CP-SAT-এর জন্য এটি LOG(INFO) করবে।

মনে রাখবেন যে সমাধানকারী যদি বার্তা কলব্যাক সমর্থন করে এবং ব্যবহারকারী এটির জন্য একটি কলব্যাক নিবন্ধন করে, তাহলে এই পরামিতি মান উপেক্ষা করা হয় এবং কোন ট্রেস প্রিন্ট করা হয় না।

lpAlgorithm

enum ( LPAlgorithmProto )

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

যে সমস্যাগুলো লিনিয়ার প্রোগ্রাম নয় কিন্তু যেখানে লিনিয়ার প্রোগ্রামিং একটি সাবরুটিন, সমাধানকারীরা এই মান ব্যবহার করতে পারে। যেমন MIP সমাধানকারীরা সাধারণত এটি শুধুমাত্র রুট LP সমাধানের জন্য ব্যবহার করবে (এবং অন্যথায় ডুয়াল সিমপ্লেক্স ব্যবহার করুন)।

presolve

enum ( EmphasisProto )

প্রধান অ্যালগরিদম শুরু করার আগে সমস্যাটি সরল করার প্রচেষ্টা, অথবা EMPHASIS_UNSPECIFIED হলে সমাধানকারী ডিফল্ট প্রচেষ্টা স্তর।

cuts

enum ( EmphasisProto )

একটি শক্তিশালী LP শিথিলকরণ (শুধুমাত্র এমআইপি) পাওয়ার প্রচেষ্টা, অথবা EMPHASIS_UNSPECIFIED হলে সমাধানকারী ডিফল্ট প্রচেষ্টার স্তর।

দ্রষ্টব্য: কাটগুলি নিষ্ক্রিয় করা MIP_NODE-এ কাট যোগ করার সুযোগ থেকে কলব্যাকগুলিকে আটকাতে পারে, এই আচরণটি সমাধানকারী নির্দিষ্ট৷

heuristics

enum ( EmphasisProto )

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

scaling

enum ( EmphasisProto )

সংখ্যাসূচক স্থায়িত্ব উন্নত করতে সমস্যা পুনঃস্কেল করার প্রচেষ্টা, অথবা EMPHASIS_UNSPECIFIED হলে সমাধানকারী ডিফল্ট প্রচেষ্টা স্তর।

iterationLimit

string ( int64 format)

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

সাধারণত এলপি, কিউপি এবং এমআইপি সমাধানকারীদের দ্বারা সমর্থিত, তবে এমআইপি সমাধানকারীদের জন্য নোডলিমিটও দেখুন।

nodeLimit

string ( int64 format)

গণনামূলক অনুসন্ধানে সমাধান করা উপ-সমস্যাগুলির সংখ্যার উপর সীমাবদ্ধতা (যেমন শাখা এবং আবদ্ধ)। অনেক সমাধানকারীর জন্য এটি গণনাকে সীমাবদ্ধ করতে ব্যবহার করা যেতে পারে (আরও কনফিগারেশন প্রয়োজন হতে পারে, যেমন একটি থ্রেড)।

সাধারণত MIP সমাধানকারীদের জন্য, পুনরাবৃত্তিসীমাও দেখুন।

cutoffLimit

number

সমাধানকারীটি তাড়াতাড়ি বন্ধ হয়ে যায় যদি এটি প্রমাণ করতে পারে যে অন্তত কাটঅফের মতো কোনও প্রাথমিক সমাধান নেই।

প্রাথমিক স্টপে, সমাধানকারী সমাপ্তির কারণ NO_SOLUTION_FOUND এবং সীমা CUTOFF সহ ফেরত দেয় এবং কোনও অতিরিক্ত সমাধান তথ্য দেওয়ার প্রয়োজন হয় না। কোনো প্রাথমিক স্টপ না থাকলে রিটার্ন মানের উপর কোন প্রভাব নেই।

এটা বাঞ্ছনীয় যে আপনি একটি সহনশীলতা ব্যবহার করুন যদি আপনি সঠিকভাবে কাটঅফ ফেরত দেওয়ার সমান উদ্দেশ্য সহ সমাধান চান।

আরও বিশদ বিবরণ এবং bestBoundLimit-এর সাথে তুলনার জন্য ব্যবহারকারীর নির্দেশিকা দেখুন।

objectiveLimit

number

সমাধানকারী শীঘ্রই থেমে যায় যত তাড়াতাড়ি এটি একটি সমাধান খুঁজে পেতে অন্তত এই ভাল, সমাপ্তি কারণ সম্ভাব্য এবং সীমিত উদ্দেশ্য সঙ্গে.

bestBoundLimit

number

সমাধানকারীটি যত তাড়াতাড়ি তা প্রমাণ করে যত তাড়াতাড়ি সম্ভব বন্ধ হয়ে যায়, অন্তত এতটাই ভাল, সমাপ্তির কারণ FEASIBLE বা NO_SOLUTION_FOUND এবং সীমিত উদ্দেশ্য।

আরো বিস্তারিত জানার জন্য ব্যবহারকারীর নির্দেশিকা দেখুন এবং কাটঅফ লিমিটের সাথে তুলনা করুন।

solutionLimit

integer

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

সমাধানকারীরা সাধারণত সমাধান সীমার চেয়ে বেশি সমাধান ফেরত দেয় না, তবে এটি MathOpt দ্বারা প্রয়োগ করা হয় না, এছাড়াও b/214041169 দেখুন৷

বর্তমানে Gurobi এবং SCIP এর জন্য এবং শুধুমাত্র 1 মান সহ CP-SAT-এর জন্য সমর্থিত।

threads

integer

যদি সেট করা হয় তবে এটি অবশ্যই >= 1 হতে হবে।

randomSeed

integer

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

যদিও সমস্ত সমাধানকারীর বীজের ধারণা রয়েছে, তবে মনে রাখবেন যে বৈধ মানগুলি প্রকৃত সমাধানকারীর উপর নির্ভর করে। - গুরোবি: [0:GRB_MAXINT] (যা গুরোবি 9.0 অনুযায়ী 2x10^9)। - GSCIP: [0:2147483647] (যা MAX_INT বা kint32max বা 2^31-1)। - GLOP: [0:2147483647] (উপরের মতই) সমস্ত ক্ষেত্রে, সমাধানকারী একটি মান পাবে: MAX(0, MIN(MAX_VALID_VALUE_FOR_SOLVER, randomSeed))।

absoluteGapTolerance

number

এমআইপি সমাধানকারীদের জন্য একটি পরম সর্বোত্তম সহনশীলতা (প্রাথমিকভাবে)।

পরম GAP হল পার্থক্যের পরম মান: * সর্বোত্তম সম্ভাব্য সমাধানের বস্তুনিষ্ঠ মান, * অনুসন্ধান দ্বারা উত্পাদিত দ্বৈত আবদ্ধ। পরম GAP সর্বোচ্চ পরম GapTolerance (যখন সেট করা হয়) হলে সমাধানকারী থামতে পারে এবং TERMINATION_REASON_OPTIMAL ফেরত দিতে পারে।

সেট করা থাকলে অবশ্যই >= 0 হতে হবে।

এছাড়াও আপেক্ষিকGapTolerance দেখুন।

relativeGapTolerance

number

MIP সমাধানকারীদের জন্য একটি আপেক্ষিক সর্বোত্তমতা সহনশীলতা (প্রাথমিকভাবে)।

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

আপেক্ষিক GAP সর্বাধিক আপেক্ষিকGapTolerance (যখন সেট করা হয়) হলে সমাধানকারীটি থামতে পারে এবং TERMINATION_REASON_OPTIMAL ফেরত দিতে পারে।

সেট করা থাকলে অবশ্যই >= 0 হতে হবে।

এছাড়াও absoluteGapTolerance দেখুন।

solutionPoolSize

integer

অনুসন্ধান করার সময় solutionPoolSize সমাধান পর্যন্ত বজায় রাখুন। সমাধান পুলের সাধারণত দুটি কাজ থাকে: (1) সমাধানকারীদের জন্য যেগুলি একাধিক সমাধান ফেরত দিতে পারে, এটি কতগুলি সমাধান ফেরত দেওয়া হবে তা সীমাবদ্ধ করে। (2) কিছু সমাধানকারী সমাধান পুল থেকে সমাধান ব্যবহার করে হিউরিস্টিক চালাতে পারে, তাই এই মান পরিবর্তন করা অ্যালগরিদমের পথকে প্রভাবিত করতে পারে। সমাধান পুল পূরণ করতে সলভারকে বাধ্য করতে, যেমন n সেরা সমাধানগুলির সাথে, আরও, সমাধানকারী নির্দিষ্ট কনফিগারেশন প্রয়োজন।

LPAlgorithmProto

লিনিয়ার প্রোগ্রাম সমাধানের জন্য একটি অ্যালগরিদম নির্বাচন করে।

Enums
LP_ALGORITHM_UNSPECIFIED
LP_ALGORITHM_PRIMAL_SIMPLEX (প্রাথমিক) সিমপ্লেক্স পদ্ধতি। সাধারণত আদি ও দ্বৈত সমাধান, আদি/দ্বৈত অসীম সমস্যায় আদি/দ্বৈত রশ্মি এবং একটি ভিত্তি প্রদান করতে পারে।
LP_ALGORITHM_DUAL_SIMPLEX ডুয়েল সিমপ্লেক্স পদ্ধতি। সাধারণত আদি ও দ্বৈত সমাধান, আদি/দ্বৈত অসীম সমস্যায় আদি/দ্বৈত রশ্মি এবং একটি ভিত্তি প্রদান করতে পারে।
LP_ALGORITHM_BARRIER বাধা পদ্ধতি, সাধারণভাবে একটি অভ্যন্তরীণ পয়েন্ট পদ্ধতি (IPM) নামেও পরিচিত। সাধারণত প্রাথমিক এবং দ্বৈত উভয় সমাধান দিতে পারে। কিছু বাস্তবায়ন সীমাহীন/অসম্ভাব্য সমস্যার উপর রশ্মিও তৈরি করতে পারে। একটি ভিত্তি দেওয়া হয় না যদি না অন্তর্নিহিত সমাধানকারী "ক্রসওভার" করে এবং সিমপ্লেক্স দিয়ে শেষ না করে।
LP_ALGORITHM_FIRST_ORDER একটি প্রথম-ক্রম পদ্ধতির উপর ভিত্তি করে একটি অ্যালগরিদম। এগুলি সাধারণত প্রাথমিক এবং দ্বৈত উভয় সমাধান এবং সম্ভাব্য প্রাথমিক এবং/অথবা দ্বৈত অসম্ভাব্যতার শংসাপত্র তৈরি করবে। ফার্স্ট-অর্ডার পদ্ধতিগুলি সাধারণত কম নির্ভুলতার সাথে সমাধান প্রদান করে, তাই ব্যবহারকারীদের সমাধানের মানের পরামিতি (যেমন, সহনশীলতা) সেট করার এবং সমাধানগুলিকে যাচাই করার যত্ন নেওয়া উচিত।

EmphasisProto

সমাধান করার সময় একটি ঐচ্ছিক কাজের জন্য প্রচেষ্টা স্তর প্রয়োগ করা হয় (ব্যবহারের জন্য SolveParametersProto দেখুন)।

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

Enums
EMPHASIS_UNSPECIFIED
EMPHASIS_OFF
EMPHASIS_LOW
EMPHASIS_MEDIUM
EMPHASIS_HIGH
EMPHASIS_VERY_HIGH

মডেলসল্ভ প্যারামিটার প্রোটো

JSON প্রতিনিধিত্ব
{
  "variableValuesFilter": {
    object (SparseVectorFilterProto)
  },
  "dualValuesFilter": {
    object (SparseVectorFilterProto)
  },
  "reducedCostsFilter": {
    object (SparseVectorFilterProto)
  },
  "initialBasis": {
    object (BasisProto)
  },
  "solutionHints": [
    {
      object (SolutionHintProto)
    }
  ],
  "branchingPriorities": {
    object (SparseInt32VectorProto)
  }
}
ক্ষেত্র
variableValuesFilter

object ( SparseVectorFilterProto )

PrimalSolutionProto এবং PrimalRayProto (PrimalSolutionProto.variable_values, PrimalRayProto.variable_values) ভেরিয়েবল দ্বারা চাবিকৃত সমস্ত রিটার্ন করা স্পার্স কন্টেইনারে ফিল্টার প্রয়োগ করা হয়।

প্রয়োজনীয়তা: * filteredIds হল VariablesProto.ids এর উপাদান।

dualValuesFilter

object ( SparseVectorFilterProto )

ফিল্টার যা DualSolutionProto এবং DualRay (DualSolutionProto.dual_values, DualRay.dual_values) তে রৈখিক সীমাবদ্ধতা দ্বারা চাবিকৃত সমস্ত প্রত্যাবর্তিত স্পার্স পাত্রে প্রয়োগ করা হয়।

প্রয়োজনীয়তা: * filteredIds হল LinearConstraints.ids এর উপাদান।

reducedCostsFilter

object ( SparseVectorFilterProto )

ফিল্টার যা DualSolutionProto এবং DualRay (DualSolutionProto.reduced_costs, DualRay.reduced_costs) ভেরিয়েবল দ্বারা চাবিকৃত সমস্ত রিটার্ন করা স্পার্স কন্টেনারে প্রয়োগ করা হয়।

প্রয়োজনীয়তা: * filteredIds হল VariablesProto.ids এর উপাদান।

initialBasis

object ( BasisProto )

ওয়ার্ম স্টার্টিং সিমপ্লেক্স এলপি সলভারের জন্য ঐচ্ছিক প্রাথমিক ভিত্তি। সেট করা হলে, বর্তমান ModelSummary জন্য validators/solution_validator.hValidateBasis অনুযায়ী এটি বৈধ হবে বলে আশা করা হচ্ছে।

solutionHints[]

object ( SolutionHintProto )

ঐচ্ছিক সমাধান ইঙ্গিত. অন্তর্নিহিত সমাধানকারী শুধুমাত্র একটি ইঙ্গিত গ্রহণ করলে, প্রথম ইঙ্গিতটি ব্যবহার করা হয়।

branchingPriorities

object ( SparseInt32VectorProto )

ঐচ্ছিক শাখা অগ্রাধিকার. উচ্চতর মান সহ ভেরিয়েবলগুলি প্রথমে ব্রাঞ্চ করা হবে। যে ভেরিয়েবলগুলির জন্য অগ্রাধিকার সেট করা হয় না সেগুলি সমাধানকারীর ডিফল্ট অগ্রাধিকার পায় (সাধারণত শূন্য)।

প্রয়োজনীয়তা: * branchingPriorities.values ​​সীমিত হতে হবে। * branchingPriorities.ids অবশ্যই VariablesProto.ids এর উপাদান হতে হবে।

SparseVectorFilterProto

এই বার্তাটি একটি SparseXxxxVector এর নির্দিষ্ট অংশ জিজ্ঞাসা/সেট করার অনুমতি দেয়। ডিফল্ট আচরণ কিছু ফিল্টার আউট না. একটি সাধারণ ব্যবহার হল সমাধানের শুধুমাত্র অংশগুলি জিজ্ঞাসা করা (শুধুমাত্র অ-শূন্য মান, এবং/অথবা পরিবর্তনশীল মানগুলির একটি হাতে বাছাই করা সেট)।

JSON প্রতিনিধিত্ব
{
  "skipZeroValues": boolean,
  "filterByIds": boolean,
  "filteredIds": [
    string
  ]
}
ক্ষেত্র
skipZeroValues

boolean

SparseBoolVectorProto এর জন্য "শূন্য" false

filterByIds

boolean

সত্য হলে, ফিল্টার করা আইডিতে তালিকাভুক্ত আইডিগুলির সাথে সংশ্লিষ্ট মানগুলিই ফেরত দিন।

filteredIds[]

string ( int64 format)

filterByIds সত্য হলে ব্যবহার করার জন্য আইডিগুলির তালিকা৷ filterByIds মিথ্যা হলে খালি হতে হবে। দ্রষ্টব্য: যদি এটি খালি হয়, এবং filterByIds সত্য হয়, আপনি বলছেন যে আপনি ফলাফলে কোনো তথ্য চান না।

বেসিসপ্রোটো

একটি লিনিয়ার প্রোগ্রামের সমাধানের জন্য একটি সমন্বিত বৈশিষ্ট্য।

রৈখিক প্রোগ্রামগুলি সমাধানের জন্য সিমপ্লেক্স পদ্ধতি সর্বদা একটি "মৌলিক সম্ভাব্য সমাধান" প্রদান করে যা একটি বেসিস দ্বারা সমন্বিতভাবে বর্ণনা করা যেতে পারে। একটি ভিত্তি প্রতিটি পরিবর্তনশীল এবং রৈখিক সীমাবদ্ধতার জন্য একটি BasisStatusProto বরাদ্দ করে।

যেমন একটি স্ট্যান্ডার্ড ফর্ম LP বিবেচনা করুন: min c * x st A * x = bx >= 0 যাতে সীমাবদ্ধতার চেয়ে বেশি ভেরিয়েবল এবং সম্পূর্ণ সারি র‍্যাঙ্ক A সহ।

ধরুন n হল চলকের সংখ্যা এবং m হল রৈখিক সীমাবদ্ধতার সংখ্যা। এই সমস্যার জন্য একটি বৈধ ভিত্তি নিম্নরূপ তৈরি করা যেতে পারে: * সমস্ত সীমাবদ্ধতার ভিত্তি স্থিতি থাকবে। * m ভেরিয়েবল বাছাই করুন যাতে A এর কলামগুলি রৈখিকভাবে স্বাধীন হয় এবং বেসিক অবস্থা নির্ধারণ করে। * অবশিষ্ট n - m ভেরিয়েবলের জন্য AT_LOWER স্থিতি বরাদ্দ করুন।

এই ভিত্তির জন্য মৌলিক সমাধান হল A * x = b এর অনন্য সমাধান যাতে AT_LOWER স্ট্যাটাস সহ সমস্ত ভেরিয়েবল তাদের নিম্ন সীমাতে (সমস্ত শূন্য) স্থির থাকে। ফলস্বরূপ সমাধানটিকে একটি মৌলিক সম্ভাব্য সমাধান বলা হয় যদি এটি x >= 0 কেও সন্তুষ্ট করে।

JSON প্রতিনিধিত্ব
{
  "constraintStatus": {
    object (SparseBasisStatusVector)
  },
  "variableStatus": {
    object (SparseBasisStatusVector)
  },
  "basicDualFeasibility": enum (SolutionStatusProto)
}
ক্ষেত্র
constraintStatus

object ( SparseBasisStatusVector )

সীমাবদ্ধতার ভিত্তিতে অবস্থা।

প্রয়োজনীয়তা: * constraintStatus.ids সমান LinearConstraints.ids।

variableStatus

object ( SparseBasisStatusVector )

পরিবর্তনশীল ভিত্তি অবস্থা।

প্রয়োজনীয়তা: * constraintStatus.ids হল VariablesProto.ids এর সমান।

basicDualFeasibility

enum ( SolutionStatusProto )

এটি একটি উন্নত বৈশিষ্ট্য যা ম্যাথঅপ্ট দ্বারা সাবঅপ্টিমাল LP সমাধানগুলির সম্ভাব্যতা চিহ্নিত করতে ব্যবহৃত হয় (অনুকূল সমাধানগুলির সর্বদা SOLUTION_STATUS_FEASIBLE স্থিতি থাকবে)৷

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

আপনি যদি ModelSolveParametersProto.initial_basis এর মাধ্যমে একটি প্রারম্ভিক ভিত্তি প্রদান করেন, তাহলে এই মানটিকে উপেক্ষা করা হবে। এটি শুধুমাত্র SolutionProto.basis দ্বারা প্রত্যাবর্তিত ভিত্তির জন্য প্রাসঙ্গিক।

SparseBasisStatusVector

ভিত্তি অবস্থার একটি ভেক্টরের একটি বিক্ষিপ্ত উপস্থাপনা।

JSON প্রতিনিধিত্ব
{
  "ids": [
    string
  ],
  "values": [
    enum (BasisStatusProto)
  ]
}
ক্ষেত্র
ids[]

string ( int64 format)

সমস্ত উপাদান স্বতন্ত্র সহ (ক্রমবর্ধমান ক্রমানুসারে) বাছাই করা আবশ্যক।

values[]

enum ( BasisStatusProto )

আইডির সমান দৈর্ঘ্য থাকতে হবে।

বেসিস স্ট্যাটাস প্রোটো

LP ভিত্তিতে একটি পরিবর্তনশীল/সীমাবদ্ধতার স্থিতি।

Enums
BASIS_STATUS_UNSPECIFIED গার্ড মান কোন অবস্থা প্রতিনিধিত্ব করে.
BASIS_STATUS_FREE পরিবর্তনশীল/সীমাবদ্ধতা বিনামূল্যে (এর কোন সীমাবদ্ধ সীমা নেই)।
BASIS_STATUS_AT_LOWER_BOUND পরিবর্তনশীল/সীমাবদ্ধতা তার নিম্ন সীমানায় (যা অবশ্যই সসীম হতে হবে)।
BASIS_STATUS_AT_UPPER_BOUND পরিবর্তনশীল/সীমাবদ্ধতা তার উপরের সীমানায় (যা অবশ্যই সসীম হতে হবে)।
BASIS_STATUS_FIXED_VALUE পরিবর্তনশীল/সীমাবদ্ধতার অভিন্ন সসীম নিম্ন এবং উপরের সীমা রয়েছে।
BASIS_STATUS_BASIC পরিবর্তনশীল/সীমাবদ্ধতা মৌলিক।

সমাধান স্ট্যাটাসপ্রোটো

সমাধানকারীর দাবি অনুযায়ী প্রাথমিক বা দ্বৈত সমাধানের সম্ভাব্যতা।

Enums
SOLUTION_STATUS_UNSPECIFIED গার্ড মান কোন অবস্থা প্রতিনিধিত্ব করে.
SOLUTION_STATUS_UNDETERMINED সমাধানকারী একটি সম্ভাব্যতা স্থিতি দাবি করে না।
SOLUTION_STATUS_FEASIBLE সমাধানকারী দাবি করে যে সমাধানটি সম্ভব।
SOLUTION_STATUS_INFEASIBLE সমাধানকারী দাবি করে যে সমাধানটি অসম্ভব।

সমাধান হিন্টপ্রোটো

সমাধানকারীর জন্য একটি প্রস্তাবিত শুরু সমাধান।

এমআইপি সমাধানকারীরা সাধারণত শুধুমাত্র প্রাথমিক তথ্য চায় ( variableValues ), যখন এলপি সমাধানকারীরা প্রাথমিক এবং দ্বৈত উভয় তথ্য ( dualValues ) চায়।

অনেক এমআইপি সমাধানকারী এর সাথে কাজ করতে পারে: (1) আংশিক সমাধান যা সমস্ত ভেরিয়েবল নির্দিষ্ট করে না বা (2) অসম্ভাব্য সমাধান। এই ক্ষেত্রে, সমাধানকারীরা সাধারণত ইঙ্গিতটি সম্পূর্ণ/শুদ্ধ করার জন্য একটি সাব-এমআইপি সমাধান করে।

কীভাবে ইঙ্গিতটি সমাধানকারী দ্বারা ব্যবহৃত হয়, যদি আদৌ তা সমাধানকারী, সমস্যার ধরন এবং ব্যবহৃত অ্যালগরিদমের উপর অত্যন্ত নির্ভরশীল। আপনার ইঙ্গিতটির প্রভাব রয়েছে তা নিশ্চিত করার সবচেয়ে নির্ভরযোগ্য উপায় হল অন্তর্নিহিত সমাধানকারী লগগুলি ইঙ্গিত সহ এবং ছাড়াই পড়া।

সিমপ্লেক্স-ভিত্তিক LP সমাধানকারীরা সাধারণত একটি সমাধান ইঙ্গিতের জন্য প্রাথমিক ভিত্তি পছন্দ করে (অন্যথায় ইঙ্গিতটিকে একটি মৌলিক সম্ভাব্য সমাধানে রূপান্তর করতে তাদের ক্রসওভার করতে হবে)।

JSON প্রতিনিধিত্ব
{
  "variableValues": {
    object (SparseDoubleVectorProto)
  },
  "dualValues": {
    object (SparseDoubleVectorProto)
  }
}
ক্ষেত্র
variableValues

object ( SparseDoubleVectorProto )

সমস্যার প্রাথমিক ভেরিয়েবলের মানগুলির একটি সম্ভবত আংশিক বরাদ্দ৷ এই উপ-বার্তার জন্য সমাধানকারী-স্বাধীন প্রয়োজনীয়তাগুলি হল: * variableValues.ids হল VariablesProto.ids-এর উপাদান। * variableValues.values ​​সব সীমিত হতে হবে।

dualValues

object ( SparseDoubleVectorProto )

সমস্যাটির রৈখিক সীমাবদ্ধতার মানগুলির একটি (সম্ভাব্য আংশিক) বরাদ্দ৷

প্রয়োজনীয়তা: * dualValues.ids হল LinearConstraintsProto.ids এর উপাদান। * dualValues.values ​​সব সীমিত হতে হবে।

SparseInt32VectorProto

ints এর ভেক্টরের একটি বিক্ষিপ্ত উপস্থাপনা।

JSON প্রতিনিধিত্ব
{
  "ids": [
    string
  ],
  "values": [
    integer
  ]
}
ক্ষেত্র
ids[]

string ( int64 format)

সমস্ত উপাদান স্বতন্ত্র সহ (ক্রমবর্ধমান ক্রমানুসারে) সাজানো উচিত।

values[]

integer

আইডির সমান দৈর্ঘ্য থাকতে হবে।

SolveResultProto

যখন প্রাথমিক/দ্বৈত সমাধান/রশ্মি জটিল হয় তার চুক্তি, সম্পূর্ণ বিবরণের জন্য termination_reasons.md দেখুন।

একটি সঠিক চুক্তি চূড়ান্ত না হওয়া পর্যন্ত, সমাপ্তির কারণের উপর নির্ভর করার পরিবর্তে একটি সমাধান/রে উপস্থিত আছে কিনা তা পরীক্ষা করা সবচেয়ে নিরাপদ।

JSON প্রতিনিধিত্ব
{
  "termination": {
    object (TerminationProto)
  },
  "solutions": [
    {
      object (SolutionProto)
    }
  ],
  "primalRays": [
    {
      object (PrimalRayProto)
    }
  ],
  "dualRays": [
    {
      object (DualRayProto)
    }
  ],
  "solveStats": {
    object (SolveStatsProto)
  }
}
ক্ষেত্র
termination

object ( TerminationProto )

কারণ সমাধানকারী বন্ধ.

solutions[]

object ( SolutionProto )

ভবিষ্যত সমাধানকারীদের যে সমাধানের ক্রম প্রয়োগ করা উচিত তার জন্য সাধারণ চুক্তি হল: 1. একটি প্রাথমিক সম্ভাব্য সমাধান সহ সমাধানগুলি, সর্বোত্তম প্রাথমিক উদ্দেশ্য দ্বারা প্রথমে অর্ডার করা। 2. একটি দ্বৈত সম্ভাব্য সমাধান সহ সমাধান, সর্বোত্তম দ্বৈত উদ্দেশ্য (অজানা দ্বৈত উদ্দেশ্য সবচেয়ে খারাপ) দ্বারা আদেশ 3. বাকি সমস্ত সমাধান যে কোনও ক্রমে ফেরত দেওয়া যেতে পারে।

primalRays[]

object ( PrimalRayProto )

সীমাহীন প্রাথমিক উন্নতির দিকনির্দেশ, বা সমতুল্য, দ্বৈত অসম্ভাব্যতা শংসাপত্র। সাধারণত TerminationReasonProtos UNBOUNDED এবং DUAL_INFEASIBLE এর জন্য প্রদান করা হয়

dualRays[]

object ( DualRayProto )

সীমাহীন দ্বৈত উন্নতির দিকনির্দেশ, বা সমতুল্য, প্রাথমিক অসম্ভাব্যতা শংসাপত্র। সাধারণত TerminationReasonProto অসম্ভাব্য জন্য প্রদান করা হয়.

solveStats

object ( SolveStatsProto )

সমাধান প্রক্রিয়ার পরিসংখ্যান, যেমন চলমান সময়, পুনরাবৃত্তি।

সমাপ্তি প্রোটো

কেন সমাধান () করার জন্য একটি কল বন্ধ করা হয়েছে সে সম্পর্কিত সমস্ত তথ্য।

JSON প্রতিনিধিত্ব
{
  "reason": enum (TerminationReasonProto),
  "limit": enum (LimitProto),
  "detail": string,
  "problemStatus": {
    object (ProblemStatusProto)
  },
  "objectiveBounds": {
    object (ObjectiveBoundsProto)
  }
}
ক্ষেত্র
reason

enum ( TerminationReasonProto )

TERMINATION_REASON_FEASIBLE বা TERMINATION_REASON_NO_SOLUTION_FOUND হলে অতিরিক্ত তথ্য limit মধ্যে, বিশদ বিবরণের জন্য limit দেখুন।

limit

enum ( LimitProto )

LIMIT_UNSPECIFIED যদি না কারণ TERMINATION_REASON_FEASIBLE বা TERMINATION_REASON_NO_SOLUTION_FOUND হয়৷ সমস্ত সমাধানকারী সর্বদা সীমা নির্ধারণ করতে পারে না যার কারণে সমাপ্তি ঘটে, LIMIT_UNDETERMINED ব্যবহার করা হয় যখন কারণ নির্ধারণ করা যায় না।

detail

string

সমাপ্তি সম্পর্কে অতিরিক্ত সাধারণত সমাধানকারী নির্দিষ্ট তথ্য।

problemStatus

object ( ProblemStatusProto )

প্রাথমিক এবং দ্বৈত সমস্যার জন্য সম্ভাব্যতা অবস্থা। 18 জুলাই, 2023 থেকে এই বার্তাটি অনুপস্থিত থাকতে পারে। অনুপস্থিত থাকলে, সমস্যার স্থিতি SolveResultProto.solve_stats-এ পাওয়া যাবে।

objectiveBounds

object ( ObjectiveBoundsProto )

সর্বোত্তম উদ্দেশ্য মানের উপর সীমানা। 18 জুলাই, 2023 থেকে এই বার্তাটি অনুপস্থিত থাকতে পারে। অনুপস্থিত থাকলে, objectiveBounds.primal_bound পাওয়া যাবে SolveResultProto.solve.stats.best_primal_bound এবং objectiveBounds.dual_bound পাওয়া যাবে SolveResultProto.solve.stats.best_dual_bound-এ।

TerminationReasonProto

সমাধান() কল বন্ধ হওয়ার কারণ।

Enums
TERMINATION_REASON_UNSPECIFIED
TERMINATION_REASON_OPTIMAL একটি সম্ভাব্য সর্বোত্তম সমাধান (সংখ্যাগত সহনশীলতা পর্যন্ত) পাওয়া গেছে।
TERMINATION_REASON_INFEASIBLE প্রাথমিক সমস্যার কোন সম্ভাব্য সমাধান নেই।
TERMINATION_REASON_UNBOUNDED প্রাথমিক সমস্যাটি সম্ভবপর এবং নির্বিচারে ভাল সমাধান একটি প্রাথমিক রশ্মির সাথে পাওয়া যেতে পারে।
TERMINATION_REASON_INFEASIBLE_OR_UNBOUNDED প্রাথমিক সমস্যাটি হয় অসম্ভাব্য বা সীমাহীন। সমস্যার স্থিতির আরও বিশদ বিবরণ solveStats.problem_status এ উপলব্ধ হতে পারে। মনে রাখবেন গুরোবির সীমাহীন অবস্থা এখানে ম্যাপ করা যেতে পারে।
TERMINATION_REASON_IMPRECISE

সমস্যাটি উপরের মানদণ্ডগুলির একটিতে সমাধান করা হয়েছিল (অনুকূল, অকার্যকর, অবাউন্ডেড, বা ইনফেসিবলঅরআনবাউন্ডেড), কিন্তু এক বা একাধিক সহনশীলতা পূরণ হয়নি। কিছু আদি/দ্বৈত সমাধান/রশ্মি উপস্থিত থাকবে, কিন্তু হয় সেগুলি কিছুটা অসম্ভাব্য হবে, অথবা (যদি সমস্যাটি প্রায় সর্বোত্তম ছিল) তাদের সর্বোত্তম সমাধান উদ্দেশ্য এবং সর্বোত্তম উদ্দেশ্য আবদ্ধের মধ্যে একটি ব্যবধান হতে পারে।

ব্যবহারকারীরা এখনও প্রাথমিক/দ্বৈত সমাধান/রশ্মি এবং সমাধান পরিসংখ্যান জিজ্ঞাসা করতে পারে, তবে তারা সংখ্যাগত অপূর্ণতা মোকাবেলার জন্য দায়ী।

TERMINATION_REASON_FEASIBLE অপ্টিমাইজার কিছু সীমাতে পৌঁছেছে এবং একটি প্রাথমিক সম্ভাব্য সমাধান ফিরিয়ে দেওয়া হয়েছে। যে ধরনের সীমা পৌঁছেছে তার বিশদ বিবরণের জন্য SolveResultProto.limit_detail দেখুন।
TERMINATION_REASON_NO_SOLUTION_FOUND অপ্টিমাইজার কিছু সীমাতে পৌঁছেছে এবং এটি একটি প্রাথমিক সম্ভাব্য সমাধান খুঁজে পায়নি। যে ধরনের সীমা পৌঁছেছে তার বিশদ বিবরণের জন্য SolveResultProto.limit_detail দেখুন।
TERMINATION_REASON_NUMERICAL_ERROR অ্যালগরিদমটি বন্ধ হয়ে গেছে কারণ এটি পুনরুদ্ধারযোগ্য সংখ্যাগত ত্রুটির সম্মুখীন হয়েছে৷ কোন সমাধান তথ্য পাওয়া যায় না.
TERMINATION_REASON_OTHER_ERROR অ্যালগরিদমটি একটি ত্রুটির কারণে বন্ধ হয়ে গেছে যা উপরে সংজ্ঞায়িত স্থিতিগুলির মধ্যে একটি দ্বারা আচ্ছাদিত হয়নি৷ কোন সমাধান তথ্য পাওয়া যায় না.

LimitProto

যখন একটি সমাধান() টার্মিনেশন রিজনপ্রোটো FEASIBLE বা NO_SOLUTION_FOUND এর সাথে তাড়াতাড়ি থেমে যায়, তখন নির্দিষ্ট সীমা যা আঘাত করা হয়েছিল৷

Enums
LIMIT_UNSPECIFIED একটি শূন্য মান হিসাবে ব্যবহৃত হয় যখন আমরা একটি সীমা থেকে শেষ না করি (যেমন TERMINATION_REASON_OPTIMAL)।
LIMIT_UNDETERMINED অন্তর্নিহিত সমাধানকারী কোন সীমায় পৌঁছেছে তা প্রকাশ করে না।
LIMIT_ITERATION একটি পুনরাবৃত্তিমূলক অ্যালগরিদম সর্বাধিক সংখ্যক পুনরাবৃত্তি (যেমন সিমপ্লেক্স বা বাধা পুনরাবৃত্তি) পরিচালনা করার পরে বন্ধ হয়ে যায়।
LIMIT_TIME ব্যবহারকারী-নির্দিষ্ট গণনার সময় পরে অ্যালগরিদম বন্ধ হয়ে গেছে।
LIMIT_NODE একটি শাখা-এবং-বাউন্ড অ্যালগরিদম বন্ধ হয়ে গেছে কারণ এটি শাখা-ও-বাউন্ড ট্রিতে সর্বাধিক সংখ্যক নোড অন্বেষণ করেছে।
LIMIT_SOLUTION অ্যালগরিদম বন্ধ হয়ে গেছে কারণ এটি প্রয়োজনীয় সংখ্যক সমাধান খুঁজে পেয়েছে। এটি প্রায়শই এমআইপি-তে ব্যবহৃত হয় যাতে সমাধানকারী প্রথম সম্ভাব্য সমাধানের মুখোমুখি হয়।
LIMIT_MEMORY অ্যালগরিদম বন্ধ হয়ে গেছে কারণ এটি স্মৃতিশক্তির বাইরে চলে গেছে।
LIMIT_CUTOFF সলভারটি একটি কাটঅফ দিয়ে চালিত হয়েছিল (যেমন সলভেপারামিটারগুলি.কুটফ_লিমিট সেট করা হয়েছিল) উদ্দেশ্যটিতে, এটি ইঙ্গিত করে যে ব্যবহারকারী কাট অফের চেয়ে খারাপ কোনও সমাধান চান না, এবং সলভার এই সিদ্ধান্তে পৌঁছেছেন যে কাট অফের মতো কমপক্ষে কোনও সমাধান নেই। সাধারণত আর কোনও সমাধানের তথ্য সরবরাহ করা হয় না।
LIMIT_OBJECTIVE অ্যালগরিদম বন্ধ হয়ে গেছে কারণ এটি ব্যবহারকারীর দ্বারা নির্ধারিত সীমাটির চেয়ে কোনও সমাধান বা একটি আবদ্ধ আরও ভাল খুঁজে পেয়েছে (সলভেপারামিটারগুলি দেখুন ob
LIMIT_NORM অ্যালগরিদম বন্ধ হয়ে গেছে কারণ একটি পুনরাবৃত্তির আদর্শটি খুব বড় হয়ে উঠল।
LIMIT_INTERRUPTED একটি বিঘ্নিত সংকেত বা ব্যবহারকারীর বিঘ্নিত অনুরোধের কারণে অ্যালগরিদম বন্ধ হয়ে গেছে।
LIMIT_SLOW_PROGRESS অ্যালগরিদম বন্ধ হয়ে গেছে কারণ এটি সমাধানের দিকে অগ্রগতি অব্যাহত রাখতে অক্ষম ছিল।
LIMIT_OTHER

উপরের একটির দ্বারা আচ্ছাদিত সীমাবদ্ধতার কারণে অ্যালগরিদম বন্ধ হয়ে গেছে। নোট করুন যে কারণটি নির্ধারণ করা যায় না তখন সীমাবদ্ধ_অনডেরমিন্ড ব্যবহার করা হয় এবং কারণটি জানা গেলে সীমাবদ্ধ_ অন্য ব্যবহার করা হয় তবে উপরের কোনও বিকল্পের সাথে খাপ খায় না।

টার্মিনেশনপ্রোটো.ডেটেইলে সীমা সম্পর্কে অতিরিক্ত তথ্য থাকতে পারে।

সমস্যা স্ট্যাটাসপ্রোটো

সলভার দ্বারা দাবি করা হিসাবে প্রাথমিক সমস্যা এবং এর দ্বৈত (বা অবিচ্ছিন্ন শিথিলকরণের দ্বৈত) এর সম্ভাব্যতা স্থিতি। সলভারকে দাবির জন্য কোনও শংসাপত্র ফেরত দেওয়ার প্রয়োজন নেই (যেমন সলভার প্রাথমিক সম্ভাব্য সলিউশনটি ফেরত না দিয়ে প্রাথমিক সম্ভাব্যতা দাবি করতে পারে)। এই সম্মিলিত স্থিতি সম্ভাব্যতা এবং সমাধান হওয়া সমস্যার সীমাহীনতা সম্পর্কে একটি সলভারের দাবির একটি বিস্তৃত বিবরণ দেয়। যেমন,

  • প্রাথমিক এবং দ্বৈত সমস্যার জন্য একটি সম্ভাব্য অবস্থা নির্দেশ করে যে প্রাথমিকটি সম্ভাব্য এবং আবদ্ধ এবং সম্ভবত একটি সর্বোত্তম সমাধান রয়েছে (অ-রৈখিক সীমাবদ্ধতা ছাড়াই সমস্যার জন্য গ্যারান্টিযুক্ত)।
  • একটি প্রাথমিক সম্ভাব্য এবং একটি দ্বৈত অনিবার্য স্থিতি নির্দেশ করে যে প্রাথমিক সমস্যাটি সীমাহীন (যেমন নির্বিচারে ভাল সমাধান রয়েছে)।

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

JSON প্রতিনিধিত্ব
{
  "primalStatus": enum (FeasibilityStatusProto),
  "dualStatus": enum (FeasibilityStatusProto),
  "primalOrDualInfeasible": boolean
}
ক্ষেত্র
primalStatus

enum ( FeasibilityStatusProto )

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

dualStatus

enum ( FeasibilityStatusProto )

দ্বৈত সমস্যার জন্য স্থিতি (বা অবিচ্ছিন্ন শিথিলকরণের দ্বৈত জন্য)।

primalOrDualInfeasible

boolean

যদি সত্য হয়, সলভার দাবি করে যে প্রাথমিক বা দ্বৈত সমস্যাটি অনর্থক, তবে এটি জানে না কোনটি (বা উভয়ই অনিবার্য হয়)। প্রাইমাল_প্রব্লেম_স্ট্যাটাস = দ্বৈত_প্রব্লেম_স্ট্যাটাস = কান্ডেরমিনেড কেবল তখনই সত্য হতে পারে। এই অতিরিক্ত তথ্যের প্রায়শই প্রয়োজন হয় যখন প্রিপ্রোসেসিং নির্ধারণ করে যে সমস্যার কোনও সর্বোত্তম সমাধান নেই (তবে এটি নির্ধারণ করতে পারে না যে এটি অযোগ্যতা, সীমাহীনতা বা উভয়ের কারণে হয়েছে কিনা)।

সম্ভাব্যতা ট্যাটাসপ্রোটো

সলভার দ্বারা দাবি করা হিসাবে সমস্যা সম্ভাবনার স্থিতি (সলভার দাবির জন্য কোনও শংসাপত্র ফেরত দেওয়ার প্রয়োজন হয় না)।

Enums
FEASIBILITY_STATUS_UNSPECIFIED কোনও স্থিতি উপস্থাপন করে গার্ড মান।
FEASIBILITY_STATUS_UNDETERMINED সলভার কোনও স্থিতি দাবি করে না।
FEASIBILITY_STATUS_FEASIBLE সলভার দাবি করে যে সমস্যাটি সম্ভব।
FEASIBILITY_STATUS_INFEASIBLE সলভার দাবি করে যে সমস্যাটি অনর্থক।

অবজেক্টবাউন্ডসপ্রোটো

অনুকূল উদ্দেশ্য মানের উপর সীমানা।

JSON প্রতিনিধিত্ব
{
  "primalBound": number,
  "dualBound": number
}
ক্ষেত্র
primalBound

number

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

dualBound

number

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

সলিউশনপ্রোটো

সমাধানে যা অন্তর্ভুক্ত রয়েছে তা সমস্যা এবং সমাধানকারী ধরণের উপর নির্ভর করে। বর্তমান সাধারণ নিদর্শনগুলি হ'ল 1. এমআইপি সলভারগুলি কেবলমাত্র একটি প্রাথমিক সমাধান দেয়। ২. সিমপ্লেক্স এলপি সলভারগুলি প্রায়শই একটি ভিত্তি এবং এই ভিত্তিতে সম্পর্কিত প্রাথমিক এবং দ্বৈত সমাধানগুলি ফিরিয়ে দেয়। ৩. অন্যান্য অবিচ্ছিন্ন সলভারগুলি প্রায়শই একটি প্রাথমিক এবং দ্বৈত সমাধান সমাধান দেয় যা সলভার-নির্ভর আকারে সংযুক্ত থাকে।

প্রয়োজনীয়তা: * কমপক্ষে একটি ক্ষেত্র অবশ্যই সেট করা উচিত; একটি সমাধান খালি হতে পারে না।

JSON প্রতিনিধিত্ব
{
  "primalSolution": {
    object (PrimalSolutionProto)
  },
  "dualSolution": {
    object (DualSolutionProto)
  },
  "basis": {
    object (BasisProto)
  }
}
ক্ষেত্র
primalSolution

object ( PrimalSolutionProto )

dualSolution

object ( DualSolutionProto )

basis

object ( BasisProto )

প্রিমালসোলিউশনপ্রোটো

একটি অপ্টিমাইজেশন সমস্যার সমাধান।

যেমন একটি সাধারণ লিনিয়ার প্রোগ্রাম বিবেচনা করুন: মিনিট সি * এক্স এসটি এ * এক্স> = বিএক্স> = 0. একটি প্রাথমিক সমাধান হ'ল এক্সকে অ্যাসাইনমেন্ট মান। এটি যদি উপরে থেকে একটি * x> = b এবং x> = 0 সন্তুষ্ট করে তবে এটি সম্ভব। নীচে নীচে প্রিমালসোলিউশনপ্রোটোতে, ভেরিয়েবলভ্যালুগুলি এক্স এবং উদ্দেশ্যভিত্তিক সি * এক্স।

JSON প্রতিনিধিত্ব
{
  "variableValues": {
    object (SparseDoubleVectorProto)
  },
  "objectiveValue": number,
  "auxiliaryObjectiveValues": {
    string: number,
    ...
  },
  "feasibilityStatus": enum (SolutionStatusProto)
}
ক্ষেত্র
variableValues

object ( SparseDoubleVectorProto )

প্রয়োজনীয়তা: * ভেরিয়েবলভ্যালু.আইডিগুলি ভেরিয়েবেলস্প্রোটো.আইডিগুলির উপাদান। * ভেরিয়েবল ভ্যালু.মেলুগুলি অবশ্যই সীমাবদ্ধ হতে হবে।

objectiveValue

number

অন্তর্নিহিত সলভার দ্বারা গণনা করা হিসাবে উদ্দেশ্যমূলক মান। অসীম বা নান হতে পারে না।

auxiliaryObjectiveValues

map (key: string ( int64 format), value: number)

অন্তর্নিহিত সলভার দ্বারা গণনা করা হিসাবে সহায়ক উদ্দেশ্যমূলক মান। কীগুলি অবশ্যই বৈধ সহায়ক উদ্দেশ্যমূলক আইডি হতে হবে। মানগুলি অসীম বা ন্যান হতে পারে না।

"key": value জোড়া। উদাহরণ: { "name": "wrench", "mass": "1.3kg", "count": "3" }

feasibilityStatus

enum ( SolutionStatusProto )

অন্তর্নিহিত সলভার অনুযায়ী সমাধানের সম্ভাব্যতা স্থিতি।

ডুয়েলসোলিউশনপ্রোটো

একটি অপ্টিমাইজেশন সমস্যার দ্বৈত একটি সমাধান।

যেমন প্রাথমিক দ্বৈত জুটি লিনিয়ার প্রোগ্রামের জুটি বিবেচনা করুন: (প্রাথমিক) (দ্বৈত) মিনিট সি * এক্স ম্যাক্স বি * ওয়াই এসটি এ * এক্স> = বি এসটি ওয়াই * এ + আর = সিএক্স> = 0 ওয়াই, আর> = 0. দ্বৈত সমাধান হ'ল জুটি (ওয়াই, আর)। এটি যদি উপরের (দ্বৈত) থেকে সীমাবদ্ধতাগুলি পূরণ করে তবে এটি সম্ভব।

নীচের বার্তায়, y হ'ল ডুয়ালভ্যালুগুলি, আর হ্রাসকোস্টগুলি এবং বি * ওয়াই উদ্দেশ্যমূলক মান।

JSON প্রতিনিধিত্ব
{
  "dualValues": {
    object (SparseDoubleVectorProto)
  },
  "reducedCosts": {
    object (SparseDoubleVectorProto)
  },
  "feasibilityStatus": enum (SolutionStatusProto),
  "objectiveValue": number
}
ক্ষেত্র
dualValues

object ( SparseDoubleVectorProto )

প্রয়োজনীয়তা: * ডুয়ালভ্যালু.আইডিগুলি লিনিয়ারকন্ট্রেন্টস.আইডিএসের উপাদান। * দ্বৈতভ্যালু। মূল্যগুলি অবশ্যই সীমাবদ্ধ হতে হবে।

reducedCosts

object ( SparseDoubleVectorProto )

প্রয়োজনীয়তা: * হ্রাসকস্টস.আইডিগুলি ভেরিয়েবলসপ্রোটো.আইডিগুলির উপাদান। * হ্রাসকস্টস. মূল্যগুলি অবশ্যই সীমাবদ্ধ হতে হবে।

feasibilityStatus

enum ( SolutionStatusProto )

অন্তর্নিহিত সলভার অনুযায়ী সমাধানের সম্ভাব্যতা স্থিতি।

objectiveValue

number

প্রিমালরেপ্রোটো

একটি অপ্টিমাইজেশন সমস্যার উপর সীমাহীন উন্নতির একটি দিক; সমতুল্যভাবে, অপ্টিমাইজেশন সমস্যার দ্বৈততার জন্য অযোগ্যতার একটি শংসাপত্র।

যেমন একটি সাধারণ লিনিয়ার প্রোগ্রাম বিবেচনা করুন: মিনিট সি * এক্স এসটি এ * এক্স> = বিএক্স> = 0 একটি প্রাথমিক রশ্মি একটি এক্স যা সন্তুষ্ট হয়: সি * এক্স <0 এ * এক্স> = 0 এক্স> = 0 এটি একটি সম্ভাব্য প্রদত্ত পর্যবেক্ষণ করুন সমাধান, প্রাথমিক রশ্মির যে কোনও ইতিবাচক একাধিক প্লাস সেই সমাধানটি এখনও সম্ভব এবং আরও ভাল উদ্দেশ্যমূলক মান দেয়। একটি প্রাথমিক রশ্মি দ্বৈত অপ্টিমাইজেশান সমস্যাটি অনিবার্য প্রমাণ করে।

নীচে প্রাইমালরে বার্তায়, পরিবর্তনশীলভ্যালুগুলি x।

JSON প্রতিনিধিত্ব
{
  "variableValues": {
    object (SparseDoubleVectorProto)
  }
}
ক্ষেত্র
variableValues

object ( SparseDoubleVectorProto )

প্রয়োজনীয়তা: * ভেরিয়েবলভ্যালু.আইডিগুলি ভেরিয়েবেলস্প্রোটো.আইডিগুলির উপাদান। * ভেরিয়েবল ভ্যালু.মেলুগুলি অবশ্যই সীমাবদ্ধ হতে হবে।

ডুয়ালরেপ্রোটো

একটি অপ্টিমাইজেশন, সমস্যার দ্বৈত উন্নতির একটি দিক; সমানভাবে, প্রাথমিক অযোগ্যতার একটি শংসাপত্র।

যেমন প্রাথমিক দ্বৈত জুটি লিনিয়ার প্রোগ্রামের জুটি বিবেচনা করুন: (প্রাথমিক) (দ্বৈত) মিনিট সি * এক্স ম্যাক্স বি * ওয়াই এসটি এ * এক্স> = বি এসটি ওয়াই * এ + আর = সিএক্স> = 0 ওয়াই, আর> = 0. দ্বৈত রশ্মি হ'ল জুটি (y, r) সন্তোষজনক: b * y> 0 y * a + r = 0 y, r> = 0 পর্যবেক্ষণ করুন যে দ্বৈত সম্ভাব্য দ্রবণে একটি ইতিবাচক একাধিক (y, r) যুক্ত করা দ্বৈত সম্ভাব্যতা বজায় রাখে এবং উদ্দেশ্যকে উন্নত করে (দ্বৈত প্রমাণ করা সীমাহীন)। দ্বৈত রশ্মি প্রমাণ করে যে প্রাথমিক সমস্যাটি অনিবার্য।

নীচের ডুয়ালরে বার্তায়, y দ্বৈত ভ্যালু এবং আর হ্রাসকোস্টগুলি।

JSON প্রতিনিধিত্ব
{
  "dualValues": {
    object (SparseDoubleVectorProto)
  },
  "reducedCosts": {
    object (SparseDoubleVectorProto)
  }
}
ক্ষেত্র
dualValues

object ( SparseDoubleVectorProto )

প্রয়োজনীয়তা: * ডুয়ালভ্যালু.আইডিগুলি লিনিয়ারকন্ট্রেন্টস.আইডিএসের উপাদান। * দ্বৈতভ্যালু। মূল্যগুলি অবশ্যই সীমাবদ্ধ হতে হবে।

reducedCosts

object ( SparseDoubleVectorProto )

প্রয়োজনীয়তা: * হ্রাসকস্টস.আইডিগুলি ভেরিয়েবলসপ্রোটো.আইডিগুলির উপাদান। * হ্রাসকস্টস. মূল্যগুলি অবশ্যই সীমাবদ্ধ হতে হবে।

সলভেস্ট্যাটসপ্রোটো

JSON প্রতিনিধিত্ব
{
  "solveTime": string,
  "problemStatus": {
    object (ProblemStatusProto)
  },
  "simplexIterations": string,
  "barrierIterations": string,
  "firstOrderIterations": string,
  "nodeCount": string
}
ক্ষেত্র
solveTime

string ( Duration format)

ম্যাথ_ওপটি দ্বারা পরিমাপ করা হিসাবে ওয়াল ঘড়ির সময় অতিবাহিত, প্রায় সলভারের ভিতরে সময় :: সমাধান ()। দ্রষ্টব্য: এর মধ্যে মডেল তৈরির কাজ অন্তর্ভুক্ত নয়।

' s ' দিয়ে শেষ হওয়া নয়টি ভগ্নাংশের সংখ্যা সহ সেকেন্ডে একটি সময়কাল। উদাহরণ: "3.5s"

problemStatus

object ( ProblemStatusProto )

প্রাথমিক এবং দ্বৈত সমস্যার জন্য সম্ভাব্যতা স্থিতি।

simplexIterations

string ( int64 format)

barrierIterations

string ( int64 format)

firstOrderIterations

string ( int64 format)

nodeCount

string ( int64 format)