WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Johnson Algorithmus richtig programmieren?

 

major95
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 17.05.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.06.2014, 19:01     Titel: Johnson Algorithmus richtig programmieren?
  Antworten mit Zitat      
Hallo user,

Meine Aufgabe für die Uni ist es, den Johnson-Algorithmus auf eine bestimmte Matrix anzuwenden. Für diejenigen die diesen nicht kennen, der johnson Algorithmus soll wie folgt funktionieren: Mit hilfe einer nx3-Matrix (1.Spalte: Auftragsnummern, 2.Spalte: 1.Produktionsstelle, 3.Spalte: 2.Produktionsstelle) soll eine neue, nach johnson sortierte Matrix erstellt werden. Dies wie folgt: Erst soll der kleinste Wert der 2.+3. Spalte gefunden werden. Liegt dieser in der 2. Spalte, so soll die Zeile, in der dieser Wert ist, ganz unten in die neue (leere) Matrix überschrieben werden. Liegt der Wert jedoch in der 3. Spalte (Also Prod.Stelle2) So soll die Zeile dieses Wertes ganz oben in die neue Matrix überschrieben werden. Das ganze bis die neue Matrix voll ist.

Tut mir leid, dass ich so viel erkläre, ist aber eben nur für die, die es nicht kennen.

Dies ist mein Algorithmus:
Code:

A=[1,40,55;2,25,15;3,10,25;4,35,5;5,50,30]

B=zeros(5,3)

[Z2,S2]=size(B)


%Johnson-Algorithmus

for n=0:1:4
[Z1,S1]=size(A)
 
%kleinster wert  
for z=Z1:-1:1; m=2:1:3;
    min=A(z,m);
    for i=1:z
        if A(i,m)<=min
            min=A(i,m);
            zeilemin=i;
            spaltemin=m;
            zeilemin
            spaltemin
        end
    end
   
end

   %Zeile in neue Matrix, alte Zeile löschen
    if spaltemin == 2
        B(Z2-n,:)=A(zeilemin,:)
    else
        B(1+n,:)=A(zeilemin,:)
    end
    A(zeilemin,:)=[]
   
end
 


Was noch gesagt sein sollte:
Es gibt keine Fehlermeldung, der Fehler liegt darin, dass die neue Matrix exakt so aussieht wie die alte, was nicht so sein sollte(z.B. sollten die Auftragsnummern(1,2,3,4) durcheinander sein und die Produktionszeiten sollten sowieso anders sein.
Tut mir leid nochmal wegen der Langen Frage, danke denen die sich das durchgelesen haben,

MFG Major
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.