আমি আমার এমপি 3 সংগ্রহটি বাছাই করতে একটি "চূড়ান্ত রদবদল" অ্যালগরিদম লিখতে চাই


33

আমি আমার এমপি 3 ফাইলগুলি এমনভাবে বাছাইয়ের জন্য সিউডোকোড পরামর্শগুলি সন্ধান করছি যা শিরোনাম এবং শিল্পীর পুনরাবৃত্তি এড়ায় । আমি ক্রোনারদের কথা শুনি - ফ্রাঙ্ক সিনাট্রা, টনি বেনেট, এলা ফিৎসগেরাল্ড ইত্যাদি পুরানো স্ট্যান্ডার্ড গায়। প্রতিটি শিল্পী একই গানগুলির অনেকগুলি রেকর্ড করে - ফ্লাই মি টু দ্য মুন, দ্য ওয়ে ইউ টু টুন টাইট, স্টারডাস্ট ইত্যাদি My সুতরাং আমার কাছে যদি 2000 গান এবং 20 টি এলা দ্বারা থাকে তবে আমি প্রতি 100 টি গানে তার একবার শুনতে চাই। যদি 10 শিল্পী ফ্লাই মি টু দ্য মুন গান করেন তবে আমি প্রতি 200 গানে এটি একবার শুনতে চাই। অবশ্যই আমার "চূড়ান্ত পরিবর্তন" তৈরি করতে এই দুটি প্রয়োজনীয়তা একত্রিত করতে চাই।

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


একটি প্রাথমিক পয়েন্ট হিসাবে আমি কোডটি সংশোধন করছি আমি এমপি 3 ফাইলগুলি পরিচালনা করতে এবং আইডি 3 ট্যাগ পড়ার জন্য এখানে পেয়েছি

আমি একটি ছোট অ্যাপ্লিকেশন লিখেছি যা নীচে পার্সফালের উত্তরটি ব্যবহার করে আমার প্রয়োজনীয়তা পূরণ করে। আমি এখানে একটি ফলো আপ প্রশ্নও লিখেছি । সমস্ত দুর্দান্ত প্রতিক্রিয়া জন্য ধন্যবাদ!


3
দুর্দান্ত প্রশ্ন, শীতল সমস্যা, কেউ যদি অ্যালগরিদমকে সত্যিই ভাল জানেন তবে আপনার কাছে আনুষ্ঠানিক পদ্ধতির উপর ভিত্তি করে সম্ভবত দুর্দান্ত উত্তর হবে।
জিমি হোফা

সুতরাং, যদি আপনার সংগীত সংগ্রহের 50% একই শিল্পীর কাছ থেকে হয় তবে আপনি শিল্পীটি প্রতি 2 টি গান শুনতে শুনতে চাইবেন না কেন সেখানে আরও কত শিল্পী থাকুক না কেন ... সম্ভবত 50% এর চেয়ে বেশি না, তবে আপনি পাবেন ধারণা. সম্ভবত কেবল আমার মতামত, তবে আপনার কাছে প্রতিটি শিল্পীর কাছ থেকে সমান পরিমাণ গান না থাকলে এটি "চূড়ান্ত রদবদল" বলে মনে হয় না। অন্যদিকে, যদি আপনার কাছে কেবল কোনও শিল্পীর 1 টি গান থাকে তবে আপনি এটি খুব বেশি খেলতে চান না। 2 এর মধ্যে ভারসাম্য খুঁজে পাওয়া কঠিন হওয়া উচিত নয়।
ডিউক্লিং

আমি এই সিডোকোডের মতো কিছু করব: while (length(songs) > 0) { x := rand(); addElem(shuffle, songs[x]); remElem(songs, x); }তবে আপনি বলেন যে আপনি একটি "চূড়ান্ত রদবদল" চান। আপনি সত্যিই এর সাথে কী চান তা আমি জানি না, এমনকি প্রশ্নটি পড়ে ...
কোল জনসন

আপনি কোথাও আপনার গানের তালিকা আপলোড করতে পারেন - শিরোনাম এবং শিল্পীদের ট্যাব বা পাইপ পৃথক বা এক্সএমএল
tgkprog

বনশীতে (প্লাগইন বা কোর হিসাবে) থাকতে খুব সুন্দর লাগবে!
পিএইচডাব্লু

উত্তর:


5

আপনি কি একবার আপনার প্রোগ্রামটি চালিয়ে প্লেলিস্ট তৈরি করতে চান, বা পরবর্তী গানটি সরাসরি বাছাই করতে চান?

যদি দ্বিতীয়টি হয় তবে উত্তরটি সহজ:

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

একটি গান বাছাই করা নিম্নলিখিত ধাপগুলির ক্রম হয়ে ওঠে:

  1. এলোমেলোভাবে "সমস্ত গান" অ্যারে থেকে একটি গান বাছুন। এটি 0 এবং অ্যারের আকারের মধ্যে কেবল একটি এলোমেলো সংখ্যা।
  2. দেখুন যে গানটি ইতিমধ্যে প্লে করা গানের তালিকায় রয়েছে কিনা। যদি তা হয় তবে # 1 ধাপে ফিরে যান।
  3. শিল্পী ইতিমধ্যে প্লে করা শিল্পীর তালিকায় রয়েছে কিনা দেখুন। যদি তা হয় তবে # 1 ধাপে ফিরে যান।
  4. প্রয়োজনে পুরানো এন্ট্রিগুলি বাদ দিয়ে উপযুক্ত তালিকায় গানের শিল্পী / শিরোনাম যুক্ত করুন।
  5. গানটি খেলো।

বেশ কয়েকটি সম্ভাব্য সমস্যা রয়েছে, তবে আপনি কেবল এটি হোমওয়ার্ক হিসাবে করছেন এবং সত্যিকারের প্রকল্প হিসাবে না নিলে তা কেবল তাদের উচিত।

  • যেমন @ ডুকলিং একটি মন্তব্যে বলেছিলেন, যদি আপনার সংগ্রহটি একক শিল্পী বা গানের শিরোনামের পক্ষে নাটকীয়ভাবে ভারসাম্যহীন হয় তবে আপনি এমন একটি লুপে উঠতে পারেন যেখানে আপনি ক্রমাগত গান প্রত্যাখ্যান করেন। বাস্তবে, এটি কোনও সমস্যা হয়ে উঠবে না। সমাধানটি হ'ল আপনাকে "ইতিমধ্যে দেখা" তালিকার আকার হ্রাস করতে হবে। এবং # 2 এবং # 3 পদক্ষেপে কাউন্টার যুক্ত করা আপনাকে বলতে পারে এটি কোনও সমস্যা কিনা (যদি আপনি পরপর 10 টি ব্যর্থতা দেখতে পান তবে একটি সতর্কতা উত্থাপন করুন এবং / অথবা তালিকার আকার হ্রাস করুন)।
  • যদি আপনি কোনও প্লেলিস্ট তৈরি করার চেষ্টা করছেন যা আপনার একবারে প্লে সমস্ত গান রয়েছে তবে আপনার উত্স অ্যারে থেকে গানগুলি সরিয়ে ফেলতে হবে। আপনি কীভাবে খুব বেশি "সম্প্রতি চালিত" ব্যর্থতাগুলির সাথে কীভাবে व्यवहार করেন তাও এটি পরিবর্তিত হবে (কারণ শেষ পর্যন্ত আপনি আপনার উত্স অ্যারেতে কেবল একজন শিল্পীর সাথেই শেষ হতে পারেন)।
  • যদি আপনার আইডি 3 ট্যাগগুলি আমার মতো কিছু হয় তবে সেগুলিতে প্রচুর ভুল বানান রয়েছে। "ডিউক এলিংটন" "ডিউক এলিংটেন" থেকে আলাদা হওয়া দরকার? যদি হ্যাঁ, তবে "সম্প্রতি খেলেছে" তালিকাগুলি স্ক্যান করার সময় লেভেনস্টিন ম্যাচার ব্যবহারের দিকে নজর দিন।

আমি রকবক্স ( রকবক্স.অর্গ ) ব্যবহার করি । গানের যে কোনও ফোল্ডারের জন্য এটি একটি গতিশীল প্লেলিস্ট তৈরি করতে পারে (এটি সংরক্ষণ এবং বুকমার্কও করা যায়)। আমি প্রতিটি গানের শিরোনাম 0001, 0002 এর উপসীকরণ করার পরিকল্পনা করছি তারপরে সেগুলি খেলতে play
বিকাশকারী

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

আমি পদক্ষেপ 1 এ একটি তালিকা তৈরি করব এবং এটি 2 এবং 3-এ সরিয়ে ফেলব That এটি কোনও লুপে আটকা পড়া অসম্ভব করে তোলে এবং যদি তালিকাটি খালি হয়ে যায়, আপনি জানেন যে আপনাকে নিয়ম পরিবর্তন করতে হবে এবং পুনরায় স্ক্যান করতে হবে। এটি করার আরও দৃ way় উপায়।
ম্যাককে

13

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

অবশ্যই এর মোকাবেলায় কর্নার কেস রয়েছে:

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

11

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

উইকিপিডিয়া থেকে

একটি ওজন এবং মান সহ প্রতিটি আইটেমের সেট দেওয়া, সংগ্রহে অন্তর্ভুক্ত করার জন্য প্রতিটি আইটেমের সংখ্যা নির্ধারণ করুন যাতে মোট ওজন একটি প্রদত্ত সীমা থেকে কম বা সমান হয় এবং মোট মান যতটা সম্ভব বড় হয়।

সেই নিবন্ধে ন্যাপস্যাক সমস্যার অতিরিক্ত তালিকার পাশাপাশি কয়েকটি সম্ভাব্য প্রাসঙ্গিক বৈচিত্র রয়েছে


ন্যাপস্যাক সমস্যার এক প্রকারভেদ হ'ল মাল্টি-অবজেক্টিভ ন্যাপস্যাক সমস্যা। পিপীলিকা উপনিবেশ অ্যালগরিদম যে সমস্যা সমাধানে একটি উপায় হিসেবে পরামর্শ দেওয়া হয়। আপনার প্রশ্নের এনপি-হার্ড দিকগুলি এড়ানোর জন্য পিঁপড়ার কলোনী পদ্ধতির পক্ষে আপনার পক্ষে সহজতম উপায় হতে পারে।

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


8

আমি অনুমানের অধীনে কাজ করছি যে এটি একটি "এখানে আমার লাইব্রেরি, এই প্রোগ্রামটি চালাও এবং গানগুলিতে বাজানোর জন্য একটি অর্ডার উত্পন্ন করি" "

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

একটি ideal_gapহ্যাশ আছে। এটি প্রদত্ত সম্পত্তি (শিল্পী, অ্যালবাম, শিরোনাম) সহ একটি গানের ঘনত্ব দ্বারা গণনা করা হয়। যদি একটির 2000 টি গান থাকে এবং সেগুলির 20 টি এলা নামের শিল্পীর দ্বারা হয় ideal_gap{'artist'}{"ella"}তবে এটি 100 হবে।

এই তথ্য থাকাতে আদর্শ_গ্যাপের মানগুলিও সর্বাধিক থাকে। এই কল করতে দিন max_gap

বিবেচনা করুন: ideal_gapএকটি গান প্রতিরোধ করার জন্য সর্বাধিক মানটির সন্ধান করুন যা কেবলমাত্র দুটি শিল্পীই 1000 গান পরে অন্য গানটি বাজানো থেকে বিরত রাখতে গেয়েছিল, এবং ম্যাক্স_গ্যাপ মানকে মারাত্মকভাবে বাড়িয়েছে যার ফলে "ব্যাক অফ, কোনও গান নেই" বন্ধ, কোন গান "।

শেষ হওয়া সর্বোচ্চ ম্যাক_গ্যাপের গানগুলি পরীক্ষা করা (এটি আগের রান থেকে পপুলেট করা যায় যাতে এটি যদি ফ্র্যাঙ্ক সিনট্রা ফ্লাই মি টু মুন-এর সাথে গান করে শেষ হয়, পরবর্তী রানটি একইভাবে একই গান দিয়ে শুরু হবে না), একটি গান গান ফিল্টার করে ছাড়বে লাইব্রেরির ফলে পরীক্ষার্থীদের গানের একটি সেট তৈরি হয়। কোনও গান কেবলমাত্র প্রার্থীর গানে থাকতে পারে যদি এর সমস্ত ব্যবধানগুলি ideal_gapসেই বৈশিষ্ট্যগুলির চেয়ে কম হয় ।

প্রার্থী গানের সেট থেকে, এলোমেলোভাবে একটি নির্বাচন করুন।

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

বিবেচনা করুন: তিনটি বৈশিষ্ট্যই আদর্শ ব্যবধানের চেয়ে বেশি হওয়ার পরিবর্তে তিনটির মধ্যে দু'টিই রয়েছে। এর অর্থ এই হতে পারে যে আদর্শের চেয়ে খুব শীঘ্রই কিছু প্লে করা যেতে পারে তবে প্রার্থী গানের আকার বাড়িয়ে তোলে যার অর্থ "এলোমেলোভাবে একটি নির্বাচন করুন" এর আরও একটি বিকল্প রয়েছে।

যদি এমন কোনও গান নেই যা প্রয়োজনীয়তা পূরণ করে, তবে max_gap1 এর পিছনে পিছনে ফিরে যান এবং সমস্ত আদর্শ_গ্যাপগুলি n/max_gapশতকরা হারে যেখানে এই ব্যাকটি nব্যাক হয়েছে তার সংখ্যাটি কত। এইভাবে যদি max_gap100 এর একটি থাকে এবং এই পুনরাবৃত্তিতে এটি 5 বার ব্যাক করা হয়ে থাকে, 100 এর একটি আদর্শ_গ্যাপ সাময়িকভাবে 95 এর সাথে সামঞ্জস্য করা হবে এবং 20 এর একটি আদর্শ_গ্যাপ সাময়িকভাবে 19-এ সামঞ্জস্য করা হবে bac কমপক্ষে একটি প্রার্থীর গান না আসা পর্যন্ত ফাঁক করুন এবং তারপরে এটি উপরে হিসাবে নির্বাচন করুন।

বিবেচনা করুন: একটি সর্বনিম্ন পুল আকার আছে। এটি বৈকল্পিকতা যুক্ত করে, তবে এর পরে যখন কোনও আর গান বাজানো যেতে পারে তখন আদর্শ গ্যাপের চেয়ে শীঘ্রই একটি গান বাজানো হতে পারে।


1

এটি একটি অপ্টিমাইজেশান কাজ, এবং একটি চমত্কার জটিল এক আপনি খুঁজছেন যদি অনুকূল সমাধান। ভাগ্যক্রমে আমি বিশ্বাস করি যে এটি এমন একটি ক্ষেত্রে হতে পারে যেখানে যথেষ্ট ভাল হবে।

প্রথমে কাজ করার জন্য একটি গাণিতিক মানের মানদণ্ড প্রতিষ্ঠা করা উচিত, এটি সূত্র যা তালিকার ক্রমবর্ধমান দেওয়া একটি একক সংখ্যায় প্রত্যাবর্তন করবে যে বর্ণনাকে কতটা ভাল বা খারাপ তা বর্ণনা করে।

একটি সাধারণ সূত্রের পরামর্শ, প্রতিটি মানদণ্ড যা আপনি বিবেচনায় নিতে চান তা একটি ওজন দেওয়া উচিত, গুরুত্বপূর্ণ মানদণ্ডগুলিকে একটি উচ্চ ওজন দেওয়া উচিত, যেখানে প্রচুর গান একই সম্পত্তি ভাগ করে নেওয়ার মানদণ্ডে একটি কম ওজন দেওয়া উচিত, যাতে সেগুলি প্রভাবিত না হয় :

For each song on the list
    For each other song on the list
        For each criteria
            If the two songs share that criteria
                Add to the quality value: square root( [criteria weight]/[distance between the two songs] )

এই পদ্ধতিটি যত কম মান উত্পন্ন করে, তত ভাল তালিকার ক্রমায়ন হয়।

ক্রমবর্ধন করা

এখন আপনি এই সূত্রটি গণিতের দিকে নিয়ে যেতে পারেন ac স্ট্যাকেক্সেক্সচেঞ্জ এবং একটি তুচ্ছ সংখ্যক গান ছাড়া অন্য যে কোনও কিছুর জন্য সর্বোত্তম সমাধানটি খুঁজে পাওয়া কতটা অসম্ভব কঠিন এবং সম্ভবত কার্যত অসম্ভব তা আপনাকে জানিয়ে দিতে বা আপনি কেবল এটি ঘড়ির চক্র নিক্ষেপ করতে পারেন এবং এটি পেতে পারেন ভাল সমাধান।

এটি করার অনেকগুলি উপায় রয়েছে, এখানে একটি:

Start with a random permutation of the list.
Several million times do the following:
    Select two entries at random
    For each of those two entries calculate their contribution to the quality value
    Swap the positions of the two entries
    Calculate the contribution to the quality value of the two entries at their new position
    If the sum of the calculations in the new positions is greater than the sum in the old positions
        Swap back

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

নিখুঁতকরণ

বিভিন্ন টুইট এবং অপ্টিমাইজেশনের লোড প্রয়োগ করা যেতে পারে, এখানে কয়েকটি দেওয়া হল:

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

প্রদত্ত সম্পত্তির বিরল মানের জন্য এটির সন্ধানের চেয়ে সেই মানটির বিদ্যমান উদাহরণগুলি ট্র্যাক করা আরও দক্ষ হতে পারে।

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

একটি সিউডো-এলোমেলো ক্রিয়াকলাপ যা সমান বিতরণে তালিকা থেকে সমস্ত সম্ভাব্য জোড়া বাছাই করে সেখানে সাধারণ র্যান্ডম পিকের তুলনায় পিকের তুলনায় কিছুটা ভাল দক্ষতা থাকতে পারে।


আমি বিশ্বাস করি যে আপনার অ্যালগোরিদমিকটি সিমুলেটেড অ্যানিলিংয়ের একটি রূপ যা এটি আরও পরিমার্জন করার জন্য দেখার জায়গা হতে পারে।

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

0

এটি আকর্ষণীয় যে লোকেরা কী গ্রহণ করে। আমি নিম্নলিখিতটি করতাম:

এখনও অবধি চালানো সমস্ত ট্র্যাকের ভিত্তিতে প্রত্যেককে একটি করে স্কোর দিন। সর্বনিম্ন স্কোর (বা, অভিন্ন স্কোরের ক্ষেত্রে, সর্বনিম্ন স্কোরের সাথে মিলিত একটি এলোমেলো) ট্র্যাকটি খেলুন। পদ্ধতি পুনরাবৃত্তি করুন।

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

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

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

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

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