ฉันพบการอ้างอิงถึงจุดคงที่ในคำถามและคำตอบที่ stackexchange และค้นหาความหมายบนเว็บอย่างชัดเจนเพื่อค้นหาการอ้างอิงที่ไซต์เช่น Wikipedia อย่างไรก็ตามไม่มีการอ้างอิงใดตอบคำถามของฉันว่าอะไรคือจุดคงที่และความหมายในโลกของวิทยาศาสตร์คอมพิวเตอร์
ฉันพบการอ้างอิงถึงจุดคงที่ในคำถามและคำตอบที่ stackexchange และค้นหาความหมายบนเว็บอย่างชัดเจนเพื่อค้นหาการอ้างอิงที่ไซต์เช่น Wikipedia อย่างไรก็ตามไม่มีการอ้างอิงใดตอบคำถามของฉันว่าอะไรคือจุดคงที่และความหมายในโลกของวิทยาศาสตร์คอมพิวเตอร์
คำตอบ:
ในวิทยาการคอมพิวเตอร์การใช้คะแนนคงที่ที่โดดเด่นที่สุดในทฤษฎีขัดแตะ ¹ ขัดแตะเป็นชุดสั่งบางส่วนกับคุณสมบัติเพิ่มเติมที่ได้รับสององค์ประกอบx , y ∈ S , ชุด{ x , y }มีทั้ง supremum และต่ำสุด (ในS )
ตอนนี้คุณมักจะพิจารณาเดียวฟังก์ชั่นบนตาข่ายนี้ซึ่ง "บรรจบ" คือว่าสำหรับบางx ∈ SคุณมีF ( x ) = x ผลลัพธ์ที่สำคัญในพื้นที่นี้ทฤษฎีบทจุดคง Kleene ของและทฤษฎีบท Knaster-Tarski
เป็นตัวอย่างที่โดดเด่นเป็นตาข่ายสำหรับชุดบางส่วนและฉเกิดจากความหมายอุปนัย ตัวอย่างเช่นให้A = { a , b } ∗และเรากำหนดภาษาL ∈ 2 { a , b } ∗โดย
คำนิยามอุปนัยนี้สอดคล้องกับฟังก์ชั่นเสียงเดียว
โดย Knaster-Tarski ทฤษฎีบทเรารู้มี fixpoint ที่เล็กที่สุดซึ่งเป็น supremum ทุกขนาดเล็ก "ผลกลาง" (ซึ่งสอดคล้องกับขีดมักจะใช้การก่อสร้างของคำนิยามอุปนัย) และที่มีขนาดเล็กที่สุด fixpoint แน่นอนL
โดยวิธีการfixpoint ที่ใหญ่ที่สุดยังมีใช้ ดูที่นี่สำหรับตัวอย่าง
ในทฤษฎีการเรียกซ้ำมีทฤษฎีบทจุดคงที่อีกอันหนึ่งอันเนื่องมาจาก Kleene มันบอกว่า ²
ให้ a หมายเลข Gödel³และr : N → Nรวมฟังก์ชันที่คำนวณได้ (สัญชาตญาณ: คอมไพเลอร์) จากนั้นก็มีฉัน∈ Nเช่นว่าφ R ( ฉัน) = φฉัน
ในความเป็นจริงมีจำนวนมากเช่นอย่างไม่มีที่สิ้นสุด; หากมีที่ที่มีเพียงจำนวน จำกัด เราสามารถแก้ไขr (โดยการค้นหาจากตาราง) เพื่อไม่ให้มีจุดคงที่และขัดแย้งกับทฤษฎีบท
ให้ฉันอธิบายเพิ่มเติมเล็กน้อยเกี่ยวกับคำตอบของ meisterluk: ลองนึกภาพเรากำลังพยายามนิยามฟังก์ชัน factorial: จำนิยามของฟังก์ชัน factorial:
fact 0 = 1
fact (n+1) = n*(fact n)
ขณะนี้อยู่ในกรอบ PL บางอัน (เช่น -calculus), it isn't immediately obvious how to define such a function. However, it may be easy to define the following higher-order function, so-called because it takes as input another function and a natural number
Fact f 0 = 1
Fact f (n+1) = n * (f n)
There is no use of recursion in this function definition. However, if there was some way of finding the fix-point of Fact
, that is, a function such that
Now in frameworks like the -calculus, one can show that all fixed-points of this nature do, in fact, exist, which makes it clear that you can use it as a general programing language.
There are many other uses to the notion of fixed-points in computer science, but most boil down to the one I showed above, i.e. prove that certain fixed-points exist to be able to show that certain functions or constructs are well-defined in your framework (here we have shown that the factorial function exists).
A fixed point of a function is an element for which is equal to . For example, the function has two fixed points, which are the values and , and the function has three fixed points. Mathematically that is the definition.
Now, depending on the mathematical structure you are dealing with, there are very many different reasons to be interested in fixed points. For example, if you consider a dynamic system that looks at the state of the world and changes it (like a thermostat) then a fixed point corresponds to a stable configuration. If you think of games in the mathematical sense of game theory, fixed points correspond to equillibria, if you think of the the behaviour of an optimization routine that iteratively improves its solution, a fixed point corresponds to an optimal solution. So the mathematical notion of a fixed point has a lot of applications in a lot of different contexts.
A very common, and fundamental application of fixed points in computer science is to mathematically model loops and recursive programs. If we try to model a program as a mathematical function, both loops and recursion are not obvious to model. This is because the body of a loop is a program and can be represented as a mathematical function. How do we derive the function representing the loop's behaviour? It corresponds to applying the loop body repeatedly, in conjunction with the loop guard, until no further change is possible. Similarly, if we model recursive programs mathematically, we need a mathematical notion of what it means for a function to apply itself. This answer is provided by fixed points.
A function in mathematics is a map between input and output values. Fixed points are input values (for a function) which map to output values satisfying equality with the input.
For the equality function the set of input value equals to the set of fixed points of the function. For a function the set of fixed points is limited to .
As far as computer science is concerned, we are talking a lot about partial functions, but this does not change the definition of fixed points for us.
You might also be confused about a totally different topic: Fixed-point arithmetic is a concept how to represent real numbers in the memory. But the name "fixed points" does not reference to this topic in general (because there is only 1 point).
game theory is a major subarea of CS and an important concept there is the Nash equilibrium which is a fixed point theorem. it gives a means of identifying optimal game strategies given that other players are aware of each others strategies. it can be proven via Kakutani fixed point theorem or the Brower fixed point theorem. Nash won the Nobel Prize in Economics in part for developing this theory.