অনুশীলনে সবচেয়ে বেশি ব্যবহৃত হয় কোন অ্যালগরিদম?


19

কোন অ্যালগরিদম সবচেয়ে বেশি ব্যবহৃত হয়?

দয়া করে উত্তর প্রতি একক অ্যালগরিদম লিখুন, আপনার উত্তরটি সংক্ষিপ্ত রাখার চেষ্টা করুন (এক বা দুটি লাইন)।


কাভাহ, সম্ভবত এতগুলি সরবরাহ করার আগে আপনার প্রতিক্রিয়ার জন্য অপেক্ষা করা উচিত? :)
সুরেশ ভেঙ্কট

1
@ সুরেশ: দুঃখিত :)
কাভেঃ

3
প্রায়শই কোন অর্থে? (অ্যালগোরিদম প্রয়োগকারী বিভিন্ন কম্পিউটার প্রোগ্রামের সংখ্যা? অ্যালগরিদম ব্যবহারকারী ইনস্টলড টুকরো সংখ্যা? অ্যালগরিদমের মৃত্যুদন্ডের সংখ্যা? অ্যালগরিদম ব্যবহার করে প্রক্রিয়া করা ডেটার পরিমাণ? অ্যালগরিদম দ্বারা ব্যবহৃত সিপিইউ সেকেন্ড?) কোথায়? (একাডেমিয়া, ইন্ডাস্ট্রি, হোম পিসি?) এমন কি কখনও অনুমান করা সম্ভব হয়; উত্তরগুলির কোনওটিকে ব্যাক করার জন্য আমাদের কোনও ডেটা থাকতে পারে?
Jukka Suomela

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

1
জন ম্যাককমারিকের সাম্প্রতিক একটি বই রয়েছে: "নাইন অ্যালগরিদমস দ্যা চেঞ্জড দ্য ফিউচার: দ্য ইনজিনিয়াস আইডিয়াস দ্যাট ড্রাইভ টুডু কম্পিউটারস" জন ম্যাককর্মিক। প্রেস.প্রিন্সটন.ইডু
আলেসান্দ্রো জ্যাকসন

উত্তর:


18

ফাস্ট ফুরিয়ারটি কি অ্যালগরিদমিক সমস্যাটি রিয়েল কম্পিউটার সিস্টেমে প্রতিদিন বেশিরভাগ সময় সমাধান করা হয়? এটি কাছাকাছি হতে হবে। সুতরাং আমি কুলি-টুকি এফএফটি অ্যালগরিদম মনোনীত করব ।


আমি ভালো, FFT মৌলিক কম্পিউটার বিজ্ঞান শিক্ষা উপেক্ষিত, কিন্তু এটি হল অবশ্যই আমাদের আধুনিক সমাজে ব্যাপক প্রভাব বিস্তার সঙ্গে একটি অ্যালগরিদম, এবং আমাদের চারপাশের অনেক আধুনিক জিনিষ FFT সব সময় ক্রান্চিং হয়।
Jukka Suomela

14

গুণ।

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


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

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

আমি মনে করি যে বিয়োগ (তুলনা) বহুগণের চেয়ে অনেক বেশি ব্যবহৃত হয় এবং আমি কোনও কারণ দেখতে পাচ্ছি না কেন গুণকে একটি অ্যালগরিদম হিসাবে গণনা করা হয় এবং সংযোজন / বিয়োগফলটি না করে। তবে, আমি জানি না এটি উত্তর হিসাবে যোগ্যতা অর্জন করে কিনা।
Tsuyoshi Ito

হ্যাঁ, যোগ এবং বিয়োগ বিয়োগের চেয়ে আরও বেশি বার ব্যবহৃত হয় - প্রকৃতপক্ষে দীর্ঘ গুণ অ্যালগরিদম মূলত একটি সংখ্যার গুণকে হ্রাস করে। তবে, আমি জানি না যে এখানে কোনও একক সংযোজন / বিয়োগ অ্যালগরিদম আছে যা আমরা এখানে মনোনীত করতে পারি?
Jukka Suomela

@ জুলকাসুমেলা: দু'জনের পরিপূরক যোগ এবং বিয়োগ ভাল প্রার্থী হবে।
জন গীটজেন

13

ডিজক સ્ત્ર এবং বেলম্যান-ফোর্ড সবচেয়ে সংক্ষিপ্ত পথ অ্যালগরিদম। আছে অন্তত 2010 এর প্রতিটি আঃ পারেন একটি লিঙ্ক রাষ্ট্রবিরোধী রাউটিং প্রটোকল (Dijkstra) অথবা একটি দুরত্ব-ভেক্টর রাউটিং প্রটোকল (বেলম্যান-ফোর্ড) চলছে ইন্টারনেটে 35,000 স্বায়ত্বশাসিত সিস্টেম (আঃ) সক্রিয়। একটি এএস এর মধ্যে রাউটারগুলি সাধারণত প্রতি কয়েক মিনিট পর পর তাদের টেবিলগুলি আপডেট করে, 10 বলে 10

সুতরাং, প্রতিদিন ডিজজস্ট্রা এবং বেলম্যান-ফোর্ডের মৃত্যুদণ্ডের সংখ্যা কমপক্ষে 5 মিলিয়ন। এবং এটি কেবল রাউটার থেকে।

আমরা গুগল ম্যাপস এবং সবচেয়ে পছন্দ হিসাবে যে 10 বার হিসাবে সহজে অ্যাকাউন্ট হিসাবে নেওয়া উচিত তার থেকে সংক্ষিপ্ততম পাথ গণনা গণনা করা হয়নি। দিনে অর্ধ বিলিয়ন ফাঁসি কার্যকর হয় না।


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

8

14
যাইহোক, সত্যিই কি কেইসকোর্টটি বাছাই করা অ্যালগরিদমকে আসল বিশ্বে সবচেয়ে বেশি ব্যবহৃত হয়? আমি কয়েকটি সাধারণভাবে ব্যবহৃত প্রোগ্রামিং ভাষাগুলিতে একটি সাধারণ-উদ্দেশ্য "সাজান" ফাংশন বাস্তবায়নের দিকে তীক্ষ্ণ নজর রেখেছিলাম। পার্ল: মনে হচ্ছে সম্প্রতি কুইকসোর্ট থেকে একত্রীকরণে সরে গেছে। পাইথন: টিমসোর্ট ব্যবহার করে (সংযোজন / সারণির সংকর সংকর)। জাভা: আজকাল টিমসোর্টে একত্রীকরণ হত। ডাটাবেসগুলিতে বাহ্যিক বাছাইয়ের প্রবণতা রয়েছে। কুইকসোর্ট ইতিমধ্যে বিপন্ন প্রজাতি?
Jukka Suomela

আমি মনে করি এটি একটি খুব ভাল পয়েন্ট। উত্তরটি কেউ সম্পাদনা করতে পারলে দুর্দান্ত হবে।
জুয়ান বার্মেজো ভেগা

@ জুয়ান, যদিও জুক্কার উল্লেখ করা বিষয়টি সঠিক, আমি উত্তর সম্পাদনার কোনও কারণ দেখতে পাচ্ছি না।
কাভেঃ


7

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


যে কোনও আইপি-ভিত্তিক নেটওয়ার্ক জুড়ে পাঠানো প্রতিটি প্যাকেটের জন্য কমপক্ষে একবার ব্যবহার করা হয়েছে
ক্লজ ব্রোশ


4

k

আরও সাধারণভাবে, আপনার ধারণার জন্য তাত্ত্বিক এবং ব্যবহারিক দিক রয়েছে বলে কানেল্লাকিস পুরস্কার বিজয়ীদের দিকে নজর দেওয়া উচিত ।


লিঙ্কটির জন্য আপনাকে ধন্যবাদ, এটি খুব আকর্ষণীয় দেখাচ্ছে। প্রশ্নের আংশিক প্রেরণাটি সাইটের জন্য একটি দুর্দান্ত আকর্ষণীয় অ্যালগরিদমিক নাম সন্ধান করছিল। :)
কাভেঃ

4

সীমাবদ্ধ অটোমেটাকে রূপান্তর করে নিয়মিত অভিব্যক্তি মিলে যায় - আমি বিশ্বাস করি এই লাইনগুলি ধরে গ্রেপ ফাংশনগুলি।



3

এটা তোলে আধুনিক বাস্তবায়নের মধ্যে তুলনায় আরও বেশি ব্যাপকভাবে ব্যবহৃত আলগোরিদিম মনে করা কঠিন বিভিন্ন TCP অর্থাত: কনজেশন পরিহার , ফাস্ট পুনরায় প্রেরণ । যদিও এটি নির্ভর করে যে কীভাবে একজন নির্ধারণ করে যে কোনও অ্যালগরিদমের মানদণ্ডগুলি কী পূরণ করে ...


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

আমি মনে করি আপনি ঠিক.
লেভ রেইজিন


2

SHA-1 (এবং সাধারণভাবে হ্যাশ ফাংশনগুলি)। সম্ভবত মৃত্যুদন্ডের সংখ্যার দিক থেকে অন্যান্য অন্যান্য অ্যালগরিদমকে পরাজিত করে।


2

বি + ট্রি সম্পর্কিত আলগোরিদিমগুলি ডাটাবেস স্টাফের জন্য ব্যবহৃত হয়


2

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


1

এই প্রতিক্রিয়া প্রকৃত সিপিইউ চক্রের ক্ষেত্রে "প্রায়শই" ব্যাখ্যা করে।

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

কড়া কথায় বলতে গেলে, অ্যালগরিদমটি প্রায়শই ব্যবহৃত হয়, কোনও সন্দেহ ছাড়াই, উইন্ডোজ সিস্টেম ওয়েট প্রসেস দ্বারা যা কিছু কার্যকর করা হয় যখন অন্য কিছু হয় না ;-)।


1

ম্যাট্রিক্স ভেক্টরকে বহুগুণে স্প্রে করুন

... প্রায় সব রৈখিক সিস্টেমের সমাধানের পিছনে গণনাগত কর্মী। ফলস্বরূপ এটি যখনই চালানো হচ্ছে

  • বিজ্ঞানী / প্রকৌশলীরা ডিফারেনশিয়াল সমীকরণগুলি সমাধান করেন
  • পরিসংখ্যানবিদরা নতুন পারস্পরিক সম্পর্ক (পিসিএ) খুঁজে পান
  • গুগল পেজরেঙ্ক চালায়
  • আপনার ফোন জিপিএস, অ্যাকসিলোমিটার, সেল টাওয়ারের অবস্থানগুলি থেকে আপনার অবস্থানের পূর্বাভাস দেয়
  • আপনার গাড়ী আপনার স্থগিতাদেশ গতিতে সামঞ্জস্য করে
  • ইত্যাদি ....

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


1

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


1

হ্যাশিং এবং লাল-কালো গাছ।

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



0

ডায়নামিক প্রোগ্রামিং

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

ডিপি বহুমুখী, এবং এর অনেকগুলি মুখ রয়েছে। কখনও কখনও আমি এটি কিছুটা অবচেতনভাবে ব্যবহার করি এবং পরে বুঝতে পারি যে আমি ডিপি করছি।

অবশ্যই, এমন কিছু জিনিস রয়েছে যা ডায়নামিক প্রোগ্রামের চেয়েও বেশি সাধারণ তবে সেগুলি বেশিরভাগই ডেটা স্ট্রাকচার (অ্যারে, লিঙ্কযুক্ত তালিকা, হ্যাশ)।


7
এটি অন্যান্য পরামর্শগুলির থেকে কিছুটা আলাদা কারণ এটি একটি অ্যালগরিদম ডিজাইনের দৃষ্টান্ত (লোভী বা আধা-দ্বৈত অনুরূপ) এবং কেবল একটি একক অ্যালগরিদম নয়।
Jukka Suomela

0

স্ট্রিং ম্যাচিং, অ্যাপ্লিকেশন সফ্টওয়্যার এবং ডাটাবেস স্তরে সর্বদা ব্যবহৃত।

সঠিক ক্ষেত্রে, বেশ কয়েকটি জড়িত অ্যালগরিদম (কেএমপি, বায়ার-মুর) রয়েছে এমন কিছুগুলির সাথে যা সাবলাইনার প্রত্যাশিত রানটাইম অর্জন করে। সিএস দৃষ্টিকোণ থেকে তারা পড়াশোনাও আকর্ষণীয়।

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.