การจำลองอัลกอริธึมที่แน่นอนนั้นยากแค่ไหนและการทำงานที่เกี่ยวข้องกับคลาสความซับซ้อน


17

teaser

เนื่องจากปัญหามีความยาวที่นี่เป็นกรณีพิเศษที่เก็บความสำคัญของมัน

ปัญหา:ให้ A เป็นอัลกอริทึม detrministic สำหรับ 3-SAT เป็นปัญหาของการจำลองอัลกอริทึม A อย่างสมบูรณ์ (ในทุกกรณีของปัญหา) P-Space ยากไหม

(แม่นยำกว่ามีเหตุผลที่จะเชื่อว่างานนี้เป็น P-Space อย่างหนักทำอะไรบางอย่างในทิศทางนี้ตามจากการคาดเดา CC มาตรฐานและหวังว่าจะพิสูจน์ว่างานนี้เป็น X-hard สำหรับคลาสความซับซ้อน X ซึ่งสันนิษฐานว่าเป็น อย่างเคร่งครัดเหนือ NP)

คำถามที่เกี่ยวข้อง : เป็น -pspace-complete- ปัญหา - โดยเนื้อแท้ - น้อย - เวิ้งว้าง - - - - - - - ปัญหา - ปัญหาที่สมบูรณ์ ;

แก้ไขล่าสุด : มีการตีความต่าง ๆ สำหรับ "การจำลอง A ทั้งหมด" และอาจมีคำตอบที่น่าสนใจแตกต่างกันไปตามการตีความ (เช่นไรอันวิลเลียมส์เสนอการตีความสำหรับการจำลองอัลกอริธึมที่ไม่ได้กำหนดไว้) สำหรับวิธีการบางอย่างในการเชื่อมโยงปัญหาการตัดสินใจกับงานการคำนวณ "จำลองโดยสิ้นเชิง" โจ Fitzsimons พบอัลกอริทึม . หาก "จำลองสมบูรณ์" หมายถึงความสามารถในการส่งออกการลงทะเบียนทั้งหมดของคอมพิวเตอร์ในขั้นตอนที่กำหนดiจากนั้นสำหรับอัลกอริทึมของ Joe ดูเหมือนว่าเป็นสิ่งที่จำเป็น สำหรับรุ่นนี้ (ฉันคิดว่า แต่ฉันไม่แน่ใจ) คำตอบของไรอันเขียนแบบPNPPNPอาร์กิวเมนต์ความแข็งแรง โจตั้งข้อสังเกตว่าหากคุณจำเป็นต้องให้การลงทะเบียนทั้งหมด (ซึ่งไม่ใช่ปัญหาการตัดสินใจอีกต่อไป) ก็ไม่น่าแปลกใจที่คุณต้องก้าวขึ้นและความซับซ้อนของคลาสนั้นไม่เหมือนกัน

อย่างไรก็ตามถ้าเราต้องการที่จะส่งออกสถานะของการลงทะเบียนที่เป็นขั้นตอนที่กำหนดไว้iแล้วคำตอบของเรือนและโจแนะนำ (อีกครั้ง แต่ผมไม่แน่ใจว่าเกี่ยวกับเรื่องนี้) ที่เป็นหลัก{} เราสามารถ spaculate ว่าโดยความหมายนี้ผลักดันการดำเนินการขึ้นหนึ่งขั้นตอนที่สูงขึ้นใน hiearachy พหุนามและที่=NP+PNPPH+=PH

ในกรณีใด ๆ โดยการตีความเหล่านี้คำตอบสำหรับคำถามทีเซอร์ของฉันคือNO

ฉันมีการตีความที่รุนแรงมากขึ้นสำหรับ "การจำลองอัลกอริทึม A" อย่างสมบูรณ์ในใจ ( แต่บางทีโจและไรอันตีความเป็นที่น่าสนใจเพิ่มเติม.) การตีความของฉันด้วย "สมบูรณ์จำลองอัลกอริทึม A" คือการที่คุณ outout สถานะของการลงทะเบียนในทุกขั้นตอนที่ฉันโดยเฉพาะถ้าอัลกอริทึมไม่ใช่พหุนามผลลัพธ์ของคุณก็ไม่ใช่พหุนามด้วย ภายใต้การตีความที่รุนแรงนี้ฉันสงสัยว่าเราควรเชื่อหรือไม่ว่าสำหรับอัลกอริธึม A,นั้นยากสำหรับ P-SPACE และสิ่งที่เราพิสูจน์ได้iCA

แรงจูงใจ:

คำถามนี้ได้รับแรงบันดาลใจจากการบรรยายโดยพอลโกลด์เบิร์ก (เป็นภาพนิ่ง , วิดีโอ , กระดาษ ) อธิบายกระดาษที่มี Papadimitriou และ Savani พวกเขาแสดงให้เห็นว่า P-space สมบูรณ์ในการค้นหาสมดุลใด ๆ ที่คำนวณโดยอัลกอริทึมของ Lemke-Howson ปัญหาในการค้นหาจุดสมดุลบางจุดเป็นเพียง PPAD-complete ช่องว่างนี้เป็นที่น่าตื่นตาตื่นใจมากและผลที่คล้ายกันอธิบายไว้แล้วในกระดาษที่รู้จักกันดีของ Papadimitriu: ความซับซ้อนของอาร์กิวเมนต์พาริตี้และอื่น ๆ ไม่มีประสิทธิภาพพิสูจน์ของการดำรงอยู่ (1991) (เป็นที่ทราบกันดีว่าปัญหาที่สมบูรณ์ของ PPAD นั้นไม่สามารถแม้แต่จะเป็นปัญหา NP-hard ได้ (เว้นแต่จะมีสิ่งที่น่ากลัวเกิดขึ้นดังนั้นสิ่งนี้จึงอยู่ไกลในโลกแห่งความซับซ้อนเมื่อเทียบกับ P-space)

คำถามนี้เกี่ยวกับอะไร

คำถามของฉันเกี่ยวกับช่องว่างที่คล้ายกันสำหรับปัญหาความซับซ้อนในการคำนวณที่เก่ากว่าและคลาสสิคกว่า (บางทีนี่อาจคุ้นเคยอยู่แล้ว)

ด้วยปัญหาการคำนวณเราสามารถแยกความแตกต่างระหว่างสามประเด็น

a) แก้ปัญหาด้วยอัลกอริทึม

b) เข้าถึงโซลูชันเดียวกันกับอัลกอริทึมเฉพาะ A

c) จำลองอัลกอริทึมทั้งหมด A

แน่นอน c) อย่างน้อยยากเท่า b) ซึ่งอย่างน้อยยากเท่า) ผลดังกล่าวข้างต้นแสดงให้เห็นช่องว่างระหว่างความยากในการคำนวณของงาน a) และ b) สำหรับปัญหาการคำนวณดุลยภาพ เราต้องการที่จะเข้าใจสถานการณ์ (และส่วนใหญ่เป็นช่องว่างระหว่าง a) และ c)) สำหรับปัญหาการคำนวณอื่น ๆ

คำถาม:

รูปแบบพื้นฐานของคำถามพร้อมตัวอย่าง

เราเริ่มต้นด้วยปัญหาการคำนวณปัญหา X

ตัวอย่างสามารถ

ปัญหา X: แก้ปัญหาอินสแตนซ์ของ SAT ด้วยตัวแปร n

นอกจากนี้เรายังระบุ

A: algoritm ที่มีปัญหา X

และเราก็ก่อปัญหาใหม่

ปัญหา Y: จำลองอัลกอริทึม A

และเรามีความสนใจในความยากลำบากในการคำนวณปัญหา Y เราต้องการเข้าใจคลาสของปัญหาดังกล่าว Y สำหรับอัลกอริธึม A ทั้งหมดที่แก้ปัญหาเดิม X โดยเฉพาะอย่างยิ่งเราต้องการทราบว่าปัญหา Y สามารถทำได้ง่ายเพียงใด เป็น) ถ้าเราได้รับอนุญาตให้เลือกอัลกอริทึม A ที่จะ

การดำเนินการที่เสนอในคลาสความซับซ้อน

เริ่มด้วยคลาสที่ซับซ้อนซึ่งอธิบายโดยงานคำนวณบางอย่าง ให้อัลกอริทึม A เพื่อดำเนินการทุกอินสแตนซ์ของงานการคำนวณนี้พิจารณาคลาสความซับซ้อนใหม่ซึ่งอธิบายโดยงานการคำนวณของการจำลองทั้งหมด จากนั้นเราสามารถ (หวังว่า) จะกำหนด "อุดมคติ" ของคลาสความซับซ้อนCCAA

C+={CA: for all algorithms A}.

If we let P to describe whatever a digital computer can do in polynomial time (so I dont want to restrict attention e.g. to decision problems) then P+ is the ideal spanned by P itself.

Finally, My Questions

My questions are:

1) Is the definition makes sense (in the wide sense of the word sense). Is it well known or the same as (or similar to) some well known thing. (My formulation was informal and in particular when we move from specific problems like SAT to a complexity class like NP we have to worry about various things that I neglected.)

The next two questions assume that the definition can make sense or salvaged to make sense.

2) Suppose we equip ourself with all the standard conjectures regarding computational compleity. Can we say what C+ is supposed to be for some familiar complexity classes. (E.g. C=NP, C=P-space,..)? EDIT: Several people pointed out that PSPACE+=PSPACE. So > we can ask instead what is (PNP)+? is PH+=PH?

Can we guess what are the compexity classes C so that C+ is the ideal spanned by C?

So the question how easy can the computational task of simulating an algorithm A for 3-SAT (when we can choose the algorithm to make it as easy as possible) is an interesting special case.

3) Is there hope to actually prove something about this operation?

Of course, if you prove that all complexity classes in NP+ are P-space hard this will show that P=NP implies P=PSPACE, which (I think) would be a huge and highly unexpected result. But if you show that all complexity classes in NP+ are hard to somthing say in the third level of the polynomial Hieararchy (e.g. Δ3P) this would only imply things that we already know, things that follow from the fact that P=NP causes PH to collapse.


3
Interesting question! But: "Of course a) is at least as hard as b) which is at least as hard as c)." Shouldn't the order be the other way around?
Bart Jansen

2
Is it possible to include a link or maybe a brief description of what it means to 'simulate the entire algorithm A'. Like, what is the difference between 'simulate' and 'run' in this case? Is it possible to simulate an algorithm faster than its running time?
Artem Kaznatcheev

1
Dear Artem, by simulating an algorithm on a specific instance I mean describing the entire evolution of the algorithm. (So maybe its like "running" the algorithm.) You cannot simulate the algorithm faster than its running time. It is not a standard notion (to my knowledge) so I cannot give links or references (but hope to get link and references.). Simulating the algorithm is different than just the computational task of "give the same output as algorithm A" which is related to the motivation and task b) described in the question.
Gil Kalai

2
Dear Gil, I am failing to see why we cannot simulate an algorithm A with resources of the same order as A uses. Unless some of the resources are more restricted we can just simulate whatever A does. Let me see if I understand the motivation part correctly: We have a problem Q in class C. A is an algorithm possibly outside C solving Q. Although finding a solution for Q can be done in C, finding one of the solutions that A finds can have complexity outside C. Am I understanding the motivation part of the post correctly?
Kaveh

2
Yes yes we are assuming that the algorithm A is deterministic! I don't have a clear intuition why we should expect that simulating every deterministic algorithm for 3-SAT is P-space hard. This is the question! I wanted to see what experts think.
Gil Kalai

คำตอบ:


12

Problem: Let A be a deterministic algorithm for 3-SAT. Is the problem of completely simulating the algorithm A (on every instance of the problem) P-Space hard?

I don't understand the statement of this problem. But I think there is a natural way to formalize your more general question which may shed a little light on it. Maybe I am completely missing your point, but hopefully you still find something interesting to read here.

1) Is the definition makes sense (in the wide sense of the word sense). Is it well known or the same as (or similar to) some well known thing. (My formulation was informal and in particular when we move from specific problems like SAT to a complexity class like NP we have to worry about various things that I neglected.)

One way to make sense of the task exactly simulate algorithm Y is the following. Let's fix the model to be one-tape Turing machines for simplicity; what I will say can apply to any typical computational model.

For each algorithm Y and input x, we can define its computation history HY(x,i,j): Given integers i and j which range from 0 to the running time of Y, HY(x,i,j) equals the content of the jth cell of the tape of Turing machine Y on input x in time step i. (And if the tape head is reading the jth cell in the ith step, include that too along with the machine's state.) Of course, computation histories come up all the time in complexity theory.

Now, one could argue that any algorithm which can decide the language

CY={(x,i,j,σ) | HY(x,i,j)=σ}

(or simulate the function HY on all inputs) is solving the task exactly simulate algorithm Y, because it has the ability to print every little part of every possible computation of algorithm Y. Certainly, given an oracle for CY one could do a step-by-step simulation of Y.

2) Suppose we equip ourselves with all the standard conjectures regarding computational complexity. Can we say what C+ is supposed to be for some familiar complexity classes. (E.g. C = NP, C = P-space,..)? Can we guess what are the complexity classes C so that C+ is the ideal spanned by C?

This is still an interesting question, under the above proposal. For deterministic time classes, nothing changes. P+ is just P: we can decide CY in polytime, for every polytime algorithm. Similarly EXP+=EXP. Also PSPACE+ is still PSPACE. For nondeterministic time complexity classes, the situation becomes more interesting. In that case, an algorithm Y can have multiple computation histories, so HY is no longer well-defined. However we still want to print some computation history, so our "exact simulation" would have to isolate a specific nondeterministic computation history and then print its values. For an NP algorithm Y, one can say that CYPNP: we can use the NP oracle to binary search for the "first" accepting computation history (in lex order), then once we have obtained it, print the relevant bits. For an NEXP algorithm Y, one can say CYEXPNP, for similar reasons.

Can we put NP+ in a smaller class? I don't know. Notice we cannot simply redefine

CY={(x,i,j,σ) |  there exists a HY such that HY(x,i,j)=σ}

to try to put CY in NP, because we need the history string to be the same for all quadruples involving x, in order to "exactly simulate algorithm Y".

Anyway, this issue of not being able to "print a witness" to an NEXP computation without going to EXPNP does arise in some situations, such as circuit complexity. If NEXP has polynomial size circuits, then is it also the case that CYP/poly for every nondeterministic 2nk time Y? Impagliazzo, Kabanets, and Wigderson answered this question affirmatively in 2001. Their proof is extremely interesting, invoking tools from derandomization and diagonalization (why would derandomization be necessary for such a result?) and it turns out to be a very useful theorem for proving circuit lower bounds for NEXP functions.

Is there hope to actually prove something about this operation?

Maybe... that depends on whether you are happy with the above formalization of your question. For a deterministic 3-SAT algorithm Y, I think the above exact simulation of Y problem would be PNP(1)-hard, where PNP(1) is polynomial time with one query to NP. (The annoying syntax of StackExchange requires that I write (1) instead of the alternative. Earlier I said CY should be PNP-hard, but I am not sure of the details: you may see how to generalize the below.)

We give a polytime many-one reduction from every LPNP(1) to CY. Given such an L, let M be a machine recognizing L that does a single NP query. WLOG, that query is a SAT formula. Also WLOG, the SAT query can be "postponed" until the very last step of the computation, in the following sense: there is a polynomial time algorithm A(x) which prints a formula F and bit b, such that for all x,

M(x) accepts iff A(x)=(F,b) such that (SAT(F) XOR b) = 1.

(M may reject iff F is satisfiable, or it may accept; the bit b captures this.)

For simplicity, let's say when Y ends its computation, it moves its tape head to cell 1, writes "accept" or "reject" in that cell, and loops forever. Then, asking if (F,T,1,accept)CY for sufficiently large T will tell us if F is accepted. (In general, we just need that it's efficient to compute the instance y of CY which will tell us.) Note this already shows that CY is both NP-hard and coNP-hard; the latter is true because (F,T,1,reject)CY iff F is not satisfiable.

The final reduction from L to CY is: given x, run A(x) getting (F,b). If b=0 then output (F,T,1,accept), else if b=1 output (F,T,1,reject).

For every x we are producing (in polynomial time) a y such that M(x) accepts iff yCY.

(Thanks to Joe for demanding that I be clearer about this part.)

But I don't see (for example) how to get Σ2P-hardness. To reduce Σ2-SAT to the problem, it would appear you'd need to write a 3-CNF SAT instance x which simulates your deterministic algorithm Y within it (where Y is solving Tautologies on various subproblems). But as Y has no given time bound, that 3-CNF x could be huge, so you don't necessarily get a polynomial-time reduction. Unless I am missing something.


Ryan, many thanks for your answer. I am interesting how hard it is to simulate a deterministic algorithm Y for 3-SAT. And the question is if no matter what Y is this is P-space hard. (Your understanding of simulating nondeterministic algorithms as well is also interesting and perhaps is the correct question but I only considered simulating a deterministic algorithms.)
Gil Kalai

Yes, I thought the last paragraph of my answer would address this part.
Ryan Williams

I see. Yes indeed it does. I also suspected it might be provably PNP-hard which is interesting (but I am not sure if I understand your proof). Do you expect that PNP is the correct answer? I also suspected that proving something beyond PNP would be difficult. Going back from what we can prove to what we should believe, Ryan, what do you think the answer is?
Gil Kalai

Well, the complexity of CY will differ depending on the algorithm Y. Some CY may be very difficult and others may be much easier. But I think that for every algorithm Y, you probably won't do much better than saying "CY is PNP-hard". (I don't think that for every Y you can get Σ2P-hardness, for the intuitive reason I gave above.)
Ryan Williams

Ryan, you say that "there is a polynomial reduction from a PNP complete language ... to CY", but your reduction seems to use multiple instances of CY. Surely this shows instead that there is a polynomial reduction from a PNP-complete problem to PCY?
Joe Fitzsimons

7

I initially posted an incorrect answer, so hopefully this is an improvement.

I'm going to start out by considering the 3SAT example. In your comment on Ryan's answer you say

I am interesting how hard it is to simulate a deterministic algorithm Y for 3-SAT. And the question is if no matter what Y is this is P-space hard.

The answer to this is that it is not PSPACE-hard for at least some Y, assuming that NPPSPACE, but that there exist other algoriths for which it is PSPACE-hard. Showing the latter is trivial: We simply construct an algorithm which interprets the bit string representing the 3SAT formula instead as a TQBF problem, which it then solves before solving the 3SAT instance. Obviously there is nothing special about TQBF in this case, so the algorithm can be made arbitrarily hard to simulate. So we should only care about lower bounds on simulation of any algorithm for a given problem, rather than a specific algorithm.

With that in mind, we construct the following algorithm to solve 3SAT:

Take a register of n bits (initially all set to 0) to contain a trial solution, together with a register containing the 3SAT instance, a counter register of size log2(c+1) initially set to 1 and and two flag bits (call these the fail flag and the accept flag). Here c is the number of clauses. The algorithm then proceeds as follows:

  • If the value of the clause counter k is less than or equal to c, and the trial solution is not 111......1, check whether clause k is satisfied. If not set the fail bit. Increment the counter.
  • If the value of the clause counter k is less than or equal to c, and the trial solution is 111......1, check whether clause k is satisfied. If it is not, set the fail flag. Increment the counter.
  • If k exceeds c, and the trial solution is not 111......1, check if the fail flag is set. If so then increment the trial solution, reset the counter k to 1, and unset the fail flag. If the fail flag was not set, set the accept flag, set the clause counter k to zero, set the trial solution to zero and halt.
  • If k exceeds c, and the trial solution is 111......1, check if the fail flag is set. If the fail flag was not set, set the accept flag. Set the clause counter k to zero, set the trial solution to zero and halt.

When the algorithm halts, the state of the accept flag tells you whether or not the 3SAT formula can be satisfied.

Now, if I want to compute the state of the algorithm at time i I have an algorithm to compute this in polynomial time with a single call to an NP oracle as follows:

Note that for any i, assuming the accept bit has not yet been set, the state of the registers can be calculated in polynomial time, since the value of k and the trial solution register t are simply functions of i. Determining if the fail flag is set can be done in polynomial time, simply by checking whether the current state of the trial solution register satisfies all clauses less than or equal the current value of k. If and only if this not the case, the fail flag is set. The accept flag is set to zero.

Similarly, if the accept bit has already been set, the state of the registers can be efficiently computed, since everything is zero except the accept bit, which is set.

So the only hardness comes in determining whether the accept bit is set. This is equivalent to determining whether the given 3SAT instance has a solution less than t. If it does, then the accept bit must necessarily be set, and if it does not, then the accept bit must necessarily be zero. Clearly this problem is itself NP-complete.

Thus the state of the system at step i can be determined by in polynomial time with a single query to an NP oracle.

Important update: Initially I had misread Ryan's formulation of exact simulation as a decission problem, and so my claim that the decission version was in NP was incorrect. Given the problem of deciding whether bit j at step i on input x as formulated in Ryans answer, then there are 3 possibilities:

  1. This bit is constant in independent of whether F is satisfiable. As there are only two possible states for the system at this time (both of which can be computed in P) determining if this is the case, and if so, whether the value is equal to σ is in P.
  2. The bit is equal to σ if FSAT, and unequal otherwise. This problem is clearly in NP, as the satisfying assignment of F acts as a witness.
  3. The bit is equal to σ if FUNSAT in which case the problem is then in coNP.

Clearly deciding which one of these three is the case can be done in polynomial time, simply by comparing the value that bit takes if FSAT and if FUNSAT. Thus the exact simulation problem is in NP coNP. Thus, as Ryan's lower bound and my upper bound match, assuming both are correct, I think we have an answer: CY=NPcoNP.

Note that there is nothing special about 3SAT in this case, and the same could be done for any problem in NP. Further, the same trick can be used for any non-deterministic complexity class, not just NP, which seem to be the hard ones to simulate. For deterministic classes you can simply run the best algorithm and halt at step i. So with this in mind, full simulation of at least some deterministic algorithm for a problem is only as hard as solving the problem itself.


1
Can't you use the same technique to show that b) Reaching the same solution as algorithm A is already PSPACE-hard? Have the algorithm choose between one of two possible solutions depending on the solution of a PSPACE-hard problem encoded into the input.
Peter Shor

1
@Peter: Sure, you could make it arbitrarily hard, but I thought the interesting question was the upper bound minimized over A, which turns our to be NP.
Joe Fitzsimons

3

Very interesting thought! Here's an extended comment that was too long to post as such:

Regarding the definition in (1) as such, that is:

Start with a complexity class C which is described by some computational task. Given an algorithm A to perform every instance of this computational task, consider a new complexity class CA which is described by the computational task of completly simulating A. Then we can (hopefully) define an "ideal" of complexity classes: C+={CA: for all algorithms A}.

I believe you're going to quickly run into an issue with undecidability for non-trivial membership in C+. In particular, given the description of two TMs M and M, it's well-known that deciding whether they accept the same language (i.e. L(M)=?L(M) is undecidable in general by reduction from the Halting Problem.

Further, given the description of a Turing Machine , there is always a trivial simulation: Just construct a new Turing Machine M that calls M as a subroutine (using its description), which accepts if M accepts and rejects if M rejects. This only costs a linear overhead. Specifically, if M runs in t(n) computational steps, then M runs in O(t(n)) (whereby "run," I mean "simulates M exactly").

This suggests to me that if there's any serious traction to be gained here, the precise way you go about making the definition of the ideal of a complexity class is going to be fairly important. In particular, if you intend to show that the ideal of, say, NP is PSPACE-hard, you'll have to rule out the notion of a trivial, linear-time simulation of the NP machines in question.

With respect to the homotopy methods described in the talk/paper and GPS's PSPACE-completeness result, I believe the "gap" you're witnessing between PPAD-completeness and PSPACE-hardness is due to the distinction between finding any NE (in the sense of END OF LINE) and finding a unique NE given a specific, initial configuration (in the sense of OTHER END OF LINE).


Dear Daniel, thanks for your answer. I am not sure I see why undecidability of membership in C^+ (Or even in C itself) is relevant to the question. The questions if :a) based on all our conjectures and beliefs regarding seperations of complexity classes is it the case that for every algorithm A for 3-SAT the computational task of simulating A (for every instance of 3-SAT) is Δ3P hard. b) Is it possible to actually proves such (or a similar) statement.(Maybe something very basic is wrong with my questions but I am not sure decidability is the issue.)
Gil Kalai

Gil, see if this speaks to your question at all: Fix some (arbitrary) algorithm A for 3-SAT. Consider a new algorithm B. Then we want to claim: B simulates A, in the sense of your (b) -- i.e. that B reaches the same solutions as A on all well-defined inputs. Since we can view algorithms as Turing machines, we can take the view that A accepts 3-SAT (by the supposition). To prove the claim, it appears to me that we then need to decide the question "Does B (viewed as a TM) accept 3-SAT as well?", which leads into undecidability issues.
Daniel Apon

I should point out that it's specifically the phrase "for all algorithms A" in the definition of C+ coupled with the notion of saying/guessing (or, presumably, computing or deciding) the elements of the set that gives me pause, if nothing else. Once we start considering computation on properties of arbitrary algorithms or languages or classes/sets of languages, the Halting problem often seems to creep in.
Daniel Apon

1
Dear Daniel, you wrote "Then we want to claim: B simulates A, in the sense of your (b) -- i.e. that B reaches the same solutions as A on all well-defined inputs." This is not what I mean by "B simulates A". For me B simulates A means that it describes precisely the entire "running" of algorithm A not just reach the same "solutions" (or output).
Gil Kalai

1
Regarding your second comment. It looks that we can find a reasonable restriction on the algorithms we consider or formulate the question a little differently: E.g. consider the statement "For every algorithm A to solve 3-SAT it is P-space hard to simulate A." I dont see how the halting problem creep in (more than in other questions in computational complexity).
Gil Kalai
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.