Làm thế nào là số thực được chỉ định trong tính toán?


27

Đây có thể là một câu hỏi cơ bản, nhưng tôi đã đọc và cố gắng tìm hiểu các bài báo về các chủ đề như tính toán cân bằng Nash và kiểm tra suy thoái tuyến tính và không chắc chắn về cách các số thực được chỉ định làm đầu vào. Ví dụ, khi tuyên bố rằng LDT có giới hạn dưới đa thức nhất định, các số thực được chỉ định khi chúng được coi là đầu vào như thế nào?


1
Bạn có thể tìm thấy cuộc thảo luận ở đây quan tâm: en.wikipedia.org/wiki/Computable_number
Joseph Malkevitch

Ai đó nên đặt các giấy tờ này cùng nhau trong một cuốn sách điện tử có thể tải xuống miễn phí.
Dilawar

Câu trả lời:


34

Tôi không đồng ý với câu trả lời được chấp nhận của bạn bởi Kaveh. Đối với lập trình tuyến tính và cân bằng Nash, điểm nổi có thể được chấp nhận. Nhưng số dấu phẩy động và hình học tính toán trộn rất tệ: lỗi vòng làm mất hiệu lực các giả định tổ hợp của các thuật toán, thường xuyên khiến chúng bị sập. Cụ thể hơn, rất nhiều thuật toán hình học tính toán phụ thuộc vào các thử nghiệm nguyên thủy kiểm tra xem một giá trị đã cho là dương, âm hay bằng không. Nếu giá trị đó rất gần với 0 và làm tròn điểm nổi khiến nó có dấu sai, điều tồi tệ có thể xảy ra.

Thay vào đó, các đầu vào thường được coi là có tọa độ nguyên và kết quả trung gian thường được biểu diễn chính xác, dưới dạng số hữu tỷ với độ chính xác đủ cao để tránh tràn hoặc là số đại số. Các phép tính xấp xỉ dấu phẩy động cho các số này có thể được sử dụng để tăng tốc các phép tính, nhưng chỉ trong các tình huống mà các số có thể được đảm bảo đủ xa từ 0 mà các bài kiểm tra dấu hiệu sẽ đưa ra câu trả lời đúng.

Trong hầu hết các bài viết về thuật toán lý thuyết trong hình học tính toán, vấn đề này được bỏ qua bằng cách giả sử rằng các đầu vào là số thực chính xác và các nguyên hàm là các phép thử chính xác về dấu hiệu của các đa thức bậc thấp trong các giá trị đầu vào. Nhưng nếu bạn đang thực hiện các thuật toán hình học thì tất cả điều này trở nên rất quan trọng.


Tôi đã thích phần câu trả lời của Kaveh khi anh ấy gợi ý rằng có những mô hình tính toán thay thế, vì điều này dường như phù hợp với những gì tôi đã đọc trong bài báo mà tôi đang xem. Điều đó nói rằng, tôi thực sự không biết câu trả lời ... Tôi đã không chấp nhận câu trả lời của Kaveh. Tôi đã thực sự nghi ngờ rằng các số đại số có thể có liên quan đến nó. Dù sao, cảm ơn bạn đã dành thời gian để cân nhắc câu hỏi của tôi ... Tôi sẽ suy nghĩ và đọc thêm trước khi tôi chấp nhận câu trả lời.
Philip White

Tôi đã không nói rằng đó là một mô hình tốt cho CG, quan điểm của tôi là ngay cả khi các tác giả nói đầu vào là số thực, chúng không thực sự là số thực . Tôi đồng ý với bạn rằng tôi không nên bao gồm CG trong số những người khác. Tôi đã đọc một số lượng rất nhỏ các giấy tờ CG, mô hình BSS có được thiết lập tốt trong các giấy tờ CG lý thuyết không?
Kaveh

1
Xin tha thứ cho sự thiếu hiểu biết của tôi, nhưng BSS đại diện cho điều gì?
Philip White

1
Mô hình BSS là một mô hình lý thuyết giả định rằng các số thực tùy ý có sẵn. Những gì được thực hiện trong CG liên quan đến việc triển khai thực tế của một mô hình thường bị giới hạn ở các số đại số. Ngoài ra việc triển khai CG là xa chi phí đơn vị cho mỗi hoạt động. Vì vậy, chúng không giống nhau. Xem ví dụ: mô hình số thực LEDA, citeseerx.ist.psu.edu/viewdoc/iêu
David Eppstein

10
@Kaveh: Không. Các thuật toán hình học được thiết kế là chính xác, trong mô hình RAM thực, cho đầu vào thực tùy ý, không chỉ cho đầu vào hợp lý. Cụ thể, có những thuật toán hình học không thể thực hiện chính xác, bởi vì chúng sử dụng các nguyên hàm không đáng kể trên RAM thực nhưng không có thuật toán hiệu quả nào được biết đến với RAM nguyên (thực tế). Ví dụ tốt nhất là tổng của vấn đề căn bậc hai: Với hai bộ T của số nguyên dương, là Σ s S ST ? sSs>tTt
Jeffε


8

Đây không phải là một câu trả lời trực tiếp cho câu hỏi của bạn, nhiều hơn là một câu trả lời cho Raphael . Gần đây đã có một số công việc chỉ định tính toán số thực bằng cách sử dụng cưỡng chế. Dưới đây là một số bài viết về chủ đề này.

Họ hầu như không bao gồm toàn bộ phổ tính toán số thực, nhưng tiến trình đang được thực hiện để loại bỏ các vấn đề khác nhau.


1
R

Điểm tốt. Tôi không chắc những hạn chế của phương pháp cưỡng chế là gì. Cách tiếp cận là trong giai đoạn trứng nước.
Dave Clarke

7

Độ phức tạp tính toán của các tính toán so với số thực được xem xét bởi Blum, Cucker, Shub và Smale . Dưới đây là mô tả một phần của cuốn sách:

Lý thuyết tính toán cổ điển có nguồn gốc từ công trình của Goedel, Turing, Church và Kleene và là một khuôn khổ cực kỳ thành công cho khoa học máy tính lý thuyết. Tuy nhiên, luận điểm của cuốn sách này là nó cung cấp một nền tảng không đầy đủ cho tính toán khoa học hiện đại trong đó hầu hết các thuật toán là thuật toán số thực. Mục tiêu của cuốn sách này là phát triển một lý thuyết tính toán chính thức, tích hợp các chủ đề chính của lý thuyết cổ điển và áp dụng trực tiếp hơn cho các vấn đề trong toán học, phân tích số và tính toán khoa học. Trên đường đi, các tác giả xem xét các vấn đề cơ bản như: Bộ Mandelbrot có thể quyết định được không? Đối với các bản đồ bậc hai đơn giản, Julia có thiết lập một bộ tạm dừng không? Sự phức tạp thực sự của Newton 'là gì Phương pháp s? Có một thuật toán để quyết định vấn đề về chiếc ba lô trong một số bước thực hiện không? Là Hilbert Nullstellensatz không thể xâm nhập? Là vấn đề xác định vị trí một số 0 thực của một đa thức bậc bốn không? Là lập trình tuyến tính có thể dễ dàng hơn thực tế?

Bạn có thể tìm thấy một đánh giá của cuốn sách này trên ACM SIGACT News .


Cuốn sách này trông rất thú vị, cảm ơn bạn.
Philip White

Bạn được chào đón nhất.
MS Dousti

5
Điều đáng chú ý là mô hình tính toán BSS so với thực tế đang gây tranh cãi, vì những lý do giống như những gì David Eppstein đã đề cập trong một bình luận ở trên. Ví dụ: tiên đề BSS tính toán cho dù x <y mất một bước thời gian, đối với các số thực x và y tùy ý . Ngược lại, các cách tiếp cận như Hiệu quả loại hai (TTE) xác định các máy lấy gần đúng đầu vào thành thực và đầu ra gần đúng tính toán cho các hàm so với thực. Thời gian trôi qua càng nhiều, các xấp xỉ đầu vào và đầu ra càng tốt. Cách tiếp cận đó cảm thấy thực tế hơn đối với tôi.
Aaron Sterling

@Aaron Sterling: bạn có biết một tài liệu tham khảo tốt cho Hiệu quả Loại Hai không?
Joshua Grochow

3
@Joshua Grochow: Xin lỗi tôi đã không đến đây sớm hơn. Cuốn sách Kaveh liên kết đến là "Nielsen và Chuang" của TTE. Tuy nhiên, nó có nhiều ký hiệu đến nỗi nó có vẻ phức tạp đối với một người đọc bình thường. Thay vào đó, tôi sẽ đề xuất các slide hướng dẫn sau đây của Vasco Brattka: cca-net.de/vasco/cca/tutorial.pdf
Aaron Sterling

7

Chỉnh sửa / Sửa chữa dựa trên các ý kiến

Khi các tác giả nói về đầu vào số thực trong lập trình tuyến tính, tính toán cân bằng Nash, ... trong hầu hết các bài báo (bài báo không thuộc chủ đề tính toán / độ phức tạp so với số thực), chúng không thực sự có nghĩa là số thực. Chúng là số hữu tỉ và số phát sinh từ chúng do các thao tác của chúng (số đại số). Vì vậy, bạn có thể nghĩ về chúng như được đại diện bởi các chuỗi hữu hạn.

Mặt khác, nếu bài báo về khả năng tính toán và độ phức tạp trong phân tích , thì họ không sử dụng mô hình tính toán thông thường và có nhiều mô hình tính toán / độ phức tạp không tương thích khác nhau so với số thực.

Nếu bài báo không chỉ định mô hình tính toán trên các số thực, bạn có thể giả định rằng đó là trường hợp đầu tiên, tức là chúng chỉ là các số hữu tỷ.

Hình học tính toán là khác nhau. Trong hầu hết các bài viết trong CG, nếu các tác giả không chỉ rõ mô hình nào liên quan đến nó thì tính chính xác và phức tạp của thuật toán đang được thảo luận, có thể được coi là mô hình BSS (còn gọi là RAM thực).

Mô hình là không thực tế và do đó việc thực hiện không đơn giản. (Đây là một trong những lý do mà một số người trong CCA thích các mô hình lý thuyết Ko-Friedman / TTE / Miền , nhưng vấn đề với các mô hình này là chúng không nhanh như tính toán dấu phẩy động trong thực tế.) Tính đúng đắn và phức tạp của thuật toán trong mô hình BSS không nhất thiết phải chuyển sang tính chính xác của thuật toán được thực hiện.

Cuốn sách của Weihrauch chứa một so sánh giữa các mô hình khác nhau (Phần 9.8). Nó chỉ có ba trang và đáng đọc.

(Ngoài ra còn có cách thứ ba, có thể phù hợp hơn với CG, bạn có thể muốn xem qua bài viết này:

Chee Yap, " Lý thuyết về tính toán thực theo EGC "

Trong đó EGC là tính toán hình học chính xác .)


Tôi nghĩ rằng bài báo tôi chủ yếu quan tâm đến việc chỉ định một mô hình, cho rằng nó bao gồm câu "Bây giờ chúng tôi chính thức xác định mô hình tính toán của chúng tôi." Bài viết được gọi là "Giới hạn thấp hơn cho các vấn đề thỏa mãn" và dường như có một số thảo luận về cây quyết định tuyến tính và đa thức truy vấn. Vì vậy, tôi nghĩ rằng đó là câu trả lời tôi đang tìm kiếm ở đó ... cảm ơn. Tôi sẽ đọc lại bài báo và xem liệu tôi có thể hiểu ý nghĩa của nó không.
Philip White

2
Tôi không đồng ý. Đây là mô hình sai cho hình học tính toán. Xem câu trả lời chi tiết hơn của tôi dưới đây.
David Eppstein

1
@Kaveh: Tôi nghĩ bạn nên nói rằng chúng là những số hữu tỷ, không phải là số có dấu phẩy động. Các số hữu tỷ chính xác rất dễ biểu diễn bằng các chuỗi hữu hạn và trong nhiều ứng dụng (ví dụ: các số liên quan đến lập trình tuyến tính) cũng sẽ là các số hữu tỷ nếu đầu vào của bạn là số hữu tỷ. (Tất nhiên, như David Eppstein đã chỉ ra, comp. Geom. Là một ngoại lệ đáng chú ý theo nghĩa là kết quả trung gian thường không hợp lý.)
Jukka Suomela

@Jukka: Bạn nói đúng, tôi sẽ thay thế dấu phẩy động bằng lý trí.
Kaveh

5
Không. Khi tôi viết "số thực", tôi thực sự có nghĩa là "số thực", và do đó tôi có nghĩa là thực sự số thực, thực sự từ các số thực. Có thật không. Cụ thể, trong bài báo @Philip nói về, tôi phải giả sử các thuật toán hoạt động cho đầu vào thực tùy ý , để tôi có thể áp dụng kết quả từ phân tích không chuẩn.
Jeffε

3

Họ không phải và họ không thể, nói chung. Chúng tôi chỉ có thể xử lý một số lượng đầu vào (và đầu ra và hàm) có thể đếm được bằng các mô hình tính toán của chúng tôi. Đặc biệt, bất kỳ đầu vào nào cũng phải hữu hạn nhưng không phải tất cả các số thực đều có biểu diễn hữu hạn.

Bạn có thể, tôi đoán, giả sử một loại tiên tri nào đó mang lại chữ số tiếp theo của một số thực nhất định theo yêu cầu (giống như một luồng). Nếu không, bạn sẽ phải sống với các xấp xỉ (chính xác tùy ý).


Nếu điều này là đúng thì làm sao LDT có thể xử lý số thực? Tôi đã đọc một cái gì đó về "Cây quyết định tuyến tính r" nhưng không thực sự hiểu những gì họ đang nói trong bài báo, "Giới hạn dưới cho các vấn đề về độ chính xác tuyến tính."
Philip White

Tôi cá là họ không thể hoặc họ không sử dụng máy Turing (hoặc các cấu trúc tương đương). Các câu trả lời khác không nghiêm ngặt / chung chung như của tôi sẽ làm sáng tỏ điều này.
Raphael
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.