Hiểu thuật toán tối ưu hóa lãnh đạo nhóm


8

Bối cảnh:

Tôi đã cố gắng tìm hiểu thuật toán di truyền được thảo luận trong bài báo Phân tích ma trận đơn vị để tìm mạch lượng tử: Ứng dụng cho người Hamilton phân tử (Daskin & Kais, 2011) (PDF tại đây ) và Thuật toán tối ưu hóa nhóm trưởng (Daskin & Kais, 2010) . Tôi sẽ cố gắng tóm tắt những gì tôi hiểu cho đến nay, và sau đó nêu các truy vấn của tôi.

Hãy xem xét ví dụ về cổng Toffoli trong phần III-A trong bài báo đầu tiên. Chúng tôi biết từ các nguồn khác như thế này , rằng cần có khoảng 5 cổng lượng tử hai qubit để mô phỏng cổng Toffoli. Vì vậy, chúng tôi tùy ý chọn một bộ cổng như {V,Z,S,V} . Chúng tôi giới hạn tối đa 5 cổng và cho phép bản thân chỉ sử dụng các cổng từ bộ cổng {V,Z,S,V} . Bây giờ chúng tôi tạo 25 nhóm gồm 15 chuỗi ngẫu nhiên như:

1 3 2 0,0; 2 3 1 0,0; 3 2 1 0,0; 4 3 2 0,0; 2 1 3 0,0

Trong chuỗi trên các con số, các số đầu tiên in đậm là số chỉ số của cửa (tức là V=1,Z=2,S=3,Z=4 ), những con số cuối cùng là những giá trị của các góc trong [0,2π] và các số nguyên giữa lần lượt là qubit đích và qubit điều khiển. Sẽ có 374 chuỗi được tạo ngẫu nhiên khác như vậy.

nhập mô tả hình ảnh ở đây

Các nhóm của chúng tôi bây giờ trông như thế này (trong hình trên) với n=25p=15 . Độ phù hợp của mỗi chuỗi tỷ lệ thuận với độ trung thực của dấu vết F=1N|Tr(UaUt)|Trong đóUalà biểu diễn ma trận đơn vị tương ứng với bất kỳ chuỗi nào chúng ta tạo ra vàUtlà biểu diễn ma trận đơn vị của cổng Toffoli 3 qubit. Các nhà lãnh đạo nhóm trong bất kỳ nhóm là một trong những có giá trị tối đa củaF.

Khi chúng tôi có các nhóm, chúng tôi sẽ theo thuật toán:

nhập mô tả hình ảnh ở đây

Phương trình (4) được đề cập trong hình ảnh về cơ bản là:

new string[i]=r1×old string[i]+r2×leader string[i]+r3×random string[i]
1i20r1+r2+r3=1[i]i1 3 2 0.0; 2 3 1 0.0; 3 2 1 0.0; 4 3 2 0.0; 2 1 3 0.063r1=0.8r2,r3=0.2375

Hơn thế nữa,

4×maxgates21

Câu hỏi:

  1. {V,Z,S,V}{X,Z,Rx,Rzz,V}520

  2. Sau khi phần (trong "Bối cảnh") thảo luận về việc lựa chọn bộ cổng và số lượng cổng, giải thích / hiểu biết của tôi (đoạn 3 trở đi) của thuật toán có đúng không?

  3. 4×maxgates2maxgates520

  4. 0.99


Tôi đang thực hiện cùng một thuật toán trong python. Bạn đã thực hiện nó hoàn toàn? Tôi bị mắc kẹt tại một số điểm mà tôi đã giải thích trong bài viết của mình .
Ông già Noel

@Santa Không, nhưng người khác ở đây có thể có. Bạn có thể di chuyển câu hỏi Stack Overflow đó sang Máy tính lượng tử . Đánh dấu nó cho một người điều hành đề cập đến vấn đề.
Sanchaya Dutta

1
@Santa Bạn có thể tìm thấy một phiên bản sửa đổi của thuật toán GLOA tại đây . Xin lưu ý rằng: 1. đây là phiên bản sửa đổi của thuật toán gốc (Tôi đã cố gắng làm cho nó linh hoạt hơn), 2. mã này khá chung chung và sử dụng rất nhiều cấu trúc dữ liệu được chia sẻ với các thuật toán khác và 3. giấy phép không phải là GPL, hãy xem nó nếu bạn dự định chia sẻ một phiên bản (có thể đã sửa đổi) của mã.
Nensonee

Câu trả lời:


2

Tôi đề nghị xem xét cách một thuật toán di truyền hoạt động trong bối cảnh các biến rời rạc để hiểu nó. Họ cung cấp một phương pháp nhưng bạn có thể áp dụng các kỹ thuật đột biến / chéo khác.


Tóm lại, trong một vấn đề tối ưu hóa đơn giản trong đó các biến rời rạc, chúng ta có thể giải quyết theo phương pháp heuristur bằng thuật toán di truyền (thuộc về thuật toán tiến hóa của lớp). Chúng tôi tạo ra một số lượng ứng cử viên (ngẫu nhiên) và chúng tôi thay đổi các ứng cử viên ở mỗi lần lặp để cố gắng tìm một giải pháp tốt để giảm thiểu / tối đa hóa một chức năng mục tiêu (gọi là thể dục). Bạn có thể đại diện cho các ứng cử viên bằng một chuỗi các giá trị (được gọi là nhiễm sắc thể nói chung). Nếu bạn nhập chuỗi giá trị này vào hàm mục tiêu, bạn đang đánh giá ứng cử viên hoặc bạn chỉ định mức độ phù hợp. Các hoạt động chéo / đột biến có nghĩa là thay đổi các ứng cử viên và hy vọng đạt được mục tiêu của chúng tôi theo cách liên quan đến những gì xảy ra trong di truyền.

GLOA chỉ là một thuật toán di truyền khác, nhưng với sự khác biệt của việc có các nhóm dân số khác nhau với tối ưu cục bộ (nhà lãnh đạo là ứng cử viên tốt nhất nếu bạn thích) cho mỗi và tất nhiên là một chiến lược hơi khác nhau về đột biến / trao đổi chéo. Thông thường, chúng tôi có một nhóm ứng cử viên với một ứng cử viên tốt nhất ở mỗi lần lặp.

Bây giờ cho câu hỏi của bạn:

1. Bạn có thể chọn bất kỳ bộ cổng nào bạn muốn (như ví dụ về bộ). Điều này cũng đúng với số lượng hoạt động cổng tối đa bạn muốn hạn chế phân tách. Đó chỉ là các tham số cho thuật toán. Tôi sẽ nói rằng điều này là hoàn toàn tùy ý (không quá nhiều logic nhất thiết chỉ là heuristic) nhưng có lẽ những gì họ chọn đã thích nghi hơn với ví dụ hoặc thiết lập công việc của họ. Trong thực tế, bạn sẽ phải thử nhiều tham số.

2. Bạn đang kiểm tra lại các giải thích ban đầu và đặc biệt là sơ đồ để tôi nghĩ rằng bạn đang tổng kết tốt.

nhập mô tả hình ảnh ở đây

t14×maxgates52080

Để bạn hình dung, hãy nhìn vào chuỗi ví dụ bạn đưa ra:

1 3 2 0,0; 2 3 1 0,0; 3 2 1 0,0; 4 3 2 0,0; 2 1 3 0,0

maxgates55245×4=20

1 3 2 0.0V320.0V

4. Điều này cũng tùy ý tùy thuộc vào những gì bạn muốn. Nó có thể là một số lần lặp cố định hoặc cho đến khi bạn đạt đến một tiêu chí ngưỡng / hội tụ.


1
Cảm ơn bạn đã trả lời! Tôi đã thêm một ảnh chụp mã giả trong Hình 2, để làm cho nó rõ ràng hơn. Tuy nhiên, hãy thoải mái loại bỏ nó, nếu bạn muốn. :)
Sanchaya Dutta

1
HH
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.