🔗 Link:
📌 Tags:Slope Trick
Optimization
✍🏻 Writer: @SPyofgame
🔎 Editor:
⚒️ Contributor:
📋 Content:
Những bạn đã học về quy hoạch động và muốn có thêm một thủ thuật tối ưu bài toán dựa trên tính chất đặc biệt của hàm lồi. Thường là dạng bài , ví dụ tiêu biểu có thể là
Slope Trick là kĩ thuật tối ưu hoá quy hoạch động liên quan tới các STF (Slope-Trickable-Function)
Slope Trickable Function là một hàm liên tục y = f(x) thoả các tính chất
Có thể biểu diễn thành một lượng hữu hạn các đoạn thẳng, mỗi đoạn thẳng là một hàm tuyến tính với một giá trị độ dốc Δy = g(x) = ax + b (thường là số nguyên).
Hàm đó phải là hàm lồi, tức là mỗi đoạn thẳng được tách ra phải ko giảm hoặc ko tăng (Trên hàm quy hoạch động em cho một đại lượng thay đổi thì nó sẽ vẽ ra hình dạng U lật ngược).
Ví dụ 0:
Ví dụ 1:
[]
Ví dụ 2:
Ví dụ 3:
Ý tưởng của slope trick là thay vì ta lưu các hàm khác nhau để quản lí từng đoạn, thì sao ta không dùng một hàm duy nhất, nhưng lưu lại các vị trí mà nó thay đổi (x, y) ?
Ví dụ 0:
có thể được biểu diễn thành [y = x | {x=0, Δy=+2}]
Ví dụ 1:
có thể được biểu diễn thành [y = 3x - 4 | {x=-1, Δy=+3}, {x=+1, Δy=+2}]
Giải thích:
{x=-1, Δy=+3}
vì -2x + 1 -> x + 2
thay đổi y đi Δy=1-(-2)=3
{x=+1, Δy=+3}
vì x + 2 -> 3x - 4
thay đổi y đi Δy=3-1=2
Ví dụ 2:
có thể được biểu diễn thành [y = 2004x - 953 | {x=λ, Δy=-29}, {x=Λ, Δy=+2006}]
{x=λ, Δy=-29}
vì 27x + 784 -> -2x + 126
thay đổi y đi Δy=-2-27=-29
{x=Λ, Δy=+2006}
vì -2x + 126 -> 2004x - 953
thay đổi y đi Δy=2004-(-2)=+2006
Ví dụ 3:
có thể được biểu diễn thành [y = ex + ε | {x=A, Δy=b-a}, {x=B, Δy=c-b}, {x=C, Δy=d-c}, {x=D, Δy=e-d}]