Điểm:2

Sàng bậc hai: Có quy tắc ngón tay cái để quyết định có bao nhiêu số để sàng không?

lá cờ et

bên trong Thuật toán sàng bậc hai, trước tiên chúng tôi quyết định chọn B và sau đó tìm các thừa số nguyên tố trơn B bằng cách sàng sử dụng đa thức bậc hai.

Tôi có thể tìm thấy một vài công thức giúp tìm ra cách quyết định chọn B.

Để phân tích một số N, chúng ta có thể sử dụng như sau:

$L = e^{\sqrt {\ln(N)ln(ln(N))}}$

$B = L^{\frac {1}{\sqrt 2}}$

Điều này đưa ra một ước tính sơ bộ về những con số trơn tru mà chúng ta nên tìm kiếm.

Tuy nhiên, tôi không thể tìm thấy bất kỳ công thức hoặc quy tắc ngón tay cái nào để tìm ra bao nhiêu số cần sàng bằng cách sử dụng đa thức bậc hai.

Nếu không rõ tôi đang nói về điều gì, hãy để tôi giải thích bằng cách sử dụng Bài viết trên Wikipedia về QS.

Trong phần Thu thập dữ liệu của "Ví dụ về sàng cơ bản", có nội dung như sau:

bắt đầu quá trình sàng lọc cho từng số nguyên tố trong cơ sở, chọn sàng 0 ⤠X < 100 đầu tiên của Y(X).

Vì vậy, ở đây họ chọn tạo danh sách 100 Y(X) để sàng lọc. Có bất kỳ quy tắc hoặc công thức nào để đạt được con số này (100 trong trường hợp này) không?

Điểm:3
lá cờ ng

Trong Sàng bậc hai thuần túy, chúng ta cần tìm thêm một chút quan hệ (tương đương, làm mịn) so với số nguyên tố trong cơ sở nhân tử. Trong này, chúng tôi đếm các số nguyên tố nhỏ $p_i$ điều đó làm cho $N$ một modulo dư bậc hai $p_i$, không phải quyền hạn của họ. Số lượng này cũng là số lượng cột trong ma trận quan hệ (thưa thớt), trong đó quan hệ là các dòng, đóng vai trò là đầu vào cho giai đoạn đại số tuyến tính. Thông thường, nhiều hơn 5 dòng so với cột là đủ. Mỗi mối quan hệ bổ sung tiếp theo làm giảm xác suất thất bại xuống hai lần.

Điều này đưa ra một tiêu chí làm việc để ngừng sàng lọc và bắt đầu đại số tuyến tính, nhưng không trực tiếp cho biết chúng ta sẽ cần sàng lọc bao nhiêu số nguyên. Quy tắc ngón tay cái cho điều đó và các tham số khác, phụ thuộc vào nhiều thứ, bao gồm

  • Điều quan trọng là nếu chúng ta sàng lọc một (QS) hoặc nhiều đa thức (MPQS/SIQS). Với QS, điều thường xảy ra là đa thức phát triển đến các giá trị quá cao, do đó, việc làm trơn trở nên hiếm gặp; sau đó, mở rộng sàng hoặc sử dụng lại sàng để sàng xa hơn trên cùng một đa thức sẽ không giúp được gì nhiều.
  • Chiến lược w.r.t. các giá trị đa thức mà chúng tôi không chắc chắn (hoặc rất tin tưởng), bằng cách tổng hợp nhật ký các thừa số của chúng được tìm thấy bằng cách sàng, rằng chúng đủ mịn cho mục đích của chúng tôi. Chúng ta có thể
    • Bỏ qua chúng, thậm chí nghĩ rằng chúng vẫn có thể $B$-mịn màng.
    • Hãy thử các thừa số nguyên tố nhỏ cho đến các thừa số nguyên tố cao nhất đã sàng $B$, và sức mạnh của họ ngay cả khi họ vượt quá $B$ (nói cách khác, chúng tôi hạn chế $B$-các giá trị mịn của đa thức đã vượt qua bước sàng); điều đó thật dễ dàng và điển hình cho QS (MP/SI) cơ bản.
    • Hãy thử các yếu tố nhỏ lên đến một số giới hạn cao hơn $B'$ (nói cách khác, chúng ta sàng lọc các lũy thừa nguyên tố và nguyên tố để $B<B'$, và hạn chế $B'$-smooths đã qua bước sàng).
    • Ngoài ra, cho phép một thừa số nguyên tố lớn (PMPQS) đạt đến một số giới hạn cao hơn, với hy vọng rằng một xung đột đối với các số nguyên tố lớn này sẽ cho phép hai quan hệ không sử dụng được theo cách khác mang lại một mối quan hệ mới có thể sử dụng được (nghĩa là không có số nguyên tố lớn, để nó phù hợp với số lượng cột giới hạn trong ma trận)
    • Ngoài ra, cho phép hai thừa số nguyên tố lớn (PPMPQS).
  • Ngưỡng sàng lọc (đối với tổng nhật ký các số nguyên tố được tích lũy trong mục sàng lọc), là sự thỏa hiệp giữa việc loại bỏ $B$-smooths, và dành quá nhiều thời gian vào việc cố gắng phân tích các ứng cử viên không mang lại các mối quan hệ có thể sử dụng được.

Các đề xuất để QS hoạt động:

  • Đầu tiên làm cho một cái gì đó xử lý khiêm tốn $N$ không có một mảng sàng!
    • Sử dụng hệ số nhân tử của $p_i$ chế tạo $N$ một dư lượng bậc hai, lên đến một số giới hạn $B$. Sai lầm đầu tiên ở khía cạnh tối ưu lớn sẽ an toàn hơn $B$.
    • Tìm thấy $B$-làm trơn giữa các giá trị của đa thức $t^2-N$ với $t\gtrsim\left\lceil\sqrt N\,\right\rceil$ bằng cách cơ bản nhất (ví dụ: phép chia thử).Tìm một số mịn hơn một chút so với số nguyên tố.
    • Lấy đại số tuyến tính làm việc với nhân tử $N$.
  • Tối ưu hóa hầu hết (hoặc tất cả) các bộ phận dùng thử của $t^2-N$ bằng một bài kiểm tra mà $t\bmod(p_i^k)$ rơi vào một tập hợp thành hai giá trị được tính toán trước.
  • Ở giai đoạn đó, nút thắt cổ chai sẽ được thông suốt bằng cách cố gắng phân tích đầy đủ nhiều yếu tố $t^2-N$ sử dụng phân chia thử nghiệm (được tối ưu hóa), với hầu hết kết quả là không $B$-mịn màng. Giới thiệu mảng sàng lọc, với mục đích là (đáng kể) giảm số lượng ứng cử viên sáng giá, với cái giá phải trả là từ chối sai một vài ứng viên (sàng lọc các lũy thừa nguyên tố giúp hiếm khi từ chối sai). Điều này cho phép tăng $N$ (do đó nâng cao tối ưu $B$).
  • Giới thiệu lần lượt các tối ưu hóa khác:
    • đang có $-1$ trong cơ sở yếu tố, đó cũng là sàng lọc $N-t^2$$t\lesssim\left\lfloor\sqrt N\,\right\rfloor$
    • cải thiện "số nhân" dễ dàng, yếu tố nào $m\,N$ cho một số số nguyên nhỏ đã chọn $m$, sao cho cơ sở thừa số được cải thiện (có tương đối nhiều số nguyên tố nhỏ)
    • sử dụng nhiều đa thức, cho phép sàng lọc và phân tích các ứng cử viên nhỏ hơn nhiều, do đó có nhiều khả năng $B$-làm mịn
    • nút thắt cổ chai vẫn có thể được cố gắng nhân tố hóa các chất mịn đã vượt qua bài kiểm tra sàng (tùy thuộc vào ngưỡng trong sàng và kích thước của cơ sở nhân tố); một số khoản tiết kiệm có thể thực hiện được bằng cách chỉ sử dụng phép chia thử nghiệm (được tối ưu hóa) cho các số nguyên tố nhỏ, sau đó là thứ gì đó tốt hơn, có lẽ là Pollard's rho với phép thử tính nguyên tố khi nó không mang lại kết quả nhanh chóng; thử nghiệm như vậy sẽ cần thiết cho (các) cải tiến lớn.
    • một rồi hai cải tiến lớn (PMPQS và PPMPQS).
  • Tối ưu hóa bất kể nút cổ chai là gì và điều chỉnh nhiều tham số. Cuối cùng, nút cổ chai nên được sàng lọc. Việc triển khai được tối ưu hóa đòi hỏi rất nhiều nỗ lực ở đó, với các kỹ thuật và mã chuyên biệt theo kích thước của các số nguyên tố được sàng lọc và tương tác với (các) bộ đệm CPU.
lá cờ et
`nghẽn cổ chai có lẽ vẫn là cố gắng phân tích thành hệ số của các chất mịn đã vượt qua bài kiểm tra sàng lọc` - Tôi không chắc là mình hiểu điều này - bằng bài kiểm tra sàng lọc, ý bạn là những cái đã được sàng lọc xuống 1, phải không? Nếu vậy, các hệ số công suất chính có thể được tìm thấy như một phần của chính quá trình sàng lọc. Tại sao bạn cần phải thực hiện lại thừa số.
lá cờ et
`Ở giai đoạn đó, nút cổ chai sẽ được giải quyết bằng cách cố gắng phân tích đầy đủ nhiều t2âN bằng cách sử dụng phép chia thử` - bạn không cần thực hiện phép chia thử cho từng số trong danh sách cho mỗi số nguyên tố. Bạn có thể lấy được vị trí của các số đó trong danh sách sẽ chia hết bằng cách sử dụng các nghiệm thu được từ Shanks-Tonnelli.Bạn chỉ chia những con số đó và bỏ qua tất cả những con số khác
fgrieu avatar
lá cờ ng
Bằng cách "kiểm tra sàng", ý tôi là tổng hợp nhật ký (được chia tỷ lệ, có thể là âm) của $p_i$ tại các vị trí thích hợp trong mảng RAM được lập chỉ mục bởi $t$ trong một phần bù và khi đạt đến ngưỡng, hãy chọn mục nhập đó. Điều đó định vị một cách hiệu quả các $t$ đó với các giá trị đặc biệt trơn tru là $t^2-N$, nhưng _not_ đưa ra hệ số của chúng. Tốt nhất, nó mang lại ${p_i}^k$ vượt qua ngưỡng.Phần còn lại của hệ số hóa của $t^2-N$ được chọn bằng kiểm tra sàng cần được tìm thấy để tạo mối quan hệ.
lá cờ et
Ồ, được rồi, hiện tại, tôi chỉ đang nghiên cứu dạng vani của Sàng bậc hai. Với câu trả lời của bạn về việc sàng lọc bao nhiêu số, tôi nghĩ rằng tôi sắp kết thúc câu hỏi đó. Tôi sẽ chuyển sang tối ưu hóa sau này. Cảm ơn bạn rất nhiều vì câu trả lời công phu của bạn.
fgrieu avatar
lá cờ ng
@ user93353: Tôi đã làm lại phần "đề xuất" để kết hợp tối ưu hóa mà bạn mô tả, phần trước đây bị thiếu. Thật vậy, người ta có thể thực hiện tất cả các phép nhân $t^2-N$ chỉ bằng phương pháp này, với chi phí là đủ chính xác và hơi quá chọn lọc trong quá trình sàng lọc. Pollard's rho (hoặc phương pháp khác) để hoàn thành việc nhân tử hóa các ứng cử viên trơn tru chỉ xuất hiện muộn trong trò chơi tối ưu hóa. Từ bộ nhớ, nó rất cần thiết trong PPMPQS.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.