Những ngôn ngữ lập trình có sẵn cho máy tính lượng tử?


53

Từ câu hỏi này, tôi đã thu thập được rằng các ngôn ngữ lập trình máy tính lượng tử chính là Q #QISKit .

Những ngôn ngữ lập trình khác có sẵn để lập trình máy tính lượng tử? Có những lợi ích nhất định để lựa chọn những người cụ thể?

EDIT: Tôi đang tìm ngôn ngữ lập trình, không phải trình giả lập. Trình giả lập mô phỏng mọi thứ. Ngôn ngữ lập trình là một phương pháp viết hướng dẫn (cho các đối tượng thực hoặc cho trình giả lập). Có thể có một ngôn ngữ duy nhất hoạt động cho nhiều trình giả lập và ngược lại.


Tôi muốn chỉ ra rằng về cơ bản không có ngôn ngữ nào được liệt kê trong câu trả lời được chấp nhận ở đây thực sự có thể chạy với một máy tính lượng tử hiện có. Có thể có ý nghĩa hơn đối với 1) chỉnh sửa câu hỏi để làm rõ rằng bạn đang yêu cầu các ngôn ngữ không thể biên dịch để chạy với phần cứng hiện có hoặc 2) chấp nhận một câu trả lời khác.
DanielSank

1
@DanielSank Tôi đã chấp nhận danh sách Wikipedia vì tôi cho rằng danh sách đó sẽ được cập nhật để bao gồm các ngôn ngữ thực sự chạy trên phần cứng; nó sẽ đóng vai trò là phản hồi tốt nhất khi cho rằng Wikipedia tiếp tục có trang đó.
Pro Q

1
@ProQ - Có một cập nhật nhỏ cho câu trả lời của tôi. Ngoài ra, tôi đã khẳng định rằng câu trả lời của tôi không phải là cắt / dán mà là các liên kết đã được xác minh. Tôi đã sửa một liên kết bị hỏng. Tôi đã thêm một trang web đóng góp quan trọng. - Thỉnh thoảng tôi sẽ quay lại để đảm bảo rằng câu trả lời này là "xấp xỉ tuyệt vời". Chi tiết về trả lời và duy trì đã được giải quyết. Một số ngôn ngữ trong câu trả lời của tôi chạy trên phần cứng có sẵn để mua và đang được sử dụng thường xuyên. Cảm ơn đức tin của bạn ProQ.
Rob

Ngoài ra còn có Yao (Thiết kế thuật toán lượng tử hiệu quả cho con người), được viết bằng Julia, github.com/QuantumBFS/Yao.jl . Và ở đâyở đây bạn sẽ tìm thấy một so sánh.
skan

Câu trả lời:


35

Danh sách Wikipedia các ngôn ngữ lập trình máy tính lượng tử

(Câu trả lời này không phải là bản sao của trang web đó, nó được cập nhật nhiều hơn và với các liên kết đã được xác minh. Trong một số trường hợp, liên kết trang web hoặc giấy của tác giả được thêm vào.)

Trang web Báo cáo tính toán lượng tử có một trang web Công cụ liệt kê hơn một chục liên kết, một số liên kết mới và một số lặp lại danh sách trên.

Xem thêm trang web của QuanTiki: " Danh sách các trình giả lập QC ", để biết danh sách lớn các trình giả lập và ngôn ngữ lập trình dựa trên: C / C ++, CaML, OCaml, F #, cùng với GUI dựa trên, Java, JavaScript, Julia, Maple, Mathicala, Maxima , Matlab / Octave, .NET, Perl / PHP, Python, Scheme / Haskell / LISP / ML và các dịch vụ trực tuyến khác cung cấp máy tính, trình biên dịch, mô phỏng và bộ công cụ, v.v.

Có những lợi ích nhất định để lựa chọn những người cụ thể?

Nếu bạn có kế hoạch sử dụng một máy tính lượng tử cụ thể thì người ta sẽ hy vọng rằng ngôn ngữ lập trình do nhà sản xuất phát triển là phù hợp nhất cho máy cụ thể đó và được hỗ trợ tốt.

Chọn một ngôn ngữ có lượng người theo dõi lớn hơn đồng nghĩa với việc có nhiều Diễn đàn hơn và hy vọng sẽ có nhiều bản sửa lỗi và hỗ trợ hơn.

Thật không may, điều đó khiến một số sản phẩm thích hợp tuyệt vời phải vật lộn để có được một cơ sở người dùng. Cố gắng tìm một ngôn ngữ vừa mạnh mẽ / biểu cảm vừa được hỗ trợ trên nhiều nền tảng khác nhau là mẹo, câu trả lời là ATM ý kiến.

Một đánh giá về bốn nền tảng phần mềm: Forest (pyQuil), QISKit, ProjectQ và Bộ công cụ phát triển lượng tử được Ryan LaRose cung cấp trong " Tổng quan và so sánh các nền tảng phần mềm lượng tử cấp độ cổng " (6 tháng 7 năm 2018).


Cập nhật:

Cirq của Google và OpenFermion-Cirq: " Blog AI của Google - Thông báo Cirq: Khung mã nguồn mở cho các thuật toán NISQ ".

D-Wave của Leap và Dương SDK cho phép truy cập vào một hệ thống D-Wave 2000Q ™ trong một môi trường điện toán đám mây với quyền truy cập vào một 2000+ qubit máy ủ lượng tử để kiểm tra và chạy khối lượng công việc miễn phí, giả sử các thuật toán lõi sử dụng đi vào hồ bơi mã nguồn mở . Đăng ký để đăng nhập tại trang web Leap In Leap In .

Dịch vụ đám mây lượng tử (QCS) của Rigetti Computing cung cấp Hình ảnh máy lượng tử, lập trình ảo hóa và môi trường thực thi được định cấu hình trước với Forest 2.0, để truy cập tới 16 qubit của máy tính 128 qubit.

Hãy theo dõi thông tin về Digital Annealer của Fujitsu , một kiến ​​trúc có khả năng thực hiện các tính toán nhanh hơn 10.000 lần so với máy tính thông thường. Nếu cuối cùng họ cung cấp một môi trường phát triển tương thích chéo với các máy tính lượng tử thực sự thì hai đoạn này sẽ vẫn nằm trong câu trả lời này, nếu không tôi sẽ loại bỏ chúng.

Mặc dù chip silicon của họ không phải là lượng tử trong tự nhiên, Fujitsu đã hợp tác với 1Qbit để phát triển cái được mô tả là " Dịch vụ đám mây AI lấy cảm hứng lượng tử ", cho dù Digital Annealer của họ có giống như một con vịt hay không (sử dụng như D-Wave sử dụng mã tương thích) vẫn còn để được nhìn thấy. Truy cập vào đây để truy cập Dịch vụ Kỹ thuật Annealer Digital Annealer .

QWIRE ( hợp xướng ) của Đại học Pennsylvania là một ngôn ngữ mạch lượng tử và công cụ xác minh chính thức, nó có một trang web GitHub .

Một đánh giá về: Cirq, Cliffords.jl, dimod, dwave-system, FermiLib, Forest (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsolv, Qiskit Terra và Aqua, Qiskit, và Qiskit Qrack, Quantum Fog, Quantum ++, Qubiter, Quirk, Reference-qvm, ScaffCC, Strawberry Field, XACC và cuối cùng là XACC VQE được cung cấp trong bài báo: " Phần mềm nguồn mở trong điện toán lượng tử " (ngày 21 tháng 12 năm 2018), bởi Mark Fingerhuth, Tomáš Babej và Peter Wittek.

Thỉnh thoảng tôi sẽ trở lại câu trả lời này để cập nhật, mà không bị va chạm quá mức .



Sắp xếp các tin tức liên quan đến "lập trình": IBM công bố 53 máy tính Qubit có sẵn vào tháng tới , để công chúng sử dụng.
Cướp

28

Các nhà cung cấp phần cứng mô hình cổng đã xây dựng các ngôn ngữ cấp thấp của riêng họ:

Những cái này có sdk python cấp cao hơn có sẵn:

Rigetti cũng đang gói ngôn ngữ của họ trong một thư viện cấp cao hơn để gọi các ứng dụng được xây dựng trước có tên là Grove .

Microsoft đã phát triển Q # để chạy với trình giả lập hiện có của họ và cuối cùng là phần cứng vật lý của họ.

Vì các ngôn ngữ ở trên là nhà cung cấp cụ thể, lợi ích chính là bạn có thể chạy các chương trình lượng tử trên máy tính của họ.

Bên ngoài các ngôn ngữ cụ thể của nhà cung cấp là Scaffold đang được phát triển bởi các nhà nghiên cứu của Princeton. Ngôn ngữ này rất thú vị vì nó bao gồm một chuỗi công cụ để phân tích các chương trình để xác định chi phí, tiềm năng hiệu suất và tiềm năng khả năng mở rộng.

Chỉnh sửa: Project Q là một khung công tác khác cho phép bạn phát triển các chương trình sử dụng Python có thể chạy trên một trình giả lập đi kèm.

Oak Ridge National Labs đã bắt đầu làm việc với một dự án có tên XACC nhằm mục đích trừu tượng mã cụ thể của nhà cung cấp để cho phép người dùng truy cập vào các nền tảng phần cứng khác nhau mà không cần sao chép mã theo từng ngôn ngữ cụ thể của nhà cung cấp.


3
projectq.ch cũng xứng đáng được đề cập.
James Wootton

1
Tôi thích câu trả lời này vì nó giải thích những ngôn ngữ nào thực sự có thể chạy với phần cứng hiện có .
DanielSank


3

Tôi sẽ bao gồm Nhà soạn nhạc của IBM. Nó không giống như lập trình bởi vì bạn không gặp phải tất cả các lỗi và lỗi và chức năng, nhưng nó chuyển đổi rõ ràng các hướng dẫn của bạn trên các cổng thành QASM và chạy nó trên một trình giả lập IBM thực hoặc máy tính lượng tử thực của IBM (lựa chọn là người dùng).


1

Thật không may, danh sách trên Quantiki khá cũ và không được duy trì tốt. Ngay cả việc liệt kê tất cả các ngôn ngữ lập trình lượng tử trong một câu trả lời cho câu hỏi này là không bền vững vì bối cảnh lượng tử không ngừng phát triển. Ví dụ: Google vừa phát hành Cirq , một khung lập trình lượng tử mới cho các máy tính Noisy Middle Scale Quantum (NISQ) không có trong bất kỳ câu trả lời nào kể trên vì nó đã được công bố vài ngày trước.

Để giải quyết vấn đề này và như một câu trả lời cho một câu hỏi khác trên QC StackExchange, tôi đã bắt đầu một danh sách các dự án phần mềm nguồn mở trên GitHub , bao gồm một tổng quan toàn diện về các ngôn ngữ và khung lập trình lượng tử được phát triển tích cực. Danh sách này được cộng đồng tích cực duy trì và chúng tôi liên tục bổ sung các dự án mới.


2
Đây trông giống như một nguồn tài nguyên tuyệt vời. Cảm ơn bạn! Tôi tự hỏi nếu có một danh sách các dự án tương tự khác không chỉ là nguồn mở.
Pro Q

1
@ProQ thành thật Tôi nghĩ rằng danh sách nguồn mở chiếm> 95% không gian phần mềm lượng tử. Hầu như không có gói nguồn đóng nào có quyền truy cập công khai và bạn sẽ không quan tâm đến phần mềm lượng tử được sử dụng nội bộ trong một số công ty mà không có quyền truy cập công khai nào.
Đánh dấu Fingerhuth
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.