The algorithm efficiently solves the problem.

یہ الگورتھم مسئلے کو مؤثر طریقے سے حل کرتا ہے۔


Can you explain the concept in simpler terms?

کیا آپ اس تصور کو آسان الفاظ میں سمجھا سکتے ہیں؟


The research paper presents a novel approach.

تحقیقی مقالہ ایک نئے نقطہ نظر کو پیش کرتا ہے۔


The company is experiencing rapid growth.

کمپنی تیزی سے ترقی کر رہی ہے۔


Please provide more details about the project.

براہ کرم منصوبے کے بارے میں مزید تفصیلات فراہم کریں۔


The weather forecast predicts heavy rain.

موسم کی پیش گوئی میں شدید بارش کی توقع ہے۔


The algorithm's efficiency is a key factor.

الگورتھم کی کارکردگی ایک اہم عنصر ہے۔


حکومت نے نئی پالیسیوں کا اعلان کیا۔


The data analysis revealed interesting insights.

ڈیٹا تجزیہ نے دلچسپ بصیرتیں ظاہر کیں۔


The team worked diligently to complete the task.

ٹیم نے اس کام کو مکمل کرنے کے لیے محنت سے کام کیا۔


The economic situation is quite complex.

معاشی صورتحال کافی پیچیدہ ہے۔


سافٹ ویئر کو بار بار اپ ڈیٹس کی ضرورت ہے۔


میٹنگ اگلے ہفتے منعقد کی جائے گی۔


The study explores the impact of social media.

اس مطالعے میں سوشل میڈیا کے اثرات کو تلاش کیا گیا ہے۔


منصوبے کو کئی چیلنجز کا سامنا کرنا پڑا۔


The algorithm's performance was significantly improved.

الگورتھم کی کارکردگی میں نمایاں بہتری آئی۔


The company is investing in new technologies.

کمپنی نئی ٹیکنالوجیز میں سرمایہ کاری کر رہی ہے۔


The results of the experiment were inconclusive.

تجربے کے نتائج غیر نتیجہ خیز تھے۔


The complex interplay of factors is difficult to understand.

عوامل کا پیچیدہ باہمی تعامل سمجھنا مشکل ہے۔


Despite the challenges, they persevered and succeeded.

چیلنجوں کے باوجود، انہوں نے ہمت نہیں ہاری اور کامیابی حاصل کی۔


The book discusses the concept of Turing completeness.

کتاب ٹورنگ کی مکملیت کے تصور پر بحث کرتا ہے۔


Exercises are provided at the end of each chapter.

ہر باب کے آخر میں مشقیں دی گئی ہیں۔


The theorem explores the limitations of context-free grammars.

یہ نظریہ سیاق و سباق سے آزاد گرامر کی حدود کو تلاش کرتا ہے۔


Gödel's Incompleteness Theorem is a significant topic.

گوڈل کا نامکمل نظریہ ایک اہم موضوع ہے۔


We will analyze efficient algorithms in this section.

ہم اس حصے میں موثر الگورتھم کا تجزیہ کریں گے۔


Finding the shortest path in a graph is a common problem.

گراف میں سب سے چھوٹا راستہ تلاش کرنا ایک عام مسئلہ ہے۔


The book also covers the concept of NP completeness.

کتاب این پی کی مکملیت کے تصور کا بھی احاطہ کرتی ہے۔


اگر P، NP کے برابر ہو تو کیا ہوگا؟


The chapter discusses space-bounded computation.

باب میں جگہ سے محدود کمپیوٹیشن پر بحث کی گئی ہے۔


Randomized computation is an interesting area of study.

رینڈمائزڈ کمپیوٹیشن مطالعہ کا ایک دلچسپ شعبہ ہے۔


The book explores the basics of probability theory.

کتاب احتمال کے نظریہ کی بنیادی باتوں کو تلاش کرتی ہے۔


We will study the power of randomization.

ہم رینڈمائزیشن کی طاقت کا مطالعہ کریں گے۔


خفیہ نگاری ایک دلچسپ شعبہ ہے۔


The book covers public key cryptography.

کتاب پبلک کی کرپٹوگرافی کا احاطہ کرتی ہے۔


Quantum computing is a cutting-edge technology.

کوانٹم کمپیوٹنگ ایک جدید ترین ٹیکنالوجی ہے۔


The double-slit experiment is a key concept.

ڈبل سلٹ تجربہ ایک اہم تصور ہے۔


Shor's algorithm is used for prime factorization.

شور کا الگورتھم پرائم فیکٹرائزیشن کے لیے استعمال ہوتا ہے۔


The book provides bibliographical notes at the end.

کتاب کے آخر میں کتابیات کے نوٹس فراہم کیے گئے ہیں۔


This is a complex topic, but it is explained well.

یہ ایک پیچیدہ موضوع ہے، لیکن اسے اچھی طرح سے سمجھایا گیا ہے۔


تصورات کو تفصیل سے بیان کیا گیا ہے۔


The book introduces the basic concepts of theoretical computer science.

یہ کتاب نظریاتی کمپیوٹر سائنس کے بنیادی تصورات متعارف کراتی ہے۔


Computation arises in various natural and human-made systems.

کمپیوٹیشن مختلف قدرتی اور انسانی ساختہ نظاموں میں پیدا ہوتی ہے۔


The notion of universality is a key concept in computer science.

آفاقیت کا تصور کمپیوٹر سائنس میں ایک اہم تصور ہے۔


We can precisely define a mathematical model of computation.

ہم کمپیوٹیشن کا ایک ریاضیاتی ماڈل درست طور پر بیان کر سکتے ہیں۔


Some problems are inherently intractable.

کچھ مسائل فطری طور پر حل طلب ہیں۔


یہ کتاب کرپٹوگرافی کو چھوتی ہے۔


The book aims to introduce students to a new way of thinking.

اس کتاب کا مقصد طلباء کو سوچنے کا ایک نیا طریقہ متعارف کرانا ہے۔


We will use programming metaphors and idioms.

ہم پروگرامنگ استعارات اور محاوروں کا استعمال کریں گے۔


Proofs in this book are often constructive and algorithmic.

اس کتاب میں ثبوت اکثر تعمیری اور الگورتھمک ہوتے ہیں۔


The accompanying website allows executing programs.

اس کے ساتھ والی ویب سائٹ پروگراموں کو چلانے کی اجازت دیتی ہے۔


یہ کتاب چیلنجنگ ہو سکتی ہے۔


The best way to engage with this material is to read actively.

اس مواد کے ساتھ مشغول ہونے کا بہترین طریقہ یہ ہے کہ اسے فعال طور پر پڑھا جائے۔


Understand the definitions rather than the theorems.

قواعد و ضوابط کو سمجھیں بجائے اس کے کہ نظریات کو۔


It is more important to understand a theorem statement than its proof.

کسی نظریہ کے بیان کو اس کے ثبوت سے زیادہ سمجھنا ضروری ہے۔


Learning this material is important because it contains beautiful and fundamental concepts.

اس مواد کو سیکھنا ضروری ہے کیونکہ اس میں خوبصورت اور بنیادی تصورات شامل ہیں۔


Computation and information play a key role in the 21st century.

کمپیوٹیشن اور معلومات 21 ویں صدی میں ایک اہم کردار ادا کرتے ہیں۔


Boolean circuits are more fundamental than automata.

بولین سرکٹس آٹومیٹا سے زیادہ بنیادی ہیں۔


Boolean circuits are a prerequisite for many concepts.

بولین سرکٹس بہت سے تصورات کے لیے ایک لازمی شرط ہیں۔


We do not start with finite automata as our initial computational model.

ہم اپنے ابتدائی کمپیوٹیشنل ماڈل کے طور پر محدود آٹومیٹا سے شروع نہیں کرتے ہیں۔


The main applications for these models rely on the fact that these are tractable models.

ان ماڈلز کی اہم ایپلی کیشنز اس حقیقت پر انحصار کرتی ہیں کہ یہ قابل عمل ماڈل ہیں۔


یہ درسی کتاب آن لائن دستیاب ہے۔


Please report any issues on the GitHub repository.

براہ کرم گِٹ ہب ذخیرے پر کسی بھی مسئلے کی اطلاع دیں۔


یہ ورژن بدھ کے روز مرتب کیا گیا تھا۔


The book is licensed under a Creative Commons license.

یہ کتاب تخلیقی العام لائسنس کے تحت لائسنس یافتہ ہے۔


This work is dedicated to Ravit, Alma, and Goren.

یہ کام راویت، الما اور گورین کے نام وقف ہے۔


The preface provides an introduction to the book's contents.

پیش لفظ کتاب کے مندرجات کا تعارف فراہم کرتا ہے۔


Chapter 1 covers mathematical background.

باب 1 ریاضیاتی پس منظر کا احاطہ کرتا ہے۔


We will explore computation and representation in detail.

ہم تفصیل سے کمپیوٹیشن اور نمائندگی کا جائزہ لیں گے۔


Finite computation is a key concept in this section.

محدود کمپیوٹیشن اس حصے میں ایک اہم تصور ہے۔


The book discusses syntactic sugar and computing every function.

کتاب نحوی شکر اور ہر فنکشن کی کمپیوٹنگ پر بحث کرتی ہے۔


Code as data and data as code are fundamental ideas.

کوڈ بطور ڈیٹا اور ڈیٹا بطور کوڈ بنیادی خیالات ہیں۔


The text also covers uniform computation.

متن یکساں کمپیوٹیشن کا بھی احاطہ کرتا ہے۔


Regular expressions and automata are important topics.

ریگولر ایکسپریشن اور آٹومیٹا اہم موضوعات ہیں۔


The concept of uncomputability is also explored.

غیر کمپیوٹیبلٹی کے تصور کو بھی دریافت کیا گیا ہے۔


Efficient algorithms are discussed in a later section.

موثر الگورتھم پر بعد کے حصے میں بحث کی گئی ہے۔


The Cook-Levin Theorem is a significant result.

کُک-لیون تھیورم ایک اہم نتیجہ ہے۔


Space-bounded computation is another area of focus.

خلائی محدود کمپیوٹیشن توجہ کا ایک اور شعبہ ہے۔


Probability theory is introduced in the context of randomized computation.

رینڈمائزڈ کمپیوٹیشن کے تناظر میں احتمال کے نظریہ کا تعارف کرایا گیا ہے۔


Cryptography is one of the advanced topics covered.

کریپٹوگرافی احاطہ شدہ جدید موضوعات میں سے ایک ہے۔


Quantum computing is also included in the advanced topics.

کوانٹم کمپیوٹنگ کو بھی جدید موضوعات میں شامل کیا گیا ہے۔


یہ الگورتھم ڈیٹا کو مؤثر طریقے سے ترتیب دیتا ہے۔


She enjoys reading novels in her free time.

وہ اپنے فارغ وقت میں ناول پڑھنا پسند کرتی ہے۔


The company announced a new product launch.

کمپنی نے ایک نئی مصنوعات کے آغاز کا اعلان کیا۔


Could you please repeat that information?

کیا آپ براہ کرم اس معلومات کو دہرا سکتے ہیں؟


The research paper explores advanced topics in quantum physics.

تحقیقی مقالہ کوانٹم طبیعیات میں جدید موضوعات کی کھوج کرتا ہے۔


He is a highly respected professor at the university.

وہ یونیورسٹی میں ایک انتہائی معزز پروفیسر ہیں۔


The weather forecast predicts heavy rainfall tomorrow.

موسم کی پیش گوئی کل شدید بارش کی پیشین گوئی کرتی ہے۔


The algorithm's time complexity is logarithmic.

الگورتھم کی وقت کی پیچیدگی لاگرتھمک ہے۔


وہ متعدد زبانوں میں روانی سے بات کرتی ہے۔


The economic policies have a significant impact on the market.

معاشی پالیسیوں کا مارکیٹ پر نمایاں اثر پڑتا ہے۔


The software update includes several bug fixes.

سافٹ ویئر اپ ڈیٹ میں کئی بگ فکس شامل ہیں۔


He is working on a complex mathematical proof.

وہ ایک پیچیدہ ریاضیاتی ثبوت پر کام کر رہا ہے۔


The conference brought together experts from around the world.

کانفرنس نے دنیا بھر سے ماہرین کو اکٹھا کیا۔


The new regulations will affect small businesses.

نئے ضوابط چھوٹے کاروباروں کو متاثر کریں گے۔


The study analyzed the effects of climate change.

اس مطالعے میں موسمیاتی تبدیلیوں کے اثرات کا تجزیہ کیا گیا۔


The artist's work is known for its innovative style.

فنکار کا کام اپنے جدید انداز کے لیے جانا جاتا ہے۔


The government is implementing new policies.

حکومت نئی پالیسیاں نافذ کر رہی ہے۔


The data analysis revealed interesting patterns.

ڈیٹا تجزیہ نے دلچسپ نمونوں کا انکشاف کیا۔


The team achieved a significant breakthrough in the field.

ٹیم نے اس شعبے میں ایک اہم کامیابی حاصل کی۔


The project requires careful planning and execution.

اس منصوبے کے لیے محتاط منصوبہ بندی اور عمل درآمد کی ضرورت ہے۔


The algorithm's efficiency is a key factor in its performance.

الگوریتھم کی کارکردگی اس کی کارکردگی میں ایک اہم عنصر ہے۔


Please provide your name and contact information.

براہ کرم اپنا نام اور رابطہ کی معلومات فراہم کریں۔


The news reported a significant increase in the stock market.

خبروں میں اسٹاک مارکیٹ میں نمایاں اضافہ کی اطلاع دی گئی۔


He is a highly respected professor at the university.


The company is developing innovative solutions for the future.

کمپنی مستقبل کے لیے جدید حل تیار کر رہی ہے۔


کیا آپ براہ کرم اسے دہرا سکتے ہیں؟


The research paper explores the impact of climate change.

تحقیقی مقالہ موسمیاتی تبدیلی کے اثرات کو تلاش کرتا ہے۔


She is fluent in several foreign languages.

وہ کئی غیر ملکی زبانوں میں روانی سے بات کرتی ہے۔


آپ کا پسندیدہ مشغلہ کیا ہے؟


The complex equation was difficult to solve.

پیچیدہ مساوات کو حل کرنا مشکل تھا۔


The government announced new economic policies.

حکومت نے نئی معاشی پالیسیوں کا اعلان کیا۔


He demonstrated exceptional skills in the field.

اس نے اس شعبے میں غیر معمولی مہارت کا مظاہرہ کیا۔


The technology has the potential to revolutionize the industry.

اس ٹیکنالوجی میں صنعت میں انقلاب لانے کی صلاحیت ہے۔


کیا آپ اس کام میں میری مدد کر سکتے ہیں؟


The study revealed significant correlations between the variables.

اس مطالعے میں متغیرات کے درمیان اہم تعلقات کا انکشاف ہوا۔


She is a talented artist with a unique style.

وہ ایک منفرد انداز کے ساتھ ایک باصلاحیت فنکارہ ہیں۔


The company's strategic plan outlines its future goals.

کمپنی کا اسٹریٹجک منصوبہ اس کے مستقبل کے اہداف کا خاکہ پیش کرتا ہے۔


ہفتے کے آخر میں آپ کے کیا منصوبے ہیں؟


The intricate design required advanced techniques.

پیچیدہ ڈیزائن کے لیے جدید تکنیکوں کی ضرورت تھی۔


If F : S → T satisfies that F(x) ≠ F(y) for all x ≠ y then we say that F is one-to-one.

اگر F : S → T اس طرح ہے کہ F(x) ≠ F(y) تمام x ≠ y کے لیے، تو ہم کہتے ہیں کہ F ایک سے ایک ہے۔


A function that is both one-to-one and onto is known as a bijective function or simply a bijection.

ایک ایسا فنکشن جو ایک سے ایک اور آنٹو دونوں ہو، اسے بائیجیکٹیو فنکشن یا محض بائیجیکشن کے نام سے جانا جاتا ہے۔


Giving a bijection between two sets is often a good way to show they have the same size.

دو سیٹوں کے درمیان بائیجیکشن دینا اکثر یہ ظاہر کرنے کا ایک اچھا طریقہ ہے کہ ان کا سائز ایک جیسا ہے۔


We can represent finite functions as a directed graph where we put an edge from x to f(x).

ہم محدود افعال کو ایک براہ راست گراف کے طور پر ظاہر کر سکتے ہیں جہاں ہم x سے f(x) تک ایک کنارہ ڈالتے ہیں۔


The onto condition corresponds to requiring that every vertex in the codomain of the function has in-degree at least one.

آنٹو حالت اس بات سے مطابقت رکھتی ہے کہ فنکشن کے کوڈومین میں موجود ہر ورٹیکس میں کم از کم ایک ان ڈگری ہو۔


The one-to-one condition corresponds to requiring that every vertex in the codomain of the function has in-degree at most one.

ایک سے ایک حالت اس بات سے مطابقت رکھتی ہے کہ فنکشن کے کوڈومین میں موجود ہر ورٹیکس میں زیادہ سے زیادہ ایک ان ڈگری ہو۔


We will sometimes be interested in partial functions from S to T.

ہم بعض اوقات S سے T تک جزوی افعال میں دلچسپی لیں گے۔


A partial function is allowed to be undefined on some subset of S.

جزوی فنکشن کو S کے کچھ ذیلی سیٹ پر غیر متعین ہونے کی اجازت ہے۔


For example, the partial function F(x) = √x is only defined on non-negative real numbers.

مثال کے طور پر، جزوی فنکشن F(x) = √x صرف غیر منفی حقیقی اعداد پر متعین ہے۔


When we want to distinguish between partial functions and standard (i.e., non-partial) functions, we will call the latter total functions.

جب ہم جزوی افعال اور معیاری (یعنی، غیر جزوی) افعال کے درمیان فرق کرنا چاہتے ہیں، تو ہم بعد والے کو کل افعال کہیں گے۔


When we say “function” without any qualifier then we mean a total function.

جب ہم بغیر کسی قابلیت کے “فنکشن” کہتے ہیں تو ہمارا مطلب ایک کل فنکشن ہوتا ہے۔


The notion of partial functions is a strict generalization of functions, and so every function is a partial function, but not every partial function is a function.

جزوی افعال کا تصور افعال کی ایک سخت عمومی شکل ہے، اور اس لیے ہر فنکشن ایک جزوی فنکشن ہے، لیکن ہر جزوی فنکشن ایک فنکشن نہیں ہے۔


If F : S → T is one to one, then there exists an onto function G : T → S such that G(F(s)) = s for every s ∈ S.

اگر F : S → T ایک سے ایک ہے، تو ایک آنٹو فنکشن G : T → S موجود ہے اس طرح کہ G(F(s)) = s ہر s ∈ S کے لیے۔


Graphs are ubiquitous in Computer Science, and many other fields as well.

گراف کمپیوٹر سائنس اور بہت سے دوسرے شعبوں میں بھی عام ہیں۔


Graphs come in two basic flavors: undirected and directed.

گراف دو بنیادی اقسام میں آتے ہیں: غیر منقسم اور براہ راست۔


An undirected graph G = (V, E) consists of a set V of vertices and a set E of edges.

ایک غیر منقسم گراف G = (V, E) میں ورٹیکس کا ایک سیٹ V اور کناروں کا ایک سیٹ E ہوتا ہے۔


We say that two vertices u, v ∈ V are neighbors, if the edge {u, v} is in E.

ہم کہتے ہیں کہ دو ورٹیکس u, v ∈ V پڑوسی ہیں، اگر کنارہ {u, v} E میں ہے۔


We define the degree of u to be the number of neighbors u has.

ہم u کی ڈگری کو اس کے پڑوسیوں کی تعداد کے طور پر بیان کرتے ہیں۔


A path in the graph is a tuple (u0, ..., uk) ∈ Vk+1, for some k > 0 such that ui+1 is a neighbor of ui for every i ∈ [k].

گراف میں ایک راستہ ایک ٹپل (u0, ..., uk) ∈ Vk+1 ہے، کسی k > 0 کے لیے اس طرح کہ ui+1 ہر i ∈ [k] کے لیے ui کا پڑوسی ہے۔


We say that the graph G is connected if every pair of vertices in it is connected.

ہم کہتے ہیں کہ گراف G جڑا ہوا ہے اگر اس میں موجود ورٹیکس کا ہر جوڑا جڑا ہوا ہے۔


The theorem's proof is fully rigorous, but written in a somewhat terse manner.

مگر تھیورم کا ثبوت مکمل طور پر سخت ہے، لیکن کچھ مختصر انداز میں لکھا گیا ہے۔


Make sure that you read through it and understand why this is indeed an airtight proof of the Theorem’s statement.

اس بات کو یقینی بنائیں کہ آپ اسے پڑھیں اور سمجھیں کہ یہ واقعی تھیورم کے بیان کا ایک مکمل ثبوت کیوں ہے۔


We index the natural numbers starting with 0.

ہم قدرتی اعداد کو 0 سے شروع کرتے ہوئے انڈیکس کرتے ہیں۔


We also index the set [n] starting with 0.

ہم سیٹ [n] کو بھی 0 سے شروع کرتے ہوئے انڈیکس کرتے ہیں۔


In other texts it is often defined as {1,...,n}.

دوسرے متن میں، اسے اکثر {1,...,n} کے طور پر بیان کیا جاتا ہے۔


Similarly, we index our strings starting with 0.

اسی طرح، ہم اپنی سٹرنگز کو 0 سے شروع کرتے ہوئے انڈیکس کرتے ہیں۔


If n is a natural number then 1n does not equal the number 1 but rather this is the length n string 11⋯1.

اگر n ایک قدرتی عدد ہے تو 1n عدد 1 کے برابر نہیں ہے بلکہ یہ لمبائی n سٹرنگ 11⋯1 ہے۔


Similarly, 0n refers to the length n string 00⋯0.

اسی طرح، 0n لمبائی n سٹرنگ 00⋯0 سے مراد ہے۔


Partial functions are functions that are not necessarily defined on all inputs.

جزوی افعال ایسے افعال ہیں جو ضروری نہیں کہ تمام ان پٹ پر متعین ہوں۔


When we write f : A → B this means that f is a total function unless we say otherwise.

جب ہم f : A → B لکھتے ہیں تو اس کا مطلب ہے کہ f ایک کل فنکشن ہے جب تک کہ ہم دوسری صورت میں نہ کہیں۔


When we want to emphasize that f can be a partial function, we will sometimes write f : A → p B.

جب ہم اس بات پر زور دینا چاہتے ہیں کہ f ایک جزوی فنکشن ہو سکتا ہے، تو ہم بعض اوقات f : A → p B لکھیں گے۔


As we will see later on in the course, we will mostly describe our computational problems in terms of computing a Boolean function f : {0,1}* → {0,1}.

جیسا کہ ہم بعد میں کورس میں دیکھیں گے، ہم زیادہ تر اپنے کمپیوٹیشنل مسائل کو ایک بولین فنکشن f : {0,1}* → {0,1} کا حساب لگانے کے لحاظ سے بیان کریں گے۔


In contrast, many other textbooks refer to the same task as deciding a language L ⊆ {0,1}*.

اس کے برعکس، بہت سے دوسرے درسی کتب اسی کام کو ایک زبان L ⊆ {0,1}* کا فیصلہ کرنے کے طور پر بیان کرتے ہیں۔


These two viewpoints are equivalent, since for every set L ⊆ {0,1}* there is a corresponding function F such that F(x) = 1 if and only if x ∈ L.

یہ دونوں نقطہ نظر مساوی ہیں، کیونکہ ہر سیٹ L ⊆ {0,1}* کے لیے ایک متعلقہ فنکشن F موجود ہے جیسے کہ F(x) = 1 اگر اور صرف اس صورت میں جب x ∈ L۔


Computing partial functions corresponds to the task known in the literature as a solving promise problem.

جزوی افعال کا حساب لگانا اس کام سے مطابقت رکھتا ہے جسے ادب میں ایک حل کرنے والے وعدے کے مسئلے کے طور پر جانا جاتا ہے۔


Because the language notation is so prevalent in other textbooks, we will occasionally remind the reader of this correspondence.

چونکہ زبان کا اشارہ دوسرے درسی کتب میں بہت عام ہے، اس لیے ہم کبھی کبھار قاری کو اس خط و کتابت کی یاد دلائیں گے۔


We use ⌈x⌉ and ⌊x⌋ for the “ceiling” and “floor” operators that correspond to “rounding up” or “rounding down” a number to the nearest integer.

ہم ⌈x⌉ اور ⌊x⌋ کو “چھت” اور “فرش” آپریٹرز کے لیے استعمال کرتے ہیں جو کسی عدد کو قریب ترین عدد تک “اوپر گول کرنے” یا “نیچے گول کرنے” سے مطابقت رکھتے ہیں۔


We use (x mod y) to denote the “remainder” of x when divided by y.

ہم (x mod y) کو x کے “باقی ماندہ” کو ظاہر کرنے کے لیے استعمال کرتے ہیں جب y سے تقسیم کیا جاتا ہے۔


In context when an integer is expected we’ll typically “silently round” the quantities to an integer.

مضمون میں جب ایک عدد کی توقع کی جاتی ہے تو ہم عام طور پر مقداروں کو خاموشی سے ایک عدد میں گول کر دیں گے۔


When we write down text or make a drawing we are representing ideas or experiences as sequences of symbols.

جب ہم متن لکھتے ہیں یا کوئی ڈرائنگ بناتے ہیں تو ہم خیالات یا تجربات کو علامتوں کے سلسلے کے طور پر پیش کر رہے ہوتے ہیں۔


Even our brain does not store the actual sensory inputs we experience, but rather only a representation of them.

یہاں تک کہ ہمارا دماغ بھی ان حقیقی حسی ان پُٹس کو محفوظ نہیں کرتا جن کا ہم تجربہ کرتے ہیں، بلکہ صرف ان کی نمائندگی کرتا ہے۔


To use objects such as numbers, images, graphs, or others as inputs for computation, we need to define precisely how to represent these objects as binary strings.

کمپیوٹیشن کے لیے نمبر، تصاویر، گراف یا دیگر اشیاء کو ان پُٹس کے طور پر استعمال کرنے کے لیے، ہمیں بالکل واضح طور پر یہ بتانے کی ضرورت ہے کہ ان اشیاء کو بائنری اسٹرنگز کے طور پر کیسے پیش کیا جائے۔


A representation scheme is a way to map an object x to a binary string E(x) ∈ {0,1} *.

ایک نمائندگی کا طریقہ ایک شے x کو بائنری اسٹرنگ E(x) ∈ {0,1} * پر نقشہ بنانے کا ایک طریقہ ہے۔


For example, a representation scheme for natural numbers is a function E : ℕ → {0,1} *.

مثال کے طور پر، قدرتی اعداد کے لیے ایک نمائندگی کا طریقہ ایک فنکشن E : ℕ → {0,1} * ہے۔


Of course, we cannot merely represent all numbers as the string “0011”.

یقینا، ہم تمام نمبروں کو محض اسٹرنگ “0011” کے طور پر پیش نہیں کر سکتے۔


A minimal requirement is that if two numbers x and x' are different then they would be represented by different strings.

ایک کم سے کم ضرورت یہ ہے کہ اگر دو نمبر x اور x' مختلف ہیں تو ان کی نمائندگی مختلف اسٹرنگز سے کی جائے گی۔


Another way to say this is that we require the encoding function E to be one to one.

اسے کہنے کا ایک اور طریقہ یہ ہے کہ ہمیں انکوڈنگ فنکشن E کو ایک سے ایک ہونے کی ضرورت ہے۔


We now show how we can represent natural numbers as binary strings.

اب ہم دکھاتے ہیں کہ ہم قدرتی اعداد کو بائنری اسٹرنگز کے طور پر کیسے پیش کر سکتے ہیں۔


We can use any one of those as well as many others to represent a number as a string.

ہم ان میں سے کسی ایک کے ساتھ ساتھ بہت سے دوسرے نمبروں کو اسٹرنگ کے طور پر پیش کرنے کے لیے استعمال کر سکتے ہیں۔


However, for the sake of concreteness, we use the binary basis as our default representation of natural numbers as strings.

تاہم، ٹھوسیت کی خاطر، ہم قدرتی اعداد کو اسٹرنگز کے طور پر پیش کرنے کے لیے اپنے ڈیفالٹ کے طور پر بائنری بنیاد کا استعمال کرتے ہیں۔


For example, we represent the number six as the string 110 since 1⋅2^2 + 1⋅2^1 + 0⋅2^0 = 6.

مثال کے طور پر، ہم نمبر چھ کو اسٹرنگ 110 کے طور پر پیش کرتے ہیں کیونکہ 1⋅2^2 + 1⋅2^1 + 0⋅2^0 = 6۔


If n is even, then the least significant digit of n’s binary representation is 0, while if n is odd then this digit equals 1.

اگر n جفت ہے، تو n کی بائنری نمائندگی کا سب سے کم اہم ہندسہ 0 ہے، جب کہ اگر n طاق ہے تو یہ ہندسہ 1 کے برابر ہے۔


The function NtS is defined recursively: for every n > 1 we define rep(n) in terms of the representation of the smaller number ⌊n/2⌋.

فنکشن NtS کو recursive طور پر بیان کیا گیا ہے: ہر n > 1 کے لیے ہم چھوٹے نمبر ⌊n/2⌋ کی نمائندگی کی اصطلاحات میں rep(n) کی وضاحت کرتے ہیں۔


Throughout most of this book, the particular choices of representation of numbers as binary strings would not matter much.

اس کتاب کے بیشتر حصے میں، بائنری اسٹرنگز کے طور پر نمبروں کی نمائندگی کے مخصوص انتخاب زیادہ اہمیت نہیں رکھتے۔


We can implement the binary representation in Python as follows:

ہم مندرجہ ذیل طور پر پائتھون میں بائنری نمائندگی کو لاگو کر سکتے ہیں:


We can also use Python to implement the inverse transformation, mapping a string back to the natural number it represents.

ہم اس کے الٹ ٹرانسفارمیشن کو لاگو کرنے کے لیے پائتھون کا بھی استعمال کر سکتے ہیں، جو ایک اسٹرنگ کو واپس اس قدرتی نمبر پر نقشہ بناتا ہے جس کی وہ نمائندگی کرتا ہے۔


In this book, we sometimes use code examples as in Remark 2.1.

اس کتاب میں، ہم بعض اوقات ریمارک 2.1 کی طرح کوڈ کی مثالیں استعمال کرتے ہیں۔


It is natural for us to think of 236 as the “actual” number, and of 11101100 as “merely” its representation.

ہمارے لیے یہ قدرتی ہے کہ ہم 236 کو “حقیقی” نمبر کے طور پر اور 11101100 کو “صرف” اس کی نمائندگی کے طور پر سوچیں۔


We have seen that natural numbers can be represented as binary strings. We now show that the same is true for other types of objects.

ہم نے دیکھا ہے کہ قدرتی اعداد کو بائنری اسٹرنگز کے طور پر پیش کیا جا سکتا ہے۔ اب ہم دکھاتے ہیں کہ یہی بات دیگر قسم کی اشیاء کے لیے بھی درست ہے۔


The function d is constructed to ensure it differs from StF(x) for all x.

فنکشن ڈی اس بات کو یقینی بنانے کے لیے بنایا گیا ہے کہ یہ تمام ایکس کے لیے StF(x) سے مختلف ہے۔


We can think of this as building a table where columns correspond to numbers m ∈ ℕ.

ہم اسے ایک ٹیبل بنانے کے طور پر سوچ سکتے ہیں جہاں کالم نمبروں m ∈ ℕ سے مطابقت رکھتے ہیں۔


If the entry in the x-th row and the m-th column corresponds to g(m) where g = StF(x) then d is obtained.

اگر x-ویں قطار اور m-ویں کالم میں اندراج g(m) سے مطابقت رکھتا ہے جہاں g = StF(x) تو d حاصل کیا جاتا ہے۔


One way to get intuition for it is to consider the following finite statement.

اس کے لیے وجدان حاصل کرنے کا ایک طریقہ یہ ہے کہ مندرجہ ذیل محدود بیان پر غور کیا جائے۔


For every f ∶ {0,...,99} → {0,1} 100 , we can define the string d ∈ {0,1} 100 as follows.

ہر f ∶ {0,...,99} → {0,1} 100 کے لیے، ہم اس طرح سٹرنگ d ∈ {0,1} 100 کی وضاحت کر سکتے ہیں۔


If f was onto, then there would exist some n ∈ [100] such that f(n) = d, but we claim that no such n exists.

اگر f آن تھا، تو کچھ n ∈ [100] موجود ہوں گے جیسے f(n) = d، لیکن ہم دعویٰ کرتے ہیں کہ ایسا کوئی n موجود نہیں ہے۔


We will prove that there does not exist an onto function StF ∶ {0,1} ∗ → {0,1} ∞.

ہم ثابت کریں گے کہ کوئی آن فنکشن StF ∶ {0,1} ∗ → {0,1} ∞ موجود نہیں ہے۔


Consider the lexicographic ordering of binary strings (i.e., "",0,1,00,01,...).

بائنری سٹرنگز کی لغوی ترتیب پر غور کریں (یعنی، ""،0,1,00,01،...)۔


We define the function d ∈ {0,1} ∞ as follows: d(n) = 1−StF(x n )(n) for every n ∈ ℕ.

ہم فنکشن d ∈ {0,1} ∞ کو اس طرح بیان کرتے ہیں: d(n) = 1−StF(x n )(n) ہر n ∈ ℕ کے لیے۔


The definition of the function d is a bit subtle.

فنکشن d کی تعریف تھوڑی لطیف ہے۔


One way to think about it is to imagine the function StF as being specified by an infinitely long table.

اس کے بارے میں سوچنے کا ایک طریقہ یہ ہے کہ فنکشن StF کا تصور کریں جو ایک لامحدود طویل ٹیبل کے ذریعے متعین کیا گیا ہے۔


The diagonal elements in this table are the values StF("")(0),StF(0)(1),StF(1)(2),StF(00)(3),StF(01)(4),...

اس ٹیبل میں ترچھے عناصر قدریں StF("")(0),StF(0)(1),StF(1)(2),StF(00)(3),StF(01)(4),... ہیں۔


The function d we defined above maps every n ∈ ℕ to the negation of the n-th diagonal value.

اوپر بیان کردہ فنکشن d ہر n ∈ ℕ کو n-ویں ترچھے قدر کی نفی پر نقشہ کرتا ہے۔


Indeed, let x ∈ {0,1} ∗ be some string and let g = StF(x).

درحقیقت، x ∈ {0,1} ∗ کو کچھ سٹرنگ ہونے دیں اور g = StF(x) ہونے دیں۔


If n is the position of x in the lexicographical order then by construction d(n) = 1 − g(n) ≠ g(n) which means that g ≠ d which is what we wanted to prove.

اگر n لغوی ترتیب میں x کی پوزیشن ہے تو تعمیر کے ذریعے d(n) = 1 − g(n) ≠ g(n) جس کا مطلب ہے کہ g ≠ d جو ہم ثابت کرنا چاہتے تھے۔


Lemma 2.8 doesn’t really have much to do with the natural numbers or the strings.

لیما 2.8 کا قدرتی اعداد یا سٹرنگز سے زیادہ تعلق نہیں ہے۔


An examination of the proof shows that it really shows that for every set S, there is no one-to-one map F ∶ {0,1} S → S.

ثبوت کے معائنے سے پتہ چلتا ہے کہ یہ واقعی ظاہر کرتا ہے کہ ہر سیٹ S کے لیے، کوئی ایک سے ایک نقشہ F ∶ {0,1} S → S نہیں ہے۔


Cantor used these ideas to construct an infinite hierarchy of shades of infinity.

کینٹر نے لامحدودیت کے شیڈز کی ایک لامحدود درجہ بندی بنانے کے لیے ان خیالات کا استعمال کیا۔


We will come back to the fascinating story of this hypothesis later on in this book.

ہم اس کتاب میں بعد میں اس مفروضے کی دلچسپ کہانی پر واپس آئیں گے۔


This requires some calculus background but is otherwise straightforward.

اس کے لیے کیلکولس کے پس منظر کی ضرورت ہے لیکن بصورت دیگر یہ سیدھا ہے۔


The Braille system encodes letters and symbols as binary strings.

بریل نظام حروف اور علامتوں کو بائنری اسٹرنگز کے طور پر انکوڈ کرتا ہے۔


We can represent a letter or symbol by a string.

ہم ایک حرف یا علامت کو ایک اسٹرنگ کے ذریعے ظاہر کر سکتے ہیں۔


The ASCII representation is fixed-length, it is automatically prefix-free.

ASCII کی نمائندگی مقررہ لمبائی کی ہے، یہ خود بخود سابقہ سے پاک ہے۔


Unicode is the representation of about 128,000 symbols as numbers.

یونیکوڈ تقریباً 128,000 علامتوں کی نمائندگی نمبروں کے طور پر کرتا ہے۔


The Braille system was invented in 1821 by Louis Braille.

بریل نظام 1821 میں لوئس بریل نے ایجاد کیا تھا۔


We can represent vectors as lists of numbers.

ہم ویکٹرز کو نمبروں کی فہرست کے طور پر ظاہر کر سکتے ہیں۔


اسی طرح، ہم میٹرکس کی نمائندگی کر سکتے ہیں۔


To represent an image, we can represent the color at each pixel.

ایک تصویر کی نمائندگی کرنے کے لیے، ہم ہر پکسل پر رنگ کی نمائندگی کر سکتے ہیں۔


A video can be represented as a list of images.

ایک ویڈیو کو تصاویر کی فہرست کے طور پر ظاہر کیا جا سکتا ہے۔


We can represent graphs using an adjacency matrix.

ہم ملحقہ میٹرکس کا استعمال کرتے ہوئے گراف کی نمائندگی کر سکتے ہیں۔


Another representation for graphs is the adjacency list representation.

گراف کے لیے ایک اور نمائندگی ملحقہ فہرست کی نمائندگی ہے۔


If we have a way of representing objects from a set, then we can represent lists of these objects.

اگر ہمارے پاس کسی سیٹ سے اشیاء کی نمائندگی کرنے کا کوئی طریقہ ہے، تو ہم ان اشیاء کی فہرستوں کی نمائندگی کر سکتے ہیں۔


We will typically identify an object with its representation as a string.

ہم عام طور پر کسی شے کو اس کی نمائندگی کے ساتھ ایک اسٹرنگ کے طور پر شناخت کریں گے۔


A computational process takes an input and produces an output.

ایک کمپیوٹیشنل عمل ایک ان پٹ لیتا ہے اور ایک آؤٹ پٹ تیار کرتا ہے۔


A computational task can specify any relation that the output needs to have with the input.

ایک کمپیوٹیشنل ٹاسک کسی بھی رشتے کی وضاحت کر سکتا ہے جو آؤٹ پٹ کو ان پٹ کے ساتھ رکھنے کی ضرورت ہے۔


For example, given two integers, compute their product.

مثال کے طور پر، دو عدد دیے گئے ہیں، ان کا حاصل ضرب معلوم کریں۔


Given an integer greater than 1, compute its factorization.

1 سے بڑا ایک عدد دیا گیا ہے، اس کا تجزیہ معلوم کریں۔


We will need to mathematically define the notion of an algorithm.

ہمیں ریاضیاتی طور پر ایک الگورتھم کے تصور کی وضاحت کرنے کی ضرورت ہوگی۔


A program computes a function, but it is not the same as a function.

ایک پروگرام ایک فنکشن کا حساب لگاتا ہے، لیکن یہ ایک فنکشن جیسا نہیں ہے۔


Distinguishing functions from programs is a crucial theme.

فنکشنز کو پروگراموں سے ممتاز کرنا ایک اہم موضوع ہے۔


آج موسم خوشگوار ہے۔


کیا آپ براہ کرم نمک پاس کر سکتے ہیں؟


میں بازار جا رہا ہوں۔


وہ بہت باصلاحیت گلوکارہ ہیں۔


The company announced its quarterly profits.

کمپنی نے اپنے سہ ماہی منافع کا اعلان کیا۔


The research team is working on a new project.

تحقیقی ٹیم ایک نئے منصوبے پر کام کر رہی ہے۔


The algorithm efficiently sorts the data.

الگورتھم ڈیٹا کو مؤثر طریقے سے ترتیب دیتا ہے۔


He is a well-respected professor in the field.

وہ اس شعبے میں ایک معزز پروفیسر ہیں۔


The government is implementing new policies.

حکومت نئی پالیسیاں نافذ کر رہی ہے۔


The impact of climate change is evident.

آب و ہوا کی تبدیلی کا اثر واضح ہے۔


The complex equation requires careful analysis.

پیچیدہ مساوات کو محتاط تجزیہ کی ضرورت ہے۔


Despite the challenges, they persevered.

چیلنجوں کے باوجود، انہوں نے ہمت نہیں ہاری۔


The philosophical debate was quite stimulating.

فلسفیانہ بحث کافی دلچسپ تھی۔


The intricacies of quantum physics are fascinating.

کوانٹم طبیعیات کی باریکیاں دلچسپ ہیں۔


The economic downturn affected many industries.

معاشی بدحالی نے بہت سی صنعتوں کو متاثر کیا۔


The implications of the new discovery are far-reaching.

نئی دریافت کے مضمرات دور رس ہیں۔


جج نے ایک فیصلہ کن فیصلہ سنایا۔


The company's innovative approach revolutionized the industry.

کمپنی کے جدید انداز نے صنعت میں انقلاب برپا کر دیا۔


The artist's work reflects a deep understanding of human nature.

فنکار کا کام انسانی فطرت کی گہری سمجھ کی عکاسی کرتا ہے۔


The negotiations reached an impasse after weeks of talks.

کئی ہفتوں کی بات چیت کے بعد مذاکرات تعطل کا شکار ہو گئے۔


The book delves into the upcoming chapters.

کتاب آنے والے ابواب میں گہرائی سے اترتا ہے۔


You would be well advised to re-read the above informal definition.

آپ کو مشورہ دیا جائے گا کہ آپ اوپر دی گئی غیر رسمی تعریف کو دوبارہ پڑھیں۔


A large part of this book will be devoted to addressing the above issues.

اس کتاب کا ایک بڑا حصہ مذکورہ بالا مسائل سے نمٹنے کے لیے وقف کیا جائے گا۔


We can make the definition of an algorithm fully formal.

ہم ایک الگورتھم کی تعریف کو مکمل طور پر رسمی بنا سکتے ہیں۔


AND/OR/NOT کا انتخاب من مانا ہے۔


We would obtain the same computational power if we instead used addition and multiplication.

اگر ہم اس کے بجائے جمع اور ضرب کا استعمال کرتے تو ہمیں وہی کمپیوٹیشنل طاقت حاصل ہوتی۔


We can and do compute such “AND/OR/NOT- based algorithms” in the real world.

ہم حقیقی دنیا میں اس طرح کے “AND/OR/NOT- پر مبنی الگورتھم” کا حساب لگا سکتے ہیں اور لگاتے ہیں۔


Such an algorithm is clearly well specified.

اس طرح کا الگورتھم واضح طور پر اچھی طرح سے متعین ہے۔


It can be executed by a human with a pen and paper.

اسے ایک انسان قلم اور کاغذ کے ساتھ چلا سکتا ہے۔


We can write Python code that corresponds to following such a list of instructions.

ہم پائتھون کوڈ لکھ سکتے ہیں جو اس طرح کی ہدایات کی فہرست پر عمل کرنے کے مساوی ہے۔


We can directly implement operations such as AND, OR, and NOT.

ہم براہ راست آپریشنز جیسے AND, OR, اور NOT کو لاگو کر سکتے ہیں۔


This is how modern electronic computers operate.

اس طرح جدید الیکٹرانک کمپیوٹر کام کرتے ہیں۔


We will begin to answer some of these questions.

ہم ان میں سے کچھ سوالات کا جواب دینا شروع کریں گے۔


We will see more examples of the power of simple operations.

ہم سادہ آپریشنز کی طاقت کی مزید مثالیں دیکھیں گے۔


Boolean circuits provide a precise notion of “composing basic operations together”.

بولین سرکٹس “بنیادی آپریشنز کو ایک ساتھ جوڑنے” کا ایک درست تصور فراہم کرتے ہیں۔


A Boolean circuit is composed of gates and inputs that are connected by wires.

ایک بولین سرکٹ گیٹس اور ان پُٹس پر مشتمل ہوتا ہے جو تاروں سے جڑے ہوتے ہیں۔


The wires carry a signal that represents either the value 0 or 1.

تاریں ایک سگنل لے جاتی ہیں جو یا تو 0 یا 1 کی قدر کی نمائندگی کرتا ہے۔


Each gate corresponds to either the OR, AND, or NOT operation.

ہر گیٹ یا تو OR، AND، یا NOT آپریشن سے مطابقت رکھتا ہے۔


An OR gate has two incoming wires, and one or more outgoing wires.

ایک OR گیٹ میں دو آنے والی تاریں ہوتی ہیں، اور ایک یا زیادہ جانے والی تاریں ہوتی ہیں۔


We evaluate an n-input Boolean circuit on an input x.

ہم ایک ان پُٹ x پر ایک n-ان پُٹ بولین سرکٹ کا جائزہ لیتے ہیں۔


Early vacuum tubes were roughly the size of lightbulbs.

ابتدائی ویکیوم ٹیوبیں تقریباً بلب کے سائز کی تھیں۔


In the 1950’s they were supplanted by transistors.

1950 کی دہائی میں ان کی جگہ ٹرانزسٹرز نے لے لی۔


In 1965, Gordon Moore predicted that the number of transistors per integrated circuit would double every year.

1965 میں، گورڈن مور نے پیش گوئی کی کہ ہر سال ایک مربوط سرکٹ میں ٹرانزسٹرز کی تعداد دوگنی ہو جائے گی۔


اس سے ہوم کمپیوٹرز بنیں گے۔


We can use transistors to implement various Boolean functions such as AND, OR, and NOT.

ہم ٹرانزسٹرز کو مختلف بولین افعال جیسے AND، OR، اور NOT کو لاگو کرنے کے لیے استعمال کر سکتے ہیں۔


This means that if there exists a AND/OR/NOT circuit to compute a function.

اس کا مطلب ہے کہ اگر کسی فنکشن کا حساب لگانے کے لیے AND/OR/NOT سرکٹ موجود ہے۔


Computation can be based on biological or chemical systems.

کمپیوٹیشن حیاتیاتی یا کیمیائی نظاموں پر مبنی ہو سکتی ہے۔


Researchers have managed to create transistors, and from them logic gates, based on DNA molecules.

محققین ڈی این اے مالیکیولز پر مبنی ٹرانزسٹرز اور ان سے منطقی دروازے بنانے میں کامیاب ہو گئے ہیں۔


One motivation for DNA computing is to achieve increased parallelism or storage density.

ڈی این اے کمپیوٹنگ کی ایک وجہ بڑھتی ہوئی متوازی کاری یا اسٹوریج کی کثافت کو حاصل کرنا ہے۔


Brains have served humanity throughout history, doing computations.

دماغوں نے تاریخ بھر میں انسانیت کی خدمت کی ہے، حساب کتاب کرتے ہوئے۔


A neural network can be thought of as a Boolean circuit.

نیورل نیٹ ورک کو بولین سرکٹ کے طور پر سوچا جا سکتا ہے۔


Generally, a neural network is often described as operating on signals that are real numbers.

عام طور پر، ایک نیورل نیٹ ورک کو اکثر ان سگنلز پر کام کرنے کے طور پر بیان کیا جاتا ہے جو حقیقی اعداد ہیں۔


We can implement computation using many other physical media.

ہم بہت سے دوسرے جسمانی ذرائع کا استعمال کرتے ہوئے کمپیوٹیشن کو لاگو کر سکتے ہیں۔


As one example, Fig. 3.24 shows a simple implementation of a NAND gate using marbles going through pipes.

مثال کے طور پر، شکل 3.24 ماربلز کا استعمال کرتے ہوئے ایک NAND گیٹ کا ایک سادہ نفاذ دکھاتا ہے جو پائپوں سے گزر رہا ہے۔


The NAND function is another simple function that is extremely useful for defining computation.

NAND فنکشن ایک اور سادہ فنکشن ہے جو کمپیوٹیشن کی تعریف کے لیے انتہائی مفید ہے۔


Interestingly, the opposite direction holds as well.

دلچسپ بات یہ ہے کہ اس کے برعکس سمت بھی موجود ہے۔


We can compute AND, OR, and NOT by composing only the NAND function.

ہم صرف NAND فنکشن کو ملا کر AND، OR، اور NOT کا حساب لگا سکتے ہیں۔


We can use NAND to compute many other functions.

ہم NAND کو بہت سے دوسرے افعال کا حساب لگانے کے لیے استعمال کر سکتے ہیں۔


We define NAND Circuits as circuits in which all the gates are NAND operations.

ہم NAND سرکٹس کو ایسے سرکٹس کے طور پر بیان کرتے ہیں جن میں تمام گیٹس NAND آپریشنز ہیں۔


For every Boolean circuit C of s gates, there exists a NAND circuit C' of at most 3s gates that computes the same function as C.

s گیٹس کے ہر بولین سرکٹ C کے لیے، زیادہ سے زیادہ 3s گیٹس کا ایک NAND سرکٹ C' موجود ہے جو C جیسا ہی فنکشن کمپیوٹ کرتا ہے۔


That for ℱ = {AND,OR,NOT}, the resulting circuits/programs are equivalent in power to the NAND-CIRC programming language.

اس کے لیے کہ ℱ = {AND,OR,NOT} کے لیے، نتیجے میں آنے والے سرکٹس/پروگرام NAND-CIRC پروگرامنگ زبان کے برابر طاقت کے حامل ہیں۔


This turns out to be a special case of a general phenomenon — the universality of NAND and other gate sets — that we will explore more in-depth later in this book.

یہ ایک عام رجحان کا ایک خاص معاملہ بن جاتا ہے — NAND اور دیگر گیٹ سیٹس کی عالمگیریت — جسے ہم اس کتاب میں بعد میں مزید گہرائی سے تلاش کریں گے۔


Indeed, we can demonstrate that {IF,ZERO,ONE} is universal using the following formula for NAND: NAND(푎,푏) =IF(푎,IF(푏,ZERO,ONE),ONE).

درحقیقت، ہم یہ ظاہر کر سکتے ہیں کہ {IF,ZERO,ONE} NAND کے لیے درج ذیل فارمولے کا استعمال کرتے ہوئے عالمگیر ہے: NAND(푎,푏) =IF(푎,IF(푏,ZERO,ONE),ONE).


There are also some sets ℱ that are more restricted in power.

کچھ ایسے سیٹ بھی ہیں ℱ جو طاقت میں زیادہ محدود ہیں۔


For example it can be shown that if we use only AND or OR gates (without NOT) then we do not get an equivalent model of computation.

مثال کے طور پر یہ دکھایا جا سکتا ہے کہ اگر ہم صرف AND یا OR گیٹس (NOT کے بغیر) استعمال کرتے ہیں تو ہمیں کمپیوٹیشن کا مساوی ماڈل نہیں ملتا ہے۔


The exercises cover several examples of universal and non-universal gate sets.

مشقیں عالمگیر اور غیر عالمگیر گیٹ سیٹس کی کئی مثالوں کا احاطہ کرتی ہیں۔


It is crucial to distinguish between the specification of a computational task, namely what is the function that is to be computed and the implementation of it, namely the algorithm, program, or circuit that contains the instructions defining how to map an input to an output.

کمپیوٹیشنل ٹاسک کی تفصیل، یعنی وہ فنکشن جو کمپیوٹ کیا جانا ہے اور اس پر عمل درآمد، یعنی الگورتھم، پروگرام، یا سرکٹ جس میں ہدایات شامل ہیں جو ان پٹ کو آؤٹ پٹ پر نقشہ بنانے کی وضاحت کرتی ہیں، کے درمیان فرق کرنا بہت ضروری ہے۔


The same function could be computed in many different ways.

ایک ہی فنکشن کو بہت سے مختلف طریقوں سے کمپیوٹ کیا جا سکتا ہے۔


A function corresponds to the specification of a computational task, that is what output should be produced for every particular input.

ایک فنکشن کمپیوٹیشنل ٹاسک کی تفصیل سے مطابقت رکھتا ہے، یعنی ہر خاص ان پٹ کے لیے کیا آؤٹ پٹ تیار کیا جانا چاہیے۔


A program (or circuit, or any other way to specify algorithms) corresponds to the implementation of how to compute the desired output from the input.

ایک پروگرام (یا سرکٹ، یا الگورتھم کی وضاحت کرنے کا کوئی دوسرا طریقہ) اس بات کے نفاذ سے مطابقت رکھتا ہے کہ ان پٹ سے مطلوبہ آؤٹ پٹ کا حساب کیسے لگایا جائے۔


Even within the same computational model there can be many different ways to compute the same function.

یہاں تک کہ ایک ہی کمپیوٹیشنل ماڈل کے اندر بھی ایک ہی فنکشن کا حساب لگانے کے بہت سے مختلف طریقے ہو سکتے ہیں۔


Confusing specification and implementation (or equivalently functions and programs) is a common mistake.

تفصیل اور عمل درآمد (یا مساوی طور پر افعال اور پروگراموں) کو الجھانا ایک عام غلطی ہے۔


An algorithm is a recipe for performing a computation as a sequence of “elementary” or “simple” operations.

ایک الگورتھم “ابتدائی” یا “سادہ” آپریشنز کے سلسلے کے طور پر کمپیوٹیشن کرنے کا ایک نسخہ ہے۔


One candidate definition for “elementary” operations is the set AND, OR and NOT.

“ابتدائی” آپریشنز کی ایک امیدوار تعریف سیٹ AND, OR اور NOT ہے۔


Another candidate definition for an “elementary” operation is the NAND operation.

ایک “ابتدائی” آپریشن کی ایک اور امیدوار تعریف NAND آپریشن ہے۔


We can use NAND to compute many other functions, including majority, increment, and others.

ہم NAND کا استعمال کرتے ہوئے بہت سے دوسرے افعال کا حساب لگا سکتے ہیں، بشمول اکثریت، اضافہ، اور دیگر۔


There are other equivalent choices, including the sets {AND,OR,NOT} and {IF,ZERO,ONE}.

دیگر مساوی انتخاب بھی ہیں، بشمول سیٹ {AND,OR,NOT} اور {IF,ZERO,ONE}۔


We can formally define the notion of a function 퐹 ∶ {0,1} 푛 → {0,1} 푚 being computable using the NAND-CIRC Programming language.

ہم رسمی طور پر ایک فنکشن 퐹 ∶ {0,1} 푛 → {0,1} 푚 کے تصور کی وضاحت کر سکتے ہیں جو NAND-CIRC پروگرامنگ زبان کا استعمال کرتے ہوئے کمپیوٹ ایبل ہے۔


For every set of basic operations, the notions of being computable by a circuit and being computable by a straight-line program are equivalent.

بنیادی آپریشنز کے ہر سیٹ کے لیے، ایک سرکٹ کے ذریعے کمپیوٹ ایبل ہونے اور سیدھی لائن پروگرام کے ذریعے کمپیوٹ ایبل ہونے کے تصورات مساوی ہیں۔


Give a Boolean circuit (with AND/OR/NOT gates) that computes the function CMP 8 ∶ {0,1} 8 → {0,1} such that CMP 8 (푎 0 ,푎 1 ,푎 2 ,푎 3 ,푏 0 ,푏 1 ,푏 2 ,푏 3 ) = 1 if and only if the number represented by 푎 0 푎 1 푎 2 푎 3 is larger than the number represented by 푏 0 푏 1 푏 2 푏 3 .

ایک بولین سرکٹ (AND/OR/NOT گیٹس کے ساتھ) دیں جو فنکشن CMP 8 ∶ {0,1} 8 → {0,1} کا حساب لگاتا ہے اس طرح کہ CMP 8 (푎 0 ,푎 1 ,푎 2 ,푎 3 ,푏 0 ,푏 1 ,푏 2 ,푏 3 ) = 1 اگر اور صرف اس صورت میں جب 푎 0 푎 1 푎 2 푎 3 کے ذریعہ ظاہر کردہ نمبر 푏 0 푏 1 푏 2 푏 3 کے ذریعہ ظاہر کردہ نمبر سے بڑا ہو۔


آج موسم خوشگوار ہے۔


کیا آپ براہ کرم مجھے نمک دے سکتے ہیں؟


I am going to the market to buy some groceries.

میں بازار جا رہا ہوں کچھ گروسری خریدنے کے لیے۔


The company announced its quarterly earnings report.

کمپنی نے اپنی سہ ماہی کمائی کی رپورٹ کا اعلان کیا۔


The algorithm efficiently sorts the data.

الگورتھم ڈیٹا کو مؤثر طریقے سے ترتیب دیتا ہے۔


She is a talented musician and plays the piano beautifully.

وہ ایک باصلاحیت موسیقار ہے اور خوبصورتی سے پیانو بجاتی ہے۔


The government is implementing new policies to boost the economy.

حکومت معیشت کو فروغ دینے کے لیے نئی پالیسیاں نافذ کر رہی ہے۔


Despite the challenges, they persevered and achieved their goals.

چیلنجوں کے باوجود، انہوں نے ہمت نہیں ہاری اور اپنے مقاصد حاصل کیے۔


The research paper explores the implications of quantum entanglement.

تحقیقی مقالہ کوانٹم الجھاؤ کے مضمرات کو تلاش کرتا ہے۔


The intricate design of the building reflects the architect's vision.

عمارت کا پیچیدہ ڈیزائن معمار کے وژن کی عکاسی کرتا ہے۔


کیا آپ براہ کرم اسے دہرا سکتے ہیں؟


I need to find a good restaurant nearby.

مجھے قریب میں ایک اچھا ریستوراں تلاش کرنے کی ضرورت ہے۔


کانفرنس اگلے ہفتے منعقد کی جائے گی۔


The software update includes several bug fixes.

سافٹ ویئر اپ ڈیٹ میں کئی بگ فکس شامل ہیں۔


She is very knowledgeable about history.

وہ تاریخ کے بارے میں بہت معلومات رکھتی ہے۔


The economic forecast predicts a period of growth.

اقتصادی پیش گوئی میں ترقی کی مدت کی پیش گوئی کی گئی ہے۔


Despite the setbacks, the project is still on track.

دشواریوں کے باوجود، منصوبہ اب بھی ٹریک پر ہے۔


The study investigates the impact of social media on mental health.

مطالعہ ذہنی صحت پر سوشل میڈیا کے اثرات کی تحقیقات کرتا ہے۔


The artist's work is characterized by its vibrant colors and bold strokes.

فنکار کے کام کی خصوصیت اس کے متحرک رنگوں اور جرات مندانہ اسٹروک سے ہوتی ہے۔


کیا آپ اس مسئلے میں میری مدد کر سکتے ہیں؟


یہ کوڈ ایک NAND-CIRC پروگرام کا جائزہ لیتا ہے۔


The function NANDEVAL is used for evaluation.

تشخیص کے لیے فنکشن NANDEVAL استعمال کیا جاتا ہے۔


ان پٹ ویلیوز کو Vartable میں لوڈ کیا جاتا ہے۔


The program runs through a series of operations.

پروگرام آپریشنز کی ایک سیریز سے گزرتا ہے۔


The output is returned after the program execution.

پروگرام کے عملدرآمد کے بعد آؤٹ پٹ واپس کر دیا جاتا ہے۔


Consider the XOR example with two inputs and one output.

دو ان پٹ اور ایک آؤٹ پٹ کے ساتھ XOR مثال پر غور کریں۔


Understanding GET and LOOKUP is crucial.

GET اور LOOKUP کو سمجھنا ضروری ہے۔


ہم O(2^ℓ) وقت میں LOOKUP کا حساب لگا سکتے ہیں۔


UPDATE فنکشن arrays میں ترمیم کرتا ہے۔


UPDATE_ell اپ ڈیٹ شدہ array کا حساب لگاتا ہے۔


UPDATE میں لوپ 2^ell بار چلتا ہے۔


EQUALS_j حساب لگاتا ہے کہ آیا i j کے برابر ہے۔


The total number of lines to compute UPDATE is O(2^ℓ ⋅ ℓ).

UPDATE کا حساب لگانے کے لیے لائنوں کی کل تعداد O(2^ℓ ⋅ ℓ) ہے۔


The total number of lines for computing EVAL is O(s^2 log s).

EVAL کا حساب لگانے کے لیے لائنوں کی کل تعداد O(s^2 log s) ہے۔


NAND does not offer efficient random access.

NAND موثر بے ترتیب رسائی پیش نہیں کرتا ہے۔


The description of NAND-CIRC programs as circuits is key.

سرکٹس کے طور پر NAND-CIRC پروگراموں کی تفصیل کلیدی ہے۔


A universal NAND-CIRC program will correspond to a universal graph.

ایک یونیورسل NAND-CIRC پروگرام ایک یونیورسل گراف سے مطابقت رکھے گا۔


It is possible to translate every Python program into an equivalent NAND-CIRC program.

ہر Python پروگرام کو مساوی NAND-CIRC پروگرام میں ترجمہ کرنا ممکن ہے۔


The function IF is also known as a multiplexing function.

IF فنکشن کو ملٹی پلیکسنگ فنکشن کے نام سے بھی جانا جاتا ہے۔


Once we have a procedure for computing the IF function, we can implement conditionals in NAND.

ایک بار جب ہمارے پاس IF فنکشن کا حساب لگانے کا طریقہ کار موجود ہے، تو ہم NAND میں مشروطات کو لاگو کر سکتے ہیں۔


The idea is that we replace code of the form if(condition): assign blah to variable foo with code of the form foo =IF(condition, blah, foo).

خیال یہ ہے کہ ہم if(condition) کی شکل میں کوڈ کو تبدیل کرتے ہیں: متغیر foo کو blah تفویض کریں اس شکل کے کوڈ کے ساتھ foo =IF(condition, blah, foo).


Using such transformations, we can prove the following theorem.

اس طرح کی تبدیلیوں کا استعمال کرتے ہوئے، ہم مندرجہ ذیل تھیورم کو ثابت کر سکتے ہیں۔


Let NAND-CIRC-IF be the programming language NAND-CIRC augmented with if/then/else statements.

NAND-CIRC-IF کو پروگرامنگ لینگویج NAND-CIRC ہونے دیں جو if/then/else بیانات کے ساتھ بڑھایا گیا ہے۔


Then for every NAND-CIRC-IF program P, there exists a standard (i.e., “sugar-free”) NAND-CIRC program P′ that computes the same function as P.

پھر ہر NAND-CIRC-IF پروگرام P کے لیے، ایک معیاری (یعنی، “چینی سے پاک”) NAND-CIRC پروگرام P′ موجود ہے جو P جیسا ہی فنکشن کمپیوٹ کرتا ہے۔


Using “syntactic sugar”, we can write the integer addition function as follows:

“syntactic sugar” کا استعمال کرتے ہوئے، ہم مندرجہ ذیل کے طور پر انٹیجر اضافے کا فنکشن لکھ سکتے ہیں:


While we use Python syntax for convenience, in this example n is some fixed integer.

جبکہ ہم سہولت کے لیے Python نحو کا استعمال کرتے ہیں، اس مثال میں n کچھ مقررہ عدد ہے۔


In particular for every n we can remove the loop construct for i in range(n) by simply repeating the code n times.

خاص طور پر ہر n کے لیے ہم لوپ کنسٹرکٹ کو i in range(n) کو صرف کوڈ کو n بار دہرا کر ہٹا سکتے ہیں۔


By expanding out all the features, for every value of n we can translate the above program into a standard (“sugar-free”) NAND-CIRC program.

تمام خصوصیات کو بڑھا کر، n کی ہر قدر کے لیے ہم مندرجہ بالا پروگرام کو ایک معیاری (“چینی سے پاک”) NAND-CIRC پروگرام میں ترجمہ کر سکتے ہیں۔


For every n ∈ ℕ, let ADDn ∶ {0,1}2n → {0,1}n+1 be the function that, given x,x′ ∈ {0,1}n computes the representation of the sum of the numbers that x and x′ represent.

ہر n ∈ ℕ کے لیے، ADDn ∶ {0,1}2n → {0,1}n+1 فنکشن ہونے دیں جو، x,x′ ∈ {0,1}n دیے جانے پر ان نمبروں کے مجموعے کی نمائندگی کا حساب لگاتا ہے جو x اور x′ کی نمائندگی کرتے ہیں۔


Once we have addition, we can use the grade-school algorithm to obtain multiplication as well.

ایک بار جب ہمارے پاس اضافہ ہو جاتا ہے، تو ہم ضرب حاصل کرنے کے لیے گریڈ اسکول الگورتھم کا استعمال کر سکتے ہیں۔


For every n, let MULTn ∶ {0,1}2n → {0,1}2n be the function that, given x,x′ ∈ {0,1}n computes the representation of the product of the numbers that x and x′ represent.

ہر n کے لیے، MULTn ∶ {0,1}2n → {0,1}2n فنکشن ہونے دیں جو، x,x′ ∈ {0,1}n دیے جانے پر ان نمبروں کی مصنوعات کی نمائندگی کا حساب لگاتا ہے جو x اور x′ کی نمائندگی کرتے ہیں۔


The LOOKUP function will play an important role in this chapter and later.

LOOKUP فنکشن اس باب اور بعد میں ایک اہم کردار ادا کرے گا۔


For every k, the lookup function of order k, LOOKUPk ∶ {0,1}2k+k → {0,1} is defined as follows:

ہر k کے لیے، آرڈر k کا لُک اپ فنکشن، LOOKUPk ∶ {0,1}2k+k → {0,1} کو اس طرح سے بیان کیا گیا ہے:


For every x ∈ {0,1}2k and i ∈ {0,1}k, LOOKUPk(x,i) = xi where xi denotes the i-th entry of x, using the binary representation to identify i with a number in {0,...,2k−1}.

ہر x ∈ {0,1}2k اور i ∈ {0,1}k کے لیے، LOOKUPk(x,i) = xi جہاں xi x کی i-ویں اندراج کی نشاندہی کرتا ہے، بائنری نمائندگی کا استعمال کرتے ہوئے i کو {0,...,2k−1} میں ایک نمبر کے ساتھ شناخت کرنے کے لیے۔


It turns out that for every k, we can compute LOOKUPk using a NAND-CIRC program.

یہ پتہ چلتا ہے کہ ہر k کے لیے، ہم NAND-CIRC پروگرام کا استعمال کرتے ہوئے LOOKUPk کا حساب لگا سکتے ہیں۔


For the case k = 1, LOOKUP1 maps (x0,x1,i) ∈ {0,1}3 to xi.

کیس k = 1 کے لیے، LOOKUP1 نقشے (x0,x1,i) ∈ {0,1}3 سے xi۔


As a warm-up for the case of general k, let us consider the case of k = 2.

عام k کے معاملے کے لیے وارم اپ کے طور پر، آئیے k = 2 کے معاملے پر غور کریں۔


Given input x = (x0,x1,x2,x3) for LOOKUP2 and an index i = (i0,i1), if the most significant bit i0 of the index is 0 then LOOKUP2(x,i) will equal x0 if i1 = 0 and equal x1 if i1 = 1.

LOOKUP2 کے لیے ان پٹ x = (x0,x1,x2,x3) اور انڈیکس i = (i0,i1) دیا گیا ہے، اگر انڈیکس کا سب سے اہم بٹ i0 0 ہے تو LOOKUP2(x,i) x0 کے برابر ہو گا اگر i1 = 0 اور x1 کے برابر ہو گا اگر i1 = 1۔


The function f ′ (x) means that the programs that compute f and f ′ respectively cannot be identical.

فنکشن f ′ (x) کا مطلب ہے کہ وہ پروگرام جو بالترتیب f اور f ′ کا حساب لگاتے ہیں، یکساں نہیں ہو سکتے۔


تھیورم 5.2 کا ایک اہم نتیجہ ہے۔


The number of functions that can be computed using small circuits/programs is much smaller than the total number of functions.

ان فنکشنز کی تعداد جن کا حساب چھوٹے سرکٹس/پروگرامز کا استعمال کرتے ہوئے لگایا جا سکتا ہے، فنکشنز کی کل تعداد سے بہت کم ہے۔


A function mapping {0,1} 2 to {0,1} can be identified with the list of its four values.

ایک فنکشن جو {0,1} 2 کو {0,1} پر نقشہ کرتا ہے، اس کی چار اقدار کی فہرست کے ساتھ شناخت کی جا سکتی ہے۔


Every function F ∶ {0,1} n → {0,1} can be identified with the list of its 2 n values.

ہر فنکشن F ∶ {0,1} n → {0,1} کو اس کی 2 n اقدار کی فہرست کے ساتھ شناخت کیا جا سکتا ہے۔


The number of functions mapping {0,1} n to {0,1} is equal to the number of possible 2 n length lists of values which is exactly 2 2n.

فنکشنز کی تعداد جو {0,1} n کو {0,1} پر نقشہ کرتے ہیں، اقدار کی ممکنہ 2 n لمبائی کی فہرستوں کی تعداد کے برابر ہے جو بالکل 2 2n ہے۔


یہ n میں دوگنا ایکسپونینشل ہے۔


The number of functions from {0,1} n to {0,1} is truly astronomical.

{0,1} n سے {0,1} تک کے فنکشنز کی تعداد واقعی فلکیاتی ہے۔


There is a constant δ > 0, such that for every sufficiently large n, there is a function f ∶ {0,1} n → {0,1} such that f ∉ SIZE n ( δ2 n /n ).

ایک مستقل δ > 0 ہے، اس طرح کہ ہر کافی بڑے n کے لیے، ایک فنکشن f ∶ {0,1} n → {0,1} موجود ہے اس طرح کہ f ∉ SIZE n ( δ2 n /n )۔


The shortest NAND-CIRC program to compute f requires more than δ ⋅ 2 n /n lines.

f کا حساب لگانے کے لیے سب سے مختصر NAND-CIRC پروگرام کو δ ⋅ 2 n /n لائنوں سے زیادہ کی ضرورت ہے۔


ثبوت آسان ہے۔


We have seen before that every function mapping {0,1} n to {0,1} can be computed by an O(2 n /n) line program.

ہم نے پہلے دیکھا ہے کہ {0,1} n کو {0,1} پر نقشہ کرنے والے ہر فنکشن کا حساب O(2 n /n) لائن پروگرام کے ذریعے لگایا جا سکتا ہے۔


Some functions f ∶ {0,1} n → {0,1} cannot be computed by a Boolean circuit using fewer than exponential (in n) number of gates.

کچھ فنکشنز f ∶ {0,1} n → {0,1} کو بولین سرکٹ کے ذریعے ایکسپونینشل (n میں) سے کم گیٹس کا استعمال کرتے ہوئے حساب نہیں کیا جا سکتا۔


Functions that can be computed in a small number of lines are the exception, rather than the rule.

وہ فنکشن جن کا حساب کم تعداد میں لائنوں میں لگایا جا سکتا ہے، اصول کے بجائے استثنا ہیں۔


The ASCII representation is not the shortest representation for NAND-CIRC programs.

ASCII کی نمائندگی NAND-CIRC پروگراموں کے لیے سب سے مختصر نمائندگی نہیں ہے۔


A NAND-CIRC program of s lines, n inputs, and m outputs can be represented by a labeled directed graph of s + n vertices.

s لائنوں، n ان پٹ، اور m آؤٹ پٹ کا ایک NAND-CIRC پروگرام s + n ورٹیکس کے لیبل والے ڈائریکٹڈ گراف کے ذریعے ظاہر کیا جا سکتا ہے۔


We prove Theorem 5.5 by coming up with a list f0, ..., f2n of functions.

ہم تھیورم 5.5 کو فنکشنز کی فہرست f0, ..., f2n کے ساتھ آ کر ثابت کرتے ہیں۔


By Theorem 4.15 the class SIZE n (10 ⋅ 2 n /n) contains all functions from {0,1} n to {0,1}.

تھیورم 4.15 کے ذریعے کلاس SIZE n (10 ⋅ 2 n /n) میں {0,1} n سے {0,1} تک کے تمام فنکشنز شامل ہیں۔


We can use Theorem 5.3 to show a more general result.

ہم زیادہ عام نتیجہ دکھانے کے لیے تھیورم 5.3 استعمال کر سکتے ہیں۔


For every sufficiently large n and 10n < s < 0.1 ⋅ 2 n /n, SIZE n (s) ⊊ SIZE n (s+10n).

ہر کافی بڑے n اور 10n < s < 0.1 ⋅ 2 n /n کے لیے، SIZE n (s) ⊊ SIZE n (s+10n)۔


The book discusses quantum computing in detail in Chapter 23.

کتاب باب 23 میں کوانٹم کمپیوٹنگ پر تفصیل سے بحث کرتا ہے۔


Governments rely on cryptography to protect state secrets.

حکومتیں ریاستی رازوں کی حفاظت کے لیے خفیہ نگاری پر انحصار کرتی ہیں۔


We will explore Cryptography in Chapter 21.

ہم باب 21 میں خفیہ نگاری کو تلاش کریں گے۔


Programs can be thought of as a list of symbols that can be considered as data.

پروگراموں کو علامتوں کی ایک فہرست کے طور پر سوچا جا سکتا ہے جسے ڈیٹا سمجھا جا سکتا ہے۔


The Physical Extended Church-Turing Thesis (PECTT) is a key concept.

فزیکل ایکسٹینڈڈ چرچ-ٹورنگ تھیسس (PECTT) ایک اہم تصور ہے۔


Quantum computing poses a challenge to the PECTT.

کوانٹم کمپیوٹنگ PECTT کے لیے ایک چیلنج ہے۔


We can model a computational process using Boolean circuits.

ہم بولین سرکٹس کا استعمال کرتے ہوئے ایک کمپیوٹیشنل عمل کو ماڈل بنا سکتے ہیں۔


Every function can be computed by many programs.

ہر فنکشن کو بہت سے پروگراموں کے ذریعے کمپیوٹ کیا جا سکتا ہے۔


The main take-aways are discussed in Chapter 3, Chapter 4, and Chapter 5.

اہم نتائج پر باب 3، باب 4، اور باب 5 میں بحث کی گئی ہے۔


We can formally define the notion of a function.

ہم رسمی طور پر ایک فنکشن کے تصور کی وضاحت کر سکتے ہیں۔


This set is equal to the set of functions computable by a NAND-CIRC program.

یہ سیٹ ان فنکشنز کے سیٹ کے برابر ہے جو NAND-CIRC پروگرام کے ذریعے کمپیوٹ کیے جا سکتے ہیں۔


Some functions require at least Ω(푚 ⋅ 2 푛 / 푛) gates.

کچھ فنکشنز کو کم از کم Ω(푚 ⋅ 2 푛 / 푛) گیٹس کی ضرورت ہوتی ہے۔


We can describe a circuit/program as a string.

ہم ایک سرکٹ/پروگرام کو ایک سٹرنگ کے طور پر بیان کر سکتے ہیں۔


The Physical Extended Church-Turing Thesis postulates that the reverse direction is true as well.

فزیکل ایکسٹینڈڈ چرچ-ٹورنگ تھیسس کا مفروضہ ہے کہ الٹ سمت بھی درست ہے۔


The main challenge to the PECTT is quantum computing.

PECTT کے لیے سب سے بڑا چیلنج کوانٹم کمپیوٹنگ ہے۔


In the next part we will discuss how to model computational tasks on unbounded inputs.

اگلے حصے میں ہم اس بات پر بحث کریں گے کہ لامحدود ان پٹ پر کمپیوٹیشنل ٹاسکس کو کیسے ماڈل بنایا جائے۔


An algorithm is a finite answer to an infinite number of questions.

ایک الگورتھم لامحدود سوالات کا ایک محدود جواب ہے۔


We extend our definition of computational tasks to consider functions with the unbounded domain of {0,1}*.

ہم کمپیوٹیشنل ٹاسکس کی اپنی تعریف کو بڑھاتے ہیں تاکہ {0,1}* کے لامحدود ڈومین والے فنکشنز پر غور کیا جا سکے۔


Finite automata are not as powerful as Python.

فائنٹ آٹومیٹا اتنا طاقتور نہیں ہے جتنا کہ پائتھون۔


We will see Turing machines and other computational models for computing on unbounded inputs.

ہم لامحدود ان پٹ پر کمپیوٹنگ کے لیے ٹورنگ مشینوں اور دیگر کمپیوٹیشنل ماڈلز کو دیکھیں گے۔


The algorithm reads a bit from the input.

الگورتھم ان پٹ سے ایک بٹ پڑھتا ہے۔


The machine starts in some initial state.

مشین کسی ابتدائی حالت میں شروع ہوتی ہے۔


This set is known as the set of accepting states.

اس سیٹ کو قبول کرنے والی ریاستوں کا سیٹ کہا جاتا ہے۔


Every single-pass constant-memory algorithm corresponds to such a machine.

ہر سنگل پاس مستقل میموری الگورتھم اس طرح کی مشین سے مطابقت رکھتا ہے۔


We can specify a DFA of C states by a list of C ⋅ 2 rules.

ہم C ⋅ 2 قواعد کی فہرست کے ذریعے C ریاستوں کے DFA کی وضاحت کر سکتے ہیں۔


The difficulty in computing TWINP using Python arises from the fact that we do not know for each particular n what is the circuit Cn in this collection.

پائیتھون کا استعمال کرتے ہوئے TWINP کا حساب لگانے میں دشواری اس حقیقت سے پیدا ہوتی ہے کہ ہم ہر خاص n کے لیے نہیں جانتے کہ اس مجموعہ میں سرکٹ Cn کیا ہے۔


In computer science, such a program is called a single-pass constant-memory algorithm.

کمپیوٹر سائنس میں، اس طرح کے پروگرام کو سنگل پاس مستقل میموری الگورتھم کہا جاتا ہے۔


Automata can serve as a good stepping-stone for Turing machines.

آٹومیٹا ٹورنگ مشینوں کے لیے ایک اچھا قدم ثابت ہو سکتا ہے۔


Regular expressions are widely used in practice.

باقاعدہ اظہار عملی طور پر بڑے پیمانے پر استعمال ہوتے ہیں۔


At a high level, an algorithm is a recipe for computing an output from an input.

اعلیٰ سطح پر، ایک الگورتھم ان پٹ سے آؤٹ پٹ کا حساب لگانے کا ایک نسخہ ہے۔


پروگرام نتیجہ آؤٹ پٹ کرتا ہے۔


The machine reads its input one bit at a time.

مشین ایک وقت میں ایک بٹ ان پٹ پڑھتی ہے۔


The output of the machine is based on the final state.

مشین کا آؤٹ پٹ حتمی حالت پر مبنی ہے۔


We can think of such an algorithm as a “machine” that can be in one of C states.

ہم اس طرح کے الگورتھم کو ایک “مشین” کے طور پر سوچ سکتے ہیں جو C ریاستوں میں سے ایک میں ہو سکتا ہے۔


The transition function of an automaton is a finite function.

آٹومیٹن کا منتقلی فنکشن ایک محدود فنکشن ہے۔


Regular expressions are a powerful mechanism to specify patterns.

باقاعدہ اظہار نمونوں کی وضاحت کرنے کا ایک طاقتور طریقہ کار ہیں۔


The user wants to find out the subset of all the x that are matched by some pattern.

صارف ان تمام x کا ذیلی سیٹ معلوم کرنا چاہتا ہے جو کسی نمونے سے مماثل ہیں۔


If you ever used an advanced text editor, then you have probably come across regular expressions.

اگر آپ نے کبھی بھی ایک جدید ٹیکسٹ ایڈیٹر استعمال کیا ہے، تو آپ شاید باقاعدہ اظہار سے واقف ہو گئے ہوں گے۔


آج موسم خوشگوار ہے۔


کیا آپ براہ کرم مجھے نمک دے سکتے ہیں؟


I am going to the market to buy some groceries.

میں بازار جا رہا ہوں کچھ گروسری خریدنے کے لیے۔


The company announced its quarterly earnings.

کمپنی نے اپنی سہ ماہی کی آمدنی کا اعلان کیا۔


The research team is working on a new vaccine.

تحقیقی ٹیم ایک نئی ویکسین پر کام کر رہی ہے۔


وہ ایک بہت باصلاحیت موسیقار ہے۔


The government implemented new policies.

حکومت نے نئی پالیسیاں نافذ کیں۔


The algorithm efficiently sorts the data.

الگورتھم ڈیٹا کو مؤثر طریقے سے ترتیب دیتا ہے۔


سافٹ ویئر کو بار بار اپ ڈیٹس کی ضرورت ہے۔


وہ کئی زبانوں میں روانی سے بات کرتی ہے۔


اقتصادی پیش گوئی ترقی کی پیشین گوئی کرتی ہے۔


منصوبہ بندی کے مطابق تاخیر کا شکار ہے۔


میٹنگ کل منعقد کی جائے گی۔


The data analysis revealed interesting insights.

ڈیٹا تجزیہ نے دلچسپ بصیرتیں ظاہر کیں۔


The company is expanding its operations globally.

کمپنی عالمی سطح پر اپنے آپریشنز کو وسعت دے رہی ہے۔


The complex equation requires advanced calculus.

پیچیدہ مساوات کے لیے جدید کیلکولس کی ضرورت ہے۔


فنکار کا کام بہت سراہا جاتا ہے۔


The system architecture is designed for scalability.

سسٹم کا فن تعمیر توسیع پذیری کے لیے ڈیزائن کیا گیا ہے۔


مذاکرات جاری ہیں۔


The impact of climate change is undeniable.

موسمیاتی تبدیلی کا اثر ناقابل تردید ہے۔


The algorithm checks if 'e' matches the empty string.

یہ الگورتھم چیک کرتا ہے کہ آیا 'ای' خالی سٹرنگ سے مماثل ہے۔


If e = (e' | e'') then return MatchEmpty(e') or MatchEmpty(e'').

اگر e = (e' | e'') تو MatchEmpty(e') یا MatchEmpty(e'') واپس کریں۔


الگورتھم 6.10 زیادہ موثر نہیں ہے۔


For example, given an expression involving concatenation or the “star” operation and a string of length n, it can make n recursive calls.

مثال کے طور پر، جوڑ یا “اسٹار” آپریشن پر مشتمل ایک اظہار اور لمبائی n کی ایک سٹرنگ دی گئی ہے، یہ n ریکرسیو کالز کر سکتا ہے۔


Fortunately, it turns out that there is a much more efficient algorithm that can match regular expressions in linear (i.e., O(n)) time.

خوش قسمتی سے، یہ پتہ چلتا ہے کہ ایک بہت زیادہ موثر الگورتھم موجود ہے جو لکیری (یعنی، O(n)) وقت میں باقاعدہ اظہار سے مماثل ہو سکتا ہے۔


We will see a formal definition of time complexity in Chapter 13.

ہم باب 13 میں وقت کی پیچیدگی کی ایک رسمی تعریف دیکھیں گے۔


Theorem 6.12 — Matching regular expressions in linear time.

تھیورم 6.12 — لکیری وقت میں باقاعدہ اظہار سے مماثل۔


آئیے e ایک باقاعدہ اظہار ہو۔


Then there is an O(n) time algorithm that computes Φe.

پھر ایک O(n) وقت کا الگورتھم موجود ہے جو Φe کا حساب لگاتا ہے۔


This makes sense since in practice we often want to compute Φe(x) for a small regular expression e and a large document x.

اس کا مطلب ہے کیونکہ عمل میں ہم اکثر ایک چھوٹے سے باقاعدہ اظہار e اور ایک بڑے دستاویز x کے لیے Φe(x) کا حساب لگانا چاہتے ہیں۔


We prove Theorem 6.12 by obtaining a more efficient recursive algorithm.

ہم ایک زیادہ موثر ریکرسیو الگورتھم حاصل کرکے تھیورم 6.12 ثابت کرتے ہیں۔


The idea is that for every regular expression e and symbol σ in its alphabet, it is possible to define a regular expression e[σ] such that e[σ] matches a string x if and only if e matches the string xσ.

خیال یہ ہے کہ ہر باقاعدہ اظہار e اور اس کے حروف تہجی میں علامت σ کے لیے، ایک باقاعدہ اظہار e[σ] کی وضاحت کرنا ممکن ہے تاکہ e[σ] ایک سٹرنگ x سے مماثل ہو اگر اور صرف اس صورت میں جب e سٹرنگ xσ سے مماثل ہو۔


For example, if e is the regular expression (01)*(01) (i.e., one or more occurrences of 01) then e[1] is equal to (01)*0 and e[0] will be ∅.

مثال کے طور پر، اگر e باقاعدہ اظہار (01)*(01) ہے (یعنی 01 کی ایک یا زیادہ تکرار) تو e[1] (01)*0 کے برابر ہے اور e[0] ∅ ہوگا۔


Algorithm 6.13 computes the restriction e[σ] given a regular expression e and an alphabet symbol σ.

الگورتھم 6.13 ایک باقاعدہ اظہار e اور ایک حروف تہجی کی علامت σ دی گئی ہے، پابندی e[σ] کا حساب لگاتا ہے۔


It always terminates, since the recursive calls it makes are always on expressions smaller than the input expression.

یہ ہمیشہ ختم ہوتا ہے، کیونکہ یہ جو ریکرسیو کالز کرتا ہے وہ ہمیشہ ان پٹ اظہار سے چھوٹے اظہار پر ہوتے ہیں۔


Using this notion of restriction, we can define the following recursive algorithm for regular expression matching:

پابندی کے اس تصور کا استعمال کرتے ہوئے، ہم باقاعدہ اظہار سے مماثل ہونے کے لیے درج ذیل ریکرسیو الگورتھم کی وضاحت کر سکتے ہیں:


Algorithm 6.14 — Regular expression matching in linear time.

الگورتھم 6.14 — لکیری وقت میں باقاعدہ اظہار سے مماثل۔


By the definition of a restriction, for every σ ∈ Σ and x' ∈ Σ*, the expression e matches x'σ if and only if e[σ] matches x'.

پابندی کی تعریف کے مطابق، ہر σ ∈ Σ اور x' ∈ Σ* کے لیے، اظہار e x'σ سے مماثل ہوتا ہے اگر اور صرف اس صورت میں جب e[σ] x' سے مماثل ہو۔


The only remaining task is to analyze its running time.

صرف باقی کام اس کے چلنے کے وقت کا تجزیہ کرنا ہے۔


For simplicity, let us restrict our attention to the case that the alphabet Σ is equal to {0,1}.

آسانی کے لیے، آئیے اپنی توجہ اس معاملے تک محدود رکھیں کہ حروف تہجی Σ {0,1} کے برابر ہے۔


The Turing machine starts in the START state.

ٹورنگ مشین START حالت میں شروع ہوتی ہے۔


It moves right, looking for the first symbol that is 0 or 1.

یہ دائیں طرف بڑھتی ہے، پہلے علامت کی تلاش میں جو 0 یا 1 ہے۔


If it finds ∅ before it hits such a symbol then it moves to the OUTPUT_1 state.

اگر اسے ایسی علامت سے پہلے ∅ مل جاتا ہے تو یہ OUTPUT_1 حالت میں منتقل ہو جاتی ہے۔


Once M finds such a symbol b ∈ {0,1}, M deletes b from the tape by writing the × symbol.

ایک بار جب M کو ایسی علامت b ∈ {0,1} مل جاتی ہے، M ٹیپ سے b کو × علامت لکھ کر حذف کر دیتا ہے۔


It enters either the RIGHT_b mode and starts moving rightwards until it hits the first ∅ or × symbol.

یہ یا تو RIGHT_b موڈ میں داخل ہوتا ہے اور دائیں طرف اس وقت تک حرکت کرنا شروع کر دیتا ہے جب تک کہ اسے پہلا ∅ یا × علامت نہ مل جائے۔


In the state LOOK_FOR_b, M checks whether the value on the tape is b.

LOOK_FOR_b حالت میں، M چیک کرتا ہے کہ آیا ٹیپ پر موجود قدر b ہے۔


If it is, then M deletes it by changing its value to ×, and moves to the state RETURN.

اگر ایسا ہے تو، M اس کی قدر کو × میں تبدیل کرکے اسے حذف کر دیتا ہے، اور RETURN حالت میں منتقل ہو جاتا ہے۔


The OUTPUT_b states mean that M will eventually output the value b.

OUTPUT_b حالتوں کا مطلب ہے کہ M بالآخر قدر b کو آؤٹ پٹ کرے گا۔


In both the OUTPUT_0 and OUTPUT_1 states, M goes left until it hits ▷.

OUTPUT_0 اور OUTPUT_1 دونوں حالتوں میں، M بائیں طرف جاتا ہے جب تک کہ وہ ▷ سے ٹکراتا ہے۔


Once it does so, it makes a right step, and changes to the 1_AND_BLANK or 0_AND_BLANK states respectively.

ایک بار جب یہ ایسا کرتا ہے، تو یہ ایک دائیں قدم اٹھاتا ہے، اور بالترتیب 1_AND_BLANK یا 0_AND_BLANK حالتوں میں تبدیل ہو جاتا ہے۔


The formal definition of Turing machines is as follows:

ٹورنگ مشینوں کی رسمی تعریف اس طرح ہے:


A (one tape) Turing machine M with k states and alphabet Σ ⊇ {0,1,▷,∅} is represented by a transition function δ M : [k] × Σ → [k] × Σ × {L,R,S,H}.

k ریاستوں اور حروف تہجی Σ ⊇ {0,1,▷,∅} کے ساتھ ایک (ایک ٹیپ) ٹورنگ مشین M کو ایک منتقلی فنکشن δ M : [k] × Σ → [k] × Σ × {L,R,S,H} کے ذریعے ظاہر کیا جاتا ہے۔


For every x ∈ {0,1} ∗ , the output of M on input x, denoted by M(x), is the result of the following process:

ہر x ∈ {0,1} ∗ کے لیے، M کا ان پٹ x پر آؤٹ پٹ، جسے M(x) سے ظاہر کیا جاتا ہے، مندرجہ ذیل عمل کا نتیجہ ہے:


We initialize T to be the sequence ▷, x0, x1, ..., xn−1, ∅, ∅, ..., where n = |x|.

ہم T کو ترتیب ▷, x0, x1, ..., xn−1, ∅, ∅, ..., کے طور پر شروع کرتے ہیں، جہاں n = |x|۔


ہم i = 0 اور s = 0 کو بھی شروع کرتے ہیں۔


پھر ہم مندرجہ ذیل عمل کو دہراتے ہیں:


If D = R then set i → i+1, if D = L then set i → max{i−1,0}.

اگر D = R تو i → i+1 سیٹ کریں، اگر D = L تو i → max{i−1,0} سیٹ کریں۔


If the process above halts, then M’s output, denoted by M(x), is the string y ∈ {0,1} ∗ obtained by concatenating all the symbols in {0,1} in positions T[0], ..., T[i] where i + 1 is the first location in the tape containing ∅.

اگر مندرجہ بالا عمل رک جاتا ہے، تو M کا آؤٹ پٹ، جسے M(x) سے ظاہر کیا جاتا ہے، وہ سٹرنگ y ∈ {0,1} ∗ ہے جو {0,1} میں موجود تمام علامتوں کو پوزیشنز T[0], ..., T[i] میں جوڑ کر حاصل کی جاتی ہے جہاں i + 1 ٹیپ میں پہلا مقام ہے جس میں ∅ ہے۔


If the Turing machine does not halt then we denote M(x) = ⊥.

اگر ٹورنگ مشین نہیں رکتی ہے تو ہم M(x) = ⊥ کو ظاہر کرتے ہیں۔


The machine simulates each iteration of the program by updating its state and tape accordingly.

مشین پروگرام کے ہر تکرار کی نقالی کرتی ہے، اس کی حالت اور ٹیپ کو اسی کے مطابق اپ ڈیٹ کرکے۔


We can encode the set {L, R, S, H} using {0, 1}2.

ہم سیٹ {L, R, S, H} کو {0, 1}2 کا استعمال کرتے ہوئے انکوڈ کر سکتے ہیں۔


The Turing machine will enter into a special loop to copy the results of the Y array into the output and then halt.

ٹورنگ مشین نتائج کو آؤٹ پٹ میں کاپی کرنے اور پھر رکنے کے لیے ایک خاص لوپ میں داخل ہو جائے گی۔


The key observation is that by Theorem 4.12 we can compute every finite function using a NAND-CIRC program.

اہم مشاہدہ یہ ہے کہ تھیورم 4.12 کے ذریعے ہم NAND-CIRC پروگرام کا استعمال کرتے ہوئے ہر محدود فنکشن کا حساب لگا سکتے ہیں۔


We will choose the encoding L ↦ 01, R ↦ 11, S ↦ 10, H ↦ 00.

ہم انکوڈنگ L ↦ 01, R ↦ 11, S ↦ 10, H ↦ 00 کا انتخاب کریں گے۔


The machine can simulate this iteration by reading the values of all array variables at i.

مشین اس تکرار کی نقالی i پر تمام صف متغیرات کی قدروں کو پڑھ کر کر سکتی ہے۔


The overall operation of the Turing machine will be as follows:

ٹورنگ مشین کا مجموعی آپریشن اس طرح ہوگا:


We can implement more advanced looping constructs than the simple MODANDJUMP.

ہم سادہ MODANDJUMP سے زیادہ جدید لوپنگ تعمیرات کو نافذ کر سکتے ہیں۔


مثال کے طور پر، ہم GOTO کو نافذ کر سکتے ہیں۔


The GOTO statement was a staple of most early programming languages.

GOTO بیان ابتدائی پروگرامنگ زبانوں کا ایک اہم حصہ تھا۔


We can use “syntactic sugar” to make NAND-TM programs easier to write.

ہم NAND-TM پروگراموں کو لکھنا آسان بنانے کے لیے “syntactic sugar” استعمال کر سکتے ہیں۔


This notion of a single algorithm that can compute functions of all input lengths is known as uniformity of computation.

ایک ہی الگورتھم کا یہ تصور جو تمام ان پٹ لمبائی کے افعال کا حساب لگا سکتا ہے، کمپیوٹیشن کی یکسانیت کے نام سے جانا جاتا ہے۔


Turing machines can have inputs and outputs that are longer than the description of the machine as a string.

ٹورنگ مشینوں میں ان پٹ اور آؤٹ پٹ ہو سکتے ہیں جو مشین کی سٹرنگ کے طور پر بیان سے زیادہ لمبے ہیں۔


The key difference between NAND-CIRC and NAND-TM is that NAND-TM allows us to express the fact that the algorithm for computing parities of length-100 strings is really the same one as the algorithm for computing parities of length-5 strings.

NAND-CIRC اور NAND-TM کے درمیان بنیادی فرق یہ ہے کہ NAND-TM ہمیں اس حقیقت کا اظہار کرنے کی اجازت دیتا ہے کہ لمبائی-100 سٹرنگز کی برابری کا حساب لگانے کا الگورتھم درحقیقت وہی ہے جو لمبائی-5 سٹرنگز کی برابری کا حساب لگانے کا الگورتھم ہے۔


We will come back to this point in Chapter 9.

ہم اس نکتے پر باب 9 میں واپس آئیں گے۔


The main trouble with GOTO is that it makes analysis of programs more difficult.

GOTO کے ساتھ بنیادی مسئلہ یہ ہے کہ یہ پروگراموں کا تجزیہ زیادہ مشکل بنا دیتا ہے۔


In contrast, if the program might jump to do blah from any other point in the code, then it’s very hard for you as the programmer to know what you can rely upon in this code.

اس کے برعکس، اگر پروگرام کوڈ میں کسی اور مقام سے بلہ کرنے کے لیے چھلانگ لگا سکتا ہے، تو آپ کے لیے بطور پروگرامر یہ جاننا بہت مشکل ہے کہ آپ اس کوڈ میں کس پر انحصار کر سکتے ہیں۔


We can achieve the effect of GOTO in NAND-TM using conditionals.

ہم مشروطات کا استعمال کرتے ہوئے NAND-TM میں GOTO کا اثر حاصل کر سکتے ہیں۔


The variable pc corresponds to the “program counter” and tells the program which line to execute next.

متغیر pc “پروگرام کاؤنٹر” سے مطابقت رکھتا ہے اور پروگرام کو بتاتا ہے کہ اگلی کون سی لائن چلانی ہے۔


We can emulate all the standard loop constructs such as while, do .. until or for in NAND-TM as well.

ہم NAND-TM میں بھی تمام معیاری لوپ کنسٹرکٹس جیسے کہ while, do .. until یا for کی نقل کر سکتے ہیں۔


The algorithm efficiently sorts the data.

الگورتھم ڈیٹا کو مؤثر طریقے سے ترتیب دیتا ہے۔


She enjoys reading novels in her free time.

وہ اپنے فارغ وقت میں ناول پڑھنا پسند کرتی ہے۔


The company announced a new product launch.

کمپنی نے ایک نئی مصنوعات کے آغاز کا اعلان کیا۔


کیا آپ براہ کرم اسے دہرا سکتے ہیں؟


The research paper explores the impact of climate change.

تحقیقی مقالہ موسمیاتی تبدیلی کے اثرات کو تلاش کرتا ہے۔


وہ ایک بہت باصلاحیت موسیقار ہے۔


The government implemented new policies.

حکومت نے نئی پالیسیاں نافذ کیں۔


آپ کا پسندیدہ رنگ کیا ہے؟


سافٹ ویئر اپ ڈیٹ نے کئی کیڑے ٹھیک کیے۔


وہ گزشتہ موسم گرما میں یورپ گئی تھیں۔


معاشی پیش گوئی ترقی کی پیشین گوئی کرتی ہے۔


آج آپ کیسا محسوس کر رہے ہیں؟


The complex system requires careful analysis.

پیچیدہ نظام کو محتاط تجزیہ کی ضرورت ہے۔


وہ ڈاکٹر بننے کے لیے پڑھائی کر رہا ہے۔


سیاسی صورتحال غیر مستحکم ہے۔


کیا آپ اس میں میری مدد کر سکتے ہیں؟


The algorithm's efficiency is crucial for large datasets.

الگورتھم کی کارکردگی بڑے ڈیٹا سیٹس کے لیے بہت ضروری ہے۔


She enjoys painting landscapes in her spare time.

وہ اپنے فارغ وقت میں مناظر کی پینٹنگ کرنا پسند کرتی ہیں۔


The company is facing financial challenges.

کمپنی کو مالی چیلنجز کا سامنا ہے۔


ہفتے کے آخر میں آپ کے کیا منصوبے ہیں؟


The RAM machine model is closer to actual computers.

RAM مشین کا ماڈل اصل کمپیوٹرز کے زیادہ قریب ہے۔


Turing machines do not correspond to standard computing architectures that have Random Access Memory (RAM).

ٹورنگ مشینیں معیاری کمپیوٹنگ آرکیٹیکچرز سے مطابقت نہیں رکھتیں جن میں رینڈم ایکسیس میموری (RAM) موجود ہے۔


We will see that cellular automata which are a mathematical model of extremely simple natural systems is also Turing equivalent.

ہم دیکھیں گے کہ سیلولر آٹومیٹا جو کہ انتہائی سادہ قدرتی نظاموں کا ایک ریاضیاتی ماڈل ہے، وہ بھی ٹورنگ کے مساوی ہے۔


This is a powerful principle, which underlies behind the vast reach of Computer Science.

یہ ایک طاقتور اصول ہے، جو کمپیوٹر سائنس کی وسیع رسائی کی بنیاد ہے۔


RAM machines capture the architecture of modern computers more closely than Turing machines.

RAM مشینیں جدید کمپیوٹرز کے فن تعمیر کو ٹورنگ مشینوں کے مقابلے میں زیادہ قریب سے کیپچر کرتی ہیں۔


In this chapter we study equivalence between models.

اس باب میں ہم ماڈلز کے درمیان مساوات کا مطالعہ کرتے ہیں۔


For example, we have seen that Turing machines and NAND-TM programs are equivalent.

مثال کے طور پر، ہم نے دیکھا ہے کہ ٹورنگ مشینیں اور NAND-TM پروگرام مساوی ہیں۔


We can choose the model of our convenience for the task at hand.

ہم اپنے لیے اس کام کے لیے سہولت کا ماڈل منتخب کر سکتے ہیں۔


The website esolangs.org features a large variety of esoteric Turing-complete programming languages.

ویب سائٹ esolangs.org میں اسرار ٹورنگ مکمل پروگرامنگ زبانوں کی ایک بڑی قسم موجود ہے۔


One of the most famous of them is Brainf*ck.

ان میں سے سب سے مشہور Brainf*ck ہے۔


So far we have defined the notion of computing a function using Turing machines.

اب تک ہم نے ٹورنگ مشینوں کا استعمال کرتے ہوئے ایک فنکشن کمپیوٹ کرنے کے تصور کی تعریف کی ہے۔


This notion is known as Turing completeness or Turing equivalence.

اس تصور کو ٹورنگ کی مکملیت یا ٹورنگ کی مساوات کے نام سے جانا جاتا ہے۔


We discuss the Church-Turing Thesis and the potential definitions of “reasonable” in Section 8.8.

ہم سیکشن 8.8 میں چرچ-ٹورنگ تھیسس اور “مناسب” کی ممکنہ تعریفوں پر بحث کرتے ہیں۔


RAM Machines capture the equivalent models of computation architecture of modern computers more closely than Turing machines.

RAM مشینیں جدید کمپیوٹرز کے کمپیوٹیشن آرکیٹیکچر کے مساوی ماڈلز کو ٹورنگ مشینوں کے مقابلے میں زیادہ قریب سے کیپچر کرتی ہیں۔


The memory of a RAM machine is an array of unbounded size.

RAM مشین کی میموری لامحدود سائز کی ایک صف ہے۔


A RAM machine can directly access any cell of memory without having to move the “head”.

RAM مشین بغیر “ہیڈ” کو حرکت دیے میموری کے کسی بھی سیل تک براہ راست رسائی حاصل کر سکتی ہے۔


RAM machines can carry out computation on registers such as arithmetic operations, logical operations, and comparisons.

RAM مشینیں رجسٹروں پر کمپیوٹیشن کر سکتی ہیں جیسے کہ ریاضیاتی آپریشنز، منطقی آپریشنز، اور موازنہ۔


The challenging direction is to transform a NAND-RAM program to an equivalent NAND-TM program.

چیلنجنگ سمت ایک NAND-RAM پروگرام کو مساوی NAND-TM پروگرام میں تبدیل کرنا ہے۔


ہم (a) کو ہینڈل کرنے کا طریقہ دکھا کر شروع کرتے ہیں۔


Namely, we show how we can implement in NAND-TM the operation Setindex(Bar).

یعنی، ہم دکھاتے ہیں کہ ہم NAND-TM میں آپریشن Setindex(Bar) کو کیسے لاگو کر سکتے ہیں۔


The function maps x to the function y ↦ x+y.

یہ فنکشن x کو فنکشن y ↦ x+y پر نقشہ کرتا ہے۔


Generally, we can use the λ expression to simulate the effect of a two argument function.

عام طور پر، ہم دو دلائل والے فنکشن کے اثر کو نقل کرنے کے لیے λ اظہار استعمال کر سکتے ہیں۔


اس تکنیک کو کیرینگ کے نام سے جانا جاتا ہے۔


We will use the shorthand for λx.(λy.e).

ہم λx.(λy.e) کے لیے مختصر استعمال کریں گے۔


If f = λx.(λy.e) then (f a)b corresponds to applying fa and then invoking the resulting function on b.

اگر f = λx.(λy.e) تو (f a)b کا مطلب ہے fa کا اطلاق کرنا اور پھر نتیجے میں آنے والے فنکشن کو b پر طلب کرنا۔


We start with “basic expressions” that contain a single variable such as x or y.

ہم “بنیادی اظہار” سے شروع کرتے ہیں جن میں ایک متغیر ہوتا ہے جیسے x یا y۔


Formally λ expressions are defined as follows:

رسمی طور پر λ اظہار کی تعریف اس طرح کی گئی ہے:


A λ expression is either a single variable identifier or an expression e of the one of the following forms:

λ اظہار یا تو ایک واحد متغیر شناخت کنندہ ہے یا مندرجہ ذیل شکلوں میں سے ایک کا اظہار e ہے:


Application: e = (e' e''), where e' and e'' are λ expressions.

ایپلیکیشن: e = (e' e'')، جہاں e' اور e'' λ اظہار ہیں۔


Abstraction: e = λx.(e') where e' is a λ expression.

تجرید: e = λx.(e') جہاں e' ایک λ اظہار ہے۔


This might seem confusing at first, but in fact you have known recursive definitions since you were an elementary school student.

یہ پہلے تو الجھا ہوا لگ سکتا ہے، لیکن درحقیقت آپ کو ابتدائی اسکول کے طالب علم ہونے کے بعد سے ہی ریکرسیو تعریفیں معلوم ہیں۔


Consider how we define an arithmetic expression: it is an expression that is either just a number, or has one of the forms.

غور کریں کہ ہم ریاضیاتی اظہار کی تعریف کیسے کرتے ہیں: یہ ایک ایسا اظہار ہے جو یا تو صرف ایک عدد ہے، یا اس کی شکلوں میں سے ایک ہے۔


Variables in a λ expression can either be free or bound to a λ operator.

λ اظہار میں متغیرات یا تو آزاد ہو سکتے ہیں یا λ آپریٹر سے منسلک ہو سکتے ہیں۔


In a single- variable λ expression var, the variable var is free.

ایک واحد متغیر λ اظہار var میں، متغیر var آزاد ہے۔


Function application associates from left to right.

فنکشن ایپلی کیشن بائیں سے دائیں جانب منسلک ہوتی ہے۔


Function application has a higher precedence than the λ operator.

فنکشن ایپلی کیشن کی ترجیح λ آپریٹر سے زیادہ ہے۔


This plays nicely with the “Currying” transformation of simulating multi-input functions using λ expressions.

یہ λ اظہار کا استعمال کرتے ہوئے متعدد ان پٹ فنکشنز کی نقالی کے “کیرینگ” تبدیلی کے ساتھ اچھی طرح سے کام کرتا ہے۔


The rule that (λx.exp)exp' is equivalent to exp[x → exp'] enables us to modify λ expressions.

یہ اصول کہ (λx.exp)exp' exp[x → exp'] کے مساوی ہے ہمیں λ اظہار میں ترمیم کرنے کے قابل بناتا ہے۔


Another rule that we can use is that the parameter does not matter.

ایک اور اصول جو ہم استعمال کر سکتے ہیں وہ یہ ہے کہ پیرامیٹر کوئی معنی نہیں رکھتا۔


Two λ expressions are equivalent if they can be made into the same expression by repeated applications of the following rules:

دو λ اظہار مساوی ہیں اگر انہیں مندرجہ ذیل قواعد کے بار بار اطلاق سے ایک ہی اظہار میں بنایا جا سکتا ہے:


The code defines a function that takes a function and a list as input.

یہ کوڈ ایک ایسا فنکشن متعین کرتا ہے جو ایک فنکشن اور ایک فہرست کو ان پٹ کے طور پر لیتا ہے۔


We can obtain a non-recursive version of a recursive function.

ہم ایک ریکرسیو فنکشن کا غیر ریکرسیو ورژن حاصل کر سکتے ہیں۔


The Church-Turing thesis is a fundamental concept in computer science.

چرچ-ٹورنگ تھیسس کمپیوٹر سائنس میں ایک بنیادی تصور ہے۔


Quantum computers might make some computations more efficient.

کوانٹم کمپیوٹرز کچھ حسابات کو زیادہ موثر بنا سکتے ہیں۔


The model of computation can be summarized in a table.

حساب کے ماڈل کو ایک جدول میں خلاصہ کیا جا سکتا ہے۔


Prove that SEARCH is computable by a Turing machine.

ثابت کریں کہ SEARCH ایک ٹورنگ مشین کے ذریعے قابلِ حساب ہے۔


The output is the value for the smallest i such that ki = k.

آؤٹ پُٹ سب سے چھوٹے i کی قدر ہے جیسے کہ ki = k۔


Let NEXT be the function that maps a configuration of a NAND-RAM program.

آئیے NEXT وہ فنکشن ہو جو NAND-RAM پروگرام کی ترتیب کو نقشہ دیتا ہے۔


The function f(x) will be defined as tempf(tempf,x).

فنکشن f(x) کو tempf(tempf,x) کے طور پر متعین کیا جائے گا۔


The Y combinator is also known as the RECURSE operator.

Y کمبینیٹر کو RECURSE آپریٹر کے نام سے بھی جانا جاتا ہے۔


The universal machine is a single algorithm that can evaluate all other algorithms.

یونیورسل مشین ایک واحد الگورتھم ہے جو تمام دوسرے الگورتھم کا جائزہ لے سکتا ہے۔


This chapter will show the existence of uncomputable functions.

یہ باب ناقابلِ حساب افعال کے وجود کو ظاہر کرے گا۔


Reductions are initially confusing but can be mastered with practice.

ریڈکشنز شروع میں الجھن کا شکار ہوتی ہیں لیکن مشق سے ان پر عبور حاصل کیا جا سکتا ہے۔


The universal Turing machine can evaluate arbitrary Turing machines.

یونیورسل ٹورنگ مشین من مانی ٹورنگ مشینوں کا جائزہ لے سکتی ہے۔


Think of how you would code U in your favorite programming language.

ذرا سوچیں کہ آپ اپنی پسندیدہ پروگرامنگ زبان میں U کو کیسے کوڈ کریں گے۔


The existence of a universal program underlies the information technology revolution.

ایک یونیورسل پروگرام کا وجود انفارمیشن ٹیکنالوجی کے انقلاب کی بنیاد ہے۔


We do not need to build a new physical machine to simulate a new Turing machine.

نئی ٹورنگ مشین کی نقالی کے لیے ہمیں ایک نئی فزیکل مشین بنانے کی ضرورت نہیں ہے۔


The halting problem is a canonical example of an uncomputable function.

ہالٹنگ مسئلہ ایک ناقابلِ حساب فنکشن کی ایک کینونیکل مثال ہے۔


The importance of the universal machine is clear.

یونیورسل مشین کی اہمیت واضح ہے۔


This result came with a significant caveat.

یہ نتیجہ ایک اہم انتباہ کے ساتھ آیا۔


The Halting problem is a fundamental concept in computer science.

ہارٹنگ کا مسئلہ کمپیوٹر سائنس میں ایک بنیادی تصور ہے۔


A Turing machine is a theoretical model of computation.

ایک ٹورنگ مشین کمپیوٹیشن کا ایک نظریاتی ماڈل ہے۔


Reductions are used to prove the uncomputability of problems.

مسائل کی غیر کمپیوٹیبلٹی کو ثابت کرنے کے لیے کمیوں کا استعمال کیا جاتا ہے۔


If a program halts on input zero, then HALTONZERO is 1.

اگر کوئی پروگرام ان پٹ صفر پر رک جاتا ہے، تو HALTONZERO 1 ہے۔


Rice's Theorem states that any non-trivial semantic property of programs is undecidable.

رائس کا نظریہ بیان کرتا ہے کہ پروگراموں کی کوئی بھی غیر معمولی ساختی خصوصیت ناقابلِ فیصلہ ہے۔


The concept of uncomputability is counterintuitive at first.

غیر کمپیوٹیبلٹی کا تصور پہلے تو غیر منطقی لگتا ہے۔


We use reductions to show that one problem is at least as hard as another.

ہم کمیوں کا استعمال یہ ظاہر کرنے کے لیے کرتے ہیں کہ ایک مسئلہ دوسرے کی طرح ہی مشکل ہے۔


A semantic property depends on the function a program computes.

ایک ساختی خصوصیت اس فنکشن پر منحصر ہے جو ایک پروگرام کمپیوٹ کرتا ہے۔


Syntactic properties relate to the code itself, not the function.

ساختی خصوصیات کوڈ سے متعلق ہیں، فنکشن سے نہیں۔


Software verification is a challenging field.

سافٹ ویئر کی تصدیق ایک چیلنجنگ فیلڈ ہے۔


ہارٹنگ کا مسئلہ ناقابلِ فیصلہ ہے۔


A reduction transforms one problem into another.

ایک کمی ایک مسئلے کو دوسرے میں تبدیل کرتی ہے۔


Functional equivalence is key to understanding semantic properties.

ساختی خصوصیات کو سمجھنے کے لیے فنکشنل مساوات کلیدی ہے۔


رائس کا نظریہ ایک طاقتور آلہ ہے۔


The proof of Rice's Theorem involves a reduction.

رائس کے نظریہ کے ثبوت میں کمی شامل ہے۔


پروگرام اہم نظاموں میں استعمال ہوتے ہیں۔


سافٹ ویئر کی تصدیق ایک پیچیدہ کام ہے۔


فنکشن ZEROFUNC ساختی ہے۔


ہم تمام پروگراموں کی تصدیق نہیں کر سکتے۔


The Halting Problem is a cornerstone of uncomputability.

ہارٹنگ کا مسئلہ غیر کمپیوٹیبلٹی کا سنگ بنیاد ہے۔


خبروں میں ایک بڑے زلزلے کی اطلاع دی گئی۔


کیا آپ براہ کرم نمک پاس کر سکتے ہیں؟


The company announced its quarterly earnings.

کمپنی نے اپنی سہ ماہی کی آمدنی کا اعلان کیا۔


The algorithm efficiently sorts the data.

الگورتھم مؤثر طریقے سے ڈیٹا کو ترتیب دیتا ہے۔


She is a talented musician and composer.

وہ ایک باصلاحیت موسیقار اور کمپوزر ہیں۔


The government implemented new policies.

حکومت نے نئی پالیسیاں نافذ کیں۔


The research paper explores climate change.

تحقیقی مقالہ موسمیاتی تبدیلیوں کی کھوج کرتا ہے۔


وہ کئی زبانوں میں روانی سے بات کرتا ہے۔


The meeting was held in the conference room.

میٹنگ کانفرنس روم میں منعقد ہوئی۔


The complex system requires careful analysis.

پیچیدہ نظام کو محتاط تجزیہ کی ضرورت ہے۔


چیلنجوں کے باوجود، وہ کامیاب ہوئے۔


فنکار کا کام بہت سراہا جاتا ہے۔


معاشی پیش گوئی ترقی کی پیشین گوئی کرتی ہے۔


The software update includes new features.

سافٹ ویئر اپ ڈیٹ میں نئی خصوصیات شامل ہیں۔


تاریخی تناظر اہم ہے۔


تحقیقات میں بدعنوانی کا انکشاف ہوا۔


فلسفیانہ بحث شدید تھی۔


The scientific breakthrough changed everything.

سائنسی پیش رفت نے سب کچھ بدل دیا۔


مذاکرات تعطل کا شکار ہو گئے۔


The intricate design required precision.

پیچیدہ ڈیزائن کے لیے درستگی کی ضرورت تھی۔


To prove (and even properly state) Theorem 9.1, we need to fix some representation for Turing machines as strings.

تھیورم 9.1 کو ثابت کرنے (اور یہاں تک کہ مناسب طریقے سے بیان کرنے) کے لیے، ہمیں ٹورنگ مشینوں کے لیے کچھ نمائندگی کو بطور سٹرنگز ٹھیک کرنے کی ضرورت ہے۔


We can represent every Turing machine as a string.

ہم ہر ٹورنگ مشین کو ایک سٹرنگ کے طور پر پیش کر سکتے ہیں۔


Given the string representation of a Turing machine and an input, we can simulate the machine’s execution on the input.

ٹورنگ مشین کی سٹرنگ نمائندگی اور ان پٹ کو دیکھتے ہوئے، ہم مشین کے ان پٹ پر عمل درآمد کی نقالی کر سکتے ہیں۔


The details of the representation scheme of Turing machines as strings are immaterial for almost all applications.

سٹرنگز کے طور پر ٹورنگ مشینوں کی نمائندگی کے طریقہ کار کی تفصیلات تقریباً تمام ایپلی کیشنز کے لیے غیر متعلقہ ہیں۔


We can easily write a Python program that, on input a representation of a Turing machine and an input, evaluates the machine on the input.

ہم آسانی سے ایک پائیتھون پروگرام لکھ سکتے ہیں جو، ٹورنگ مشین کی نمائندگی اور ان پٹ پر، ان پٹ پر مشین کا جائزہ لیتا ہے۔


With enough effort, we can translate this Python code line by line to a Turing machine.

کافی کوشش سے، ہم اس پائیتھون کوڈ کو لائن بہ لائن ٹورنگ مشین میں ترجمہ کر سکتے ہیں۔


The only issue is that NAND-RAM doesn’t have the dictionary data structure built in.

واحد مسئلہ یہ ہے کہ NAND-RAM میں ڈکشنری ڈیٹا ڈھانچہ نہیں بنا ہے۔


We can represent a dictionary of the form as simply a list of pairs.

ہم شکل کی ایک ڈکشنری کو جوڑوں کی فہرست کے طور پر آسانی سے پیش کر سکتے ہیں۔


To compute D[k] we can scan over all the pairs until we find one of the form (k, v) in which case we return v.

D[k] کا حساب لگانے کے لیے ہم تمام جوڑوں کو اس وقت تک اسکین کر سکتے ہیں جب تک کہ ہمیں شکل (k, v) میں سے ایک نہ مل جائے، اس صورت میں ہم v واپس کرتے ہیں۔


The argument in the proof of Theorem 9.1 is a very inefficient way to implement the dictionary data structure in practice.

تھیورم 9.1 کے ثبوت میں دلیل عملی طور پر ڈکشنری ڈیٹا ڈھانچے کو لاگو کرنے کا ایک انتہائی غیر موثر طریقہ ہے۔


NAND-RAM and RAM machines correspond to the architecture of modern electronic computers.

NAND-RAM اور RAM مشینیں جدید الیکٹرانک کمپیوٹرز کے فن تعمیر سے مطابقت رکھتی ہیں۔


There is more than one Turing machine that satisfies the conditions of Theorem 9.1.

ایک سے زیادہ ٹورنگ مشینیں ہیں جو تھیورم 9.1 کی شرائط کو پورا کرتی ہیں۔


Because we can simulate every Turing machine by a NAND-TM program and vice versa, Theorem 9.1 immediately implies there exists a universal NAND-TM program.

چونکہ ہم ہر ٹورنگ مشین کو NAND-TM پروگرام کے ذریعے اور اس کے برعکس نقل کر سکتے ہیں، تھیورم 9.1 فوری طور پر اس بات کی نشاندہی کرتا ہے کہ ایک عالمگیر NAND-TM پروگرام موجود ہے۔


The idea of a “universal program” is of course not limited to theory.

ایک “عالمگیر پروگرام” کا خیال یقیناً نظریہ تک محدود نہیں ہے۔


For example compilers for programming languages are often used to compile themselves, as well as programs more complicated than the compiler.

مثال کے طور پر پروگرامنگ زبانوں کے لیے کمپائلرز اکثر خود کو مرتب کرنے کے لیے استعمال ہوتے ہیں، نیز کمپائلر سے زیادہ پیچیدہ پروگرام۔


There are universal Turing machines known that require a very small number of states or alphabet symbols.

ایسی عالمگیر ٹورنگ مشینیں ہیں جو ریاستوں یا حروف تہجی کی علامتوں کی بہت کم تعداد کا تقاضا کرتی ہیں۔


In Theorem 4.12, we saw that NAND-CIRC programs can compute every finite function.

تھیورم 4.12 میں، ہم نے دیکھا کہ NAND-CIRC پروگرام ہر محدود فنکشن کا حساب لگا سکتے ہیں۔


تاہم، یہ غلط ثابت ہوتا ہے۔


That is, there exists a function that is uncomputable!

یعنی، ایک ایسا فنکشن موجود ہے جو ناقابلِ حساب ہے!


The existence of uncomputable functions is quite surprising.

ناقابلِ حساب افعال کا وجود کافی حیران کن ہے۔


The algorithm efficiently computes whether a string matches a given grammar.

یہ الگورتھم مؤثر طریقے سے حساب لگاتا ہے کہ آیا کوئی سٹرنگ دی گئی گرامر سے میل کھاتا ہے۔


Context-free grammars are more powerful than regular expressions.

مفہوم سے آزاد گرامر باقاعدہ اظہار سے زیادہ طاقتور ہیں۔


The parser transforms the source code into a parse tree.

پارسر ماخذ کوڈ کو ایک پارس ٹری میں تبدیل کرتا ہے۔


Can you explain the limitations of context-free grammars?

کیا آپ مفہوم سے آزاد گرامر کی حدود کی وضاحت کر سکتے ہیں؟


The theorem proves that the equivalence problem for context-free grammars is uncomputable.

یہ نظریہ ثابت کرتا ہے کہ مفہوم سے آزاد گرامر کے لیے مساوات کا مسئلہ ناقابلِ حساب ہے۔


We can use context-free grammars to define the syntax of programming languages.

ہم پروگرامنگ زبانوں کے نحو کی وضاحت کے لیے مفہوم سے آزاد گرامر استعمال کر سکتے ہیں۔


The algorithm is used to determine if a CFG matches a string.

یہ الگورتھم یہ تعین کرنے کے لیے استعمال ہوتا ہے کہ آیا ایک CFG ایک سٹرنگ سے میل کھاتا ہے۔


The parse tree provides useful information about the structure of the string.

پارس ٹری سٹرنگ کی ساخت کے بارے میں مفید معلومات فراہم کرتا ہے۔


Context-free grammars can capture every regular expression.

مفہوم سے آزاد گرامر ہر باقاعدہ اظہار کو حاصل کر سکتی ہیں۔


The pumping lemma is a tool for proving that a language is not context-free.

پمپنگ لیما اس بات کو ثابت کرنے کا ایک ذریعہ ہے کہ کوئی زبان مفہوم سے آزاد نہیں ہے۔


The function checks if a string is a palindrome.

یہ فنکشن چیک کرتا ہے کہ آیا کوئی سٹرنگ پیلنڈروم ہے۔


The grammar generates strings of the form u;v where v is not the reverse of u.

گرامر u;v کی شکل کی سٹرنگز تیار کرتی ہے جہاں v، u کا الٹ نہیں ہے۔


The algorithm can be used to achieve this, but there are much more efficient versions.

اسے حاصل کرنے کے لیے الگورتھم استعمال کیا جا سکتا ہے، لیکن اس کے بہت زیادہ موثر ورژن موجود ہیں۔


The limitations of context-free grammars provide some advantages.

مفہوم سے آزاد گرامر کی حدود کچھ فوائد فراہم کرتی ہیں۔


CFGs کے لیے خالی پن کا فیصلہ کیا جا سکتا ہے۔


The proof uses the context-free pumping lemma.

ثبوت مفہوم سے آزاد پمپنگ لیما کا استعمال کرتا ہے۔


یہ فنکشن مفہوم سے آزاد نہیں ہے۔


The theorem implies that fullness is also uncomputable for grammars over the binary alphabet.

یہ نظریہ بتاتا ہے کہ بائنری حروف تہجی پر گرامر کے لیے مکمل پن بھی ناقابلِ حساب ہے۔


We will show that if we can compute CFGFULL then we can solve HALTONZERO.

ہم دکھائیں گے کہ اگر ہم CFGFULL کا حساب لگا سکتے ہیں تو ہم HALTONZERO کو حل کر سکتے ہیں۔


The Chomsky Hierarchy is a hierarchy of grammars.

چومسکی درجہ بندی گرامر کی درجہ بندی ہے۔


The algorithm efficiently finds the shortest path.

یہ الگورتھم مؤثر طریقے سے سب سے چھوٹا راستہ تلاش کرتا ہے۔


Graphs are widely used in computer science.

کمپیوٹر سائنس میں گراف کا وسیع پیمانے پر استعمال ہوتا ہے۔


Can you explain the concept of a minimum cut?

کیا آپ کم از کم کٹ کے تصور کی وضاحت کر سکتے ہیں؟


The maximum flow problem is related to the minimum cut.

زیادہ سے زیادہ بہاؤ کا مسئلہ کم از کم کٹ سے متعلق ہے۔


Data structures are fundamental in algorithm design.

ڈیٹا ڈھانچے الگورتھم ڈیزائن میں بنیادی ہیں۔


Finding the longest path in a graph is a complex problem.

گراف میں سب سے لمبا راستہ تلاش کرنا ایک پیچیدہ مسئلہ ہے۔


The shortest path algorithm is used in navigation systems.

سب سے چھوٹا راستہ الگورتھم نیویگیشن سسٹم میں استعمال ہوتا ہے۔


We will discuss the applications of graphs.

ہم گراف کے استعمال پر تبادلہ خیال کریں گے۔


The minimum cut problem has practical applications.

کم از کم کٹ کے مسئلے کے عملی استعمال ہیں۔


Linear programming provides a solution to the max-flow problem.

لکیری پروگرامنگ زیادہ سے زیادہ بہاؤ کے مسئلے کا حل فراہم کرتی ہے۔


The algorithm's running time is crucial for efficiency.

الگورتھم کا رن ٹائم کارکردگی کے لیے بہت اہم ہے۔


Graphs can model relationships in social networks.

گراف سماجی نیٹ ورکس میں تعلقات کو ماڈل بنا سکتے ہیں۔


The concept of convexity is important in optimization.

حدبندی کا تصور اصلاح میں اہم ہے۔


The Ford-Fulkerson algorithm is used for flow computation.

فورڈ-فلکرسن الگورتھم بہاؤ کے حساب کے لیے استعمال ہوتا ہے۔


Understanding data structures is key to algorithm design.

ڈیٹا ڈھانچے کو سمجھنا الگورتھم ڈیزائن کی کلید ہے۔


زیادہ سے زیادہ کٹ کا مسئلہ این پی-ہارڈ ہے۔


We will analyze the complexity of the algorithm.

ہم الگورتھم کی پیچیدگی کا تجزیہ کریں گے۔


The traveling salesman problem is a classic optimization challenge.

ٹریولنگ سیلز مین کا مسئلہ ایک کلاسک اصلاحی چیلنج ہے۔


The algorithm uses a queue data structure.

الگورتھم ایک قطار ڈیٹا ڈھانچہ استعمال کرتا ہے۔


The chapter provides an introduction to graph theory.

یہ باب گراف تھیوری کا تعارف فراہم کرتا ہے۔


The problems shown uncomputable in Chapter 9, while natural and important, still intimately involved NAND-TM programs or other computing mechanisms in their definitions.

باب 9 میں جن مسائل کو ناقابلِ حساب دکھایا گیا ہے، اگرچہ وہ فطری اور اہم ہیں، لیکن ان کی تعریفوں میں اب بھی NAND-TM پروگرام یا دیگر کمپیوٹنگ میکانزم شامل تھے۔


One could perhaps hope that as long as we steer clear of functions whose inputs are themselves programs, we can avoid the “curse of uncomputability”.

شاید کوئی امید کر سکتا ہے کہ جب تک ہم ان افعال سے دور رہیں جن کے ان پُٹ خود پروگرام ہیں، ہم “ناقابلِ حساب ہونے کے عذاب” سے بچ سکتے ہیں۔


افسوس، ہماری ایسی قسمت نہیں ہے۔


In this chapter we will see an example of a natural and seemingly “computation free” problem that nevertheless turns out to be uncomputable: solving Diophantine equations.

اس باب میں ہم ایک فطری اور بظاہر “حساب سے پاک” مسئلے کی مثال دیکھیں گے جو پھر بھی ناقابلِ حساب نکلتا ہے: ڈیوفینٹائن مساوات کو حل کرنا۔


As a corollary, we will see one of the most striking results of 20th century mathematics: Gödel’s Incompleteness Theorem, which showed that there are some mathematical statements (in fact, in number theory) that are inherently unprovable.

نتیجے کے طور پر، ہم 20 ویں صدی کی ریاضی کے سب سے حیرت انگیز نتائج میں سے ایک دیکھیں گے: گوڈیل کا نامکمل نظریہ، جس نے دکھایا کہ کچھ ریاضیاتی بیانات (درحقیقت، نمبر تھیوری میں) ایسے ہیں جو فطری طور پر ناقابلِ ثبوت ہیں۔


We will actually start with the latter result, and then show the former.

ہم درحقیقت بعد والے نتیجے سے شروع کریں گے، اور پھر پہلے والے کو دکھائیں گے۔


The marquee result of this chapter is Gödel’s Incompleteness Theorem, which states that for every proof system, there are some statements about arithmetic that are true but unprovable in this system.

اس باب کا اہم نتیجہ گوڈیل کا نامکمل نظریہ ہے، جو کہتا ہے کہ ہر ثبوت کے نظام کے لیے، ریاضی کے بارے میں کچھ ایسے بیانات ہیں جو سچ ہیں لیکن اس نظام میں ناقابلِ ثبوت ہیں۔


But more than that we will see a deep connection between uncomputability and unprovability.

لیکن اس سے بڑھ کر ہم ناقابلِ حساب اور ناقابلِ ثبوت کے درمیان ایک گہرا تعلق دیکھیں گے۔


For example, the uncomputability of the Halting problem immediately gives rise to the existence of unprovable statements about Turing machines.

مثال کے طور پر، ہالٹنگ مسئلے کی ناقابلِ حسابیت فوری طور پر ٹورنگ مشینوں کے بارے میں ناقابلِ ثبوت بیانات کے وجود کا باعث بنتی ہے۔


To even state Gödel’s Incompleteness Theorem we will need to formally define the notion of a “proof system”.

یہاں تک کہ گوڈیل کے نامکمل نظریہ کو بیان کرنے کے لیے ہمیں “ثبوت کے نظام” کے تصور کی باضابطہ تعریف کرنے کی ضرورت ہوگی۔


We give a very general definition, that encompasses all types of “axioms + inference rules” systems used in logic and math.

ہم ایک بہت ہی عام تعریف دیتے ہیں، جو منطق اور ریاضی میں استعمال ہونے والے تمام قسم کے “مسلمات + استدلال کے اصول” کے نظاموں پر مشتمل ہے۔


We will then build up the machinery to encode computation using arithmetic that will enable us to prove Gödel’s Theorem.

اس کے بعد ہم ریاضی کا استعمال کرتے ہوئے حساب کو انکوڈ کرنے کے لیے مشینری تیار کریں گے جو ہمیں گوڈیل کے نظریہ کو ثابت کرنے کے قابل بنائے گی۔


One version of Gödel’s Incompleteness Theorem is an immediate consequence of the uncomputability of the Halting problem.

گوڈیل کے نامکمل نظریہ کا ایک ورژن ہالٹنگ مسئلے کی ناقابلِ حسابیت کا فوری نتیجہ ہے۔


To obtain the theorem as originally stated (for statements about the integers) we first prove that the QMS problem of determining truth of quantified statements involving both integers and strings is uncomputable.

اصل میں بیان کردہ نظریہ حاصل کرنے کے لیے (انٹیجرز کے بارے میں بیانات کے لیے) ہم پہلے ثابت کرتے ہیں کہ کوانٹیفائیڈ بیانات کی سچائی کا تعین کرنے کا QMS مسئلہ جس میں انٹیجرز اور اسٹرنگ دونوں شامل ہیں، ناقابلِ حساب ہے۔


We do so using the notion of Turing Machine configurations but there are alternative approaches to do so as well, see Remark 11.14.

ہم ایسا ٹورنگ مشین کنفیگریشن کے تصور کا استعمال کرتے ہوئے کرتے ہیں لیکن ایسا کرنے کے متبادل طریقے بھی ہیں، ریمارک 11.14 دیکھیں۔


The 1700’s and 1800’s were a time of great discoveries in mathematics but also of several crises.

1700 اور 1800 کی دہائیاں ریاضی میں بڑی دریافتوں کا دور تھا لیکن کئی بحرانوں کا بھی۔


The discovery of calculus by Newton and Leibnitz in the late 1600’s ushered a golden age of problem solving.

1600 کی دہائی کے آخر میں نیوٹن اور لیبنز کے ذریعہ کیلکولس کی دریافت نے مسئلہ حل کرنے کے سنہری دور کا آغاز کیا۔


Many longstanding challenges succumbed to the new tools that were discovered, and mathematicians got ever better at doing some truly impressive calculations.

کئی دیرینہ چیلنجز نئی دریافت شدہ ٹولز کے سامنے جھک گئے، اور ریاضی دان کچھ واقعی متاثر کن حسابات کرنے میں پہلے سے بہتر ہو گئے۔


However, the rigorous foundations behind these calculations left much to be desired.

تاہم، ان حسابات کے پیچھے ٹھوس بنیادیں بہت کچھ چاہتی تھیں۔


Mathematicians manipulated infinitesimal quantities and infinite series cavalierly, and while most of the time they ended up with the correct results, there were a few strange examples which seemed to give out different answers depending on the method of calculation.

ریاضی دانوں نے لامحدود مقداروں اور لامحدود سیریز کو بے پرواہی سے جوڑا، اور جب کہ زیادہ تر وقت وہ صحیح نتائج کے ساتھ ختم ہوئے، کچھ عجیب مثالیں تھیں جو حساب کے طریقہ کار پر منحصر مختلف جوابات دیتی نظر آئیں۔


The theorem is potentially easier to prove than the previous one.

یہ نظریہ پچھلے والے کی نسبت ثابت کرنا ممکنہ طور پر آسان ہے۔


A configuration can be thought of as a string.

ایک ترتیب کو ایک تار کے طور پر سوچا جا سکتا ہے۔


The program halts on input x if and only if there is a sequence of configurations.

پروگرام ان پٹ x پر اس وقت رک جاتا ہے جب اور صرف اس صورت میں جب ترتیب کی ترتیب موجود ہو۔


We can encode such a sequence of configurations as a binary string.

ہم اس طرح کی ترتیب کو بائنری تار کے طور پر انکوڈ کر سکتے ہیں۔


For every Turing machine M, there is a finite alphabet Σ.

ہر ٹورنگ مشین M کے لیے، ایک محدود حروف تہجی Σ موجود ہے۔


A configuration encodes all the state of the program at a particular iteration.

ایک ترتیب ایک خاص تکرار پر پروگرام کی تمام حالت کو انکوڈ کرتی ہے۔


If α is a configuration, then β = NEXTP(α) denotes the configuration of the computation after one more iteration.

اگر α ایک ترتیب ہے، تو β = NEXTP(α) ایک اور تکرار کے بعد کمپیوٹیشن کی ترتیب کو ظاہر کرتا ہے۔


There are simple conditions to check whether a string α is a valid starting configuration.

یہ جانچنے کے لیے آسان شرائط موجود ہیں کہ آیا ایک تار α ایک درست ابتدائی ترتیب ہے۔


A program M halts on input x if and only if there exists a sequence of configurations H.

ایک پروگرام M ان پٹ x پر اس وقت رک جاتا ہے جب اور صرف اس صورت میں جب ترتیب کی ترتیب H موجود ہو۔


We can encode such a sequence H of configuration as a binary string.

ہم ترتیب H کو بائنری تار کے طور پر انکوڈ کر سکتے ہیں۔


For concreteness, we let ℓ = ⌈log(|Σ| + 1)⌉ and encode each symbol σ in Σ ∪ {“;”} by a string in {0,1}ℓ.

ٹھوسیت کے لیے، ہم ℓ = ⌈log(|Σ| + 1)⌉ لیتے ہیں اور ہر علامت σ کو Σ ∪ {“;”} میں {0,1}ℓ میں ایک تار کے ذریعے انکوڈ کرتے ہیں۔


ہم “;” کو “سیپریٹر” علامت کے طور پر استعمال کرتے ہیں۔


Indeed, φM can be encoded as a quantified mixed statement.

درحقیقت، φM کو ایک مقداری مخلوط بیان کے طور پر انکوڈ کیا جا سکتا ہے۔


We can define a quantified mixed predicate NEXT(α,β) that is true if and only if β = NEXTM(α).

ہم ایک مقداری مخلوط پیش گوئی NEXT(α,β) کی وضاحت کر سکتے ہیں جو اس وقت درست ہے جب اور صرف اس صورت میں جب β = NEXTM(α)۔