background image

60 | 

9 4

 

 

Η  κυριότερη  διαφορά  για  τον  υπολογισμό  της  συντομότερης  διαδρομής  με  τις 

λιγότερες  δυνατές  στροφές,  είναι  ότι  στη  θέση  του  ενός  κόμβου  που  αναφερθήκαμε 

προηγουμένως δημιουργούμε τέσσερις. Ο καθένας εκ των οποίων αντιστοιχίζεται και σε μία 

κατεύθυνση. Τέσσερις είναι και οι κινήσεις που μας επιτρέπει και το Logisim. Η λογική είναι 

πως  για  το  κόστος  εύρεσης  του  μονοπατιού  χρησιμοποιούμε  ακέραιους  αριθμούς  για  την 

μετακίνηση  από  κόμβο  σε  κόμβο  ενώ  δεκαδικούς  για  την  αλλαγή  κατεύθυνσης. 

Συγκεκριμένα, το κόστος για την μεταφορά σε γειτονικό κόμβο έχει οριστεί σε μονάδα ενώ 

για την αλλαγή κατεύθυνσης το 0,001 (βλέπε Εικόνα 31).  Άρα λαμβάνεται πρώτα υπόψη το 

κόστος της μεταφοράς και έπειτα το πόσες αλλαγές κατεύθυνσης πραγματοποίησε  κατά την 

διάρκεια.  Σε  αυτό  το  σημείο  να  αναφέρουμε  πως  η  καλωδίωση  μπορεί  να  αποτύχει  να 

δημιουργηθεί  λόγο  της  τυχαιότητας  των  θέσεων  των  στοιχείων.  Μπορεί  δηλαδή  μία 

συγκεκριμένη τοποθέτηση ή ήδη υπάρχουσα καλωδίωση να έχει αποκλείσει τελείως ένα  pin 

και  ο  τρόπος  διασύνδεσης  να  μην  είναι  δυνατός  Σε  αυτήν  την  περίπτωση  το  κύκλωμα 

αφαιρείται και προχωράμε σε δημιουργία νέου στη θέση του. 

If parent.direction == this.direction 

Περίπτωση ίδιας κατευθυνσης 

           Create_successor(1); 

}else{ 

Περίπτωση αλλαγής κατεύθυνσης 

           Create_successor(1+0,001);   

Ψευδοκώδικας 8: Δημιουργία γειτονικών κόμβων και κόστος μετακίνησης.