Strona główna AI i ML Silnik dynamicznych cen — elastyczność popytu w czasie rzeczywistym

🏷️ Silnik dynamicznych cen — elastyczność popytu w czasie rzeczywistym

Obserwuj, jak silnik optymalizacji cen bada elastyczność popytu na produkt detaliczny i dostosowuje cenę w czasie rzeczywistym, równoważąc przychód z tempem wyprzedaży zapasów.

AI i ML3DZaawansowany60 FPS
ai-retail-dynamic-pricing ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

O tej symulacji

Detaliści rzadko znają swoją krzywą popytu — obserwują tylko, ile sztuk sprzedaje się przy dowolnej naliczonej cenie. Ta symulacja ukrywa krzywą popytu o stałej elastyczności, popyt = k·cena^(−ε), za zaszumionym sygnałem sprzedaży ograniczonym zapasami i pozwala silnikowi cenowemu odkryć ją na żywo. Każdego symulowanego dnia silnik albo wykorzystuje swoje obecne najlepsze oszacowanie ceny, albo bada pobliską cenę, by kontynuować naukę, dokładnie jak wieloramienny bandyta równoważący eksploatację z zyskiem informacyjnym. Pod spodem krocząca regresja liniowa log-log na ostatnich 30 obserwacjach (cena, sprzedane sztuki) odzyskuje oszacowanie ε oraz skali popytu k. Przeszukiwanie siatki po dozwolonym zakresie cen ocenia następnie każdą kandydującą cenę według oczekiwanego przychodu minus kara za odchylenie od tempa potrzebnego, by sprzedać pozostały zapas do końca horyzontu — uproszczona wersja problemu zarządzania przychodem z zapasem terminalnym, który linie lotnicze i detaliści rozwiązują każdego dnia. Obserwuj, jak krzywa popytu, krzywa przychodu, wskaźnik wyprzedaży i dziennik korekt cen aktualizują się razem, gdy silnik zbiega do (lub jest odciągany od) prawdziwego optimum.

Najczęściej zadawane pytania

Czym jest elastyczność popytu i jak silnik ją szacuje, nigdy jej nie widząc?

Cenowa elastyczność popytu ε mierzy, jak gwałtownie ilość popytu reaguje na cenę: wzrost ceny o 1% zmniejsza popyt o mniej więcej ε%. Ta symulacja generuje prawdziwy dzienny popyt z krzywej o stałej elastyczności, popyt = k·cena^(−ε), ale silnikowi nigdy nie podaje się k ani ε — obserwuje on jedynie zaszumione, ograniczone zapasem sztuki faktycznie sprzedane przy cenie naliczonej danego dnia. Biorąc logarytmy, ln(popyt) = ln(k) − ε·ln(cena) staje się linią prostą, więc zwykła regresja najmniejszych kwadratów na ostatnich 30 parach (cena, sprzedano) odzyskuje oszacowania zarówno k, jak i ε bezpośrednio z nachylenia i wyrazu wolnego.

Dlaczego silnik „bada” pobliskie ceny zamiast od razu skoczyć do optimum?

Dopasowanie regresji do wąskiego skupiska cen jest niewiarygodne — jeśli każda obserwacja mieści się blisko 38–42 zł, oszacowanie nachylenia ledwie ogranicza ε poza tym zakresem, a oszacowana krzywa przychodu może być bardzo błędna po ekstrapolacji. Silnik zachowuje się więc jak wieloramienny bandyta: przez większość dni wykorzystuje cenę, którą jego obecny model uważa za najlepszą, ale z prawdopodobieństwem ε-bandyta (suwak tempa eksploracji) zamiast tego przesuwa cenę do losowego pobliskiego poziomu wyłącznie po to, by zebrać bardziej informacyjny punkt danych. Ten kompromis eksploracja/eksploatacja jest tym samym, który stosuje się w prawdziwych systemach wyceny internetowej i aukcji reklamowych.

Dlaczego czasem nie ma wewnętrznej ceny maksymalizującej przychód?

Przychód przy stałej elastyczności wynosi R(p) = p·k·p^(−ε) = k·p^(1−ε). Jeśli ε > 1 (popyt elastyczny), wykładnik 1−ε jest ujemny, więc R(p) ściśle maleje wraz z p — przychód jest maksymalizowany przez naliczenie najniższej ceny, na jaką silnik ma pozwolenie, a wolumen więcej niż rekompensuje niższą marżę. Jeśli ε < 1 (popyt nieelastyczny), 1−ε jest dodatnie, a przychód wciąż rośnie wraz z ceną, więc najlepsza cena to najwyższa dozwolona. Tylko przypadek ε = 1 czyni przychód płaskim. Dlatego ten symulator zawsze narzuca jawne suwaki dolnej i górnej granicy ceny — prawdziwe problemy „optymalnej ceny” są zwykle optymalizacjami względem granicy, a nie gładkim wewnętrznym szczytem.

Czym jest kara za tempo zapasów i dlaczego nie maksymalizować przychodu każdego dnia?

Maksymalizowanie samego dzisiejszego szacowanego przychodu w izolacji może sprzedać zapas o wiele za szybko (tracąc pieniądze od klientów, którzy zapłaciliby więcej) lub o wiele za wolno (kończąc sezon z niesprzedanym, przecenionym do zera zapasem). Silnik oblicza docelowe tempo — pozostały zapas podzielony przez pozostałe dni — i ocenia każdą kandydującą cenę jako szacowany przychód minus λ·(szacowany popyt przy tej cenie − docelowe tempo)², gdzie λ to suwak wagi tempa. Wyższe λ przyciąga wybraną cenę ku temu, co utrzymuje wyprzedaż zgodnie z harmonogramem; niższe λ pozwala silnikowi gonić za czystym przychodem, ryzykując zakończenie z nadmiarem zapasu lub jego brakiem.

Jaka jest różnica między eksploracją a eksploatacją w tym silniku typu bandyta?

Eksploatacja oznacza naliczanie ceny, którą obecny najlepszy model silnika uznaje za maksymalizującą wynik przychodu skorygowany o tempo — wykorzystuje to, czego już się nauczono. Eksploracja oznacza celowe wypróbowanie innej, pobliskiej ceny, mimo że model obecnie nie uważa jej za optymalną, wyłącznie po to, by zaobserwować, jak reaguje tam popyt, i udoskonalić oszacowanie elastyczności. Zbyt mało eksploracji i silnik może utknąć blisko lokalnie niezłej ceny, przegapiając znacznie lepszą gdzie indziej na krzywej; zbyt dużo eksploracji i marnuje dni na słabe ceny. Suwak tempa eksploracji bezpośrednio kontroluje, jak często używana jest losowa cena próbna zamiast rekomendacji modelu.

Dlaczego obserwowany popyt jest „cenzurowany”, gdy zapasy się kończą?

Prawdziwa krzywa popytu symulatora może wymagać, powiedzmy, 220 sztuk danego dnia, ale jeśli w magazynie zostało tylko 40 sztuk, faktycznie sprzedaje się i obserwuje tylko 40 sztuk. Regresja silnika widzi tylko sprzedane sztuki, a nie prawdziwy nieograniczony popyt, więc gdy zapas zbliża się do zera, obserwowany popyt systematycznie zaniża prawdziwą krzywą — dobrze znane w danych detalicznych zjawisko zwane cenzurowaniem popytu. To jeden z powodów, dla których prawdziwe systemy zarządzania przychodem starają się przestać przeceniać, zanim zapas stanie się krytycznie niski, zamiast odczytywać zerową sprzedaż jako „brak popytu”.

Jakie rzeczywiste techniki odzwierciedla ta symulacja?

Ogólny kształt — ukryta krzywa o stałej elastyczności, eksperymenty cenowe generujące zaszumione dane sprzedażowe, regresja online odzyskująca krzywą oraz ograniczenie tempa względem stałego horyzontu — odzwierciedla zarządzanie przychodem linii lotniczych i hoteli, optymalizację przecen detalicznych oraz „kontekstowych bandytów cenowych” stosowanych przez niektóre platformy e-commerce. Prawdziwe systemy dodają znacznie więcej (ceny konkurencji, kanibalizację między produktami, segmenty klientów, bogatsze polityki eksploracji, takie jak próbkowanie Thompsona), ale podstawowa pętla bada → szacuje → optymalizuje → dostosowuje tempo jest tą samą, która działa tutaj.

Podobne symulacje