Featured image of post Mathematica से ट्रैवलिंग सेल्समैन प्रॉब्लम (TSP) कैसे हल करें

Mathematica से ट्रैवलिंग सेल्समैन प्रॉब्लम (TSP) कैसे हल करें

मैथ साफ्टवेयर Mathematica का उपयोग करके ट्रैवलिंग सेल्समैन प्रॉब्लम (TSP) को हल करने का तरीका बताया गया है। SparseArray फ़ंक्शन का उपयोग करके शहरों के बीच दूरी का मैट्रिक्स बनाने और FindShortestTour से सबसे छोटा मार्ग खोजने की प्रक्रिया प्रस्तुत की गई है।

Mathematica के साथ ट्रैवलिंग सेल्समैन समस्या को हल करना

समस्या

उपाय

1
d=SparseArray[{{1,2}->10,{2,1}->10,{1,5}->15,{5,1}->15,{1,4}->12,{4,1}->12,{1,3}->20,{3,1}->20,{2,5}->10,{5,2}->10,{3,4}->10,{4,3}->10,{3,8}->30,{8,3}->30,{3,7}->20,{7,3}->20,{3,6}->25,{6,3}->25,{4,5}->15,{5,4}->15,{4,8}->20,{8,4}->20,{5,9}->18,{9,5}->18,{5,8}->15,{8,5}->15,{6,7}->5,{7,6}->5,{7,8}->35,{8,7}->35,{8,9}->12,{9,8}->12},{9,9},Infinity];

SparseArray फ़ंक्शन का उपयोग करके एक मैट्रिक्स बनाएं। प्रत्येक तत्व उस तत्व की पंक्ति और कॉलम में शहरों के बीच की दूरी का प्रतिनिधित्व करता है। उदाहरण के लिए, पहले तत्व {1,2}->10 का अर्थ है कि 1 और 2 के बीच की दूरी 10 है। दूसरा-से-अंतिम तत्व {9,9} मैट्रिक्स के आकार को इंगित करता है, और अंतिम तत्व Infinity का अर्थ है कि अनिर्दिष्ट शहरों के बीच पथ की लंबाई अनंत है। दूसरे शब्दों में, इसका मतलब है कि कोई रास्ता नहीं है।

1
{len,tour}=FindShortestTour[{1,2,3,4,5,6,7,8,9},DistanceFunction->(d[[#1,#2]]&)]

FindShortestTour फ़ंक्शन के साथ, आप ट्रैवलिंग सेल्समैन समस्या को आसानी से हल कर सकते हैं। {1,2,3,4,5,6,7,8,9} शहर के नंबरों को दर्शाता है। DistanceFunction->(d[[#1,#2]]&) मैट्रिक्स d पास करता है, जो शहरों के बीच की दूरी को दर्शाता है।

आउटपुट

1
{137, {1, 2, 5, 9, 8, 7, 6, 3, 4}}

आउटपुट सबसे छोटी दूरी और उसके संबंधित मार्ग को दर्शाता है। सबसे छोटी दूरी 137 है, और मार्ग 1→2→5→9→8→7→6→3→4→1 है। ABC वर्णमाला क्रम में बदलने पर, यह A, B, E, I, H, G, F, C, D बन जाता है।

निर्मित Hugo के साथ
थीम Stack द्वारा डिज़ाइन किया गया Jimmy