রেজেক্সেসে কেন কোনও অনুমতি নেই? (এমনকি যদি নিয়মিত ভাষাগুলি এটি করতে সক্ষম হয় বলে মনে হয়)


13

সমস্যাটি

রেজেক্সের সাহায্যে অনুমতি পাওয়ার কোনও সহজ উপায় নেই।

  • বিন্যাস: একটি পথ শব্দ আরেকটি অর্ডার ( "aabc") সংখ্যা পরিবর্তন করা বা বর্ণের ধরনের ছাড়া।
    W=এক্স1...এক্সএন
  • রেজেক্স: নিয়মিত অভিব্যক্তি।

যাচাই করার জন্য:

আমি যে ধরণের সমাধান অনুসন্ধান করছি

এটির ফর্মটি থাকা উচিত:

  • Ab aabc «(বা অন্য কোনও কিছু যা আপনি খোলার এবং বন্ধ করার বন্ধনী ব্যবহার করতে পারেন)
  • (Aabc)! (একই সাথে (এবিসি)? তবে শেষ পর্যন্ত অন্য প্রতীক সহ)
  • [Aabc] ([এবিসি] এর অনুরূপ তবে শেষের দিকে অন্য প্রতীক সহ)

এই সমাধানগুলির সুবিধা

তারা হ'ল:

  • সহজ
  • অভিযোজ্য
  • পুনর্ব্যবহারযোগ্য

কেন এটি থাকা উচিত

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

সুতরাং আমার প্রশ্নটি হ'ল:

  • (কেন) আমার প্রমাণটি ভুল?
  • যদি এটি সঠিক হয়: অনুমতি প্রকাশের কোনও সহজ উপায় কেন নেই?

প্রমাণ

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

সীমাবদ্ধ সংখ্যার অক্ষর থাকাতে আমি এই অটোমেটনটি তৈরি করতে পারি: (উদাহরণ। ফর্মাল: নীচে দেখুন)

ব্যাকরণ যা "অ্যাবিসি" এর অনুমতি গ্রহণ করে:

(শীর্ষে সংখ্যার জন্য চটজলদি, সম্ভবত কেউ জানেন যে কীভাবে এই অংশটি আরও ভাল দেখাচ্ছে)

s -> আহ

s -> bh²

s -> ch³

h¹ -> bh¹¹

h¹ -> ch¹²

এইচ -> আহ (কোনও টাইপো নেই! সমতা)

h² -> bh²²

h² -> ch²³

h³ -> আহ ¹²

h³ -> bh²³

h¹¹ -> বিসি

h¹¹ -> সিবি

h¹² -> বিবি

h²² -> এসি

h²² -> ca

h²³ -> আব

h²³ -> বা

আরও আনুষ্ঠানিক: (একটি সসীম-রাষ্ট্র-অটোমেটন ব্যবহার করে তবে এটি ব্যাকরণ দিয়েও তৈরি করা যেতে পারে)

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

সুতরাং প্রদত্ত শব্দের অনুমতি গ্রহণের জন্য একটি সসীম-রাষ্ট্রীয় অটোম্যাটন তৈরি করা সম্ভব।

প্রমাণ সহ চলমান

সুতরাং আমি প্রমাণিত করেছি যে নিয়মিত ভাষাগুলিতে ক্রমবিধি যাচাই করার ক্ষমতা আছে, তাই না?

তাহলে কেন রেজিেক্সসের সাথে এটি পৌঁছানোর কোনও পন্থা নেই? এটি একটি দরকারী কার্যকারিতা।


10
আপনি নিয়মিত অভিব্যক্তি দিয়ে আপনার শব্দের সমস্ত অনুমতি তালিকাভুক্ত করতে পারেন। ফলস্বরূপ প্রকাশটি বেশ বড় হবে তবে এটি অবশ্যই একটি নিয়মিত অভিব্যক্তি।
যুবাল ফিল্মাস

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

আপনার লিঙ্কযুক্ত পৃষ্ঠায় উত্তরটি এখানে রয়েছে - stackoverflow.com/a/3102205/6936386 - সহজেই অভিযোজিত এবং খুব জটিল নয় ^(a()|a()|b()|c()){4}\2\3\4\5$বলে মনে হচ্ছে : কাজ করছে বলে মনে হচ্ছে ( regex101.com/r/9URPpg/4/tests দেখুন )।
ববাকোয়াক

7
@boboquack এটি কম্পিউটার বিজ্ঞানে যে শব্দটি ব্যবহৃত হয় সেই অর্থে এটি কোনও নিয়মিত প্রকাশ নয়। (এই ধরণের জিনিসটি হ'ল কেন ইউভাল তাত্ত্বিক সিএস সম্পর্কে স্ট্যাক ওভারফ্লো উত্তরগুলিতে বিশ্বাস না করার পরামর্শ দিয়েছিলেন))
ডেভিড রিচার্বি

উত্তর:


37

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

ধরুন আমরা নিয়মিত এক্সপ্রেশন তৈরি করার জন্য একটি নতুন নিয়ম যুক্ত করেছি: R  যদি একটি নিয়মিত প্রকাশ হয় তবে π(R) একটি নিয়মিত প্রকাশ এবং এটি R সাথে মিলেছে প্রতিটি স্ট্রিংয়ের প্রতিটি আদেশের সাথে মেলে  । সুতরাং, উদাহরণস্বরূপ, L(π(abc))={abc,acb,bac,bca,cab,cba}। সমস্যাটি হ'ল এটি উপরে বর্ণিত মৌলিক সমতা ভেঙে দেয়। L(π((ab)))) স্ট্রিং যে একটি সমান সংখ্যা ধারণ ভাষা a s এবং s এবং এই একটি নিয়মিত ভাষা নয়। এটির সাথে তুলনা করুন, উদাহরণস্বরূপ, নিয়মিত অভিব্যক্তিগুলিতে একটি অস্বীকৃতি বা বিপরীত অপারেটর যুক্ত করুন, যা ভাষার গ্রহণযোগ্য ভাষাগুলির শ্রেণি পরিবর্তন করে না।

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


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

9
এল((একটি)*){ε,একটি,একটিএকটি,একটিএকটিএকটি,একটিএকটিএকটিএকটি,...}{ε,ab,aabb,aaabbb,aaaabbbb,}

4
a

2
আপনি পুরোপুরি ঠিক বলেছেন। আমি "একে অপরের মধ্যে নিয়মিত মত প্রকাশের" বিন্দুটি মিস করেছি, আমি কেবল "একটি নির্দিষ্ট শব্দকে" অন্য "রেজেক্সকে ছাড়াই না" যা অবশ্যই সম্ভব নয় তা নিষেধ করার বিষয়ে চিন্তাভাবনা করেছি।
আসকিয়ার

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

16

সুতরাং আমার প্রশ্নটি হ'ল:

  • (কেন) আমার প্রমাণটি ভুল?
  • যদি এটি সঠিক হয়: অনুমতি প্রকাশের কোনও সহজ উপায় কেন নেই?

আপনার "প্রমাণ" কেবলমাত্র একক শব্দের ক্রিয়াকলাপকে দেখেছে, যা সীমাবদ্ধ ভাষা।

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

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

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


8

ΣnΣmO(m)

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


Ω~(2n)ΣnmO(m)

L(xi,yi)1iN

  • xiyiL
  • ijxiyjLxjyiL

LNLixiyiqixiqiqjijqi=qjxiyjxjyiL

Lnσ1,,σnnSσ1,,σnn/2xSSySSxSySLnSTxSyTLnLn(nn/2)=Ω(2n/n)


তাত্ত্বিকভাবে এর অর্থ 1) এর অর্থ কি theory abc «এর সাথে সমস্ত« abc, acb, bac, bca, cab, cba «মিলিয়ে দেওয়া সম্ভব হবে তবে এটি কেবল দক্ষ নয় এবং এগুলি খুব ধীর করে দেবে যেহেতু» abc exp দ্রুত প্রসারিত হবে (এবিসি | ACB | Bac | BCA | ক্যাব | সিবিএ)? বা 2) আমার যে ধরণের অটোমেটনের প্রয়োজন তা কোনও প্রদত্ত শব্দের জন্য সমস্ত অনুমতি নির্দিষ্ট করতে সক্ষম নয়?
আসকিয়ার

1
abcabc+acd+bac+bca+cab+cba1+3+6+6+1=17abcdefghij
যুবাল ফিল্মাস

1
আমি যা বুঝেছিলাম: তাত্ত্বিকভাবে, নিয়মিত ভাষাগুলি অনুমতিগুলি গ্রহণ করতে সক্ষম হয় (তাই নিয়মিত প্রকাশ হয়)। Ab abc like এর মতো "abc এর অনুক্রম" লেখার জন্য কোনও "সহজ উপায়" নেই « (যে কারণেই হোক না কেন।)
আসকিয়ার

1
হ্যাঁ, এটি একটি ভাল সংক্ষিপ্তসার। আমি নিয়মিত প্রকাশের জন্য একটি সহজ যুক্তি নিয়ে আসতে পারি কিনা তা আমি দেখতে পাব।
যুবাল ফিল্মাস

2
ভবিষ্যতের পাঠকদের জন্য: এটি সঠিক উত্তর নয়! (আমি ভুল হলে আমাকে সংশোধন করুন) স্বীকৃত ব্যক্তির সন্ধান করুন।
আসকিয়ার 14

0

কেন রেজিজেসগুলিতে "পারমিটেশন অফ" লেখার কোনও উপায় নেই

নিয়মিত, অসীম ভাষার (শব্দগুলির অসীম পরিমাণ) একটি ক্রমবিন্যাস অগত্যা নিয়মিত নয়। সুতরাং, এটি regex হিসাবে লেখা যায় না।

প্রমাণ

ভাষার কথা ভাবুন (ab)*। ( ডেভিড রিচার্বির দ্বারা অনুপ্রাণিত উদাহরণ ।) এর এক অনুক্রমের অনুমতিa*b* । এটি কোনও নিয়মিত ভাষা নয়। Qed।

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