আমি সিএস ফিল্ডে নতুন এবং আমি লক্ষ্য করেছি যে আমি যে অনেকগুলি কাগজ পড়েছি সেখানে কোনও অভিজ্ঞতামূলক ফলাফল নেই (কোনও কোড নেই, কেবল লেমাস এবং প্রমাণ নেই)। কেন এমন? কম্পিউটার বিজ্ঞান একটি বিজ্ঞান বিবেচনা করে, এটি কি বৈজ্ঞানিক পদ্ধতি অনুসরণ করা উচিত নয়?
আমি সিএস ফিল্ডে নতুন এবং আমি লক্ষ্য করেছি যে আমি যে অনেকগুলি কাগজ পড়েছি সেখানে কোনও অভিজ্ঞতামূলক ফলাফল নেই (কোনও কোড নেই, কেবল লেমাস এবং প্রমাণ নেই)। কেন এমন? কম্পিউটার বিজ্ঞান একটি বিজ্ঞান বিবেচনা করে, এটি কি বৈজ্ঞানিক পদ্ধতি অনুসরণ করা উচিত নয়?
উত্তর:
গণিতও একটি বিজ্ঞান, এবং আপনাকে এই ক্ষেত্রের প্রকাশিত গবেষণামূলক ফলাফলগুলি খুঁজে পেতে দীর্ঘ সময় অনুসন্ধান করতে হবে (যদিও আমি অনুমান করি কিছু অবশ্যই আছে)) অন্যান্য বৈজ্ঞানিক ডোমেন রয়েছে যেখানে কোয়ান্টাম ফিজিক্সের মতো অভিজ্ঞতার তুলনায় "লেমাস এবং প্রুফ" মূল্যবান। এটি বলেছিল যে, বেশিরভাগ বিজ্ঞান তত্ত্ব এবং অনুশীলনকে মিশ্রিত করে (বিভিন্ন অনুপাত সহ), এবং কম্পিউটার বিজ্ঞানও এর ব্যতিক্রম নয়।
গণিতের কম্পিউটার বিজ্ঞানের শিকড় রয়েছে (উদাহরণস্বরূপ টুরিংয়ের জীবনী http://en.wikedia.org/wiki/Alan_Turing দেখুন ) এবং এরকম অনেকগুলি ফলাফল (সাধারণত "তাত্ত্বিক কম্পিউটার বিজ্ঞানের" ক্ষেত্রে ডাব করা হয়) প্রমাণগুলি নিয়ে গঠিত কিছু গণ্য মডেলের কম্পিউটারগুলি প্রদত্ত পরিমাণ অপারেশনগুলিতে কিছু সমস্যা সমাধান করতে পারে (যেমন কনফারেন্স যেমন এফোকস, এসটিওসি, সোডা, এসসিজি ইত্যাদি)) তবুও, কম্পিউটার বিজ্ঞানের আরও অনেক ফলাফল পরীক্ষামূলক ফলাফলের বিশ্লেষণের মাধ্যমে (যেমন WADS, ALENEX, ইত্যাদি ...) এর মাধ্যমে ব্যবহারিক জীবনে the তত্ত্বগুলির প্রয়োগের সাথে সম্পর্কিত।
এটি প্রায়শই পরামর্শ দেওয়া হয় যে আদর্শটি তত্ত্ব এবং অনুশীলনের মধ্যে একটি ভাল ভারসাম্য, যেমন "প্রাকৃতিক বিজ্ঞান", যেখানে পরীক্ষাগুলির পর্যবেক্ষণ দ্বারা নতুন তত্ত্বের প্রজন্মকে অনুরোধ জানানো হয়, যা পরিবর্তিতভাবে এগুলি নিশ্চিত করার বা অসুস্থ করার জন্য নতুন পরীক্ষার পরামর্শ দেয়: যেমন অনেকগুলি সম্মেলনগুলি পরীক্ষামূলক এবং তাত্ত্বিক ফলাফল উভয়ই গ্রহণ করার চেষ্টা করে (যেমন ESA, ICALP, LATIN, CPM, ISAAC, ইত্যাদি ...)। কম্পিউটার বিজ্ঞানের "অ্যালগরিদমস এবং ডেটা স্ট্রাকচারস" এর উপক্ষেত্রটি এই অর্থে ভারসাম্যহীনতায় ভুগতে পারে যে "তাত্ত্বিক" সম্মেলনগুলি সাধারণত পরীক্ষামূলকগুলির তুলনায় বেশি উচ্চ স্থানে থাকে। আমি বিশ্বাস করি যে কম্পিউটার বিজ্ঞানের অন্যান্য উপক্ষেত্র যেমন এইচসিআই বা এআইয়ের ক্ষেত্রে এটি সত্য নয়।
আশা করি এটা সাহায্য করবে?
অ্যালগরিদমগুলি ভালভাবে প্রয়োগ করা একটি দক্ষতা যা কেবলমাত্র উপপাদাগুলি প্রমাণ করার চেয়ে বিভিন্ন ধরণের সরঞ্জাম গ্রহণ করে। তত্ত্ব সম্প্রদায়ের দ্বারা আবিষ্কৃত অনেক অ্যালগরিদমগুলি বাস্তবে বাস্তবায়িত হয়ে গেছে (যদিও আমি দেখতে চাই তত্ত্ব সম্প্রদায় এই প্রক্রিয়াতে আরও বড় ভূমিকা নেয়)। পদার্থবিজ্ঞান একই গবেষককে তত্ত্ব এবং পরীক্ষা করতে বলবে না, যদিও এটি আশা করা যায় যে দুটি গ্রুপ যোগাযোগ করবে। কম্পিউটার বিজ্ঞানে একই বিভাজনটি কেন দেখার আশা করবেন না?
সম্পাদনা যুক্ত:
বেল ল্যাবস এবং এটিএন্ডটি ল্যাবগুলিতে উপরে "ভূমিকা" বলতে আমি কী বোঝাতে চেয়েছিলাম সে সম্পর্কে সুরেশের জবাবে আমার মন্তব্যে সম্প্রসারণ করাতে, অ্যালগরিদমের গবেষকরা উন্নয়নের লোকদের সাথে কথা বলার জন্য উত্সাহিত হয়েছিল। আমার যতটা হওয়া উচিত ছিল আমি তেমন কিছুই করি নি, তবে আমি এটি থেকে কমপক্ষে একটি কাগজ বের করে দিয়েছি এবং আমি মনে করি বিশ্ববিদ্যালয়গুলিতে এবং তত্ত্ববিদদের মধ্যে তত্ত্বের লোকদের মধ্যে আরও যোগাযোগ থাকলে ক্ষেত্রটির পক্ষে ভাল হবে would । এর অর্থ এই নয় যে আমি মনে করি প্রত্যেক ব্যক্তি যারা এলগরিদম নিয়ে আসে তাদের কোড করা উচিত (এমনকি এটি ব্যবহারিক হলেও)।
অন্যদিকে, কোডিং অ্যালগরিদমগুলি (বা তাদের একটি ছাত্র কোড থাকা) যা আপনি মনে করেন যে এটি ব্যবহারিক হতে পারে সেগুলি অনুশীলনকারীদের দ্বারা খাপ খাইয়ে নিতে কার্যকর হতে পারে। একটি উদাহরণ বিবেচনা করুন। লেম্পেল এবং জিভ নতুন ডেটা সংক্ষেপণ অ্যালগরিদমগুলিতে 1977 এবং 1978 সালে দুটি প্রযুক্তিগত কাগজ লিখেছিলেন। প্রত্যেকে তাদের এড়িয়ে গেল। ১৯৮৪ সালে, ওয়েলচ খুব কম প্রযুক্তিগত কাগজ লিখেছিলেন যা এলজেড 7878 এ সামান্য মোচড় দিয়েছিল যা এর পারফরম্যান্স কিছুটা উন্নত করেছিল এবং এর সাথে অন্য ডেটা সংক্ষেপণের পদ্ধতির সাথে তার পারফরম্যান্সের তুলনা করে একটি ছোট্ট গবেষণার ফলাফল দেয়। এটি বেশ কয়েকটি প্রোগ্রামার দ্বারা পড়া একটি জার্নালে প্রকাশিত হয়েছিল, এবং অ্যালগরিদমটি কয়েক লাইনের সিউডোকোড দিয়েছিল। পদ্ধতিটি বেশ কয়েকটি স্থানে দ্রুত রূপান্তরিত হয়েছিল, পরিণামে কুখ্যাত বৌদ্ধিক সম্পত্তির বিবাদের ফলস্বরূপ।
অবশ্যই, অনুশীলনের সাথে আলগোরিদিম গবেষকদের যোগাযোগের অন্যতম সেরা উপায় হ'ল গ্রেড শিক্ষার্থী যারা গুগল, আইবিএম বা অন্যান্য সংস্থাগুলিতে কাজ করে তাদের উত্পাদন করা এবং আমরা ইতিমধ্যে এটি করছি। আর একটি উপায় হতে পারে এই ফোরামে অনুশীলনকারীদের প্রশ্নের উত্তর দেওয়া। আশা করি, আমরা এর একটি যুক্তিসঙ্গত কাজও করছি।
তাত্ত্বিক কম্পিউটার বিজ্ঞানের অভিজ্ঞতামূলক পদ্ধতি এবং পদ্ধতি ব্যবহার করে এমন একটি গবেষণা ক্ষেত্র হ'ল "পরীক্ষামূলক আলগোরিদিমিক্স" বা "অ্যালগরিদম ইঞ্জিনিয়ারিং"। ক্রিসের মতো উল্লেখ করা হয়েছে, উচ্চতর পারফরম্যান্স কম্পিউটিং এর উপর অনেক বেশি নির্ভর করে কারণ আধুনিক সিস্টেমে জটিল ক্যাশে এবং বিলম্বিত সমস্যা রয়েছে যা আমাদের একটি হার্ড টাইম মডেলিং রয়েছে।
জের্থ ব্রোডাল এবং পিটার স্যান্ডার্স গবেষকদের যারা "প্রমাণ" এবং "অভিজ্ঞতাবাদী" উভয় ক্ষেত্রেই একটি পা বজায় রাখার একটি ভাল উদাহরণ।
- আপডেট 1/20 / 2013-- আমি রবার্ট সেডজউইকের একটি দুর্দান্ত উপস্থাপনাটিও উল্লেখ করব ।
এটি আপনার যে শৃঙ্খলে রয়েছে তার উপর নির্ভর করে; জেরেমির বক্তব্য অনুসারে তত্ত্ব বনাম অনুশীলনের বর্ণালী রয়েছে।
জটিলতার মতো বিষয়গুলি তত্ত্বের দিকের দিকে ওজনে ঝোঁক থাকে, কারণ প্রায়শই লক্ষ্য হয় স্থান বা রানটাইমের সীমা নির্ধারণ করা। সি ++ এ একটি অ্যালগরিদম বাস্তবায়ন এবং তারপরে এটি চালিয়ে যাওয়া অনেক সময় প্রমাণ করে না যে কোনও সমস্যা এনপি-সম্পূর্ণ।
একটি মেরু বিপরীত হিসাবে, উচ্চ-পারফরম্যান্স কম্পিউটিং ( সুপারকম্পিউটিংয়ের মতো সম্মেলনগুলির সাথে ) সমস্ত অনুগত; মেমরি শ্রেণিবদ্ধতা এবং কার্নেল ওভারহেড সম্পর্কে খুব বেশি পরিবর্তনশীলতার কারণে কেউ এইচপিসি প্রকাশনায় কখনও প্রমান জমা দিতে পারে না।
তাই কি (কতক্ষণ কিছু নিতে চালানোর জন্য করে?) দুটি সম্পূর্ণ ভিন্ন লক্ষ্য, কৌশল, সম্প্রদায়, ইত্যাদি উপর নির্ভর করে উপায়ে কাছে করা হবে একই প্রশ্ন মত মনে হয় দেখুন Poul-Henning Kamp এর আপনি এটা ভুল করছেন একটি উদাহরণ জন্য বিভেদ
প্রোগ্রামিং ভাষাগুলিতে গবেষণায় নতুন প্রোগ্রামিং ল্যাঙ্গুয়েজ কনস্ট্রাক্টস বা নতুন ধরণের চেকিং মেকানিজমের জন্য অনেকগুলি ধারণা তত্ত্ব থেকে উদ্ভূত হয় (সম্ভবত অনুশীলনের অভিজ্ঞতা দ্বারা অবহিত করা হয়, সম্ভবত নয়)। আনুষ্ঠানিক / তাত্ত্বিক / ধারণাগত দৃষ্টিকোণ থেকে প্রায়শই এই জাতীয় প্রক্রিয়া সম্পর্কে একটি কাগজ লেখা হয়। এটি তুলনামূলকভাবে সহজ। এর পরে প্রথম প্রতিবন্ধকতাটি উপস্থিত রয়েছে: একটি বিদ্যমান সংকলক প্রসঙ্গে নতুন কনস্ট্রাক্টগুলি বাস্তবায়ন করা এবং দক্ষতা বা নমনীয়তার ক্ষেত্রে এটি ব্যবহার করা। এটিও তুলনামূলকভাবে সহজ।
কিন্তু আমরা কি তখন বলতে পারি যে প্রোগ্রামিং কনস্ট্রাক্টিং প্রোগ্রামিংয়ের বিজ্ঞানের অগ্রগতি রচনা করে? আমরা কি বলতে পারি যে এটি লেখার প্রোগ্রামকে আরও সহজ করে? আমরা কি বলতে পারি যে এটি প্রোগ্রামিংয়ের ভাষা আরও উন্নত করে?
উত্তর না হয়। এই জাতীয় ধরণের প্রশ্নের উত্তর দেওয়ার জন্য বেশিরভাগ সময়ে অভিজ্ঞ প্রোগ্রামারদের বেশিরভাগ সময়ে জড়িত একটি যথাযথ অভিজ্ঞতামূলক মূল্যায়ন প্রয়োজন। এই গবেষণা খুব কমই করা হয়। প্রোগ্রামিং ভাষার মূল্যমানের একমাত্র বিচারক (এবং এর নির্মাণ) ভাষার জনপ্রিয়তা। এবং প্রোগ্রামিং ল্যাঙ্গুয়েস্ট পিউরিস্টদের জন্য, এটি আমাদের হাইপোথিসিসগুলি যা বলে তার বিরুদ্ধে যায়।
সম্ভবত আমি আপনার প্রশ্নের অনুপ্রেরণা মিস করছি তবে গবেষণামূলক প্রেরণা, অ্যালগরিদম এবং অন্যান্য ফলাফলের অনুপ্রেরণামূলক ফলাফলগুলির অনেক উদাহরণ রয়েছে।
এমপি 3 ব্যবহার সাইকোঅাকোস্টিক মানব এনকোডিংয়ের জন্য অ্যালগরিদমকে অনুকূল করে তুলতে করে।
প্লাফ তার সংখ্যার জন্য বিবিপি স্পিগট অ্যালগরিদম আবিষ্কার করার জন্য একটি অ্যাকাউন্ট দেয়যেখানে তিনি সূত্রটি আবিষ্কার করতে ইন্টিজার রিলেশন আলগোরিদম ম্যাথামেটিকার যা কিছু ব্যবহার করছেন তা বর্ণনা করে ।
একই লাইনের সাথে, বেইলি এবং বোরওইন পরীক্ষামূলক গণিতের বড় প্রবক্তা। দেখুন "অগ্নিপরীক্ষা হিসাবে কম্পিউটার: পরীক্ষামূলক গণিত পরিচিতি" , "কম্প্যুটেশনাল প্যাকেজ ট্যুরের সংখ্যা তত্ত্ব মধ্যে" মাঝে অন্যদের । যে কেউ তর্ক করতে পারে এটি আরও পরীক্ষামূলক গণিত তবে আমি যুক্তি দিয়ে বলতে পারি যে এই স্তরে আলোচনাটি পার্থক্যটি অর্থগত।
এনপি-সম্পূর্ণ সমস্যার পর্যায়ক্রমে হ'ল এমন আরও একটি ক্ষেত্র যেখানে বোধগম্য ফলাফলগুলি ভারী ব্যবহৃত হয়। দেখুন Monasson, Zecchina, কার্কপ্যাট্রিক, Selman এবং Troyansky এবং ভদ্দরলোকের এবং ওয়ালশ নতুনদের জন্য অনেক আছে যদিও, আরো অনেক (দেখুন এখানে একটি সংক্ষিপ্ত সমীক্ষার জন্য)।
তাত্ত্বিক কম্পিউটার বিজ্ঞান বা গণিতের স্তরে বেশ না হলেও, ইউনিক্স ইউটিলিটি গ্রেপের গড় ক্ষেত্রে রানটাইম বিট কীভাবে সবচেয়ে খারাপ ক্ষেত্রে অ্যালগরিদমকে অনুকূলিত করেছে তা নিয়ে এখানে আলোচনা রয়েছে কারণ এটি মানুষের পাঠযোগ্য পাঠ্যকে (গ্রেপ খারাপ হিসাবে বা এগুলির মধ্যে এলোমেলো অক্ষরের ফাইলগুলির মধ্যে সবচেয়ে খারাপ)।
এমনকি গৌস তার প্রাইম নাম্বার উপপাদ্যের অনুমানটি দেওয়ার জন্য পরীক্ষামূলক প্রমাণ ব্যবহার করেছিলেন।
ডেটা মাইনিং ( Bellkor এর সমাধান করতে Netflix এর পুরস্কার আরো ভালো সুপারিশ সিস্টেম করতে) একটি তত্ত্ব সম্পূর্ণরূপে গবেষণামূলক প্রমাণের ওপর ভিত্তি করে হতে যুক্তি দেওয়া যেতে পারে। কৃত্রিম বুদ্ধিমত্তা (জেনেটিক অ্যালগোরিদম, নিউরাল নেটওয়ার্ক ইত্যাদি) পরীক্ষার উপর প্রচুর নির্ভর করে। কোড নির্মাতারা এবং কোড ভঙ্গকারীদের মধ্যে ক্রিপ্টোগ্রাফি একটি অবিচ্ছিন্ন ধাক্কা এবং টানে। আমি সত্যিই কেবল কয়েকটি নাম রেখেছি এবং যদি আপনি নিজের অনুজ্ঞাবোধের সংজ্ঞাটি শিথিল করেন তবে আপনি আরও বিস্তৃত জাল ফেলতে পারেন।
আপনার প্রশ্নের উত্তরে এত ছড়িয়ে ছিটিয়ে থাকার জন্য আমার ক্ষমা চাই তবে আমি আশাবাদী যে আমি কমপক্ষে কয়েকটি উদাহরণ প্রদান করেছি যা সহায়ক।