Samoreprodukce je schopnost živého organismu , jeho orgánu , tkáně , buňky nebo buněčného organoidu nebo inkluze vytvořit svůj vlastní druh. [1] Obecněji řečeno jakékoli chování dynamického systému , které poskytuje identickou kopii tohoto dynamického systému. K sebereprodukci v živých organismech dochází prostřednictvím reprodukce .
Během buněčného dělení se DNA replikuje a může být předána potomkům během reprodukce. Biologické viry lze reprodukovat, ale pouze manipulací s reprodukčním aparátem buněk během infekce. Počítačové viry se také replikují pomocí hardwaru a softwaru již nainstalovaného v počítačích . Vlastní replikace v robotice je oblastí výzkumu a zájmu ve sci-fi. Jakýkoli samoreprodukující se mechanismus, který nevytváří dokonalou kopii, bude mít za následek vytvoření různých variant, které budou podléhat přirozenému výběru . Nedávné studie klasifikovaly replikátory podle množství podpory, kterou vyžadují:
- Samomontážní systémy ( von Neumannovy stroje ). Své kopie sestavují z hotových dílů. Takové systémy již existují (továrny, kde průmyslové roboty montují další takové roboty).
- Samoreprodukující se systémy, které produkují své kopie z průmyslových surovin a materiálů - kovů, plastů, polovodičů atd.
- "Autotrofní" replikátory jsou samoreprodukující se stroje , které se mohou reprodukovat extrakcí materiálů z jejich přirozeného prostředí. Tento typ replikátoru může být nyní zcela nezávislý na člověku. Anorganické autotrofní replikátory mohou být vyvinuty lidmi v blízké budoucnosti a mohou být snadno přeprogramovány tak, aby produkovaly produkty přátelské k lidem.
- Přírodní replikátory. Tyto systémy zahrnují všechny přirozené formy života.
V informatice je samoreprodukující se počítačový program počítačový program , který po spuštění reprodukuje svůj vlastní kód. Říká se mu také Quine . Zde je příklad programu v programovacím jazyce Python :
a = 'a= %s ;vytisknout %% ,a`' ; vytisknout % ` a ` _Triviálnějším přístupem je napsat program, který vytvoří kopii jakéhokoli datového toku, který je mu odeslán, a poté jej nasměruje na sebe. V tomto případě je program považován za spustitelný kód a jako data, se kterými se má manipulovat.
Tento přístup je běžný ve většině sebereplikujících se systémů, včetně biologických aspektů života, a je jednodušší v tom smyslu, že nevyžaduje, aby program obsahoval úplný popis sebe sama.
V mnoha programovacích jazycích je prázdný program stále legální program, který běží bez chyb nebo jiného výstupu. Výstup je tedy stejný jako zdrojový kód, takže program provádí triviální sebereplikaci.