R, Monte Carlo und Unternehmensaufgaben

Wenn man praktische Probleme mit beneidenswerter Regelmäßigkeit löst, muss man sich zwei typischen Ansätzen stellen, die bei Besprechungen oder in der Luft vorgetragen werden.


  • Option 1 - Lassen Sie uns ein bestimmtes Problem auf allgemeine Weise lösen. Wenn wir es auf diese Weise gelöst haben, können wir auf diesem Weg noch viel mehr lösen.
  • Option 2 - Lassen Sie uns Prognosen, ML und viele modische Dinge vorhersagen, um das Verhalten eines nichtlinearen Systems vorherzusagen. Immerhin cool.

Die Anwendung solcher Ansätze ist jedoch nicht immer für die anfängliche Formulierung des Problems geeignet.
Es ist eine Fortsetzung früherer Veröffentlichungen .


Warum können solche Ansätze überflüssig sein? Ja, aus vielen Gründen: die Zeit, die zum Finden einer Lösung für ein Problem benötigt wird, die Zeit, die zum Berechnen benötigt wird, die Anforderungen an die Menge an Rechenressourcen, das Ausführen von Berechnungen mit hoher Genauigkeit, das Erstellen des falschen Modells, die hohe Komplexität der analytischen Lösung für das direkte Problem, die hohe Komplexität beim Lösen des inversen Problems und vieles mehr.


Es gibt jedoch einen klassischen Weg, um solche Probleme zu lösen. Dies ist besonders gut, wenn Sie einen leistungsstarken Computer zur Hand haben. Monte-Carlo-Methode. Stat. Analyse der Ergebnisse mehrerer Lösungen für ein direktes Problem, das in der Regel gut algorithmisierbar ist.
Die notwendigen Antworten können in einer ersten Annäherung in wenigen Stunden erhalten werden, einschließlich des Verstehens des Problems, des Kodierens und des Durchführens von Annäherungsberechnungen.


Unten sind nur 2 Beispiele.


Beispiel 1. Kombinatorik verschachtelter Listen


Die anfängliche Geschäftsaufgabe besteht darin, die Trainingsbasis des Chat-Bot auf der Grundlage einer kleinen Menge von Eingabesätzen zu erweitern. Eine große Auswahl an Quellphrasen ist physikalisch einfach nicht. Sie kann jedoch durch eine vorläufige Analyse der Satzstruktur und die Erzeugung von Permutationen, die nach den Regeln der Sprache zulässig sind, erheblich erweitert werden. Beispielsweise sind "ein Rohr fließt in Raum 6" und "in einem Rohr fließt in Raum 6" im Wesentlichen identisch.


Also eine formalisierte Aussage. Es gibt eine mehrstufige Liste verschachtelter Listen. Es müssen fast alle möglichen Permutationen der ursprünglichen Werteliste erzeugt werden, vorausgesetzt, Permutationen der Elemente sind nur innerhalb jeder einzelnen Liste zulässig.


ll <- list(list('a', 'b', 'c'), 'd', list('e', 'f', list('g', 'h', 'i'))) #   factorial(3) * factorial(3) * factorial(3) * factorial(3) 


Eine Skizze einer möglichen Lösung.
 #        ff <- function(x){ #    ,           res <- if(is.list(x)) { sample(x, length(x), replace = FALSE) %>% purrr::map(ff) } else { x } res } procLine <- function(row){ purrr::map(row, ff) %>% #    rlang::squash_chr() %>% stri_c(collapse = "") } #   ,     wks <- 1 future::plan(multiprocess, workers = wks) tic(glue("Generating permutations @ {wks} thread(s)")) df1 <- purrr::map(1:10^4, ~sample(ll, length(ll), replace = FALSE)) %>% #          # purrr::map_chr(procLine) %>% furrr::future_map_chr(procLine) %>% enframe(name = NULL) %>% distinct() toc() 

Beispiel 2. Vorhersage von Kundenwarteschlangen


Das Messschema ist so angelegt, dass externe Indikatoren des Prozesses (wir halten ihn für ziemlich kompliziert und zeitlich unstetig) verwendet werden können, z. B. die Ankunfts- und Abfahrtszeit der Kunden, die Struktur des Warenkorbs und vieles mehr.


Option Nummer 1 - Problemlösung von Anfang an. Null theoretisches Wissen über den Ausführenden + Akkumulation der historischen Masse aller Arten von externen Indikatoren (Merkmalen) und die Verwendung von ML-Methoden zur "Anpassung". Einige Vorhersagen werden gemacht, aber was, warum und wie - ist jenseits des Rahmens, ist es notwendig, lianerisierte "Dolmetscher" zu verwenden.


Option Nr. 2 - Wir wenden die wissenschaftliche Erkenntnismethode an. Wir öffnen die Theorie der Warteschlangensysteme, bauen eine Statistik auf. Prozessindikatoren nach den QS-Parametern starten wir eine parametrisierte diskrete Simulation des Kundenservice. Wir erhalten ein "digitales Modell" des Systems, das Steuerhebel und eine analytische Erklärungskraft aufweist, die genau auf der Natur der beobachteten Objekte basiert und nicht auf einer Reihe bestimmter "Merkmale".
R hat dafür ein tolles simmer . Alle Informationen und viele praktische Beispiele hier .


Vorheriger Beitrag - „Ein paar Details zur Arbeit mit Bigint-Bezeichnern in R“ .

Source: https://habr.com/ru/post/de482020/


All Articles