জেনেটিক অ্যালগরিদম / জেনেটিক প্রোগ্রামিং সমাধানগুলির ভাল উদাহরণগুলি কী কী? [বন্ধ]


227

জেনেটিক অ্যালগরিদম (জিএ) এবং জেনেটিক প্রোগ্রামিং (জিপি) গবেষণার আকর্ষণীয় ক্ষেত্র।

আপনি জিএ / জিপি ব্যবহার করে সমাধান করেছেন এমন নির্দিষ্ট সমস্যা এবং আপনি নিজেরাই রোল না করলে আপনি কোন লাইব্রেরি / ফ্রেমওয়ার্ক ব্যবহার করেছেন সে সম্পর্কে আমি জানতে চাই।

প্রশ্নাবলী:

  • আপনি কোন সমস্যা সমাধানের জন্য জিএ / জিপি ব্যবহার করেছেন?
  • আপনি কোন লাইব্রেরি / ফ্রেমওয়ার্ক ব্যবহার করেছেন?

আমি প্রথম হাতের অভিজ্ঞতাগুলি খুঁজছি, সুতরাং আপনার যদি না থাকে তবে দয়া করে উত্তর দেবেন না।


28
@ জেসন: গুগল জিনিসটি প্রস্তাব দেওয়ার জন্য ধন্যবাদ। যদিও এটি কিছুটা কার্যকর বলে মনে হচ্ছে তবে আমি এটি দেখতে ব্যর্থ হয়েছি যে এটি কীভাবে এই প্রশ্নের উত্তর দিতে পারে কারণ এটি বিশেষত জিএ / জিপি-অভিজ্ঞতার সাথে এসও-ব্যবহারকারীদের সম্বোধন করছে।
নরভ


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

ইউরেকা প্রোগ্রামটি জেনেটিক প্রোগ্রামিংয়ের জন্য খুব ভাল: নিউটোনীয়ান
সাইমন

উত্তর:


146

হোম ওয়ার্ক না

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

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

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

দুর্ভাগ্যক্রমে, আমি কখনই এই সিস্টেমটি সরাসরি ব্যবহারের সুযোগ পাইনি, যেহেতু আমার বস চিরাচরিত উপায়ে 3 মাসেরও কম সময়ে 100,000 ডলারের কাছাকাছি গিয়েছিলেন এবং তিনি প্রকল্পটি চালিয়ে যাওয়ার আগ্রহ হারিয়ে ফেলেছিলেন। পূর্ববর্তী ক্ষেত্রে, আমি মনে করি যে সিস্টেমটি প্রচুর পরিমাণে লাভ করতে পারত - কারণ আমি অগত্যা সঠিকভাবে কিছু করছিলাম তা নয়, কারণ যে জিনের উত্পাদনের ফলে আমি জেনার অর্ডার তৈরির ক্ষেত্রে পক্ষপাতদুষ্ট হয়েছি (অর্ডার বিক্রির বিপরীতে) প্রায় ৫: 1 অনুপাত। এবং যেমনটি আমরা আমাদের ২০/২০ ইন্ডিজাইটের সাথে জানি, ১৯৯৯ এর পরে বাজার কিছুটা উপরে উঠেছিল।


9
"আমি মনে করি সিস্টেমটি প্রচুর পরিমাণে লাভ করতে পারত" - হ্যাঁ আমি বাজি ধরেছিলাম যে এটি ব্যাকটেস্টিং পরিবেশে পুরোপুরি কাজ করেছে ;-)
জোয়েল

30
@ জোয়েল: অবশ্যই এটি হয়েছে, তবে সে কারণেই আমি মনে করি এটি লাভজনক হত। এটি বিক্রি করার পরিবর্তে ক্রয়ের প্রতি ভারী পক্ষপাতিত্বের কারণে অর্থ উপার্জন করতে পারত। একটি সিস্টেম যা ১৯৯৯ থেকে ১৯৯৯ সালের মধ্যে এলোমেলো সময়ে সবেমাত্র এস এন্ড পি 500 ফিউচার কিনেছিল (কোনও ধরণের জিএ বাজে কথা না বলে) প্রচুর অর্থোপার্জন করত, তবে আমরা কেবল এটি পূর্ববর্তী ক্ষেত্রেই জানি।
মুসিজেনেসিস

10
জোল সম্ভবত "ওভারফিটিং" উল্লেখ করছেন।
এরিক নরমান্ড

10
পরীক্ষার জন্য আপনার কিছুটা historicalতিহাসিক ডেটা সংরক্ষণ করতে হবে। ক্রসফোল্ড বৈধতা করতে সেরা Best
এরিক নর্ম্যান্ড

"শেপ" বলতে কী বোঝ each of which corresponded to a specific shape in the minute-by-minute price data?
কোডি বাগস্টিন

89

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

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

পরিবেশে খাবার ও বিপদ ছিল। খাদ্য শক্তি বৃদ্ধি করে এবং যখন আপনার পর্যাপ্ত শক্তি থাকে, আপনি সঙ্গম করতে পারেন। বিপদগুলি শক্তি হ্রাস করবে এবং যদি শক্তি 0 হয় তবে তারা মারা যায়।

অবশেষে প্রাণীগুলি বিশ্বজুড়ে ঘোরাফেরা করতে এবং খাদ্য খুঁজে পেতে এবং বিপদগুলি এড়াতে বিবর্তিত হয়েছিল।

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

তারপরে আমি মজাদার কিছু চেষ্টা করেছি। আমি মৃত প্রাণী খাদ্য হয়ে উঠবে। অনুমান করার চেষ্টা করুন কি হয়েছে! দুটি ধরণের প্রাণী বিবর্তিত হয়েছিল, ঝাঁকের মতো আক্রমণ করে এবং উচ্চতর বর্জনকারী প্রাণী ones

তাহলে এখানে পাঠ কী? যোগাযোগ মানেই সহযোগিতা। আপনি যখন এমন একটি উপাদান পরিচয় করিয়েছেন যেখানে অন্যটিকে আঘাত করা মানে আপনি কিছু অর্জন করেন তবে সহযোগিতা নষ্ট হয়ে যায়।

আমি অবাক হই যে এটি কীভাবে মুক্ত বাজার এবং পুঁজিবাদের সিস্টেমে প্রতিফলিত হয়। আমি বোঝাতে চাইছি, যদি ব্যবসায়গুলি তাদের প্রতিযোগিতায় আঘাত করতে পারে এবং এ থেকে দূরে সরে যায় তবে স্পষ্টতই তারা প্রতিযোগিতায় আঘাত করার ক্ষমতায় সমস্ত কিছু করবে।

সম্পাদনা:

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

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

বেঁচে থাকার উদাহরণটির জন্য এখানে ডেমো কোডটি রয়েছে: http://www.mempko.com/darcs/neural/demos/eaters/ বিল্ডিং নির্দেশাবলী:

  • ডার্কস, লাইববুস্ট, লাইব্লিলগ্রো, জিসিসি, ক্যামেক, মেক ইনস্টল করুন
  • darcs clone --lazy http://www.mempko.com/darcs/neural/
  • cd neural
  • cmake .
  • make
  • cd demos/eaters
  • ./eaters

ইটারের স্ক্রিনশট


10
এবং এই গল্পটি নিয়ে আপনার ট্যুরিং পুরষ্কারটি কোথায়? এমনকি রোডর্নার ব্যতীত অন্য কিছু চালানোর জন্য এই জাতীয় পরীক্ষা চালানোর জন্য আপনার অবশ্যই বিজ্ঞানের কিছু ক্রেজি অগ্রগতি ঘটেছে।
সান জ্যাকিন্টো

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

2
এটি সামান্যতম ক্ষেত্রেও জাল নয় ... আমার নতুন বছরের পরে গ্রীষ্মে, আমি সি # তে এক্সএনএ ব্যবহার করে মজার মজার জন্য একটি প্রকল্প তৈরি করেছিলাম, নিউরাল নেটওয়ার্কগুলি বিয়োগ করে, জিএগুলি ব্যবহার করি এবং জীবের একটি জনসংখ্যার বিভিন্ন বৈশিষ্ট্য রয়েছে with । উদাহরণস্বরূপ, একটি জিন তাদের দৃষ্টি নিয়ন্ত্রণ করে - উচ্চতর আরও বেশি দৃষ্টি, নিম্নতর প্রশস্ত দৃষ্টির ব্যাসার্ধ। বাধা এবং খাবার এলোমেলোভাবে স্থাপন করা হত এবং প্রাণীরা খাবারটি খেয়ে তাদের শক্তি পূরণ করবে। বৈশিষ্ট্যগুলি এগুলিতে এলোমেলোভাবে উত্পন্ন গাউসিয়ান সংখ্যার যোগ করে পরিবর্তিত হত, ফলস্বরূপ প্রকৃত বিবর্তনের মতো সাধারণত বিতরণ করা জিন তৈরি হয়।
ফিলিপ গিন

2
আমি একটি গবেষণা গ্রুপে কাজ করি যেখানে লোকেরা প্রতিদিন যা করত তা এই ধরণের জিনিস (ALIF) ছিল। আপনার গল্পটি পুরোপুরি বিশ্বাসযোগ্য, এবং সত্যি বলতে আমি যে কেউ এটি ভুয়া ভাবেন তা দেখে আমি কিছুটা হতবাক হয়ে গেলাম। তারপরে আবার, সাধারণত তাদের করার বিন্দুটি উল্লেখ করা হয় যে জটিল আচরণটি খুব সাধারণ সিস্টেম থেকে উদ্ভূত হতে পারে - আমার ধারণা বিন্দুটি যথেষ্টভাবে তৈরি করা যায় নি।
লুকাস

1
আমি তার ওয়েবসাইটে কিছু প্রমাণ পেয়েছি: www.mempko.com / ডার্কস / নুরাল তিনি বলেছেন "আমি বেঁচে থাকার জন্য বিকশিত হয়ে সামান্য পৃথিবীতে ছোট পুরুষদের একটি ঝরঝরে উদাহরণ দিয়েছি।" এখানে উদাহরণ কোডটি রয়েছে: mempko.com
ডার্কস

51

২০০৪ সালের জানুয়ারিতে আমার সাথে ফিলিপস নিউ ডিসপ্লে টেকনোলজিসের সাথে যোগাযোগ করা হয়েছিল যারা প্রথমবারের মতো বাণিজ্যিক ই-কালি ইলেকট্রনিক্স তৈরি করছিলেন, সনি লিব্রি, যিনি কেবলমাত্র জাপানে মুক্তি পেয়েছিলেন, আমাজন কিন্ডল এবং অন্যরা মার্কিন যুক্তরাষ্ট্রে বাজারে এসেছিলেন। একটি ইউরোপ

ফিলিপস ইঞ্জিনিয়ারদের একটি বড় সমস্যা ছিল। পণ্যটি বাজারে হিট হওয়ার কথা কয়েক মাস আগে, পৃষ্ঠাগুলি পরিবর্তন করার সময় তারা এখনও পর্দায় ভুতুড়ে হয়ে যাচ্ছিল। সমস্যা ছিল 200 চালকরা যা বৈদ্যুতিন ক্ষেত্র তৈরি করছিল creating এই ড্রাইভারগুলির প্রত্যেকেরই একটি নির্দিষ্ট ভোল্টেজ ছিল যা শূন্য থেকে 1000 এমভি বা এর মতো কিছুতে ঠিক সেট করতে হয়েছিল। আপনি যদি তাদের মধ্যে একটি পরিবর্তন করেন তবে এটি সবকিছু পরিবর্তন করে দেবে।

সুতরাং প্রতিটি ড্রাইভারের ভোল্টেজ স্বতন্ত্রভাবে অপ্টিমাইজ করা প্রশ্নের বাইরে ছিল। সম্ভাব্য সংখ্যার সংমিশ্রণের সংখ্যা বিলিয়নে ছিল এবং একটি একক সংমিশ্রণটি মূল্যায়ন করতে একটি বিশেষ ক্যামেরায় প্রায় 1 মিনিট সময় লেগেছে। ইঞ্জিনিয়াররা অনেক স্ট্যান্ডার্ড অপ্টিমাইজেশন কৌশল চেষ্টা করেছিলেন, তবে কিছুই কাছে আসেনি।

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

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

আমি এর জন্য এক শতাংশও পেলাম না, তবে আমি 'দাম্ভিক' অধিকার পেয়েছি। তারা প্রথম থেকেই বলেছিল যে তারা ইতিমধ্যে বাজেটের চেয়ে বেশি, সুতরাং আমি জানতাম যে এটির কাজ শুরু করার আগেই আমি এই চুক্তিটি কী ছিল। এবং এটি জিএ প্রয়োগের জন্য দুর্দান্ত গল্প। :)


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

50

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

আমি বেশ কয়েকবার দৌড়েছি। প্রতিবার, আমি নয়টি ভাল টেবিল পেয়েছি এবং সমস্ত বিজোড় বলের সাথে একটি পেয়েছি। শেষ পর্যন্ত, আমার স্ত্রী বসার কার্যভারগুলি করেছিলেন did

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

আপডেট : কারণ দু'জন লোক কীভাবে জিজ্ঞাসা করেছে ...

কিছু স্বেচ্ছাসেবক তবে ধারাবাহিক অর্ডারে অতিথিদের (বা শহরগুলি) আরে দিয়ে শুরু করুন, যেমন বর্ণমালা। এটিকে রেফারেন্স সলিউশন বলুন। অতিথির সূচকে তার আসনের নম্বর হিসাবে ভাবেন।

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

সুতরাং ক্রোমোজোমগুলি এলোমেলোভাবে উত্পন্ন, রূপান্তর এবং অন্যের সাথে অতিক্রম করা যেতে পারে এবং সর্বদা একটি বৈধ সমাধান তৈরি করে।


এবং উপন্যাসটির ম্যাপিংটি কী ছিল?
ম্যানুয়েল আরাওজ

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

ধন্যবাদ! অদলবদল করার দিক থেকে আমি কিছুটা বিভ্রান্ত। প্রতিটি ক্রোমোজোম অদলবদল করার জন্য সূচির তালিকা এনকোড করে - এর অর্থ কি কোনও সূচক ক্রোমোসোমে একাধিকবার প্রদর্শিত হতে পারে?
ব্যবহারকারীর 3019612

1
চোমোসোমে সি 1, সি 2, সি 3, ..., সিএন সূচক রয়েছে। "সমাধান" অ্যারে হয় a। আপনার রেফারেন্স তালিকাটি দিয়ে একটি সূচনা করুন। তারপরে, ক্রোমোসোমে প্রতিটি জোড় সূচকগুলির জন্য, দ্রবণটিতে দুটি উপাদান স্যুপ ( temp = a[c1]; a[c1] = a[c2]; a[c2] = temp) করুন। দুটি সূচক অভিন্ন কিনা তা বিবেচ্য নয়, কারণ একটিতে প্রতিটি অতিথি (বা শহর) ঠিক একবারে থাকবে।
অ্যাড্রিয়ান ম্যাকার্থি

33

আমি ঝুঁকি ব্যবস্থাপনার সিস্টেমের সেরা সেটিংস নির্ধারণ করতে জেনেটিক অ্যালগরিদম (পাশাপাশি কিছু সম্পর্কিত কৌশল) ব্যবহার করেছি যা এমএমওগুলির জন্য অর্থ প্রদানের জন্য স্বর্ণ চাষীদের চুরি করা ক্রেডিট কার্ড ব্যবহার থেকে বিরত রাখতে চেষ্টা করেছিল। সিস্টেমটি "জ্ঞাত" মান (জালিয়াতি বা না) সহ কয়েক হাজার লেনদেন গ্রহণ করবে এবং অনেকগুলি মিথ্যা ইতিবাচকতা ছাড়াই প্রতারণামূলক লেনদেনগুলি সঠিকভাবে চিহ্নিত করার জন্য সেটিংসের সর্বোত্তম সমন্বয়টি কী তা নির্ধারণ করবে।

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

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

এটি এসেছিল যে জালিয়াতির বিশাল সংখ্যাগরিষ্ঠতা চিহ্নিত করেছিল, তবে সর্বাধিক জালিয়াতি প্রবণ আইটেমগুলিতে এটি 1% এর নিচে পাওয়া যায়নি (প্রদত্ত যে 90% আগত লেনদেন জালিয়াতি হতে পারে, এটি বেশ ভাল করছে)।

পার্ল ব্যবহার করে আমি এই সব করেছি। মোটামুটি পুরানো লিনাক্স বাক্সে থাকা একটি সফ্টওয়্যার চালাতে 1-2 ঘন্টা লাগবে (একটি ডাব্লুএএন লিঙ্কের উপর ডেটা লোড করতে 20 মিনিট সময় লাগবে, বাকি সময় ক্রাচিংয়ে ব্যয় করেছিল)। যে কোনও প্রজন্মের আকার উপলব্ধ র‍্যাম দ্বারা সীমাবদ্ধ ছিল। আমি প্যারামিটারগুলিতে সামান্য পরিবর্তন করে এটি চালিয়ে যাচ্ছি, বিশেষত ভাল ফলাফলের সন্ধানের জন্য।

সব মিলিয়ে কয়েক ডজন জালিয়াতি সূচকগুলির আপেক্ষিক মানগুলি ম্যানুয়ালি চেষ্টা করার চেষ্টা করে এমন কিছু গ্যাফগুলি এড়িয়ে গিয়েছিল এবং আমি নিজে হাতে তৈরি করার চেয়ে ধারাবাহিকভাবে আরও ভাল সমাধান নিয়ে এসেছি। আফাইক, এটি এখনও ব্যবহারের মধ্যে রয়েছে (আমি এটি লেখার প্রায় 3 বছর পরে)।


আমি মনে করি আপনি প্যারামিটার টুইট করার জন্য একটি নিউরাল নেটওয়ার্ক ব্যবহার করতে পারতেন (যদিও এটি হাতের তুলনায় এটি আরও কার্যকর হতে আরও বেশি সময় নিতে পারে)।
alexpinho98

21

ফুটবল টিপিং। আমি এএফএলে (অ্যাসি রুলস ফুটবল) এর গেমসের সপ্তাহের সপ্তাহের ফলাফল পূর্বাভাস দেওয়ার জন্য একটি জিএ সিস্টেম তৈরি করেছি।

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

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

অনুশীলনে, সিস্টেমটি এমন সমাধানগুলি সন্ধান করবে যা অতীতের গেমের 90% ফলাফলের উপর নির্ভুলভাবে পূর্বাভাস দিয়েছে। এরপরে এটি আসন্ন সপ্তাহের জন্য প্রায় 60-80% গেমস সাফল্যের সাথে বেছে নিতে পারে (এটি সপ্তাহ প্রশিক্ষণের সেট নয়)।

ফলাফল: প্যাকের ঠিক মাঝখানে। কোন বড় নগদ পুরষ্কার বা এমন কোনও সিস্টেম নেই যা আমি ভেগাসকে হারাতে ব্যবহার করতে পারি। যদিও মজা ছিল।

আমি স্ক্র্যাচ থেকে সবকিছু তৈরি করেছি, কোনও কাঠামো ব্যবহার করা হয়নি।


21

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

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

আমি আমার নিজের ফ্রেমওয়ার্ক যে আমি অভিব্যক্তিমূলক আলগোরিদিম জন্য ব্যবহার করুন।


17

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

স্ট্যান্ডার্ড জ্যামিতি এবং সিমুলেটেড অ্যানিলিং স্টাইলের সমীকরণ সমাধান ব্যবহার করে ক্রমাঙ্কন পরামিতিগুলি চেষ্টা করে দেখার চেষ্টা করা একটি দুঃস্বপ্ন।

জেনেটিক অ্যালগরিদম একটি সন্ধ্যায় বেত্রাঘাত করা হয়েছিল এবং আমি এটি পরীক্ষা করার জন্য একটি ক্রমাঙ্কন ঘনক তৈরি করেছি। আমি উচ্চ নির্ভুলতার কিউব মাত্রাগুলি জানতাম এবং এইভাবে ধারণাটি ছিল যে আমার জিএ প্রতিটি স্ক্যানিং ইউনিটের জন্য কাস্টম ত্রিভুজ্যকরণ প্যারামিটারগুলির একটি সেট তৈরি করতে পারে যা উত্পাদনের বৈচিত্রগুলি কাটিয়ে উঠবে।

কৌতুক একটি ট্রিট কাজ। আমি কমপক্ষে বলার জন্য flabbergasted ছিল! আমার প্রায় 10 প্রজন্মের মধ্যে আমার 'ভার্চুয়াল' কিউব (কাঁচা স্ক্যান থেকে উত্পন্ন এবং ক্রমাঙ্কণের পরামিতিগুলি থেকে তৈরি) আসলে কিউবের মতো দেখায়! আমার প্রায় 50 প্রজন্মের পরে আমার প্রয়োজনীয় ক্রমাঙ্কন ছিল।


11

আপনি যখন নিজের বাড়ি আঁকার পরিকল্পনা করছেন তখন প্রায়শই একটি সঠিক রঙের সংমিশ্রণ পাওয়া শক্ত। প্রায়শই, আপনার মনে কিছু রঙ থাকে তবে এটি কোনও রঙের নয়, বিক্রেতা আপনাকে দেখায়।

গতকাল, আমার প্রফেসর যিনি একজন জিএ গবেষক, তিনি জার্মানির একটি সত্য গল্পের বিষয়ে উল্লেখ করেছেন (দুঃখিত, আমার আর কোনও উল্লেখ নেই, হ্যাঁ, কেউ অনুরোধ করলে আমি এটি খুঁজে পেতে পারি)। এই লোকটি (আসুন তাকে রঙিন লোক বলুন ) সঠিক রঙের কোডটি ( আরজিবিতে ) খুঁজে পেতে লোকের সাহায্যের জন্য দ্বার-দ্বার থেকে যেত গ্রাহকের মনে যা ছিল তার পায়খানা। তিনি কীভাবে এটি করবেন তা এখানে:

রঙ লোক তার সাথে একটি সফটওয়্যার প্রোগ্রাম দেখা দেয় এবং GA ব্যবহৃত বহন করতেন। তিনি 4 টি বিভিন্ন রঙ দিয়ে শুরু করতেন - প্রতিটি কোডেড ক্রোমোসোম হিসাবে কোডড (যার ডিকোডড মানটি আরজিবি মান হবে)। ভোক্তা 4 টির মধ্যে 1 টি রঙ বেছে নেয় (যা তার মনে মনে সবচেয়ে নিকটতম)। প্রোগ্রামটি সেই স্বতন্ত্র ব্যক্তিকে সর্বাধিক ফিটনেস বরাদ্দ করে এবং পরবর্তী প্রজন্মকে মিউটেশন / ক্রসওভার ব্যবহার করে সরিয়ে দেয় । উপরের পদক্ষেপগুলি পুনরাবৃত্তি হবে যতক্ষণ না গ্রাহক সঠিক রঙটি খুঁজে পান এবং তারপরে রঙিন লোক তাকে আরজিবি সংমিশ্রণটি বলত !

রঙে সর্বোচ্চ ফিটনেস নির্ধারণের মাধ্যমে গ্রাহকরা যা মনে রাখেন তা বন্ধ করে দেয়, রঙিন লোকটির প্রোগ্রামটি রঙে রূপান্তরিত হওয়ার সম্ভাবনা বাড়িয়ে দিচ্ছে, গ্রাহকটি ঠিক মনে রেখেছেন। আমি বেশ মজা পেয়েছি!

এখন যে আমি একটি -1 পেয়েছি, আপনি যদি আরও -1 এর জন্য পরিকল্পনা করেন, প্লিজ। এর কারণ বলার অপেক্ষা রাখে না!


6
আমি আপনাকে হ্রাস করব না, তবে আমি অনুমান করছি যে এটি আপনি নিজে করেননি বলেই। ওপি বিশেষত এমন জিনিসগুলির জন্য জিজ্ঞাসা করেছিল যা আপনি নিজে করেছিলেন।
jprete

এটি রিচার্ড ডকিন্সের বায়োমোর্ফগুলির সহজতর সংস্করণ।
নিক জনসন

1
রঙ সম্পর্কে মজার বিষয় হ'ল আপনি নিজের এটি বিবেচনা করতে পারবেন না। রঙ পরামর্শদাতারা কেবল একটি বর্ণের সাথে দেখা দেয় না - তারা প্যালেট এবং স্কিমে আসে। কেবল নিজস্বভাবে একটি রঙ চয়ন করার কোনও মানে নেই। আমি ডাউনভোট করি নি তবে আপনার উত্তরটি জিএর সংজ্ঞাটি প্রসারিত করছে। আপনি কীভাবে এক রঙের পরিবর্তন / ক্রসওভার করবেন? এটি আরও সৎভাবে একটি সীমিত ডেটাসেটকে পুনরাবৃত্তভাবে সংকীর্ণ করার একটি প্রদর্শন।
কर्क ব্রডহર્স্ট

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

8

কয়েক সপ্তাহ আগে আমি গ্রাফ বিন্যাসের সমস্যা সমাধানের জন্য জেনেটিক অ্যালগরিদম ব্যবহার করে এসও-তে একটি সমাধানের পরামর্শ দিয়েছিলাম । এটি একটি সীমাবদ্ধ অপ্টিমাইজেশান সমস্যার উদাহরণ।

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

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


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

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

8

আমার স্নাতক স্নাতক কমপিএসসি ডিগ্রির অংশ হিসাবে, আমাদের জিক্স গবেষণা ভার্চুয়াল মেশিনের জন্য সর্বোত্তম জেভিএম পতাকাগুলি সন্ধান করার সমস্যা অর্পণ করা হয়েছিল। এটি ডিকাপ্পো বেঞ্চমার্ক স্যুট ব্যবহার করে মূল্যায়ন করা হয়েছিল যা কনসোলে একটি সময় দেয়। আমি একটি বিতরণ করা জেনেটিক অ্যালোজर्थ্ম লিখেছি যা বেঞ্চমার্ক স্যুটটির রানটাইম উন্নত করতে এই পতাকাগুলি পরিবর্তন করেছে, যদিও ফলাফলগুলি প্রভাবিত করে হার্ডওয়্যার জিটারের ক্ষতিপূরণ দিতে দৌড়াতে কয়েক দিন সময় লেগেছিল। একমাত্র সমস্যা ছিল আমি কম্পাইলার তত্ত্ব সম্পর্কে সঠিকভাবে জানতে পারি নি (যা ছিল কার্যনির্বাহার উদ্দেশ্য)।

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

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


7

প্রথমবার, জোনাথন কোজা রচিত "জেনেটিক প্রোগ্রামিং" ( অ্যামাজনে) অনেকগুলি উদাহরণ সহ জেনেটিক এবং বিবর্তনীয় অ্যালগরিদম / প্রোগ্রামিং কৌশল সম্পর্কিত একটি বই। আমি এটি চেক আউট সুপারিশ।

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


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

7

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

আমাদের কাছে ইসি মেরামতের কৌশলটির দুটি অ্যাপ্লিকেশন রয়েছে।

  • প্রথম ( প্রকল্প পৃষ্ঠার মাধ্যমে উপলব্ধ কোড এবং প্রজনন তথ্য ) বিদ্যমান সি প্রোগ্রামগুলি থেকে বিভক্ত বিমূর্ত সিনট্যাক্স গাছগুলি বিকশিত করে এবং আমাদের নিজস্ব কাস্টম ইসি ইঞ্জিন ব্যবহার করে ওকামলে প্রয়োগ করা হয়।

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

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


6

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


5

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

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


4

অনেক সমস্যার সমাধানের জন্য আমি একটি সম্পূর্ণ জিএ কাঠামো তৈরি করেছি "GALAB"

  • ওভারল্যাপ ও ফাঁকা জায়গাগুলি হ্রাস করতে জিএসএম এএনটি (বিটিএস) সনাক্ত করা।
  • রিসোর্স সীমাবদ্ধ প্রকল্পের সময়সূচী।
  • বিবর্তনমূলক চিত্র নির্মাণ। ( ইভোপিক )
  • ভ্রমণ বিক্রয় বিক্রয় সমস্যা।
  • এন-কুইন এবং এন-রঙ সমস্যা।
  • নাইটের ট্যুর এবং ন্যাপস্যাক সমস্যা।
  • ম্যাজিক স্কোয়ার এবং সুডোকু ধাঁধা।
  • সুপারস্টারিং সমস্যার উপর ভিত্তি করে স্ট্রিং সংক্ষেপণ।
  • 2 ডি প্যাকেজিং সমস্যা।
  • ক্ষুদ্র কৃত্রিম জীবনের অ্যাপ্লিকেশন।
  • রুবিক ধাঁধা

হ্যাঁ, এর উত্সটি আমার জিএ বইয়ের অধীনে প্রকাশিত ।
এমএসহামস

4

আমি একবার জিএমএ ব্যবহার করে মেমরি ঠিকানার জন্য একটি হ্যাশ ফাংশন অনুকূলিত করেছিলাম। ঠিকানাগুলি 4K বা 8K পৃষ্ঠার আকার ছিল, সুতরাং তারা ঠিকানার বিট প্যাটার্নে কিছু পূর্বাভাস দেখিয়েছিল (সর্বনিম্ন তাৎপর্যপূর্ণ বিটগুলি সমস্ত শূন্য; মাঝারি বিটগুলি নিয়মিতভাবে বৃদ্ধি করা ইত্যাদি) আসল হ্যাশ ফাংশনটি ছিল "ছিঙ্কি" - এটি ক্লাস্টারের হিটগুলিতে ঝোঁকছিল প্রতি তৃতীয় হ্যাশ বালতি উপর। উন্নত অ্যালগরিদমের প্রায় নিখুঁত বিতরণ ছিল।


3

আমি জানি না বাড়ির কাজ গণনা করা হয় কিনা ...

আমার পড়াশোনার সময় আমরা ট্র্যাভেলিং বিক্রয়কর্মী সমস্যা সমাধানের জন্য আমাদের নিজস্ব প্রোগ্রাম ঘুরিয়েছি।

ধারণাটি ছিল কয়েকটি মানদণ্ডের (সমস্যা মানচিত্রের অসুবিধা, পারফরম্যান্স ইত্যাদি) তুলনা করা এবং আমরা সিমুলেটেড অ্যানেলিংয়ের মতো অন্যান্য কৌশলও ব্যবহার করি ।

এটি বেশ ভালভাবে কাজ করেছে, তবে 'প্রজনন' পর্যায়ে সঠিকভাবে কীভাবে করা যায় তা বুঝতে আমাদের কিছুটা সময় লেগেছে: জেনেটিক প্রোগ্রামিংয়ের জন্য উপযুক্ত কিছুতে সমস্যাটিকে মডেলিং করা সত্যিই আমাকে সবচেয়ে শক্ত অংশ হিসাবে আঘাত করেছে ...

এটি একটি আকর্ষণীয় কোর্স ছিল যেহেতু আমরা নিউরাল নেটওয়ার্ক এবং এ জাতীয় মতগুলিও ছুঁড়েছি।

আমি জানতে চাই যে কেউ 'প্রডাকশন' কোডে এই জাতীয় প্রোগ্রামিং ব্যবহার করেছেন কিনা।


3

গানের ফ্রিকোয়েন্সি স্পেকট্রামের বাইরে চলাকালীন কার্যকর প্যাটার্নগুলি বের করার জন্য আমি একটি সাধারণ জিএ তৈরি করেছি। আউটপুটটি উইন্যাম্প প্লাগইনে গ্রাফিকাল এফেক্ট চালাতে ব্যবহৃত হত।

  • ইনপুট: কয়েকটি এফএফটি ফ্রেম (ফ্লোটের 2D অ্যারের কল্পনা করুন)
  • আউটপুট: একক ফ্লোট মান (ইনপুটগুলির ওজনযুক্ত যোগফল), থ্রেশহোল্ড 0.0 বা 1.0 এ
  • জিনস: ইনপুট ওজন
  • ফিটনেস ফাংশন: ডিউটি ​​চক্রের সংমিশ্রণ, স্পন্দনের প্রস্থ এবং বুদ্ধিমান পরিসরের মধ্যে বিপিএম।

স্পেকট্রামের বিভিন্ন অংশের পাশাপাশি বিভিন্ন বিপিএম সীমাতে আমার কয়েকটি জিএ সুর করা ছিল, তাই তারা একই প্যাটার্নের দিকে রূপান্তরিত করতে ঝোঁকেনি। প্রতিটি জনসংখ্যা থেকে শীর্ষ 4 থেকে আউটপুটগুলি রেন্ডারিং ইঞ্জিনে প্রেরণ করা হয়েছিল।

একটি আকর্ষণীয় পার্শ্ব প্রতিক্রিয়া ছিল যে জনসংখ্যার গড় গড় ফিটনেস সঙ্গীত পরিবর্তনের জন্য একটি ভাল সূচক ছিল, যদিও এটি এটিকে প্রকাশ করতে সাধারণত 4-5 সেকেন্ড সময় নেয়।


3

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

আপনি কোডটি এখানে খুঁজে পেতে পারেন

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

আপনি এটি এখানে খুঁজে পেতে পারেন

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

আমার থিসিস যা প্রকল্প কাঠামো সমস্যার ক্ষেত্রে এই কাঠামোটি প্রয়োগ করে: http://www.ub.tuwien.ac.at/dipl/2008/AC05038968.pdf

এর পরে আমি ৫০০ ভাগের মধ্যে একটিতে একটি পোর্টফোলিও পরিচালনা বিভাগে কাজ করেছি, যেখানে তারা একটি বাণিজ্যিক সফ্টওয়্যার ব্যবহার করেছিল যা প্রকল্প নির্বাচনের সমস্যা / পোর্টফোলিও অপ্টিমাইজেশনে জিএ প্রয়োগ করে।

আরও সংস্থানগুলি:

কাঠামোর ডকুমেন্টেশন: http://thomaskremmel.com/mpoems/mpoems_in_java_docamentation.pdf

এমপোইএমএস উপস্থাপনা পত্র: http://portal.acm.org/citation.cfm?id=1792634.1792653

আসলে কিছুটা উত্সাহের সাথে প্রত্যেকে জেনেরিক কাঠামোর কোডটিকে একটি স্বেচ্ছাসেবী বহু-উদ্দেশ্যমূলক অপ্টিমাইজেশান সমস্যার সাথে সহজেই মানিয়ে নিতে পারে।


2

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

এটি মোটামুটিভাবে ভাল কাজ করেছে (আমার আগের পদ্ধতির চেয়ে অনেক ভাল, যা প্রতিটি সম্ভাব্য সংমিশ্রণের মূল্যায়ন করা হয়েছিল ... তুচ্ছ সমস্যা আকারের উপর, এটি সম্পূর্ণ হতে কয়েক বছর সময় লাগত!), একমাত্র সমস্যাটি ছিল বলার উপায় ছিল না অনুকূল সমাধান পৌঁছেছে বা না হলে। আপনি কেবলমাত্র কেবলমাত্র "সেরা প্রচেষ্টা" যথেষ্ট ভাল কিনা তা স্থির করতে পারেন, বা আরও ভাল করতে পারে কিনা তা দেখার জন্য এটি আরও দীর্ঘায়িত হতে দেয়।


2

কোডেকেফ.কম-এ একটি প্রতিযোগিতা ছিল (উপায় দ্বারা দুর্দান্ত সাইট, মাসিক প্রোগ্রামিং প্রতিযোগিতা) যেখানে একজনের সমাধানের সমাধানের সমাধানের সমাধান করা হয়নি এমন এক সুডোকু (যতটা সম্ভব কম সংখ্যক ভুল সংঘর্ষ / সারি / ইত্যাদি দিয়ে যতটা সম্ভব কাছাকাছি আসা উচিত)।

আমি যা করব তা হ'ল প্রথমে একটি নিখুঁত সুডোকু তৈরি করা এবং তারপরে ক্ষেত্রগুলি ওভাররাইড করা। এর বেশ ভাল ভিত্তি থেকেই আমি আমার সমাধানটি উন্নত করতে জেনেটিক প্রোগ্রামিং ব্যবহার করেছি।

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


2

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


2

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


দুর্দান্ত আমি অনুরূপ কিছু চেষ্টা করেছি: লিঙ্ক
টডর বালাবানভ

2

আন্ডারগ্র্যাডে, আমরা বুদ্ধিমান সিদ্ধান্ত নিতে ইন-গেম রোবটগুলি শেখাতে NERO (নিউরাল নেটওয়ার্ক এবং জেনেটিক অ্যালগরিদমের সংমিশ্রণ) ব্যবহার করি। বেশ সুন্দর ছিল।


2

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

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

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

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

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


1

আমি একবার গো-এর গেমের জন্য একটি কম্পিউটার প্লেয়ার তৈরি করার চেষ্টা করেছি, একচেটিয়াভাবে জেনেটিক প্রোগ্রামিংয়ের উপর ভিত্তি করে। প্রতিটি প্রোগ্রাম চলন ক্রম জন্য একটি মূল্যায়ন ফাংশন হিসাবে বিবেচিত হবে। উত্পাদিত প্রোগ্রামগুলি খুব ভাল ছিল না, এমনকি একটি বরং স্বল্প পরিমাণে 3x4 বোর্ডে।

আমি পার্ল ব্যবহার করেছি এবং নিজেই সমস্ত কোড করেছিলাম। আমি আজ বিভিন্ন জিনিস করতে হবে।


1

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

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


1

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

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

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

ব্যবহৃত গ্রন্থাগারগুলি: যদি আমি সঠিকভাবে স্মরণ করি তবে জ্যোতির্বিজ্ঞানের চিত্র ডেটা প্রসেসিংয়ের জন্য আইআরএফ এবং ক্লিটিওও এবং I / O।


1

আমি যৌবনে জিএ নিয়ে পরীক্ষা-নিরীক্ষা করেছি। আমি পাইথনে একটি সিমুলেটর লিখেছি যা নীচের মত কাজ করেছিল।

জিনগুলি নিউরাল নেটওয়ার্কের ওজনকে এনকোড করে।

নিউরাল নেটওয়ার্কের ইনপুটগুলি "অ্যান্টেনা" ছিল যা স্পর্শগুলি সনাক্ত করে। উচ্চতর মানগুলির অর্থ খুব কাছাকাছি এবং 0 এর অর্থ স্পর্শ না করা।

আউটপুট দুটি "চাকা" ছিল। উভয় চাকা যদি এগিয়ে যায়, লোকটি এগিয়ে গেল। চাকাগুলি যদি বিপরীত দিকে থাকে তবে লোকটি পরিণত হয়েছিল। আউটপুট শক্তি চাকা বাঁক গতি নির্ধারণ করে।

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

আমি শুরুতে এলোমেলো ছেলেরা (আমি এগুলিকে বাগ হিসাবে ভেবেছিলাম) শুরু করেছিলাম। একজন লোক লক্ষ্যে পৌঁছানোর সাথে সাথে বা একটি সময়সীমা অতিক্রম করার সাথে সাথে ফিটনেস গণনা করা হয়েছিল। এটি তখনকার লক্ষ্যের দূরত্বের সাথে বিপরীতভাবে আনুপাতিক ছিল।

তারপরে আমি তাদের যুক্ত করেছি এবং তাদের পরবর্তী প্রজন্ম তৈরির জন্য "প্রজনন" করেছি। বংশবৃদ্ধি হওয়ার জন্য বেছে নেওয়ার সম্ভাবনা তার ফিটনেসের সাথে আনুপাতিক ছিল। কখনও কখনও এর অর্থ হ'ল যদি তার খুব উচ্চতর আপেক্ষিক ফিটনেস থাকে তবে নিজেকে বারবার প্রজনন করা হত।

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

একটি বৈশিষ্ট্য যা আমি যুক্ত করেছি তা হল জিনগুলির মধ্যে রঙের ভেক্টর স্থাপন করা ব্যক্তিগুলির মধ্যে সম্পর্ক ট্র্যাক করার জন্য। কয়েক প্রজন্মের পরে, তারা সবাই একই রঙের হয়ে উঠবে, যা আমাকে বলে যে আমার আরও ভাল প্রজনন কৌশলটি করা উচিত।

আমি তাদের আরও ভাল কৌশল বিকাশের জন্য চেষ্টা করেছি। আমি নিউরাল নেট জটিল - একটি স্মৃতি এবং সবকিছু যোগ। এটি সাহায্য করেনি। আমি সবসময় একই কৌশল দেখেছি।

আমি পৃথক জিন পুল থাকার মতো বিভিন্ন জিনিস চেষ্টা করেছি যা কেবল 100 প্রজন্মের পরে পুনরায় সংযুক্ত হয়। তবে কিছুই তাদের উন্নততর কৌশলতে ঠেলে দেবে না। এটা অসম্ভব ছিল।

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

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