Điểm:2

Chuỗi cộng-trừ với nhân đôi giá rẻ hoặc miễn phí

lá cờ ph

vấn đề liên quan

Tiêu chuẩn Chuỗi cộng-trừ (ASC) cho một số nguyên $k$ xác định thứ tự của các phép tính cộng/trừ (nhân đôi) sao cho $k$ cuối cùng đã đạt được, bắt đầu với $1$. Điều này đặc biệt hữu ích trong ECC để tính toán $k\cdot P$ thông qua cộng/trừ và nhân đôi điểm EC. Mục tiêu là tìm ASC càng ngắn càng tốt, để sử dụng số lượng phép toán cộng/trừ/nhân đôi tối thiểu. Ví dụ., $(1,2,4,8,16,32,31)$ là một ASC cho $31$ (với nhiều phép cộng/nhân đôi và phép trừ cuối cùng). Tuy nhiên, có vẻ như là một vấn đề khó khăn để tìm ra ASC ngắn nhất.

Vấn đề của tôi

Trong ASC tiêu chuẩn, sự phức tạp của việc nhân đôi được coi là tương đương với cộng/trừ, do đó độ dài của ASC có thể là thước đo độ phức tạp. Trong kịch bản của tôi, tuy nhiên, nhân đôi là "miễn phí". Điều này dẫn đến một khái quát hóa (hãy gọi nó là ASC²), trong đó chuỗi không chứa số nguyên, mà là các lớp tương đương của $\{k, 2k, 2^2k, 2^3k \ldots\} =: [k]$$k$ số nguyên lẻ. Tức là, ví dụ trước có thể được viết rất ngắn gọn dưới dạng $([1],[31])$ từ $31 = -1 + 2^5\cdot 1$. Mục tiêu rõ ràng là để tìm ASC² ngắn nhất.

(các) câu hỏi

  1. Có/bạn sẽ đề xuất bất kỳ (heuristic) nào phương pháp tìm ASC² "tốt"?
  2. Làm thế nào có thể ASC² ngắn được tạo ra, để chúng sự tối ưu được đảm bảo?
  3. Có btw tồn tại bất kỳ văn học về điều này?

Động lực

Thực hiện phép tính số học trên các số nguyên được mã hóa (từng bit), ASC² sẽ hữu ích cho phép nhân vô hướng (nghĩa là nhân một số nguyên được mã hóa với một số nguyên văn bản gốc). Trong một biểu diễn như vậy, việc nhân đôi một bản mã thực sự là rẻ: nó chỉ là thêm một mã hóa tầm thường của số 0 vào vị trí ít quan trọng nhất. Mặt khác, việc bổ sung rất tốn kém (vì nó đang sử dụng FHE), do đó, đáng để tìm ASC² tốt nhất có thể.

Điểm:0
lá cờ ru
  1. tôi nghĩ rằng phương pháp cửa sổ trượt (và nó NAF họ hàng) được sử dụng để xây dựng các biểu diễn ASC tốt vẫn còn khá tốt. Nếu chúng ta tách các hành động nhân đôi khỏi các phép cộng và phép trừ không đồng nhất, các cửa sổ trượt không làm giảm số lượng các phép nhân đôi và lợi ích của nó là giảm số lượng các phép cộng và trừ không đồng nhất từ $O(\log k)$ đến $O(\log k/\log\log k)$. Ngược lại, tôi nghĩ rằng có giới hạn dưới về độ dài của ASC2 của $\log\log k$ vì số lần xuất hiện của 01 hoặc 10 trong phần mở rộng nhị phân có thể nói gần như gấp đôi ở mỗi bước.

  2. Sự tối ưu có thể khó thể hiện. Ví dụ, người ta biết rằng việc tính toán các ASC tối ưu cho một tập hợp các số mũ là NP-hard (xem "Trình tự tính toán với chuỗi bổ sung", Peter Downey, Benton Leong và Ravi Sethi).

  3. Tài liệu rộng hơn về chuỗi ASC sẽ đề cập đến một số điều này. Tôi khuyên bạn nên bắt đầu với cuốn "Nghệ thuật lập trình máy tính" có thẩm quyền của Donald Knuth. 2 mục 4.6.3

Đă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.