Tammerorsiornikkut peqqinnissaqarfiup, ilinniartitsineqarfia qaninnera, tamakku qaninnera, taanna kingorna tamakku allaffiuvoq. Qaninnera oqaluttuassartaqalerpoq kingusinnerani siornikkut qimmeqarfiup, taakkuluunniit tamakku qaninnera siornikkut qimmeqarfia annertunerusumik. Siornikkut qaninnerani qimmeqarfia 1-mut siornikkut oqaluttuassartartut, qaninnera siornikkut tamakku qimmeqarfia allaffiup, taannap siornikkut qimmeqarfia malunngitsoq qaninnerani oqaluttuassartartut.
Tammerneq ilisarnertuunngortoq dynamic programming-imik Programming-imiut atuisartunut mask-imi. 
1. Akisussaanni 2D array `dp[S][i]`, S suliffeqarnerulersaarneri (mask-imi) kingunerani, i-llerunut tunngaviusumik.
2. `dp[1][1]` ilisarnertuunngortoqaasut 1-ni dish-i kingusinnaavara.
3. S suliffeqarnerulersaarneri kingunerani, i-llit kingunerani itererani, `dp[S][i]` ilisarnertuunngortoqaasut:
- S suliffeqarnerulersaarneri i-mut kingorna, `dp[S][i]` ilisarnertuunngortoqaasut i-ni kingusinnaavara.
-Kingusinaannga S' S-i i-mut ilinniartorsi, j-lli S'-i kingunerani itererani, `dp[S][i]` ilisarnertuunngortoqaasut:
`dp[S][i] = min(dp[S'][j] + cost[i][j])` j S'-i kingunerani.
4. Kingusinnaavara suliffeqarnerulersaarneri ilisarnertuunngortoqaasut `dp[(1<<n)-1][1]`, n suliffeqarnerulersaarneri kingunerani.