ইন গ্যাস স্টেশন সমস্যা আমরাও তা প্রদত্ত হই শহর ও তাদের মধ্যে সড়ক। প্রতিটি রাস্তার দৈর্ঘ্য রয়েছে এবং প্রতিটি শহর জ্বালানির দাম নির্ধারণ করে। এক ইউনিট রাস্তার জন্য এক ইউনিট জ্বালানী ব্যয় হয়। আমাদের লক্ষ্য হ'ল কোনও উত্স থেকে সম্ভাব্যতম সাধ্য পথে কোনও গন্তব্যে যাওয়া। আমাদের ট্যাঙ্ক কিছু মান দ্বারা সীমাবদ্ধ।
আমি অ্যালগরিদম বোঝার চেষ্টা করি , তাই আমি সমাধানটি গণনা করার পদক্ষেপটি ম্যানুয়ালি লিখেছিলাম। দুর্ভাগ্যক্রমে আমি আটকে গেলাম - এক পর্যায়ে বিবেচনার জন্য কোনও প্রান্ত নেই, কেন জানি না, সম্ভবত আমি কিছু মিস করছি।
উদাহরণ:
রাস্তা:
0 ----------- 1 ------------ 2 -------------- 3
(এটি হয় না এটিকে সহজ হতে হবে, এটি কোনও গ্রাফ হতে পারে অর্থাৎ 0-> 2, 0-> 3, 1-> 3 ইত্যাদির মধ্যে রাস্তাও থাকতে পারে))
উত্স: 0, গন্তব্য: 3, ট্যাঙ্ক: 10 ইউনিট
জ্বালানির দাম: 0 : 10 ইউনিট, 1 : 10 ইউনিট, 2 : 20 ইউনিট, 3 : 12 ইউনিট
দৈর্ঘ্য: 0-> 1 : 9 ইউনিট, 1-> 2 : 1 ইউনিট, 2-> 3 : 7 ইউনিট
অনুকূল সমাধান: 9 ইউনিট 0 এবং 8 ইউনিট 1 এ পূরণ করুন মোট ব্যয় তখন 170 ইউনিট (9 * 10 + 8 * 10)।
সুতরাং আমি এখানে প্রদর্শিত হিসাবে এটি গণনা করার চেষ্টা করেছি (অনুচ্ছেদ 2.2)
GV[u] is defined as:
GV[u] = { TankCapacity - length[w][u] | w in Cities and fuelPrice[w] < fuelPrice[v] and length[w][u] <= TankCapacity } U {0}
so in my case:
GV[0] = {0}
GV[1] = {0}
GV[2] = {0, 3, 9}
GV[3] = {0}
D(u,g) - minimum cost to get from u to t starting with g units of fuel in tank:
D(t,0) = 0, otherwise:
D(u,g) = min (foreach length[u][v] <= TankCapacity)
{
D(v,0) + (length[u][v] - g) * fuelPrice[u] : if fuelPrice[v] <= fuelPrice[u] and g <= length[u][v]
D(v, TankCapacity - length[u][v]) + (TankCapacity - g) * fuelPrice[u] : if fuelPrice[v] > fuelPrice[u]
}
so in my case:
D(0,0) = min { D(1,0) + 9*10 } - D(0,0) should contain minimum cost from 0->3
D(1,0) = min { D(2,9) + 10*10 } - in OPT we should tank here only 8 units :(
D(2,9) = min { ??? - no edges which follows the condition from the reccurence
Nevertheless D(0,0) = 90 + 100 + smth, so it's already too much.
To achieve the optimal solution algorithm should calculate D(2,7) because the optimal route is:
(0,0) -> (1,0) -> (2, 7) -> (3, 0) [(v, g): v - city, g - fuel in tank].
If we look at G[2] there is no "7", so algorithm doesn't even assume to calculate D(2,7),
so how can it return optimal solutions?
দস্তাবেজ থেকে পুনরাবৃত্তিটি কাজ করছে বলে মনে হচ্ছে না বা সম্ভবত আমি কিছু ভুল করেছি।
কেউ কি আমাকে এই সাহায্য করতে পারে?