লিনিয়ার প্রোগ্রামগুলির মিডপয়েন্ট সমাধান solutions


9

একটি লিনিয়ার প্রোগ্রাম রয়েছে যার জন্য আমি কেবল একটি সমাধানই চাই না এমন একটি সমাধান চাই যা ন্যূনতম মান ধরে নেয় এমন বহুপ্রান্তের মুখে যতটা সম্ভব কেন্দ্রীয় হয় central

একটি অগ্রাধিকার, আমরা আশা করি যে বিভিন্ন কারণে ছোট ছোট মুখটি উচ্চ মাত্রিক হওয়া উচিত, যার মধ্যে এটি অন্তর্ভুক্ত করা হয় যে উদ্দেশ্যমূলক ফাংশনটি হ্রাস করা হচ্ছে সীমাবদ্ধতার বেশিরভাগের সর্বাধিক:

কমান ϵ বিষযে fi(x¯)ϵ<0 সঙ্গে fi রৈখিক এবং xi>0 সবার জন্য i এবং ixi=1

আমরা অবশ্যই কোনও কেন্দ্রীয়তার মতো সম্পত্তি অবশ্যই সিম্পলেক্স অ্যালগরিদম গঠন করতে চাই না। যদিও কোনও অভ্যন্তরীণ বিন্দুর অ্যালগরিদম এমন কোনও বৈশিষ্ট্য প্রদর্শন করে? এমনকি যখনই সম্ভব তারা উল্লম্ব বা নিম্ন মাত্রিক মুখগুলি এড়াতে পারবে কি এমন কোনও গ্যারান্টি রয়েছে?


প্রকৃতপক্ষে, আমি সম্ভবত একটি সহজ চতুষ্কোণ প্রোগ্রামের সাথে সন্তুষ্ট যা পুরো পলিটপের মাঝের পয়েন্টটি খুঁজে পায় যেহেতু কেন্দ্রীয়তা ন্যূনতমতার চেয়ে বেশি, অন্য রৈখিক প্রোগ্রামিং অ্যালগরিদম যদি প্রাসঙ্গিক বৈশিষ্ট্য সরবরাহ করে তবে অস্পষ্টভাবে কৌতূহলী।

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


2
আপনার প্রশ্নটি ঠিক তেমন নয় তবে: সেন্ট্রয়েডকে গণনা করা হচ্ছে # পি-হার্ড; আমি নিশ্চিত না যে সর্বোত্তম আনুমানিকতা কী, তবে কিছু অ্যাপ্লিকেশনগুলির জন্য পোলিটোপকে আইসোট্রপিক অবস্থানে রাখে এবং (রূপান্তরিত) পলিটোপ পর্যায়ে থেকে বহুবিধভাবে বহু অভিন্ন নমুনা গ্রহণের জন্য। এই নোটটি দেখুন, উদাহরণস্বরূপ লেমমা 15: cc.gatech.edu/~vempala/acg/notes.pdf
সাশো নিকোলভ

এটি কি আরও তাত্ত্বিক বা আরও বাস্তব প্রশ্ন? সম্ভবত অনুকূল মুখের সমস্ত শীর্ষকে উত্পন্ন করা সম্ভব হবে এবং তারপরে তাদের কয়েকটি উপযুক্ত উত্তল সংমিশ্রণ ব্যবহার করা সম্ভব হবে।
বেনামে

উত্তর:


4

আমার কয়েকটি পর্যবেক্ষণ রয়েছে যা মন্তব্যের জন্য খুব দীর্ঘ। এখানে একটি সংক্ষিপ্তসার।

  1. আপনার সমস্যাটি সমাধান করার জন্য যে কোনও অ্যালগরিদম হুবহু লিনিয়ার প্রোগ্রামগুলি সমাধান করার জন্য ব্যবহার করা যেতে পারে (অর্থাত্ "শক্তিশালী রৈখিক প্রোগ্রামিং", যা সারিলের দ্রবণের ক্ষেত্রে ব্যবহৃত হয়, এবং বর্তমানে বহু-কালীন অ্যালগোরিদম নেই)।

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

সাধারণভাবে, আপনার সমস্যার বর্তমান বক্তব্য সম্পর্কে চিন্তা করার সময়, আমি দক্ষতার বিবেচনায় চলেছি। তবে এর যুক্তিসঙ্গত স্বজ্ঞাততা রয়েছে: আমরা যে জিনিসগুলি চারপাশে ছুঁড়ে দিচ্ছি - উল্লম্ব, মুখ ইত্যাদি - এটি বিচ্ছিন্ন এবং তাত্পর্যপূর্ণ।

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

(২) এখানে প্রতিটি পুনরাবৃত্তির মধ্যে একটি সম্পূর্ণ প্রস্ফুটিত উত্তল দ্রাবক ব্যবহার করে একটি পুনরাবৃত্তি স্কিম রয়েছে, যার সমাধানগুলি মধ্য পয়েন্ট সমাধানের একটি হালকা ধারণাতে রূপান্তরিত করবে। পেনাল্টি পরামিতিগুলির ইতিবাচক এখনও হ্রাস ক্রম চয়ন করুন{λi}i=10; এগুলি জ্যামিতিকভাবে হ্রাস করা যুক্তিসঙ্গত, অর্থাত্‍λi=2i। এখন, প্রতিটি জন্যiপ্রায় উত্তল ক্রিয়াকে হ্রাস করুন

c,xλij=1mln(aj,xb),

কোথায় c,x আপনার মূল লক্ষ্য, এবং j উপরের সীমা mমূল সীমাবদ্ধতাগুলি, এখন লগারিদমিক বাধাগুলির মাধ্যমে উদ্দেশ্যটিতে রাখা হয়েছে (দ্রষ্টব্য, এটি আদর্শ)। এখন যদি আমরা আপনার পলিহেড্রোনটির ন্যূনতম মুখের (বৃহত্তম মাত্রার) বিষয়ে চিন্তা করি তবে লক্ষ্য করুন যে যথেষ্ট পরিমাণে ছোটλi এবং সহনশীলতা τআপনার উত্তল অপ্ট ব্ল্যাক বাক্সে, আপনার আনুমানিক অনুকূলটি এই মুখের খুব কাছাকাছি থাকবে তবে বাধাগুলি এটিকে অন্যান্য সীমাবদ্ধতা থেকে যতটা সম্ভব দূরে সরিয়ে দেবে। অন্যভাবে বলেছেন, যেমনλi হ্রাস পায়, মূল রৈখিক উদ্দেশ্য অবশেষে কিছু চঞ্চল প্রতিবন্ধকতাগুলি কাটিয়ে উঠবে যা আপনাকে উপযুক্ত মুখ থেকে দূরে রেখেছে, তবে আপনাকে অন্যান্য সীমানা থেকে রক্ষা করে বাধাগুলি প্রভাবিত করবে না, বিশেষত লক্ষ্যযুক্ত মুখগুলির।

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

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

এই কারণে, আমার প্রস্তাবটি `` এর ধারণাটি তৈরি করা `ϵ-পুষ্টিক মিডপয়েন্ট '' বন্ধ করুন এবং এটি চয়ন করে সমাধান করুন λ এবং আপনার উত্তেজক কালো বাক্স সহনশীলতা অপ্ট τউপযুক্তভাবে। আমি মনে করি এটি একটি যুক্তিসঙ্গত পছন্দ কারণ আপনি সম্ভবত সবচেয়ে বেশি প্রস্থের মুখগুলির যত্ন নিতে পারেন নাϵ

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

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


হ্যাঁ, আমি এ জাতীয় কৌশলগুলি বিবেচনা করেছি, তবে শেষ পর্যন্ত আমি হ্রাস করতেই চলেছি ifi(x)2+jxj2 বিষযে jxj=1লাগরেঞ্জ মাল্টিপ্লায়ার ব্যবহার করে। এটি এর জন্য দুর্বল কেন্দ্রীয়তার সম্পত্তি দেয়xতির্যকটি, যা কমানোর উপরিভাগ নাও হতে পারে তবে অবশ্যই এমন বাধা পৃষ্ঠগুলির মধ্যে একটি যা কখনও সরে যায় না। প্রতিবন্ধকতাগুলি বিকশিত হওয়া বন্ধ হয়ে যাওয়ার পরে আমি কেবল একটি পৃথক রৈখিক প্রোগ্রাম পরিচালনা করি এবং এর জন্য আমার প্রকৃত সর্বনিম্ন প্রয়োজনϵ। শেষ পর্যন্ত কোন প্রয়োজন রাখার দরকার নেইϵসীমাবদ্ধতাগুলি দ্রুত বিকশিত হতে সহায়তা করতে হ্রাস করা। ধন্যবাদ যদিও! :)
জেফ বার্ডেজ

আহ # 2 আকর্ষণীয় দেখায়, আমি প্রথমে যা ভাবছিলাম তা নয়। চতুর! আমি যেমন বলেছি, আমি ক্ষমা করে দিয়েছিxন্যূনতম চেহারায় অবতরণ না করার জন্য, যতক্ষণ না এটি কোনও জায়গায় যুক্তিসঙ্গত হয়ে যায়। আমি এ নিয়ে কিছু সময় খেলব। আসলে, আমি যেভাবেই হোক উত্তোলনের অপ্টিমাইজেশনটি পড়তে হবে, কারণ আমি লিনিয়ার পরিবর্তে আমার উদ্দেশ্য বিলিনিয়ার করার কারণ খুঁজে পেয়েছি।
জেফ বার্ডেজ

আমি "শক্তিশালী রৈখিক প্রোগ্রামিং" সম্পর্কে এই বিষয়টিটি বুঝতে পারি না এবং আমি এর আগে এই অভিব্যক্তিটি কখনও শুনিনি। শক্তিশালী বহুবর্ষীয় সময়ে এলপিকে কীভাবে সমাধান করবেন তা জানা যায়নি। তবে ইনপুট বিবরণে সময় বহুপদীতে একটি এলপিকে সমাধান করা (যেমন দুর্বল বহুপদী সময়) অবশ্যই সুপরিচিত। ওপি যদি দুর্বল বহুবর্ষে চলমান একটি অ্যালগরিদম চায় তবে স্যারিলের সমাধান + পলিটাইম ইন্টিরির পয়েন্ট অ্যালগোরিদম কাজটি করবে, না?
সাশো নিকোলভ

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

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

6

প্রথমে অনুকূল সমাধানটি সন্ধান করুন, তারপরে রৈখিক সীমাবদ্ধতা যুক্ত করুন যে সমাধানটি আপনার পছন্দসই অনুকূল মানের সমান হতে হবে এবং সম্ভাব্য অঞ্চলের সবচেয়ে বড় বলের সন্ধানকারী হিসাবে আপনার এলপিকে পুনরায় সেট করুন। এই পরিবর্তিত এলপি সমাধান করুন এবং আপনি যা চান তা আপনার কাছে রয়েছে।

এলপি ব্যবহার করে দ্বিতীয় সমস্যাটি কেন সমাধান করা যায় তা গণনা জ্যামিতির একটি স্ট্যান্ডার্ড দুরন্ত সমস্যা ...

==============

আরও আনুষ্ঠানিকভাবে, আপনি অনুকূল সমাধান সম্বলিত সম্ভাব্য পয়েন্টগুলিতে বিস্তৃত অ্যাফাইন উপগ্রহটি পাবেন। সুতরাং, ধরে নিই যে সর্বোত্তম সমাধান হাইপারপ্লেনের মধ্যে রয়েছেhcx=α (অর্থাত, mincxআসল এলপি টার্গেট ফাংশন ছিল)। যদি মূল এলপি এর সম্ভবপর অঞ্চল, আমরা সর্ববৃহৎ বল খুঁজছেন । এই লক্ষ্যে, আমাদের এই সেটটি সহ ক্ষুদ্রতম মাত্রিক অ্যাফাইন সাবস্পেস গণনা করতে হবে। আপনি যখন এই উপগ্রহটি খুঁজে পেয়েছেন, তখন ভেরিয়েবলগুলি পরিবর্তন করুন যাতে আপনি কেবল এই অ্যাফাইন সাবপেক্সটি বিবেচনা করেন। এখন, আপনার বহুভুজ সম্পূর্ণ মাত্রিক, এবং আমি উপরে বর্ণিত হিসাবে আপনি দ্বিতীয় এলপি ব্যবহার করতে পারেন।PPh

সুতরাং, প্রথম এলপি দ্বারা গুণিত ভার্টেক্স হতে দিন । প্রতিবেশী সমস্ত উল্লম্ব বিবেচনা করে । একই টার্গেট ভ্যালু (যেমন, ) এর সাথে থাকা সমস্ত প্রতিবেশীর সাথে একত্রে এর অ্যাফাইন উপগৃহ বিবেচনা করুন । এটি দেখতে অসুবিধা নয় যে এই affine উপসর্গটি কাঙ্ক্ষিত উপসর্গ।vvvα

সুতরাং, সংক্ষেপে বলা: (ক) অনুকূল মান আবিষ্কার করতে এলপি সমাধান করুন। (খ) অনুকূল মান সহ সম্ভাব্য সমাধানযুক্ত ক্ষুদ্রতম মাত্রিক উপ-স্থানকে গণনা করুন। (গ) এই অ্যাফাইন সাবসেসে আসল এলপিকে পুনরায় লেখুন (অর্থাত্, সমস্ত অপ্রাসঙ্গিক মাত্রা বাদ দেওয়া), একটি ভেরিয়েবল যুক্ত করুন এবং এই পলিটপের অভ্যন্তরের বৃহত্তম বলটি খুঁজে পাওয়ার জন্য এটি এলপিতে পরিণত করুন।


সম্পূর্ণ মাত্রার নয় পলিহেড্রনের "বৃহত্তম বল" বলতে কী বোঝায়?
ক্রিস্টোফার আরনসফেল্ট হানসেন

ক্রিস্টোফারআরেন্সফেল্টহানসেন পলিহেড্রন অবশ্যই একটি উত্তল সেট যা কিছু মাত্রার একটি অ্যাফাইন উপগ্রহে পড়ে আছে ।
সাশো নিকোলভ

এটি কাজ করার জন্য, আপনাকে প্রথম ধাপে যে মুখ (গুলি) পেয়েছেন সেগুলিতে সীমাবদ্ধতার সীমাবদ্ধতা নির্দিষ্ট করতে হবে। আপনার আরও জানতে হবে যে সমাধানটি এই মুখ জুড়ে ধ্রুবক ছিল (সম্ভবত পরিপূরক আলস্যতা এটি প্রকাশ করবে)
সুরেশ ভেঙ্কট

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

1
এটি এর চেয়ে সহজ - আপনার সর্বোত্তম প্রান্তের সাথে সংলগ্ন কেবলমাত্র শীর্ষগুলিটি বিবেচনা করা দরকার - এটির সাথে সর্বাধিক রয়েছে, এবং আপনি বহুবর্ষীয় সময়ে এটি গণনা করতে পারেন .... কেন এটি সত্য তা দেখার জন্য, বহুভুজের উপর বিবেচনা করুন affine subpace - এটি এর প্রতিবেশী দ্বারা স্প্যান করা হয় যা এই affine উপস্থানে অবস্থিত, তবে এগুলি মূল পলিটোপটিতে v এর সাথে সংলগ্ন কোণগুলির একটি উপসেট। এবং হ্যাঁ - এটি দেখতে আমার বেশ সময় লাগল। dv
সারিল হার-পিল্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.