-
Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!new
s.nask.org.pl!news.onet.pl!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!new
s.neostrada.pl!not-for-mail
From: "Filip Sielimowicz" <s...@t...tez.wp.pl>
Newsgroups: pl.sci.ai,pl.comp.programming
Subject: Re: no i co z tymi algorytmami genetycznymi?
Date: Mon, 26 Oct 2009 12:23:33 +0100
Organization: TP - http://www.tp.pl/
Lines: 140
Message-ID: <hc41fo$avn$1@nemesis.news.neostrada.pl>
References: <6...@g...googlegroups.com>
<hbp9db$a4h$1@atlantis.news.neostrada.pl>
<d...@l...googlegroups.com>
<hbpdcv$bjq$1@nemesis.news.neostrada.pl>
<7...@p...googlegroups.com>
<hbps9s$pi5$1@nemesis.news.neostrada.pl>
<1...@p...googlegroups.com>
<hbs2q8$6n0$1@atlantis.news.neostrada.pl>
<8...@p...googlegroups.com>
NNTP-Posting-Host: efp194.internetdsl.tpnet.pl
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=original
Content-Transfer-Encoding: 8bit
X-Trace: nemesis.news.neostrada.pl 1256556859 11255 83.14.249.194 (26 Oct 2009
11:34:19 GMT)
X-Complaints-To: u...@n...neostrada.pl
NNTP-Posting-Date: Mon, 26 Oct 2009 11:34:19 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5843
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579
Xref: news-archive.icm.edu.pl pl.sci.ai:10926 pl.comp.programming:183880
[ ukryj nagłówki ]
Użytkownik "Mariusz Marszałkowski" <m...@g...com> napisał w wiadomości
news:8056130c-9c4f-4b4e-bca3-b40d93a72ae6@p9g2000vbl
.googlegroups.com...
On 23 Paź, 13:05, "Filip Sielimowicz" <s...@t...tez.wp.pl>
wrote:
>Dobrze że to opisałeś, nie miałem pojęcia że istnieją takie mechanizmy
>w naturalnej ewolucji. Naiwne krzyżowanie cech, nawet na taką skalę jaką
>jest cała planeta i miliardy lat czasu, wydaje się słabym pomysłem.
mechanizmy to trochę za dużo powiedziane. po prostu duplikacja genów
i produkcja białek, które się rozchodzą w komórce i albo coś zmieniają
(na gorsze lub lepsze) albo są neutralne. Dopiero uszkodzenie/usunięcie
wszystkich genów (np. spotkanie się genów recesywnych) powoduje, że
coś co było u rodzica, 'znika'.
>Kombinowałem bardzo różnie. Np. budowałem tablicę wszystkich
>sensownych reguł. Taką tablicę traktowałem jak zbiór atomowych
>reguł. Eksperymentowałem z prostymi regułami i z bardziej
>skomplikowanymi:
Ok, widzę, że sporo już się namęczyłeś z tematem.
I nie było żadnych ciekawych efektów ? badałeś zmiany w funkcji
przystosowania
(wykresy), tempo jej wzrostu ?
>Reprezentacje danych w komputerze zawsze można przestawić jako
>ciągi bitów. Ale wartości w kolumnach są niezbyt licznym podzbiorem
>liczb całkowitych, np. o mocy równej 50.
>Użyłem określenia bit, aby podkreślić, że czasami niewielka zmiana w
>danych wejściowych może decydować o zmianie ich klasy, a czasami
>nawet po istotnej zmianie rekord cały czas należy do tej samej klasy.
>Więc dane reprezentują problem z pogranicza problemu kombinatorycznego
>i statystycznego. Liczę na wyłonienie tych statystycznych cech.
Oki ... Pojęcia bitu bym tu raczej jednak nie mieszał, jeśli nie ma
wyraźnego związku między problemem a bitową reprezentacją danych
to bym unikał np. operatorów genetycznych, które coś tam mieszają w
bitach liczb.
>> Co to znaczy 'kombinacji liści' ?
>Liściem nazwałem węzeł który nie zawiera już żadnej reguły, zawiera
>tylko numer klasy do której zostanie przypisany rekord.
>Drzewo binarne z jedną regułą może zaklasyfikować rekord do jednej z
Oki, to było dla mnie jasne już wcześniej, pytałem o słowo 'kombinacji',
sugerowało to, że Twój algorytm w ramach krzyżowania/mutacji skupia się
głównie na przestawianiu liści miejscami, co w oderwaniu od reguł
wydaje mi się raczej słabym pomysłem. Mało efektywnym.
>> W operacji krzyżowania dwóch drzew decyzyjnych widzę tu
>> największe pole do popisu - np. przez takie zdefiniowanie krzyżowania,
>> by modyfikowało decyzje nadając im różne priorytety (poprzez
>> przestawianie
>> węzłów decyzyjnych w górę/w dół drzewa i mieszania ich z decyzjami
>> z drugiego drzewa).
>Nie sprawdzałem jeszcze tego sposobu, ale czeka na swoją kolej.
No, ja bym od tego chyba zaczął ;) Jak mamy do czynienia z drzewami
to naturalne jest skonstruowanie takich operatorów, które mają świadomość
tych drzew i np. przenoszą węzły, przepinają gałęzie itp.
>> Reguły masz postaci
>> "Upraszczając, warunki w węzłach drzewa ograniczmy do M_ij <= C_j,
>> gdzie C_j jest jedną z wartości kolumny j."
>> Nie bardzo kumam, co oznacza tu owe C_j. To wartość wylosowana ze
>> wszystkich rekordów ? Rozumiem, że jest to po prostu jakiś mniej lub
>> bardziej przypadkowo wygenerowany współczynnik ?
>C_j to konkretna wartość z kolumny. Dajmy przykładową tabelę:
>1 4 1 0 5
>...
>2 2 1 0 4
>Kolumna pierwsza to numer klasy.
>Kolumna druga to wartość funkcji celu F, jeśli klasyfikator T
>na podstawie kolumn 3,4,5 przypisze rekord do dobrej
>klasy (tej określonej w pierwszej kolumnie) to funkcja F
>zwraca wartość z drugiej kolumny, jeśli klasyfikator T źle
>przypisze klasę, to funkcja F zwraca np. wartość z drugiej
>kolumny pomnożoną przez -1. Oczywiście klasyfikator "nie zna"
>wartości z kolumny pierwszej i drugiej.
Oki, nie do końca chwytam, ale po prostu nie bardzo mam
czas. Pozostanę na 'wyższym poziomie abstrakcji'.
>> Czy w twoim wypadku z jednym węzłem, chromosom wygląda
>> po prostu jak czwórka (P, I, K1, K2) - gdzie P to odpowiednik powyższego
>> C_j (próg), I to numer branego pod uwagę elementu z rekordu a K1 i K2
>> to klasy (liście) ?
>> Mam tylko wątpliwości co do tego I 9czy je masz) - nie wiem dokładnie,
>> jak to drzewo decyzyjne wybiera u Ciebie jedną z wartości (kolumnę)
>> w wierszu.
>Mam nadzieję że udało mi się to wyjaśnić powyżej.
Ok.
>No i rozmiar przestrzeni rozwiązań decyduje o niebanalności. Załóżmy
>że wybieramy jako regułę atomową tą najbardziej zaawansowaną z trzech
>jakie przestawiłem na początku. Więc mamy około 80mln reguł
>atomowych.
>Załóżmy że drzewo ma mieć 10 węzłów wewnętrznych + 11 liści, problem
>niech
>ma 6 klas, a dane to 2mln rekordów w tabeli. Więc mamy około 100
>cyfrową
>liczbę rozwiązań.
Oki ;) Przestrzeń duża, ale ... To typowe ;) jaka jest przestrzeń rozwiązań
dla problemu komiwojażera ze 100 miastami ? A 1000 ? ;)
>Poza tym w algorytmie zachłannym (dzięki sztuczce z sumami
>częściowymi)
>można dość szybko generować jedno (albo nawet dwu) węzłowe optymalne
>poddrzewa. Następnie w algorytmie zachłannym do rozwiązania włącza się
>to optymalne poddrzewo, które najbardziej maksymalizuje rozwiązanie.
>Takiej sztuczki w algorytmie genetycznym chyba nie da się zrobić,
>przynajmniej
>ja nie wiem jak.
Z braku czasu nie wnikam ... Może jeszcze podejdę do tematu.
Wydaje mi się, że sam AG nie stawia problemu, to tylko kwestia
skomplikowania chromosomu, operatorów i funkcji oceny,
wbudowania w problem tej samej wiedzy, co w innych rozwiązaniach
analitycznych, a AG pozostawienie tylko kwesti związanych
z przeszukiwaniem tego, czego już nie umiemy uprościć.
>Znaczenie niektórych kolumn jest bardzo podobne a innych zupełnie
>różne. Fajnie by było, jakby algorytm genetyczny sam odkrył reguły
>podobieństwa pomiędzy kolumnami i sam swoją pracę tak
>sparametryzował,
>aby szybciej podać lepsze rozwiązanie ;-) Może jeden algorytm
>genetyczny
>by dobierał parametry dla drugiego algorytmu genetycznego ;-)
Wystarczy jeden. Rozbudowujemy chromosom o dodatkowe
(zresztą robiłes sam jakieś kombinacje z głosowaniami itp)
pola, w których np. zapisujemy informacje o 'kolumnach podobnych'
(np dodajemy miejsce na 6 par liczb) i wrzucamy to info jako
parametry wpływające na działanie operatorów genetycznych
(decydujacych np. które węzły z którymi wymieniać, czy kopiować
reguły). Nazwałbym je 'genami regulacyjnymi'. Geny regulacyjne
już krzyzujesz i mutujesz standardowo, prosto (wymiana par liczb
między osobnikami). Można popróbować.
Następne wpisy z tego wątku
- 28.10.09 11:06 Filip Sielimowicz
- 28.10.09 12:18 Mariusz Marszałkowski
- 08.11.09 13:28 Mariusz Marszałkowski
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-02-01 "Nie kupujcie samochodów elektrycznych
- 2025-02-01 jakie małe auto duże w środku :-)
- 2025-02-01 Re: pytanie do oponiarzy lub szybkojeżdzących (opony Hankook Ventus Prime, S1 Evo, alternatywy)
- 2025-02-01 T-1000 was here
- 2025-02-01 Warszawa => DevOps Engineer <=
- 2025-02-01 Katowice => Administrator IT - Operating Systems and Virtualization <=
- 2025-02-01 Warszawa => Spedytor międzynarodowy <=
- 2025-02-01 Śmierć mózgu a narządy do pobrania
- 2025-01-31 A niektórym to naprawdę zależy na ekologi w miastach LPG POWRACA ;-)
- 2025-01-31 Lublin => Programista Delphi <=
- 2025-01-31 Łódź => Programista NodeJS <=
- 2025-01-31 Wrocław => Senior SAP Support Consultant (SD) <=
- 2025-01-31 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2025-01-31 Gdańsk => iOS Developer (Swift experience) <=
- 2025-01-31 Kraków => UX Designer <=