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

Μηδενισμος αρνητικών υπολοίπων


Spect~

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

  • Moderators

Καλησπέρα,

θα μπω απευθείας στο ψητο. Εχω να κανω μια δουλεια η οποια ειναι για τρελους οποτε θελω τα φωτα σας. Οτι φτιαξω θα γινει σε python. Εχω ενα εξελ το οποιο εχω  σε καθε γραμμη ενα κωδικο και στις στηλες τις ποσότητες σε καθε αποθηκευτικο χώρο. Καποια απο αυτα τα ηδη εχουν αρνητικο υπολοιπο σε μια αποθηκη ενω σε αλλη εχει θετικο. Θελω με καποιο τρόπο να μου βγαλει τι κινησεις πρεπει να γινουν ώστε να μεταφερθουν υπολοιπα απο τα θετικα στα αρνητικα ωστε να εχω οσο το δυνατον λιγότερα αρνητικα αποθεματα. Αυτο που θελω να μου βγαλει ειναι τι ποσοτητα πρεπει να κινησω απο το καθε ειδος σε καθε αποθηκη για να μηδενισουν τα αρνητικα ουσιαστικα. 

Δηλαδη θελω να μου βγαλει οτι θα πρεπει πχ

απο την Αποθηκη 00 -> 01

ΚΩΔΙΚΟ ΕΙΔΟΥΣ - ΠΟΣΟΤΗΤΑ

ΚΩΔΙΚΟ ΕΙΔΟΥΣ - ΠΟΣΟΤΗΤΑ

ΚΩΔΙΚΟ ΕΙΔΟΥΣ - ΠΟΣΟΤΗΤΑ

.

.
Αποθηκη 00 -> 02

ΚΩΔΙΚΟ ΕΙΔΟΥΣ - ΠΟΣΟΤΗΤΑ

ΚΩΔΙΚΟ ΕΙΔΟΥΣ - ΠΟΣΟΤΗΤΑ

ΚΩΔΙΚΟ ΕΙΔΟΥΣ - ΠΟΣΟΤΗΤΑ

.

.

Αποθηκη 02 -> 00

ΚΩΔΙΚΟ ΕΙΔΟΥΣ - ΠΟΣΟΤΗΤΑ

ΚΩΔΙΚΟ ΕΙΔΟΥΣ - ΠΟΣΟΤΗΤΑ

ΚΩΔΙΚΟ ΕΙΔΟΥΣ - ΠΟΣΟΤΗΤΑ

.

.

 

Οποιαδηποτε βοηθεια καλοδεχουμενη

items.PNG

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Αυτό που ζητάς, όπως το ζητάς, είναι πολύ απλό. Για κάθε κωδικό, εάν τα θετικά καλύπτουν τα αρνητικά, τότε παίρνεις από τα θετικά μέχρι να μηδενίσεις τα αρνητικά. Εάν δεν καλύπτουν, τότε παίρνεις όσα μπορείς έτσι ώστε να γίνει μηδέν σε κάποια (όσα μπορείς).

Όμως, από εμπειρία βλέπω πως σε αυτό το πρόβλημα υπάρχουν κάποιες παράμετροι τις οποίες είτε παραβλέπεις ή δεν μας τις λες εδώ. Δηλαδή, εάν (π.χ.) έχεις τρεις αποθήκες, Α, Β, και Γ, δεν είναι ίδιο κόστος η μεταφορά από την Α στην Β με την μεταφορά από την Α στην Γ. Οπότε, εάν έχεις 2 στην Α και -1 στην Β και -1 στην Γ, τότε θα έχεις αναγκαστικά κάποια αποθήκη με -1 και θα πρέπει να επιλέξεις σε ποια.

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

Επεξ/σία από DrKo
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

Δεν μας απασχολει κοστος/χόρος για αυτο δεν αναφερθηκα καθολου σε αυτα. Το μονο προβλημα ειναι αυτο της επιλογης οταν εχουν 2 ή παραπανω αρνητικα. Εκτος εαν το πας σειριακα και οτι βγει. Αν και το καλυτερο ειναι να μηδενισεις οσο περισσότερα μπορεις.

Απο την αλλη μπορεις να τρεξεις την μια φορα και στη δευτερη να βαλεις τις "νεες" αποθηκες.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
9 λεπτά πριν, Spect~ είπε

Δεν μας απασχολει κοστος/χόρος για αυτο δεν αναφερθηκα καθολου σε αυτα. Το μονο προβλημα ειναι αυτο της επιλογης οταν εχουν 2 ή παραπανω αρνητικα. Εκτος εαν το πας σειριακα και οτι βγει. Αν και το καλυτερο ειναι να μηδενισεις οσο περισσότερα μπορεις.

Απο την αλλη μπορεις να τρεξεις την μια φορα και στη δευτερη να βαλεις τις "νεες" αποθηκες.

Αυτό που σε ενδιαφέρει είναι να μηδενίσεις το αρνητικό. Εάν έχεις -1000 και -300, αρχίζεις από το -300. Εάν σου φτάσει, καλύπτεις όσο μπορείς από το -1000. 

Δηλαδή για κάθε κωδικό:

Κοιτάς πόσο πλεόνασμα έχεις.

Κάνεις sort το έλλειμα με αύξουσα σειρά.

Καλύπτεις μέχρι είτε να μην έχεις άλλο έλλειμα ή να μην έχεις άλλο πλεόνασμα. 

Επαναλαμβάνεις για όλους τους κωδικούς. 

Επεξ/σία από DrKo
  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators
Δημοσ. (επεξεργασμένο)
5 λεπτά πριν, DrKo είπε

Αυτό που σε ενδιαφέρει είναι να μηδενίσεις το αρνητικό. Εάν έχεις -1000 και -300, αρχίζεις από το -300. Εάν σου φτάσει, καλύπτεις όσο μπορείς από το -1000. 

Δηλαδή:

Κοιτάς πόσο πλεόνασμα έχεις.

Κάνεις sort το έλλειμα με αύξουσα σειρά.

Καλύπτεις μέχρι είτε να μην έχεις άλλο έλλειμα ή να μην έχεις άλλο πλεόνασμα. 

Χμμ. Οταν θα κανεις sort το ελλειμα ομως πως θα κρατας εικονα ποια αποθηκη ειναι ποια; εννοω παιρνεις μια γραμμη 

και εχεις 

00: 1020

01:-200

02:300

03: -123

04:230

 

πως θα ξερεις απο που θα παρεις και που θα βαλεις; 

Επεξ/σία από Spect~
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αφού σε νοιάζει μόνο να μην έχεις αρνητικά, πάρε από τα περισσότερα πρώτα και βάλε στα λιγότερα μείον πρώτα.

Το πώς θα ξέρεις ποιο έλλειμα πάει σε πόδια αποθήκη, λύνεται με ένα σκασμό τρόπους. Από δύο λίστες μέχρι και με numpy arrays όπου το sorting επιστρέφει και τα indices. 

Π.χ., μπορείς να έχεις το εξής:

Έστω η λίστα Χ με τα πλεονάσματα και η λίστα Υ με τα ελλείμματα για έναν κωδικό  (τα ελλείμματα σε απόλυτη τιμή)

Για όσο υπάρχει αριθμός μεγαλύτερος του 0 στην Χ

βρες τον μέγιστο αριθμό στην Χ.

Για όσο ο μέγιστος είναι μεγαλύτερος του 0

Για όσο υπάρχει αριθμός μεγαλύτερος του 0 στην Υ

Βρες τον ελάχιστο στην Υ

Εάν ο μεγιστός της Χ είναι μεγαλύτερος ή ίσος, αφαίρεσε τον ελάχιστο της Υ και κάνε τον ελάχιστο 0

Εάν ο μέγιστος της Χ είναι μικρότερος, αφαίρεσε τον μέγιστο από τον ελάχιστο, και κάνε τον μέγιστο 0.

Θέλει προσοχή πώς αλλάζεις τα στοιχεία της λίστας και πώς κάνεις τον έλεγχο για εάν υπάρχει μεγαλύτερος του 0 στην Χ

Το αποπάνω είναι στο πόδι. Αλλά μία ιδέα την πήρες 

  • Like 3
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

εγώ θα φόρτωνα τα excel στην μνήνη (σε cursor) (list). κάθε λίστα είναι μια αποθήκη.

θα έκανα for loop για κάθε λίστα, και θα έλεγχα εάν ο κωδικός που διάβασα είναι αρνητικός. Εάν είναι θα τον έψαχνα στις άλλες λίστες για να δώ εάν είναι θετικός εκεί.

Εάν είναι θα μετέφερα +- από την μία στην άλλη ποσότητα με μέγιστο τον θετικό αριθμό. Αυτήν την μεταφορά θα την έβαζα σε έναν πίνακα με string "Transfer from X list to Y list Z number for <Code>"

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

 

Ουσιαστικά αυτό είναι το πρόγραμμα.

Load list(s) From excel

Loop each list and check for negative numbers

For Each negative number, check other lists, and initialise transfer ( add to new list )

Print list( or better print new excels and add a sheet with transfers)

End program

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators

Θα το δω με την πρωτη ευκαιρία γιατι τωρα εχω ανοιξει αλλες πληγες με μετακομιησ/ανακαινιση και μηδενιζει η τσεπη μοΥ! 
Ευχαριστω!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...