Προς το περιεχόμενο

MATLAB πρόβλημα!!!


tomsmyn1

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα στο Forum,

 

Θα ήθελα μία βοήθεια αν είναι δυνατόν γιατί είναι επείγον...

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

πρόκειται για πρόβλημα Ant-q με Vrp .

Βγάζω λάθος αποτελέσματα...ξέρω που είναι το πρόβλημα δεν μπορώ να το λύσω όμως....

αν ξέρεις κανένας από Matlab ας μου στείλει....είναι ανάγκη

 

 

Ευχαριστώ Πολύ

Δημοσ.

Σε ευχαριστώ πολύ ...

 

Δεν ξέρω αν σου ήρθε το μην. για αυτο σου στέλνω και από εδώ τι χρειάζομαι...

Έχεις ένα πρόβλημα με 3 πράκτορες - αυτοκίνητα που μπορούν να μεταφέρουν μέχρι 8 τόνους πράγματα...

υπάρχει στο pdf η λίστα με τις αποστάσεις μεταξύ πρακτόρων και πελατών καθώσ και η προσφορά και η ζήτηση.

Ο κώδικας είναι από τον αλγόριθμο Ant-q και δεν πρέπει να έχει πρόβλημα.

Το θέμα μου είναι ότι δεν μου βγάζει την καλύτερη διαδρομή για κάθε πράκτορα...

και μου πετάει απλά best routes.

και βάση περιορισμών το αυτοκίνητο ξεκινάει με 8 τόνους και δεν πρέπει να τους ξεπεράσει όπως και η συνολική απόσταση του δεν πρέπει να ξεπερνάει τα 400 Km.

Αν μπορείς να με βοηθήσεις θα σου είμαι ευγνώμων...

για να τρέξει πρέπει να βάλεις στη matlab

new3(2,100,1,0.9,0.1,0.4,8,'pseudo_random','global',400,10)

 

Σε ευχαριστώ πολύ

matlab.zip

Δημοσ.
Σε ευχαριστώ πολύ ...

 

Δεν ξέρω αν σου ήρθε το μην. για αυτο σου στέλνω και από εδώ τι χρειάζομαι...

Έχεις ένα πρόβλημα με 3 πράκτορες - αυτοκίνητα που μπορούν να μεταφέρουν μέχρι 8 τόνους πράγματα...

υπάρχει στο pdf η λίστα με τις αποστάσεις μεταξύ πρακτόρων και πελατών καθώσ και η προσφορά και η ζήτηση.

Ο κώδικας είναι από τον αλγόριθμο Ant-q και δεν πρέπει να έχει πρόβλημα.

Το θέμα μου είναι ότι δεν μου βγάζει την καλύτερη διαδρομή για κάθε πράκτορα...

και μου πετάει απλά best routes.

και βάση περιορισμών το αυτοκίνητο ξεκινάει με 8 τόνους και δεν πρέπει να τους ξεπεράσει όπως και η συνολική απόσταση του δεν πρέπει να ξεπερνάει τα 400 Km.

Αν μπορείς να με βοηθήσεις θα σου είμαι ευγνώμων...

για να τρέξει πρέπει να βάλεις στη matlab

new3(2,100,1,0.9,0.1,0.4,8,'pseudo_random','global',400,10)

 

Σε ευχαριστώ πολύ

 

Πρώτα απ'όλα βγάζει error:

 

??? Undefined function or method 'randit' for input arguments of type 'double'.

 

Error in ==> new3 at 76

Sk(j)=R(randit(length®,1));

 

Δεύτερον, καταλαβαίνεις ότι το να κάτσω να διαβάσω τη δημοσίευση και να ελέγξω όλο τον κώδικα είναι αδύνατο! Επικεντρώσου στο κομμάτι που πιστεύεις ότι σου δημιουργεί το πρόβλημα και δεν σου δίνει σωστά αποτελέσματα και πες μου.

Δημοσ.

Πιστεύω ότι το κομμάτι που είναι λάθος είναι το :

if nnz(tours(j,:))>0,

 

tmp_tour=sort(tours(j,find(tours(j,:))));

 

for jj=1:length(tmp_tour),

tmp_tour(jj) = find(tours(j,:)==tmp_tour(jj));

 

end

 

current_tour_distance= 0;

current_tour_distance=current_tour_distance+distances_between_customers(1,tmp_tour(1)+1);

 

 

for c = 1 : length(tmp_tour) -1,

current_tour_distance=current_tour_distance+distances_between_customers(tmp_tour©+1,tmp_tour(c+1)+1);

if current_tour_distance>distance_limit,

 

tours(j,tmp_tour)=0;

end

end

current_tour_distance=current_tour_distance+distances_between_customers(tmp_tour(end)+1,1);

 

 

γιατί εγώ θέλω να έχει όριο απόστασης 400 km και στα αποτελέσματα μου βγάζει μεγαλύτερες τιμές....

για να το τρέξεις αν θες βάλε καλύτερα randint εκει που βγάζει το σφάλμα εμενα δεν βγάζει σφάλμα και ισως είναι θεμα matlab...

Οπως και να έχει σε ευχαριστώ που ασχολήθηκες

Αρχειοθετημένο

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

  • Δημιουργία νέου...