Ασκηση 1η:
Θέλετε να ελαχιστοποιήσετε τη συνάρτηση τριών μεταβλητών f(x,y,z). Η μεταβλητή x παίρνει τιμές στο διάστημα [-20.0, 125.0], η μεταβλητή y στο διάστημα [0, 1.2 x 106] και η μεταβλητή z στο διάστημα [-1.0, 1.0]. Η επιθυμητή ακρίβεια (δηλαδή το βήμα μεταβολής της μεταβλητής) είναι 0.5, 104 και 0.001 αντίστοιχα. Να κατασκευάσετε μια ενιαία δυαδική κωδικοποίηση για το πρόβλημα αυτό. Ποιος είναι ο ελάχιστος αριθμός δυαδικών ψηφίων που απαιτούνται για να επιτευχθεί η επιθυμητή ακρίβεια; Με την κωδικοποίηση που πραγματοποιήσατε, να καθορίσετε τις συμβολοσειρές, οι οποίες αναπαριστούν κάθε ένα από τα ακόλουθα σημεία: (-20, 0, -1), (125, 1.2Ε6, 1) και (50, 100000, 0.597). Προκύπτει πρόβλημα περιορισμών στην παραπάνω κωδικοποίηση;
Λυση:
Για τη δυαδική κωδικοποίηση της μεταβλητής x έχουμε:
Αφού παίρνει τιμές στο διάστημα [-20.0, 125.0] το μήκος του διαστήματος είναι 125-(-20)=145. Αφού το βήμα μεταβολής θέλουμε να είναι 0.5, προκύπτουν 290 διαστήματα. Άρα, εάν απαιτούνται m ψηφία για την κωδικοποποίησή του πρέπει να ισχύει: 2m-1<290≤2m.
Επομένως: δυαδικά ψηφία.
Ομοίως για τις μεταβλητές y και z έχουμε:
Για την y: δυαδικά ψηφία.
Για
την z: δυαδικά ψηφία.
Επομένως για την κωδικοποίηση των x, y, z απαιτείται χρωμόσωμα μήκους 34 δυαδικών ψηφίων, όπου τα πρώτα 9 αντιστοιχούν στην μεταβλητή x, τα επόμενα 14 στην μεταβλητή y και τα τελευταία 11 στην μεταβλητή z.
Η κωδικοποίηση και η αποκωδικοποίηση των x, y, z γίνεται με τη χρήση των παρακάτω συναρτήσεων:
,
,
.
όπου
είναι οι
κωδικοποιημένες τιμές των x,
y, z στο δεκαδικό
σύστημα.
Για το σημείο (-20, 0, 1) έχουμε:
x΄=(-20+20)(29-1)/145=0
y΄=0·(214-1)/1.2·106=0
z΄=(-1+1)(211-1)/2=0
Άρα η συμβολοσειρά που προκύπτει αποτελείται από 34 μηδενικά:
.
Για το σημείο (125, 1.2×106, 1) έχουμε:
x΄=(25+20)(29-1)/145=29-1
y΄=(1.2·106)(214-1)/1.2·106=214-1
z΄=(1+1)(211-1)/2=211-1
Άρα η συμβολοσειρά που προκύπτει αποτελείται από 34 άσους:
.
Για το σημείο (50, 105, 0.597) έχουμε:
x΄=(50+20)(29-1)/145=246.68247
y΄=105(214-1)/1.2·106=1365.251365
z΄=(0.597+1)(211-1)/2=1634.531635
Άρα η συμβολοσειρά που προκύπτει είναι η εξής:
.
Στην παραπάνω κωδικοποίηση δεν προκύπτει πρόβλημα περιορισμών, αφού οι μεταβλητές x, y, z είναι ανεξάρτητες μεταξύ τους και δεν υπάρχουν μη έγκυρες τιμές.