এনট্রপি ধারণাটি কি কার্যকর উপায়ে উত্স কোড বিশ্লেষণ করতে ব্যবহার করা যেতে পারে?


19

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


সে সম্পর্কে আমার কোনও নির্দিষ্ট জ্ঞান নেই। তবে প্রকৌশলী হিসাবে আমি বিশ্বাস করি যে মহাবিশ্বের যে কোনও কিছুতে আপনি এই ধারণাটি প্রয়োগ করতে পারেন। "সবকিছু" শক্তি। আপনার কোডটি একটি সত্তা হিসাবে মডেল করা যেতে পারে, যার শক্তি রয়েছে।
wleao

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

@ থমাস ওভেনস: আমি মনে করি এটি ঠিক ওপি যা চেয়েছিল, দয়া করে এটি উত্তর হিসাবে পোস্ট করুন!
blubb

@ সিমন, ঠিক আছে, যদি আপনি এমনটি মনে করেন। আমি 100% নিশ্চিত নই।
থমাস ওভেনস

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

উত্তর:


22

কোড জটিলতার ইতিমধ্যে বেশ কয়েকটি ব্যবস্থা রয়েছে:

  • Cyclomatic জটিলতা
  • বর্গ দৈর্ঘ্য
  • পদ্ধতির দৈর্ঘ্য
  • ক্ষেত্র সংখ্যা
  • পদ্ধতির পরামিতিগুলির সংখ্যা
  • এন-পাথ জটিলতা
  • ফ্যান-ইন এবং ফ্যান-আউট
  • ডেটা ফ্লো বিশ্লেষণ (ডিইউ / ডিডি চেইন)

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

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


13

আমি মনে করি আপনি থার্মোডাইনামিক এনট্রপি এবং "জটিলতা" এর মধ্যে একটি সমান্তরাল আঁকতে চেষ্টা করছেন। বিষয়টি হ'ল, এনট্রপি জটিলতা নয় , বিশৃঙ্খলার একটি পরিমাপ । আমি বিশ্বাস করি না যে দুটি সমান এবং বিনিময়যোগ্য।

থার্মোডাইনামিক এনট্রপির নিকটতম অ্যানালগ হ'ল শ্যানন এনট্রপি যা একটি এলোমেলো পরিবর্তনীয় ক্ষেত্রে ডিসঅর্ডারের পরিমাণ পরিমাপ করে। এই ধারণাটি মূলত একটি বার্তায় "তথ্য" পরিমাণের সাথে সম্পর্কিত।

সে ক্ষেত্রে, এক টুকরো কোডে প্রচুর তথ্য থাকতে পারে (উচ্চ এনট্রপি) তবে খুব কম জটিলতা। এমন কোনও প্রোগ্রামের কথা চিন্তা করুন যা স্বেচ্ছাসেবী চরিত্রগুলির খুব দীর্ঘ স্ট্রিং প্রিন্ট করে। এটিতে প্রচুর তথ্য রয়েছে তবে কম জটিলতা রয়েছে।


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

সুতরাং আপনি প্রদত্ত প্রোগ্রামটিতে এন্ট্রপি এবং জটিলতাটিকে কীভাবে রেট করবেন? আমি তর্ক করব যে এতে আপনি প্রচুর মডেল ব্যবহার করেন না কেন এতে অনেক তথ্য রয়েছে। যদিও জটিলতার সংজ্ঞাটি অনেক কম স্পষ্ট।
tskuzzy

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

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

2

এন্ট্রপি একটি "ব্যাধি [বা] অপ্রত্যাশিততার পরিমাপ"। তথ্যে অনন্য নিদর্শনগুলির বিস্তৃত পরিসর (অর্থাত্ প্রায় "আরও অর্থ") এন্ট্রপির উচ্চতর ডিগ্রি নির্দেশ করে।

কম্পিউটার উত্স কোডে প্রয়োগ করা হয়েছে, আমি মনে করি যে এই নীতিটি কার্যকর হতে পারে। তবে, এনট্রপি গণনা করার জন্য উত্স কোডের জন্য একটি সম্ভাব্য মডেলটি ডিজাইন করা প্রয়োজন । (সহজেই মাথায় আসে এমন একটি ডেটা স্ট্রাকচার হ'ল একটি গ্রাফ যা বিভিন্ন প্রান্তের ধরণের: কল, শ্রেণীর উত্তরাধিকার ইত্যাদি)

মডেলটি একবার ডিজাইন হয়ে গেলে এবং পরে কোনও সফ্টওয়্যার অ্যাপ্লিকেশনের উত্স কোড (যেমন নোড / প্রান্তগুলির জন্য ফ্রিকোয়েন্সি) দিয়ে জনপ্রিয় হয়, এনট্রপি গণনা করা যেতে পারে।

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


2

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

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

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

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

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

রেফারেন্সগুলি দুর্বল / ব্যক্তিগত হলে আমি দুঃখিত, তবে আমি মনে করি এই সামগ্রিক প্রশ্নটি খুব গুরুত্বপূর্ণ একটি।


শ্যানন এবং কোলমোগোরভের জন্য +1 , উভয়ই প্রাসঙ্গিক ...
অ্যালেক্স ফেনম্যান

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

2

জন জাগার এবং ওলভ মাওদালের কোড এন্ট্রপি সম্পর্কে কিছুটা ভিন্ন দৃষ্টিভঙ্গি রয়েছে, যেমনটি দেখা যায় তাদের 2011 এ্যাকু সম্মেলনের সেশন কোড এন্ট্রপি এবং ফিজিক্স অফ সফটওয়্যারটিতে

তারা কোডের স্থিতিশীলতার বিষয়ে ভবিষ্যতের বিকাশকারী / রক্ষণাবেক্ষণকারীদের সেই কোডটি পরিবর্তন করার সম্ভাবনা রয়েছে কিনা তা সম্পর্কিত talk

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

  • এক-সত্য-ব্রেস শৈলীর বিরুদ্ধে একটি শক্ত পক্ষপাত বলে মনে হয়েছিল ।
  • তবে একক বিবৃতি গ্রহণের জন্য যদি একটি দৃ strong় পক্ষপাত হয় ।
  • অস্থায়ী ভেরিয়েবলগুলি ব্যবহার করার বিরুদ্ধে একটি শক্ত পক্ষপাত ছিল।
  • অপারেটরের অগ্রাধিকার সুস্পষ্ট করার জন্য প্রথম বন্ধনী যুক্ত করার পক্ষে একটি শক্ত পক্ষপাত ছিল।

আরও 16 জন

সাধারণ প্রবণতা কোডটি বোঝা সহজতর করার জন্য, এবং ভুল বোঝাটি আরও কঠিন বলে মনে হয়েছিল।

তারা বছরের পর বছর ধরে একটি বড় কোডবেসে কিছু পরিবর্তন করেছে।

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


1

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

এই জাতীয় একটি গবেষণামূলক তথ্য তত্ত্ব এবং সফ্টওয়্যার পরিমাপ


0

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


0

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

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

প্রকৃতপক্ষে সংক্ষেপণের অনুপাত কোডের এনট্রপি পরিমাপের জন্য একটি ভাল মিটার, তবে উভয়ই কোড মানের জন্য ভাল মিটার নয়।


0

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

এটি নীতিগতভাবে, উত্স কোড জটিলতায় খুব সুন্দরভাবে প্রয়োগ করা যেতে পারে: "জাস্ট" এমন একটি সংক্ষেপক লিখুন যা কেবলমাত্র পুরোপুরি স্ট্যান্ডার্ড কমপ্লায়েন্ট সোর্স কোড নিয়ে কাজ করে এবং যেটি সংক্ষেপে এটি সংকলনের মতো পার্সিং করে তা একইভাবে সিনট্যাক্স ট্রি উত্পাদন করে। তারপরে এটি এই সিনট্যাক্স ট্রিটি হাঁটতে পারে এবং প্রতিটি নোডে সিদ্ধান্ত নিতে পারে কোন নোডগুলি প্রতিটি পয়েন্টে সম্ভব হত, সেই নোডটিকে সেই জ্ঞানের সাথে এনকোড করে।

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

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


-2

কোডটিতে ঠিক ent সংখ্যার মতো এনট্রপি রয়েছে π

কোড রক্ষণাবেক্ষণ এবং পরিবর্তন এনট্রপি প্রবর্তন করতে পারে (কারণ একটি সম্ভাব্য রাষ্ট্র পরিবর্তন জড়িত আছে)।

কোডটি কেবল একটি বড় সংখ্যা। একটি বাইনারি প্রতিনিধিত্ব সঙ্গে।


এইভাবে চিন্তা করে আপনি বলতে পারবেন না জিজিপ করার সময় সমস্ত কোডের একই এনট্রপি রয়েছে?
অ্যারোন অ্যানোডিড

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

কেবল কৌতূহলী, এই দৃশ্যে দশমিক ৪২ এবং বাইনারি ৪২ এর সমান এনট্রপি রয়েছে বা এই মন্তব্যটি বলে যে সংখ্যাগুলিতে এনট্রপি নেই, এবং এর বিন্দুটি বোঝায়?
অ্যারন অ্যানোডিড

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