Vấn đề tuyệt vời! Như phái sinh của Xi'an cho thấy, nó có liên quan đến việc giảm thiểu sự phân kỳ KL từ Q đến P. Cliff cũng cung cấp một số bối cảnh quan trọng.
Vấn đề có thể được giải quyết một cách tầm thường bằng phần mềm tối ưu hóa, nhưng tôi không thấy cách viết công thức dạng đóng cho giải pháp chung. Nếu không bao giờ liên kết, thì có một công thức trực quan.qi≥0
Hầu như chắc chắn tối ưu (mặc dù nhìn thấy biểu đồ ví dụ của tôi ở cuối, nó có thể đóng). Và không phải là vấn đề giống như . Quan sát không phải là mục tiêu tương đương như . Đó không phải là một sự biến đổi đơn điệu. Kỳ vọng là một tổng và nhật ký đi vào bên trong tổng, vì vậy nó không phải là một phép biến đổi đơn điệu của hàm mục tiêu.q≠pmaxE[x]maxE[log(x)]x+ylog(x)+log(y)
Điều kiện KKT (nghĩa là điều kiện cần và đủ) cho một giải pháp:
Xác định và . Vấn đề là:
q0=0qn+1=0
maximize (over qi)subject to∑ni=1pilog(qi−1+qi+qi+1)qi≥0∑ni=1qi=1
Lagrangian:
Đây là một vấn đề tối ưu hóa lồi trong đó điều kiện của Slater giữ do đó các điều kiện KKT là điều kiện cần và đủ để tối ưu. Điều kiện đặt hàng đầu tiên:
L=∑ipilog(qi−1+qi+qi+1)+∑iμiqi−λ(∑iqi−1)
pi−1qi−2+qi−1+qi+piqi−1+qi+qi+1+pi+1qi+qi+1+qi+2=λ−μi
bổ sung:
Và tất nhiên . (Nó xuất hiện từ thử nghiệm của tôi rằng nhưng tôi không thấy ngay tại sao.) và là các số nhân Lagrange.
μiqi=0
μi≥0λ=1μiλ
Giải pháp nếu không bao giờ liên kết.qi≥0
Sau đó xem xét giải pháp
pi=qi−1+qi+qi+13μi=0λ=1
Cắm vào điều kiện đặt hàng đầu tiên, chúng tôi nhận được . Vì vậy, nó hoạt động (miễn là và cũng được thỏa mãn).
13+13+13=1∑iqi=1qi≥0
Cách viết bài toán với ma trận:
Đặt và là các vectơ. Đặt là ma trận đường chéo ba băng tần. Ví dụ. chopqAn=5
A=⎡⎣⎢⎢⎢⎢⎢⎢1100011100011100011100011⎤⎦⎥⎥⎥⎥⎥⎥
Vấn đề có thể được viết với ký hiệu ma trận nhiều hơn:
maximize (over q)subject top′log(Aq)qi≥0∑iqi=1
Điều này có thể được giải quyết nhanh chóng bằng số nhưng tôi không thấy cách nào để giải pháp dạng đóng sạch?
Giải pháp được đặc trưng bởi:
nhưng tôi không thấy nó hữu ích khủng khiếp như thế nào ngoài việc kiểm tra phần mềm tối ưu hóa của bạn.
Ay=λ−ux=Aqyi=pixi
Mã để giải quyết nó bằng CVX và MATLAB
A = eye(n) + diag(ones(n-1,1),1) + diag(ones(n-1,1),-1);
cvx_begin
variable q(n)
dual variable u;
dual variable l;
maximize(p'*log(A*q))
subject to:
u: q >= 0;
l: sum(q) <= 1;
cvx_end
Ví dụ. đầu vào:
p = 0.0724 0.0383 0.0968 0.1040 0.1384 0.1657 0.0279 0.0856 0.2614 0.0095
có giải pháp:
q = 0.0000 0.1929 0.0000 0.0341 0.3886 0.0000 0.0000 0.2865 0.0979 0.0000
Giải pháp tôi nhận được (màu xanh) khi tôi có một tấn thùng về cơ bản theo pdf bình thường (màu đỏ):
Một vấn đề khác tùy ý hơn:
Rất lỏng lẻo, với bạn nhận được , nhưng nếu di chuyển xung quanh một tấn, bạn sẽ nhận được một số thứ khó khăn đang diễn ra khi tối ưu hóa cố gắng đặt khối lượng trên trong vùng lân cận khối lượng , chiến lược đặt nó giữa khối lượng của với khối lượng.pi−1≈pi≈pi+1qi≈pipiqipipi
Một điểm khái niệm khác là sự không chắc chắn trong dự báo của bạn sẽ làm trơn tru ước tính của bạn một cách hiệu quả và một mượt mà hơn sẽ có một giải pháp gần với . (Tôi nghĩ điều đó đúng.)ppqp