Μετάβαση στο περιεχόμενο

Μίσχοι του Πίκοβερ

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Παράδειγμα μίσχων του Πίκοβερ σε μια λεπτομέρεια του συνόλου Μάντελμπροτ

Οι μίσχοι του Πίκοβερ είναι ορισμένα είδη λεπτομερειών που εντοπίζονται εμπειρικά στο σύνολο Μάντελμπροτ, στη μελέτη της μορφοκλασματικής γεωμετρίας[1]. "Πήραν το όνομά τους από τον ερευνητή Κλίφορντ Πίκοβερ, του οποίου η μέθοδος του "σταυρού έψιλον" συνέβαλε στην ανακάλυψή τους. Ένας "σταυρός έψιλον" είναι μια τροχιακή παγίδα σε σχήμα σταυρού.

Σύμφωνα με τον Vepstas (1997), "ο Πίκοβερ επινόησε μια νέα ιδέα, η οποία εξετάζει πόσο κοντά είναι οι τροχιές των εσωτερικών σημείων στους άξονες x και y. Σε αυτές τις εικόνες, το σημείο πλησιάζει ολοένα και περισσότερο όσο υψηλότερη είναι η χρωματική κλίμακα, με το κόκκινο να υποδηλώνει την πλησιέστερη προσέγγιση. Σε αυτές τις εικόνες, όσο πιο κοντά πλησιάζει το σημείο, τόσο υψηλότερη είναι η χρωματική κλίμακα, με το κόκκινο να υποδεικνύει την πλησιέστερη προσέγγιση. Ο λογάριθμος της απόστασης λαμβάνεται για να τονιστούν οι λεπτομέρειες"[2].

Ένα παράδειγμα του είδους των βιομορφικών μορφών που προκύπτουν από τον αλγόριθμο του Πίκοβερ.

Οι Βιομορφές είναι βιολογικά εμφανιζόμενοι μίσχοι του Πίκοβερ.[3] Στα τέλη της δεκαετίας του 1980, ο Πίκοβερ ανέπτυξε βιολογικούς ανατροφοδοτούμενους οργανισμούς παρόμοιους με τα Σύνολα Julia και το μορφοκλασματικό σύνολο Μάντελμπροτ.[4] Σύμφωνα με τον Πίκοβερ (1999) εν συντομία, "περιέγραψε έναν αλγόριθμο που θα μπορούσε να χρησιμοποιηθεί για τη δημιουργία ποικίλων και περίπλοκων μορφών που μοιάζουν με ασπόνδυλους οργανισμούς. Τα σχήματα είναι περίπλοκα και δύσκολο να προβλεφθούν πριν από τον πραγματικό πειραματισμό με τις αντιστοιχίσεις. Ήλπιζε ότι αυτές οι τεχνικές θα ενθάρρυναν άλλους να εξερευνήσουν περαιτέρω και να ανακαλύψουν νέες μορφές, τυχαία, που βρίσκονται στα όρια της επιστήμης και της τέχνης"[5]

Ο Πίκοβερ ανέπτυξε έναν αλγόριθμο (ο οποίος δεν χρησιμοποιεί ούτε τυχαίες διαταραχές ούτε φυσικούς νόμους) για τη δημιουργία πολύ περίπλοκων σχημάτων που μοιάζουν με ασπόνδυλους οργανισμούς. Η επανάληψη ή αναδρομή μαθηματικών μετασχηματισμών χρησιμοποιείται για τη δημιουργία βιολογικών μορφολογιών. Τις ονόμασε "βιομορφές". Την ίδια στιγμή που επινόησε τον όρο "βιομορφή" για να χαρακτηρίσει αυτά τα μοντέλα, ο διάσημος εξελικτικός βιολόγος Ρίτσαρντ Ντόκινς τον χρησιμοποίησε για να προσδιορίσει το δικό του σύνολο βιολογικών μορφών που προέκυψαν με μια πολύ διαφορετική διαδικασία. Πιο συγκεκριμένα, οι "βιομορφές" του Πίκοβερ περιλαμβάνουν την κατηγορία των οργανωτικών μορφολογιών που δημιουργούνται με μικρές τροποποιήσεις των παραδοσιακών δοκιμών σύγκλισης στον τομέα της θεωρίας των "συνόλων Julia"[5].

Οι βιομορφές του Πίκοβερ παρουσιάζουν αυτοομοιότητα σε διαφορετικές κλίμακες, ένα κοινό χαρακτηριστικό των δυναμικών συστημάτων με ανατροφοδότηση. Τα πραγματικά συστήματα, όπως οι ακτογραμμές και οι οροσειρές, παρουσιάζουν επίσης αυτοομοιότητα σε ορισμένες κλίμακες. Ένα 2-διάστατο παραμετρικό σύστημα 0L μπορεί να "μοιάζει" με τις βιομορφές του Πίκοβερ[6].

Οι Μίσχοι του Πίκοβερ αποδίδονται με μια εφαρμογή του συγκεκριμένου ψευδοκώδικα.

Το παρακάτω παράδειγμα, γραμμένο σε ψευδοκώδικα, αποδίδει ένα σύνολο Μάντελμπροτ χρωματισμένο με τη χρήση ενός μίσχου του Πίκοβερ με ένα διάνυσμα μετασχηματισμού και ένα χρωματικό μέρισμα.

Το διάνυσμα μετασχηματισμού χρησιμοποιείται για την αντιστάθμιση της θέσης (x, y) κατά τη δειγματοληψία της απόστασης του σημείου από τον οριζόντιο και τον κατακόρυφο άξονα.

Το χρωματικό μέρισμα είναι μια μεταβλητή που χρησιμοποιείται για τον προσδιορισμό του πάχους του στελέχους κατά την απόδοση.

For each pixel (x, y) on the target, do:
{
	zx = scaled x coordinate of pixel (scaled to lie in the Mandelbrot X scale (-2.5, 1))
    zy = scaled y coordinate of pixel (scaled to lie in the Mandelbrot Y scale (-1, 1))
	float2 c = (zx, zy) //Offset in the Mandelbrot formulae
	
	float x = zx; //Coordinates to be iterated
	float y = zy;
	
	float trapDistance = 1000000; //Keeps track of distance, set to a high value at first.

    int iteration = 0;
	while (x*x + y*y < 4 && iteration < maxIterations)
	{	
		float2 z = float2(x, y);

		z = cmul(z, z); // z^2, cmul is a multiplication function for complex numbers
	    z += c;					

		x = z.x;
		y = z.y;

		float distanceToX = abs(z.x + transformationVector.x); //Checks the distance to the vertical axis
		float distanceToY = abs(z.y + transformationVector.y); //Checks the distance to the horizontal axis

		smallestDistance = min(distanceToX, distanceToY); // Use only smaller axis distance
		trapDistance = min(trapDistance, smallestDistance);

		iteration++;
	}
	return trapDistance * color / dividend; 
	//Dividend is an external float, the higher it is the thicker the stalk is
}

Εξωτερικοί σύνδεσμοι

[Επεξεργασία | επεξεργασία κώδικα]
  • Pickover, Clifford (1987). «Biomorphs: Computer Displays of Biological Forms Generated from Mathematical Feedback Loops». Computer Graphics Forum 5 (4): 313-316. doi:10.1111/j.1467-8659.1986.tb00317.x. 
  1. Peter J. Bentley and David W. Corne (2001). Creative Evolutionary Systems. Morgan Kaufmann. p. 354.
  2. Linas Vepstas (1997). "Interior Sketchbook Diary". Retrieved 8 July 2008.
  3. Paul Nylander. Mandelbrot Set Biomorph. feb 2005. Retrieved 8 July 2008.
  4. Edward Rietman (1994). Genesis Redux: Experiments Creating Artificial Life. Windcrest/McGraw-Hill. p. 154.
  5. 5,0 5,1 Clifford A. Pickover (1991) "Accident, Evolution, and Art" Αρχειοθετήθηκε 2022-12-05 στο Wayback Machine.. YLEM Newsletter number 12 volume 19 Nov/Dec. 1999.
  6. Alfonso Ortega, Marina de la Cruz, and Manuel Alfonseca (2002). "Parametric 2-dimensional L systems and recursive fractal images: Mandelbrot set, Julia sets and biomorphs". In: Computers & Graphics Volume 26, Issue 1, February 2002, Pages 143-149.