উচ্চতর অর্ডার অ্যালগরিদম


35

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

কিছুগুলি দ্বিতীয়-ক্রমেরও কিছুটা আকর্ষণীয়:

  • মনোআইডস দ্বারা আঙ্গুলের প্যারামিটারাইজড
  • একঘেয়ে প্রেডিকেটে আঙুলের ছিটিয়ে দেওয়া
  • উপসর্গের যোগফলের অ্যালগোরিদম, আবার সাধারণত একটি মনোয়েড বা প্রিডিকেট ইত্যাদি দ্বারা প্যারামিটারাইজড

পরিশেষে, কিছু "সত্যই" অর্থে উচ্চতর অর্ডার যা আমার কাছে সবচেয়ে আকর্ষণীয়:

  • ওয়াই সংযুক্তকারী
  • পার্থক্য তালিকা

অন্যান্য অনানুষ্ঠানিক উচ্চতর অর্ডার অ্যালগরিদম আছে কি?

আমার প্রশ্নটি স্পষ্ট করার প্রয়াসে, "অযৌক্তিক উচ্চতর আদেশ" এর অধীনে আমি বলতে চাইছি "অ্যালগরিদমের ইন্টারফেস এবং / বা বাস্তবায়নে জটিল পদ্ধতিতে কম্পিউটেশনাল ফরমালিজমের উচ্চতর আদেশ সুবিধা ব্যবহার করা"


3
আমি একবার অনুরূপ কিছু জিজ্ঞাসা। কয়েকটি উত্তর এখানে: caml.inria.fr/pub/ML-archives/caml-list/2004/09/…
রাদু GRigore

আপনি কি ছেলেরা আলগোরিদিম সম্পর্কে কথা বলছেন যা আলগোরিদিম নেয় এবং / অথবা আলগোরিদিমগুলি ফেরত দেয়?
প্রতীক দেওঘরে

উত্তর:


13

Http://math.andrej.com এ উচ্চতর অর্ডার ফাংশন রয়েছে , উদাহরণস্বরূপ পোস্টে ডাবল এক্সপেনশনিয়ালের বিষয়ে , নিম্নলিখিত হাস্কেল প্রকারটি উপস্থিত হয় (প্রতিশব্দ প্রসারিত প্রকারের সাথে):

shift :: Bool -> ((Int -> Bool) -> Bool) -> ((Int -> Bool) -> Bool)

সীমাবদ্ধ সময়ে অসীম অনুসন্ধানের জন্য হাস্কেল মোনাড পোস্টটি দিয়ে আপনিও প্রচুর মজা নিতে পারেন - উদাহরণস্বরূপ:

newtype S a = S ((a -> Bool) -> a)
bigUnion :: S (S a) -> S a

আমার ধারণা, বিগ ইউনুনির ধরণটি 4 র্থ বা 5 তম অর্ডার!


22

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

উদাহরণ:

(1) এলিপসয়েড অ্যালগরিদমগুলি যখন "বিচ্ছিন্নতা ওরাকল" (যেমন http://math.mit.edu/~vempala/18.433/L18.pdf) নিয়ে কাজ করছেন ) এর সাথে কাজ করার সময় রয়েছে

(২) সাবমডুলার ফাংশন মিনিমাইজেশন (যেমন http://people.commerce.ubc.ca/factory/mccormick/sfmchap8a.pdf )

(3) সম্পত্তি পরীক্ষার পুরো ক্ষেত্রটি সত্যই এই ফর্মটির ( http://www.wisdom.weizmann.ac.il/~oded/test.html )

(৪) ক্যোয়ারী মডেলগুলিতে সম্মিলিত নিলাম (উদাহরণস্বরূপ: http://pluto.huji.ac.il/roblumrosen/papers/iter.pdf )


15

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

আমাকে আরও ভালো হবে যাক: যখন প্রকৃতপক্ষে প্রকৃত উচ্চতর-অর্ডার আলগোরিদিম হয়, বাস্তবে এটা সবসময় প্রতিটি পুনর্লিখন করা সম্ভব উদাহরণস্বরূপ একটি বিশুদ্ধরূপে প্রথম অর্ডার প্রোগ্রাম হিসাবে। অন্য কথায়, কোনও স্যাচুরেটেড উচ্চতর অর্ডার প্রোগ্রাম নেই - মূলত কারণ প্রোগ্রামগুলির ইনপুট / আউটপুট বিট স্ট্রিং থাকে। [হ্যাঁ, এই বিট স্ট্রিংগুলি ফাংশনগুলিকে প্রতিনিধিত্ব করতে পারে, তবে এটি হ'ল: তারা ফাংশনগুলি উপস্থাপন করে, তারা ফাংশন নয় ]।

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


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

1
@ জেকিএফএফ: আমি আপনার প্রথম বক্তব্যের সাথে একমত - আমাদের অবশ্যই অভ্যন্তরীণ বৈশিষ্ট্যগুলি নিয়ে আলোচনা করা উচিত। আমি দৃ point়ভাবে দ্বিতীয় বিষয়টির সাথে একমত নই: আপনি একরকম দাবি করছেন যে এক্সটেনশানগুলি এবং ইনটেনশনগুলি 'একই', যা কেবল স্পষ্টতই মিথ্যা। [ম্যাটিস পেইন্টিংটি 'এটি পাইপ নয়' মনে করিয়ে দেয়]
জ্যাক ক্যারেট

আহ, হ্যাঁ, "এটা কনভার্সনের ট্রেজারি"। (\\() -> "Ceci n'est pas une fonction") ()
সিএ ম্যাকক্যান

আমি দাবি করছি যে দুটি জিনিস যদি সমান হয় (একে অপরের প্রতিনিধিত্ব করে) তবে আপনি তাদের একটির অস্তিত্বকে অস্বীকার করতে পারবেন না :)
jkff

@ জেকিএফএফ: এর সাথে একমত হওয়া শক্ত!
জ্যাক ক্যারেট

13

পার্সার কম্বিনেটর লাইব্রেরিতে ফাংশনের ক্রমটি সাধারণত মোটামুটি বেশি। পরীক্ষা করে দেখুন এমনকি উচ্চ-অর্ডার কাজকর্মের জন্য পার্সিং বা কেন কেউ কি কখনো করতে ব্যবহার করুন একটি ষষ্ঠ-অর্ডার ফাংশন চান? লিখেছেন ক্রিস ওকাসাকি। ফাংশনাল প্রোগ্রামিং জার্নাল , 8 (2): 195-199, মার্চ 1998।


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

13

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

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


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

13

ধারাবাহিকতার একটি মডুলাস ক্রিয়ামূলক একটি মানচিত্র mযা কোনও (অবিচ্ছিন্ন) ক্রিয়ামূলক গ্রহণ করে F : (nat -> nat) -> natএবং kএমন একটি সংখ্যাকে আউটপুট করে দেয় যে F f = F gযখনই সবার f i = g iজন্য হয় i < kধারাবাহিকতার মডুলাস গণনা করার জন্য অ্যালগরিদম রয়েছে (খুব দক্ষ নয়), এটি এটি একটি তৃতীয় ক্রমের অ্যালগরিদমের উদাহরণ তৈরি করে।


9

নোমের উত্তর পরিপূরক করতে , বেশ কয়েকটি পরিস্থিতিও রয়েছে যেখানে আউটপুটটি থাকা জরুরি কোনও ফাংশন (তার স্পষ্ট প্রতিনিধিত্ব) হওয়া ।

সি:0,1এন0,1মিএকজন (α,এল,ε)সিএনএকজনএম1,...,এমএল

W0,1মি,পিRএকজন[মি, (একজন(সি(মি),W)α আমি[এল], [এন], পিRএমআমি[এমআমি()=মি]1-ε)]2/3

একজনএকজন2/3εমিমিα


5

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

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

উদাহরণস্বরূপ, আপনি iএই জাতীয় উত্সের শীর্ষ প্রান্তের নবম নিকটতম প্রতিবেশী শেলটি গণনা করতে একটি ফাংশন লিখতে পারেন :

nth i 0 = {i}
nth i 1 = neighbors i
nth i n = diff (diff (fold union empty (map neighbors (nth i (n-1)))) (nth i (n-1))) (nth i (n-2))

যেখানে neighborsএমন একটি ফাংশন যা প্রতিবেশী শিখরের সেটটিকে প্রদত্ত ভারেটেক্সে ফিরে দেয়।

উদাহরণস্বরূপ, 2D বর্গক্ষেত্র জাল:

neighbors (x, y) = {(x-1, y), (x+1, y), (x, y-1), (x, y+1)}

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


এটি আমাকে একবারে প্রশ্নে নিয়ে আসে to যদি গ্রাফগুলি এভাবে সংজ্ঞায়িত করার প্রোগ্রামগত উপায় থাকে তবে একটি স্ব-রেফারেন্টাল প্যারাডক্সিক্যাল গ্রাফ সংজ্ঞায়নের কোনও উপায় আছে কি?
সুরেশ ভেঙ্কট

1
{এক্স:এক্সএক্স}{এক্স:এক্সএক্স} অসীম লুপে আটকে গেছে পাবেন। উদাহরণস্বরূপ দেখুন, blog.sigfpe.com/2008/01/type-that-should-not-be.html
sdcvvc

অবশ্যই। কিন্তু এটি কি একটি স্ব-রেফারেন্সিয়াল গ্রাফ ?
সুরেশ ভেঙ্কট

@ সুরেশ: এটি এমন একটি গ্রাফ যা কার্যকরী ভাষায় এই অর্থে সংজ্ঞায়িত করা হয় যে এক প্রান্তের এক প্রান্ত এবং প্রান্তের Uএকটি কার্য U -> U -> Boolরয়েছে।
sdcvvc
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.