অ্যালগরিদম ডিজাইন এবং জটিলতা - কীভাবে সেই 'পথে' ভাবেন?


15

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

এইভাবে চিন্তা করার কোনও 'কৌশল' আছে কি? আমি জানি এটি এটিকে বেশ অদ্ভুতভাবে রাখছে তবে কখনও কখনও একটি নতুন দৃষ্টিভঙ্গি কোনও বিষয় সম্পর্কে আলাদাভাবে ভাবতে সহায়তা করে।

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

আমাদের কোর্সটি স্ট্যান্ডার্ড পাঠ্যটি ব্যবহার করবে: সিএলআরএস দ্বারা অ্যালগরিদমের পরিচিতি।

এখানে কোন পাঠ্যপুস্তক / সাইট / বই / ইত্যাদি রয়েছে। যে এই ক্ষেত্রে আত্মবিশ্বাসী হয়ে উঠতে পারে?

সবাইকে ধন্যবাদ,

জেসন ডেন


2
আমি এই পোস্টে একবার দেখে পরামর্শ দিচ্ছি । আমি উদি মন্বরের বইটি বিশেষভাবে পরামর্শ দিই।
এমএস দৌস্তি

1
: Stackoverflow এই আলোচনা বেশ কিছু পরামর্শ উপলব্ধ করা হয় stackoverflow.com/questions/2256721/...
Jeffε

2
আমি ম্যানবারের সুপারিশ দ্বিতীয়। এছাড়াও চেক আউট কিভাবে আলগোরিদিম সম্পর্কে ভাবতে জেফ আবিস্কার, ফীড আবিষ্কার দ্বারা: amazon.com/Think-About-Algorithms-Jeff-Edmonds/dp/0521614104
Jeffε

"আমি কীভাবে জানব যে আমি যে সমাধানগুলি নিয়ে এসেছি সেগুলি সঠিক?" আপনি কি বোঝাতে চেয়েছেন যে (1) আপনি একটি অ্যালগরিদম নিয়ে এসেছেন তবে কীভাবে এটি সঠিক তা প্রমাণ করতে জানেন না, বা (২) আপনার কাছে প্রমাণ আছে তবে এটি সঠিক কিনা তা আপনি নিশ্চিত নন?
Jukka Suomela

প্রথম পদক্ষেপ: সোজা উত্তর দেওয়া বন্ধ করুন এবং পরিবর্তে অন্যের সমাধান দেখুন refer ;)
রাফেল

উত্তর:


18

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

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

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

অ্যালগরিদমগুলির জন্য, আমি ব্যক্তিগতভাবে নিম্নলিখিত বইগুলি (সাদেক এবং জেফি দ্বারা প্রস্তাবিত বইগুলি ছাড়াও) পরামর্শ দিই:

  • এস। দাসগুপ্ত, সিএইচ পাপাদিমিট্রিও এবং ইউভি ভিজিরানির খুব পঠনযোগ্য এবং সুন্দর বই অ্যালগোরিদম
  • জেফ এরিকসনের খুনি নোট (বা বইয়ের খসড়া)। (যেহেতু জেফি তার নিজস্ব নোটগুলি বোঝাতে খুব বিনয়ী, তাই এটি নিজেই আমাকে করতে হবে))

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


8
জেফের হত্যাকারী নোটগুলির জন্য +1। আমি সবসময় সেগুলি পড়তে উপভোগ করি। অ্যালগোরিদম শব্দের আরবি ক্যালিগ্রাফি খুব সুন্দর।
মোহাম্মদ আল তুর্কিস্তান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.