রিমেজ অ্যালগরিদম


14

রিমিজ অ্যালগরিদম হ'ল মিনিম্যাক্স আদর্শের একটি বহুপদী দ্বারা কোনও ফাংশনটি অনুমান করার জন্য একটি সুপরিচিত পুনরাবৃত্তি রুটিন। তবে নিক ট্রেফেন [১] যেমনটি বলেছেন:

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

ন্যূনতম-স্কোয়ারগুলি বা উত্তল অপ্টিমাইজেশান প্রয়োগ করেও কেউ মিনিম্যাক্স সলিউশন গণনা করতে পারে, উদাহরণস্বরূপ মতলব এবং [-1, 1]-তে রানেজ ফাংশনে প্রয়োগ করা ফ্রি সিভিএক্স টুলবক্স ব্যবহার করে:

m = 101; n = 11;            % 101 points, polynomial of degree 10
xi = linspace(-1, 1, m);    % equidistant points in [-1, 1]
ri = 1 ./ (1+(5*xi).^2);    % Runge function

tic                         % p is the polynomial of degree (n-1)
cvx_begin                   % minimize the distance in all points
    variable p(n);
    minimize( max(abs(polyval(p, xi) - ri)) );
cvx_end
toc                         % 0.17 sec for Matlab, CVX and SeDuMi

চেবিশেভ বহুবর্ষগুলির সাথে 0.1090সান্নিধ্যের একটি ন্যূনতম আদর্শ রয়েছে যদিও এই পদ্ধতির এখানে ন্যূনতম পৌঁছে যায় 0.0654, একই মান যা মাতলাব সরঞ্জাম বাক্সে রেমেজ অ্যালগরিদমের সাথে গণনা করা হয় chebfun

আপনি যদি কোনও অপ্টিমাইজেশন সলভারের সাথে মিনিম্যাক্স সমাধানটি দ্রুত এবং আরও নির্ভুলভাবে গণনা করতে পারেন তবে আরও জটিল রেমেজ অ্যালগরিদম প্রয়োগ করার কোনও সুবিধা আছে কি? কিছু জটিল সমস্যা বা পরীক্ষার ক্ষেত্রে এই দুটি পদ্ধতির সাথে তুলনা করার কোনও প্রতিবেদন / নিবন্ধ রয়েছে?

-
[১] আর প্যাচন এবং এলএন ট্রেফেন। বিআইটি সংখ্যার গণিত (২০০৮) ভলিউম 46।

উত্তর:


4

"ডান" উত্তরটি আপনার কীসের জন্য আপনার নিকটবর্তী প্রয়োজন তা জোরালোভাবে নির্ভর করে। কিছু ত্রুটিবদ্ধ বাউন্ডের জন্য আপনার কি সত্যিই সর্বোত্তম অনুমানের প্রয়োজন? নাকি কেবল একটি ভাল আনুমানিকতা? বা মিনম্যাক্স অর্থে কেবল একটি ভাল আনুমানিক?

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

হালনাগাদ

নীচের মন্তব্যে আলোচনার পরে, আমি সিভিএক্স টুলবক্স ডাউনলোড করেছি এবং চেবফুন রেমেজ অ্যালগরিদমের সাথে সরাসরি তুলনা করেছি (দাবি অস্বীকার: আমি চেবফুন উন্নয়ন দলের অংশ):

% Do the convex optimization bit.
m = 101; n = 11;            % 101 points, polynomial of degree 10
xi = linspace(-1, 1, m);    % equidistant points in [-1, 1]
ri = 1 ./ (1+(5*xi).^2);    % Runge function

tic                         % p is the polynomial of degree (n-1)
cvx_begin                   % minimize the distance in all points
    variable p(n);
    minimize( max(abs(polyval(p, xi) - ri)) );
cvx_end
toc_or = toc                % 0.17 sec for Matlab, CVX and SeDuMi

% Extract a Chebfun from the result
x = chebfun( [-1,1] );
A = [ chebfun(1) , x ];
for k=3:n, A(:,k) = A(:,k-1).*x; end
or = A * flipud(p)

% Make a chebfun of Runge's function
f = chebfun( @(x) 1 ./ ( 1 + 25*x.^2 ) )

% Get the best approximation using Remez
tic, cr = remez( f , 10 ); toc_cr = toc

% Get the maximum error in each case
fprintf( 'maximum error of convex optimization: %e (%f s)\n' , norm( f - or , inf ) , toc_or );
fprintf( 'maximum error of chebfun remez: %e (%f s)\n' , norm( f - cr , inf ) , toc_cr );

% Plot the two error curves
plot( [ f - cr , f - or ] );
legend( 'chebfun remez' , 'convex optimization' );

প্রচুর আউটপুট দেওয়ার পরে, আমি আমার ল্যাপটপে মতলব 2012 এ, সিভিএক্স সংস্করণ 1.22 এবং চেবফুনের সর্বশেষ এসভিএন স্ন্যাপশট সহ পেয়েছি:

maximum error of convex optimization: 6.665479e-02 (0.138933 s)
maximum error of chebfun remez: 6.592293e-02 (0.309443 s)

নোট করুন যে চেবফুন fত্রুটিটি পরিমাপ করতে ব্যবহৃত 15 টি সংখ্যার জন্য সঠিক। সুতরাং চেফুনের রেমেজ দ্বিগুণ সময় নেয় তবে একটি ছোট আন্তর্জাতিক ত্রুটি পায়। এটি চিহ্নিত করা উচিত যে সিভিএক্স অপ্টিমাইজেশনের জন্য সংকলিত কোড ব্যবহার করে যেখানে চেফফান 100% নেটিভ মতলব। এর সর্বনিম্ন ত্রুটিটি 0.00654হ'ল গ্রিডের সর্বনিম্ন ত্রুটি, সেই গ্রিডের বাইরে ত্রুটি হতে পারে 0.00659। গ্রিডের আকারটি m = 1001আমি বাড়িয়ে তুলছি

maximum error of convex optimization: 6.594361e-02 (0.272887 s)
maximum error of chebfun remez: 6.592293e-02 (0.319717 s)

অর্থাত্ প্রায় একই গতি, তবে পৃথক অপ্টিমাইজেশন চতুর্থ দশমিক অঙ্ক হিসাবে এখনও খারাপ। অবশেষে, গ্রিডের আকারটি আরও কাছে m = 10001পেয়েছি

maximum error of convex optimization: 6.592300e-02 (5.177657 s)
maximum error of chebfun remez: 6.592293e-02 (0.312316 s)

অর্থাত্ পৃথক অপ্টিমাইজেশন এখন দশগুণেরও বেশি ধীর এবং ষষ্ঠ সংখ্যা হিসাবে এখনও খারাপ।

মূল কথাটি হ'ল রিমেজ আপনাকে বিশ্বব্যাপী অনুকূল ফলাফলটি দেবে। যদিও পৃথক এনালগটি ছোট গ্রিডগুলিতে দ্রুত হতে পারে তবে এটি সঠিক ফলাফল দেয় না।


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

1
@ হ্যান্স ওয়ার্নার, আমি দুঃখিত, আমি আপনার প্রশ্নটি ভুলভাবে পড়েছি। আপনার উত্তল সমাধানটি আপনাকে একই ফলাফল দিচ্ছে না, কমপক্ষে সমস্ত সংখ্যায় নয়। যদি আমি আপনার উত্তল কোডটি সঠিকভাবে বুঝতে পারি তবে আপনি পয়েন্টের একটি পৃথক সেটকে সর্বাধিক ত্রুটি হ্রাস করছেন। এটি বিশ্বব্যাপী সর্বাধিক ত্রুটি হ্রাস করে - তবে এর মতো নয় - এর একটি ভাল অনুমান।
পেড্রো

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

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

অগত্যা নয়; এর জন্য 'টোল' (যা আপেক্ষিক সহনশীলতা) বা 'ম্যাক্সিটার' chebfun/remezএর মতো বিকল্প রয়েছে তবে সমস্ত ধরণের অপ্টিমাইজেশন সলভারগুলির জন্য একই রকম বিকল্প রয়েছে। একরকম বলতে পারে যে, রেমেজ একটি নির্দিষ্ট কাজের জন্য বিশেষায়িত একটি অপ্টিমাইজেশন রুটিন। এবং প্রশ্নটি হ'ল: সাধারণ উদ্দেশ্য সমাধানকারীরা কি ধরা পড়েছে এবং এই জাতীয় বিশেষজ্ঞের আর কোনও প্রয়োজন নেই? অবশ্যই, আমি ভুল হতে পারে।
হান্স ডব্লিউ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.