Mundarija:

Kit Ciencia Y Arte: Algoritmo Genetico (Vida Sun'iy): 6 qadam
Kit Ciencia Y Arte: Algoritmo Genetico (Vida Sun'iy): 6 qadam

Video: Kit Ciencia Y Arte: Algoritmo Genetico (Vida Sun'iy): 6 qadam

Video: Kit Ciencia Y Arte: Algoritmo Genetico (Vida Sun'iy): 6 qadam
Video: ¿Cuál es tu origen genético? 2024, Noyabr
Anonim
Kit Ciencia Y Arte: Algoritmo Genético (Vida sun'iy)
Kit Ciencia Y Arte: Algoritmo Genético (Vida sun'iy)

Los algoritmos genéticos son probablemente una de las cosas más interesantes de la computación (eng yaxshi variant). Biologik nuqtai nazarga ko'ra, bu muammoning echimlari va algoritmlari.

Al -algoritm genético es parte de lo que que seo conoce como algoritmos evolutivos en el mundo de las ciencias de la computación. Bu algoritmga ko'ra, eng yaxshi hacemos emas. Adafruit o'yinlari uchun elektron o'yin maydonchasi (CP).

Imperial CP CP es es ser vivo, a que seebe adaptar a las condiciones cambiantes de luz. Hujjat yuklanmaganligi sababli, siz avtoulovni datchik yordamida o'chirib qo'yishingiz mumkin. Qishloq xo'jaliklarining shaxsiy ma'lumotlariga ko'ra, bu mumkin emas. Maqsadiga ko'ra, bu eng katta ma'noga ega. Bu genetika algoritmiga ko'ra, hacerlo.

REKLAMA: AVANZADOS uchun eng yaxshi mavzu

1 -qadam: Materiallar

Materiallar
Materiallar
Materiallar
Materiallar

Oddiy:

  1. O'yin maydoni
  2. Bateria
  3. USB kabeli
  4. Qimmatli qudratli o'yinlar

2 -qadam: Bosqueda Azar

Búsqueda Al Azar
Búsqueda Al Azar

Tasavvur qiling -a, moneta, aprandando letras en el teclado de una computadora, el mono simplemente presiona las letras al azar. Bu erda 50 tadan ko'p bo'lmagan masofada, bir vaqtning o'zida 1/50 = 0,02 gacha bo'lgan davrda (mustaqil mono presiona de manera mustaqil).

Axir, siz "banano", "al -mono escripa", "panno el mono escribir la palabra" kabi savollarga javob berasizmi? SI javobgarligi !!!

O'yin -kulgi uchun javobgarlikni o'chirib qo'yish kerak. Vamos estadísticamente. "Banano" yozuvi, ehtimol, kon'yunktura bilan bog'liq bo'lishi mumkin:

(1/50) x (1/50) x (1/50) x (1/50) x (1/50) x (1/50) = (1/50)^6

O'ylaymanki, 15 625 000 000, ehtimol, "banano", ehtimol 1 milliondan 15 milliongacha … ehtimol, juda ko'p! Dicho de otro modo, eski muy poco ehtimol que un mono escriba la palabra "banano" escribiendo teclas al azar, a tho tuviéramos 15 millones de monos escribiendo, no que que uno de ellos escriba la palabra "banano". entonces poco ehtimol, lekin imkonsiz.

Fikr -mulohazalar hech kimga sir emas. SI (1/50)^6 eslatib o'tilgan "banano", yozish, 1- (1/50)^6 eslatma ehtimoli yo'q. Maqsad va vazifalarni bajarish mumkin emas, shuning uchun "banano" ni o'chirib tashlamang:

P = [1- (1/50)^ 6]^ n

Maqsadga ko'ra, P = 1, nishon un millén de veces, P = 0.999936, 10 million millon uchun, P = 0.53, y mientras más grande se n, más me acerco a P = 0, es decir, "banano" degan ma'noni anglatuvchi raqamlar va raqamlar.

Bu erda hech qanday cheklovlar yo'q, lekin bu hech kimga to'g'ri kelmaydi, lekin hech kim yo'q. Palabras, la fuerza bruta, na es una forma efectiva de buscar una solución.

Qachonki, mana, tabiiyki, busca al -azar, mana konstruktiv, eskirgan, har qanday mantiqiy emas, balki har bir narsani hal qilish mumkin, bu esa har bir narsani hal qiladi. Esa es la manera en que el algoritmo genético funciona, tomando g'oyalar, bu genesa las seres vivos, va ixtiro qilingan algoritmlar, shuningdek, kompyuter muammosi. Eng muhimi, hech kimni eslatib o'tmaydi, lekin hech kim dengizdan mustaqil emas.

DIQQAT: bu ma'lumotlarning eng katta qismi

3 -qadam: Evolucion Y Definiciones

Evolyutsion Y ta'riflari
Evolyutsion Y ta'riflari
Evolyutsion Y ta'riflari
Evolyutsion Y ta'riflari
Evolyutsion Y ta'riflari
Evolyutsion Y ta'riflari

La evolución

Algoritmo genético (AG) es algoritmo que permite encontrar una helución a problemas diffíciles de helper. El AG, Darviniananing asosiy printsiplari:

  • Herensiya: Los hijo reciben las características de sus padres. En el AG ma'nosi que las nuevas soluciones, bu alkanzado, old tomoni.
  • Variación: Debe haber un mecanismo uchun joriy qilingan. en el AG, bu har qanday ma'lumotni ham o'z ichiga oladi.
  • Taqdimot: lec mejores. Qachonki, "fitnes" funktsiyalari aniqlansa, bu muammoni hal qilishga yordam beradi.

Algoritmo Genético -da, men bir metrga yaqin masofani bosib o'tmoqchiman.

Ta'riflar

Aniq algoritmlar bilan bir qatorda, biz ham buni aniqlaymiz. Ma'lumki, bu algoritm genetika bilan bog'liq, shuning uchun siz o'qish va o'qishni osonlashtirasiz.

  1. Bu muammoni "kodifikatsiya qilish" muammosini hal qilishda, bu muammoni hal qilish uchun CP -ning vakili bo'lishi mumkin. Manacen sencilla hacemos. Bu erda rasmlar, 10 ta LED "1" yoki "0" raqamlari mavjud bo'lib, ular 10 ta elementni o'z ichiga oladi, chunki ular 101000000 raqamli los leds 0 y 2 están encendidos, y el resto. apagados. y 0010011010, que los leds 2, 5, 6 y 8 están encendidos
  2. Una Población es un conjunto de posibles combinaciones de leds encendidos (ver la imagen de población), est s pueden ser iguales or diferentes. Cromosoma va elementar elementlardan biri. Bu kromozomga ta'sir qiladi, lekin hech qanday muammo yo'q.
  3. Bir vaqtning o'zida LED -lar bilan bir qatorda, LED -lar ham, fotosuratlar ham, ovozli xabarlar ham, shuningdek, 5 ta kambag'al uylar ham mavjud.
  4. Rekombinacionlar, tomas dos cromosomas, escoger un punto de cruzamiento, intercombiar la entracional de los ambios (diagramma).
  5. Fitness mashg'ulotlarini o'tkazib yubormaslik uchun, bu eng muhim mezondir, bu esa kromosomalarni tanlashga yordam beradi. Qachonki, biz tez -tez uchib ketamiz.

4 -qadam: El Algoritmo

El Algoritmo
El Algoritmo
El Algoritmo
El Algoritmo
El Algoritmo
El Algoritmo

paso va paso

  1. Al -azar poklasining eng katta qismi kromozomalardir
  2. "Fitnes" funktsiyasini baholang.
  3. Nusxa oluvchilarni rekombinatsiyalash va nusxa ko'chirish.
  4. Muvaffaqiyatli harakat qilish
  5. Partiya 2 ni takrorlang

Masalan

Como expliqué en las definiciones, una tira (cromosoma) 1000101010, "1" y apagados "0", bolalar o'yin maydonchasi. "Fitnes" ning aniq bir vazifasi:

fitnes = (lektura de luz) x 0.5 - (número de leds) x 0.5

Notes como restamos el numero de leds en la fórmula, pere queremos la mejor luz con la cantidad menor de leds, entonces si una solución es luz pero con menos leds, seleccionaremos esa.

Oxir -oqibat, krosomoma va fitnes bilan bog'liq holda, "los leds" korporatsiyasi javob beradi. Eslatib o'tamiz:

0011100000 fitnes = 98.5

1011100001 fitnes = 102.5

1010101011 fitnes = 102

O'yin -kulgi 102,5 va 102 -chi bosqichlarni tanlashda, rekombinatsiyani qayta tiklashda yordam beradi, shuning uchun siz o'zingizni qiziqtirgan narsalarga ega bo'lasiz.

1011100001

0011101011

1010100011

Mana, siz tanlagan vaqtingiz uchun ham, tanlanganingiz ham. Qachonki, bu muammoning echimini topishga imkon beradi, bu sizning xohishingizga javob beradi.

5 -qadam: El -Kodigo

El -Kodigo
El -Kodigo
El -Kodigo
El -Kodigo
El -Kodigo
El -Kodigo

GitHub -ni yuklab oling. "Cromosome.h", "genom" va boshqa algoritmlar, direktorlar qo'mitasi direktorlari, hech qanday ma'lumotga ega emas.

Codigo direktori

20 ta kromosoma bilan bog'liq muammolar paydo bo'ladi:

#aniqlang N 20

pop pop (N);

El -objeto es populyatsiyasi y lo hemos llamado pop. Bu 20 ta kromosomani o'z ichiga oladi, shuning uchun ular kerosomga tegishli. O'rnatish tugagandan so'ng:

pop.mutateXromosomalar (0,5, 0);

Kromozoma 0,5 ga teng bo'lishi mumkin, bu esa kromosoma 0 ga teng bo'ladi.

pop.copyCrossover (2);

Mumkin bo'lgan taqdirda (0,05), kromozoma 1 -chi o'rinni egallaydi (kromosoma 0 es el mejor).

pop.mutateXromosomalar (0,05, 1);

Yo'qolganingizdan so'ng, biz bu savolga javob beramiz.

baholash ();

Qishloq xo'jaliklari sportchilari (kabarcıklar bo'yicha), shuningdek, rekombinatsiyadan o'tish, pop.sort ();

Hammasi yaxshi. Bu juda muhim vazifalarni bajarishga yordam beradi

Ishni baholash

El codigo de evalu () eslari:

bekor baholash () {

uchun (int i = 0; i <pop.n; i ++) {setPixels (i); // LEDga kechikishni yoqish uchun vaqt beradi (100); fitnes (i); }}

Kromozoma bilan bog'liq muammolar (masalan, los leds korreziondientes) va boshqalar (masalan, pikseldagi piksellar sonini), fitnes va boshqa funktsiyalarni, yaroqsiz fitnes (int a) {

pop.fitness [a] = 0,5 * float (CircuitPlayground.lightSensor ()) - 0,5 * float (pop.countBits (a)); }

Almacenamos el valor de fitness de cada cromosoma en pop.fitness

6 -qadam: Funcionando Y retos

Funcionando

Videoni ko'rsatsangiz, bu sizning xohishingizga mos kelmaydi. Siempre encuentra una buena solución. O'qituvchilarga ko'rsatma berilishi mumkin, bu sizning kompyuteringiz uchun eng muhim algoritmdir.

Al -algoritmlar bilan bir qatorda, bu ham har doimgidek, siz ham shart -sharoitlarni o'rganib chiqishingiz mumkin. Bu juda ko'p iteraciones va euclución en poco tiempo, organizmi vivo sono mucho más lentas.

de cierto modo el algoritmo sirve para encontrar la dejor solución, dadas ciertas condiciones. Aniq algoritmlar aniqlansa, bu sizning CP -ni aniqlab beradi, lekin siz algoritmni o'rganishingiz mumkin.

Muvaffaqiyatsiz bo'lgan taqdirda, bu algoritmlar aniqlanmaydi, lekin ular hech bo'lmaganda juda yaxshi.

Komentario final

Qachonki, bu bizni kutubxonamizdan foydalanishga imkon beradi. LED -larni o'rnatish juda oddiy va juda muhim emas, chunki ular juda oddiy va muammosiz hal qilinadi. Gunoh embargosi, bu sizning uyingizda, uyingizda, uyingizda, hech kimga hech qanday xavf tug'dirmaydi, hech qanday muammosiz, hech qanday muammo tug'dirmaydi. Meni eslatib turing!)

Retolar

  • Avtobus muammosini hal qilishda "fitnes" uchun murakkab vazifalarni bajaring.
  • O'ylab ko'ring-chi, kambiando ehtimoli ham, qayta kombinatsiyasi ham, población ham, kambiando tiempos (hammasi kechiktiriladi).
  • Robot bilan ishlash, turli xil vaziyatlarda
  • Mezioz, evolyutsion jarayonlar
  • Algoritmos genetics (fond kitoblari)

Tavsiya: