Pisanie tester optymalizator z rękami! Część 1

Anonim

Wprowadzenie. Metody optymalizacji strategii dla Jak widać z poprzedniego artykułu, metody optymalizacji sortowania nie jest skuteczne. Biorąc pod uwagę szybkość testy, nieodpowiednie, aby przejść przez wszystkie możliwe parametry. Istnieją, oczywiście, gotowe strategie optymalizacja wydajności w innych produktów oprogramowania. Ale w jaki sposób tłumaczyć swoje strategie? Czy to wszystko może być testowanie, czego potrzebujemy? Czy badania odzwierciedlają rzeczywistość? Z reguły muszą one wszystkie rodzaje złączy, konwerterów i innych. Kule, nie odnoszą się do naszych celów. Co więcej, to „czarne skrzynki” i wierzą, że jest naprawdę nikt nie wie. A jeśli chodzi o pieniądze nie powinny być miejscem dla wszelkich nieprzewidzianych i niepewności. Na Według producenta, nie wierzę tego typu oprogramowania. Ile razy w obliczu najpoważniejszych produkty z wszelkiego rodzaju trzasków i błędów, listów i telefonów do pomocy technicznej. Jednocześnie jesteśmy uzależnieni całkowicie potrzebujemy ludzi. W ogóle, zaufanie we mnie z nimi zrobić. Wszystkie te problemy są znacznie spowolnić realizację naszych algorytmów, a więc zabrać nasz czas i pieniądze. I zastanawiałem się: „Dlaczego nie napisać Optimizer jest to naprawdę takie trudne?” Jak się okazało trudne, ale bardzo realne. Ponadto w wynikach zaufanie i wolność w ustawieniach i ulepszeń i modyfikacji programu. Właściwie mając to na uwadze, zestaw do pracy. Wziąłem jako podstawa optymalizacji stochastycznej. Stochastic optymalizacja - klasa algorytmów optymalizacyjnych, które używają losowych w poszukiwaniu optimum. Algorytmy optymalizacji stochastyczne są stosowane, gdy funkcja celu jest złożonym, multi-extreme, z przerwami, interferencji i tak dalej. Jednocześnie pozwala zbadać tylko część pola opcji politycznych oraz w oparciu o dane uzyskane wyobrażenie o przestrzeni jako całości.Zapoznanie się z podstawowymi stosowanych metod optymalizacji stochastyczny - genetyka, Monte Carlo ich wersji, a innymi metodami. Wszystkie rodzaje metod stochastycznych, jak okazało się dużo. Na przykład, metoda „cząstka rój”. Albo tak popularne „Algorytmy genetyczne”. Są eleganckie rozwiązania, takie jak „algorytmu symulowanego wyżarzania” Na przykład, ta ostatnia metoda jest wysoce gwarancją znalezienie globalnego ekstremum. Ponieważ w ten sposób, że jest okresowo odchylony od drogi, a dalsze badanie sąsiedni obszar. Jednak badania nie jest najwyższa prędkość. Istotą metod jednym - możemy wybrać losową wartość i jakoś je analizować. W drodze do sposobu zmieniając tylko dwa parametry - szybkość i dokładność badania. Ponadto odwrotnie. Im większa prędkość badania, tym gorsza jest jakość wyniku, i vice versa. Przy wyborze metody, każdy decyduje za siebie, niż gotowi poświęcić. Szukaj Extrema Na przykład, „symulowanego wyżarzania” metoda umożliwia znalezienie globalnego ekstremum. Jednakże, jeśli myślisz o tym sam globalny ekstremum nie musimy, jeśli za nim nie ma zbieżności. Oznacza to, że jeśli po ekstremum sąsiednich warunkowo równomiernie nie zmniejszy, to jest bardzo prawdopodobne, że globalny ekstremum jest przypadkowa i skorzystają z nas nie będzie na tyle jak to jest niewystarczające, a obliczenia będziemy psuć. Dlatego ważne jest, aby zbadać możliwości całym skrajności. Jeżeli istnieje zbieżność, to nie jest system, a ta strategia może być badane dalej. Wszystkie stochastyczne metody optymalizacji mają wspólną wadę - można rozciągnąć do jakiegoś lokalnego ekstremum, a co najlepsze, aby stracić z oczu. Aby tego uniknąć, konieczne jest, aby zmaksymalizować powierzchnię próbki i liczbę powtórzeń. Ale cierpi na szybkość obliczeń. Więc należy zawsze szukać w średnim ziemi. Ze względu na złożoność i oczywistych metod obliczeniowych „symulowanego wyżarzania” i innych „cząstek Roi” I uchylenie) w końcu doszedłem do wniosku, że najbardziej przystępny i wygodny sposób w moim przypadku jest metoda optymalizacji „Monte Carlo”. Tester-Optimizer Interface "Monte Carlo":

Aby być kontynuowane w drugiej części. Chciałbym chłopców jego wdzięczność S #, na który pomógł mi zacząć swoją drogę w algotreyding. Wszystkie trendu wzrostowego! Z poważaniem, Bond. Mój nick na Skype: bond_algotrade