08.11.2020







Projekt VMPC:


Badania nad funkcją VMPC i problemem matematycznym "czy P=NP?"
pieknafunkcja.pl



Aplikacja do szyfrowania danych VMPCrypt
szyfrowanie.com



Gra Permutu na bazie funkcji VMPC
permutu.pl







Zobacz także:


Gra komputerowa Urban



Multimedialne kursy do nauki języka angielskiego
ADL Publishing



Nieformalny blog z postępu prac nad zapisaniem
dowodu jednokierunkowości funkcji VMPC


Aktualizacja: 08.11.2020



Wesprzyj projekt:

www.zrzutka.pl/vmpc


Permutu to gra planszowa wywodząca się z funkcji VMPC.

Cel: uporządkowanie dowodu zawartego na około 17 cm kartek A4 brudnopisu i zapisanie go w pracy naukowej. Następnie - zgodnie z regulaminem Clay Mathematics Institute - publikacja we wiodącym międzynarodowym czasopiśmie matematycznym. Jeśli w dwa lata po publikacji wyniki nie zostaną podważone, Clay Mathematics Institute uzna pracę za rozwiązanie problemu "czy P=NP", będącego jednym z siedmiu Problemów Milenijnych - największych nierozwiązanych zagadek matematycznych świata.






08.11.2020. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#081120

Jednak nie jestem maszyną i po maratonie intensywnej pracy musiałem odpocząć. Czułem ogromne wyczerpanie i w ostatnim czasie musiałem trochę zwolnić.

Na tych zwolnionych obrotach uzupełniłem starannie formalny teoretyczny kontekst wyprowadzonych ostatnio rozkładów prawdopodobieństwa. Tej pracy było więcej niż się spodziewałem - rozkłady z poprzedniego wpisu były tylko surowymi wynikami probabilistycznymi i zanim stały się formalnie użyteczne w pracy, musiałem je znacznie obrobić. Udało się to ukończyć, ale przypłaciłem oba te etapy pracy dużym wyczerpaniem. Tak wygląda wynik - nowe 12 stron pracy.

Wygląda, że praca wychodzi mi lepiej niż odpoczywanie. Mam wrażenie, że coraz mniej rzeczy mnie cieszy, stąd trudniej znaleźć sposób na odpoczynek. Przez to odpoczynek jest chyba mniej efektywny, ale z drugiej strony mam pewność, że korzystam z niego tylko tyle, ile to konieczne, aby zabrać się do dalszego etapu pracy zaraz, gdy tylko odzyskam siły.

Moje obecne "wysiłki", aby odpocząć, powoli dobiegają końca i nieśmiało przymierzam się - z wykorzystaniem powyższych najnowszych wyników - do ataku na formalny koniec pracy. Nie chcę niczego deklarować, bo zwykle po deklaracjach następują niespodziewane formalne komplikacje i zapisanie wszystkiego zajmuje więcej czasu niż zakładała prognoza.

Czy i teraz tak będzie? Tylko czas pokaże. Bo ja nie wiem! Ja tu tylko pracuję, a funkcja jest tu "szefem".

Optymistyczne jest to, że czuję, iż obecnie obrana formalna droga opisu funkcji dokładnie odpowiada mojej intuicji, a więc temu, dlaczego "czuję", że funkcja VMPC jest jednokierunkowa. Innymi słowy czuję zbieżność między intuicją, a zapisem formalnym. Wcześniej (nawet jeszcze pół roku temu) ciągle czułem, że intuicja lekko wyprzedza moje formalne "osiągnięcia" i że ciągle nie byłem w stanie znaleźć dobrego formalnego sposobu na opisanie tej intuicji.

Na marginesie, jest to zaskakująco humanistyczne wrażenie, a - paradoksalnie - dotyczy formalnego opisu zjawiska w najbardziej ścisłej z nauk, matematyce. Wrażenie, że nie mogło się znaleźć dobrego sposobu na opisanie do końca tego, co się czuje.

A taki był od zawsze kierunek moich badań - od początku czułem, że funkcja VMPC jest jednokierunkowa, już w 1998 roku, gdy ją odkryłem. Ale wtedy nie wiedziałem, dlaczego tak jest. Jednak wiedziałem (ale skąd???), że tak jest. Najpierw upraszczałem jej definicję, aby znaleźć pierwotne źródło jej jednokierunkowości (jeszcze na poziomie logiczno-intuicyjnym, nie formalno-matematycznym, do jakiego dążę obecnie) i okazało się nim być dodanie liczby 1 w złożeniu permutacji f(f(f(x))+1). A potem (i ten etap wciąż trwa od ponad 10 lat) szukałem właściwego sposobu na zapisanie tej intuicji przy pomocy formalnego języka matematyki. Tak, aby intuicja ta była zrozumiała dla innych i mogła zostać uznana za formalny dowód faktu, że VMPC jest funkcją jednokierunkową, co z kolei (przypadkiem, ja tego nie planowałem!) implikuje, że P ≠ NP.

Dzisiejszy wpis jest nieco bardziej luźny, filozoficzny niż zwykle, chyba dlatego, że piszę go częściowo także w ramach odpoczynku, odreagowania, zebrania sił do dalszej pracy. Tymczasem, po napisaniu powyższych słów wracam do hipnotycznego zachwytu muzyką Tangerine Dream, będącego niejako naturalnym krokiem dalszych poszukiwań po pochłonięciu całej dyskografii Klausa Schulze. A potem wracam do walki o ukończenie pracy. I do następnego wpisu. Życzę wszystkim zdrowia i wytrwałości w walce z wirusem.

Dziękuję wszystkim, którzy wspierają mój projekt:

www.zrzutka.pl/vmpc

Jeśli masz ochotę podzielić się ze mną komentarzem, zapraszam do skorzystania z poniższego formularza:

Twój email:


Twoja wiadomość:






15.10.2020. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#151020

Za mną mały maraton pracy na maksymalnych obrotach. Podobno mózg podczas intensywnej pracy zużywa dużo energii. Nie wiem, czy to z tego powodu, ale pod koniec jednego dnia intensywnej pracy zrobiło mi się gorąco i musiałem otworzyć okno. Tego dnia prawie wcale się nie ruszałem, tylko cały dzień pracowałem nad rozkładami prawdopodobieństwa. Spojrzałem na termometr. Ten wskazywał "upalne" 16,7 stopnia. Ubrany byłem domowo, a na dworze było około 10 stopni :-)

Jeszcze jedna informacja poza głównym tematem. Moja Toyotka (Corolla z 1990 roku) przeszła przegląd techniczny bez żadnych zastrzeżeń. Ani stan techniczny (sprawdzony bardzo skrupulatnie) ani blacharski nie wzbudził zastrzeżeń. Na koniec diagnosta pochwalił, że auto jest zadbane. To dla mnie ulga po ostatniej akcji renowacji blacharki. Przy tej okazji przytoczę słowa, których często używałem w odpowiedzi na pytanie, czemu nie kupię nowszego auta. Nie sztuka kupić nowe. Sztuka utrzymać stare.

Tymczasem na głównym froncie zakończyłem właśnie zapowiedzianą wcześniej pracę nad 12 zjawiskami. Konkretnie jest to 12 rozkładów prawdopodobieństwa, które musiałem ustalić.

Choć nie było to konieczne, to na wszelki wypadek zweryfikowałem uzyskane rozkłady także w symulacjach komputerowych. Napisanie i wykonanie symulacji zajęło 2 dni, ale to dlatego, że chciałem wykonać całą symulację "leniwie", czyli żeby wszystko (43 prawdopodobieństwa dla wszystkich N^2 par argument-wartość różnych złożeń permutacji) policzyło się automatycznie wraz z interpretacją statystyczną.

Opracowanie powyższych 12 rozkładów było naturalnym kolejnym krokiem po przejściu z liniowej na klasyczną wersję języka VMPC. Dobra passa po tej decyzji (o przejściu) trwa i mam nadzieję, że utrzyma się do samego końca.

Przede mną zastosowanie powyższych rozkładów w dalszej części pracy. Koniec teraz wydaje się być onieśmielająco blisko, ale dlatego właśnie wolę o tym za dużo nie pisać, aby nie zapeszać. Zwłaszcza, że doświadczenie uczy mnie, że zawsze wychodzą jakieś formalne komplikacje i zapisanie czegoś, co jest proste, może się rozrosnąć do złożonego formalnego wyzwania. Ale i z każdym wykonanym krokiem ryzyko wystąpienia kolejnych komplikacji maleje.




18.09.2020. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#180920

W ostatnim miesiącu porządkowałem formalny grunt pod zapis twierdzeń o funkcji malejącej i o nieoznaczoności. Jak zwykle, zadanie początkowo wydawało się względnie przyjazne, ale okazało się bardzo mozolne. Za mną porządkowanie 3 elementów - jeden dotyczył sformułowania nowych odpowiedników tzw. "trzech lematów", drugi znalezienia optymalnego formalnego zapisu pod kątem twierdzenia o nieoznaczoności, a trzeci znalezienia optymalnego formalnego zapisu pod kątem twierdzenia o funkcji malejącej i zadbanie, aby wszystkie 3 elementy ze sobą współgrały.

Dość twórcze to zadanie, ale i przez to czasochłonne. I mocno eksploatujące. Dla ilustracji zamieszczam zdjęcie w trakcie porządkowania ostatniego elementu. Tu w trakcie "burzy mózgu":

A tu ta sama treść, ale już po uporządkowaniu:

Porządkowanie oznacza tu znalezienie najlepszego sposobu na formalne zapisanie zjawiska. Tak, aby było możliwie prosto i przejrzyście.

Pocieszeniem pozostaje to, że z efektów końcowych jestem zadowolony. Przede mną wykorzystanie ich do opisania 12 zjawisk powiązanych ze wspomnianymi na wstępie twierdzeniami.

Powyższy przykład zamieściłem też jako kolejne potwierdzenie moich obserwacji, że matematyka ma dużo wspólnego z porządkowaniem. W tego typu zadaniach, gdzie trzeba znaleźć dobry formalny sposób do zapisania danej myśli, po prostu porządkujemy fakty, a przyjęte formalne struktury służące do ich opisania (np. zmienne, zbiory, funkcje) są jak szuflady czy szafki podczas porządków w domu.

Tyle nowości i dygresji. Poza głównym tematem, brakuje mi odpoczynku, ale za każdym razem, gdy próbuję odpoczywać, mam wyrzuty sumienia, że nie pracuję nad funkcją. W efekcie, jeśli odpoczywam, to może dzień, dwa, pomiędzy intensywnymi etapami pracy. W tym obszarze w ostatnim czasie znowu wykorzystałem powiedzenie, że zmiana jest równie dobra jak odpoczynek. W ramach relaksu niespiesznym tempem, porcjami po maksymalnie parę godzin raz na kilka dni, w ciągu całych wakacji udało mi się zregenerować progi i podwozie w mojej poczciwej 30-letniej Toyotce Corolli. Uznałem to za substytut wakacyjnego wyjazdu. Świetna atrakcja :-)

Wszystko wykonałem własnoręcznie, głównie przy pomocy żywicy poliestrowej i włókna szklanego. Dodam, że kiedyś wymieniano mi progi w tym aucie "profesjonalnie", czyli u blacharza, wstawiając nowe elementy. Ale 4 lata później rdza powróciła i zjadła na wylot "profesjonalnie" zrobione progi. Teraz, gdy są zrobione "amatorsko" żywicą, są wiecznie odporne na korozję. Z tego mam satysfakcję. Jednocześnie musiałem to zrobić, bo nie stać mnie na zakup nowego auta, a niedługo Toyotka ma przegląd techniczny, którego bez naprawy progów by nie przeszła. Teraz auto jest już w pełni zregenerowane i obecnie mam na głowie wyłącznie funkcję. To dobrze i niedobrze, bo czasami potrzebuję jakiegoś manualnego zajęcia dla oderwania się i odświeżenia głowy. Wtedy lepiej mi się twórczo myśli nad funkcją. Ale cóż, jak będzie potrzeba, na pewno coś się znajdzie. Na razie jestem podekscytowany tym, jak bardzo udało mi się uporządkować obecne konstrukcje formalne i już nie mogę się doczekać wykorzystania ich w kolejnym etapie pracy.




19.08.2020. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#190820

Wygląda, że przejście z liniowej na klasyczną wersję języka VMPC było "strzałem w dziesiątkę". Obecnie jestem już dalej niż byłem, mocując się z liniową wersją języka.

Aby przygotować klasyczną wersję języka do zapisania dwóch twierdzeń, o których w ostatnich wpisach jest często mowa, musiałem wyprowadzić z tego języka (ów "język" to po prostu zestaw formalnych matematycznych definicji, opisujących funkcję VMPC) i udowodnić szereg szczegółowych faktów. Bardzo ciekawie się złożyło, że na drodze do ich wyprowadzenia sięgnąłem do formalnych konstrukcji, które skomponowałem w 2016 roku (4 lata temu) i ku mojemu zaskoczeniu (jakby nie patrzeć dzieli te elementy 4 lata), bardzo dobrze się tu wpasowały!

Co mnie jeszcze bardziej zaskoczyło, okazało się, że po prostych przekształceniach - łączących klasyczny język VMPC z konstrukcjami z 2016 roku - uzyskałem wynik zbieżny z finalnymi wnioskami liniowego języka VMPC (tego, od którego właśnie postanowiłem odejść, a który jednak wcześniej wydawał się właściwy).

Co to oznacza bardziej po ludzku? Łącząc najnowsze wyniki z tymi sprzed 4 lat, uzyskałem to, co wydawało mi się najwłaściwsze (liniowa wersja języka), ale uzyskałem to od innej, znacznie bardziej praktycznej strony, która otwiera mi szeroko formalną drogę do zapisania ostatnich dwóch brakujących elementów.

Po wstępnym zapisie na brudno wygląda, że dwa brakujące elementy, z których zapisaniem walczę od wielu miesięcy, czyli twierdzenie o nieoznaczoności oraz twierdzenie o funkcji malejącej, wychodzą z nowej formalnej konstrukcji niemal same, automatycznie.

Jakby tego było mało, uzyskane wyniki zaskakująco celnie korespondują z wynikami z 2017 roku, a te z kolei są źródłem (ale nie są dokładnie tym samym) twierdzenia o nieoznaczoności. 3 lata temu do wyników tych odnosiłem się tu na blogu jako "kartka 36". Mówiąc krótko, wstępnie wygląda na to, że omawiana tu najnowsza formalna konstrukcja także obejmuje ową "kartkę 36", z tym, że dodatkowo ją rozwija i doprecyzowuje.

Na deser, opisana powyżej konstrukcja jest zaskakująco bliska intuicji, a więc pewnym szczególnym intuicyjnym (choć stosunkowo ścisłym) obserwacjom, które od razu i bardzo przekonująco mówią, że funkcja VMPC JEST jednokierunkowa (intuicja to nie dowód matematyczny, a nad połączeniem tej właśnie intuicji z formalnym językiem matematyki pracuję od ostatnich 16 lat, czyli od opublikowania funkcji VMPC w 2004 roku).

Syntezując powyższe słowa, obecnie czuję, iż wreszcie trafiłem na właściwy sposób formalnego opisu dwóch brakujących elementów na drodze do udowodnienia, że VMPC jest funkcją jednokierunkową, z czego wynika bezpośrednio, że P ≠ NP.

Aby uspokoić ewentualną nadmierną euforię (także u siebie), podkreślam, że tak się czuję przed zapisaniem powyższych wyników na czysto. Dotychczas praktycznie zawsze podczas zapisywania na czysto kolejnych etapów powstawały formalne komplikacje (jak dany fakt formalnie zapisać), które wydłużały pracę. Praca zawsze zmierzała we właściwym kierunku, ale bardzo rzadko najkrótszą drogą. Taki urok pracy naukowej. Błądzenie to może 90% albo więcej czasu pracy. Ile dokładnie? Tego nie wiem, choć mam szalony pomysł, jak można to zmierzyć, jednak o tym może kiedyś, jak praca będzie już faktycznie ukończona.




29.07.2020. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#290720

Kolejny etap budowania formalnego gruntu pod zapisanie dowodu twierdzenia o funkcji malejącej i twierdzenia o nieoznaczoności wykonany. Tym razem przyniósł ciekawe skutki. Drobnym szczegółem była konieczność małej formalnej zmiany sformułowania dowodu twierdzenia o równowadze (stary już dobrze ugruntowany element pracy). Trzeba było jeden element dowodu wyodrębnić jako osobny fakt (tu - lemat), gdyż zaszła konieczność, aby tego faktu użyć w dwóch miejscach (do opisania liczności zbiorów S oraz A), a nie tylko w jednym (S), jak było wcześniej. To jednak był tylko formalny drobiazg, jest już sfinalizowany na czysto w pracy.

Dużo ciekawsze rzeczy działy się na froncie głównym. Po zebraniu formalnych struktur, które są potrzebne do zapisania dowodu twierdzenia o funkcji malejącej oraz dowodu twierdzenia o nieoznaczoności, okazało się, że w tym właśnie miejscu łączą się praktycznie wszystkie kluczowe elementy pracy. Styka się tu język VMPC z jego głównym wnioskiem w postaci twierdzenia o równowadze, model prawdopodobieństwa warunkowego oraz 3 lematy, stanowiące "uliniowienie" języka VMPC.

Chwilę czasu zajęło mi oswojenie się z tym, że wszystkie elementy, nad którymi wcześniej pracowałem, wreszcie spotykają się w jednym miejscu i trzeba je harmonijnie połączyć. Można powiedzieć, że owe dwa twierdzenia - o funkcji malejącej i o nieoznaczoności - spajają pozostałe elementy składowe pracy w całość. W wyniku tego połączenia pojawiły się dwa ciekawe wnioski.

Po pierwsze, okazało się, że dużo lepiej będzie zapisać dowody wspomnianych dwóch twierdzeń nie przy pomocy uliniowionej wersji języka VMPC, a przy pomocy jego klasycznej, podstawowej wersji (obie wersje są równoważne logicznie, ale od strony formalnej są mocno odmienne). Dlaczego jest to ciekawe (dla mnie przynajmniej)? Uliniowioną wersję języka VMPC od dawna uważałem za "najnowsze osiągnięcie", miała potwierdzoną skuteczność - została z sukcesem użyta do wyprowadzenia dużego wzoru na prawdopodobieństwo (z początku 2019, gdzie jeden z Czytelników przesłał mi świetne uproszczenie finalnej postaci wzoru). Klasyczna wersja języka VMPC nie dawała możliwości wyprowadzenia tamtego wzoru.

Stąd wyrobiło mi się stanowisko (usztywnienie myślenia), że w dalszej części pracy tylko ta nowsza, lepsza, uliniowiona postać języka VMPC będzie stosowana, a wersja podstawowa była potrzebna tylko po to, aby wersję liniową było z czego wyprowadzić. Z takim podejściem przystąpiłem do "synchronizacji" wszystkich elementów pracy podczas formalizowania dowodu twierdzenia o funkcji malejącej i twierdzenia o nieoznaczoności. Tak było dwa-trzy tygodnie temu.

Podczas uwzględniania kolejnych elementów składowych, co raz napotykałem się jednak na kłopoty formalne. Nie fundamentalne (że czegoś nie da się zapisać przy pomocy przyjętych struktur formalnych), ale techniczne, że zapis byłby możliwy, ale były bardzo nieelegancki, "dookoła", nieprzejrzysty i trudny do zrozumienia na poziomie intuicji / wyobraźni. Nie spodobało mi się to tyle, że wszystkie wcześniejsze elementy zawsze ładnie zgrywały się na poziomie intuicyjnym - łatwo było wyobrazić sobie dowodzone fakty. Nie chciałem w finalnym elemencie rezygnować z tego.

Drążyłem więc temat, drążyłem i drążyłem, aż przez kilka dni z rzędu wyłącznie siedziałem nad funkcją od rana do nocy, robiąc przerwy tylko na jedzenie. Analizując krok po kroku poszczególne formalne elementy, z których nie byłem zadowolony, coraz częściej zaczynał mi się pojawiać wniosek, że przy klasycznej (nieuliniowionej) wersji języka VMPC problem by w ogóle nie wystąpił. Na początku bardzo trudno mi było zaakceptować tę myśl, bo wcześniej uliinowiona wersja języka wykazała swoją wyższość. Jednak znajdowałem kolejne i kolejne elementy, które przy pomocy klasycznej wersji języka można zapisać wprost i intuicyjnie, a przy pomocy języka uliniowionego, powstają tylko dodatkowe komplikacje, a nie ma żadnych korzyści.

Spisałem wszystkie te elementy, gdzie język uliniowiony przegrywał, na kartce i wyszło ich tak dużo, że potrzebne były... dwie kartki. Znalazłem 10 argumentów za tym, że klasyczna wersja języka VMPC w tym przypadku sprawdzi się lepiej niż "nowsza, lepsza" wersja uliniowiona. Po tym wreszcie podjąłem decyzję (było to wczoraj), że do zapisu dowodu twierdzenia o funkcji malejącej i twierdzenia o nieoznaczoności zostanie użyta jednak klasyczna postać języka VMPC. Obecnie jestem na etapie oswajania się z tą decyzją. Na razie czuję się z nią bardzo dobrze i czuję ulgę.

Nauczka dla mnie, że trzeba unikać usztywnienia myślenia i warto podważać / powtórnie weryfikować wszystkie ustalenia, nawet te, które wcześniej dobrze ugruntowały swoją pozycję, szczególnie, jeśli są używane w nowych sytuacjach. To, że w wielu elementach się sprawdziły, nie daje przecież gwarancji, że w innych także okażą się najlepsze.

Ta zmiana pochłonęła trochę czasu, ale nie bardzo widzę, jak mogłem tego uniknąć. Szczególnie, że we wcześniejszych elementach uliniowiona wersja języka faktycznie sprawdzała się lepiej (a w niektórych jako jedyna działała).

Tą burzliwą drogą doszedłem do drugiego ciekawego wniosku, o którym na wstępie wspomniałem. Ten jednak jest zdecydowanie bardziej budujący. Okazało się, że najprawdopodobniej użycie klasycznej wersji języka pozwoli niemal zintegrować dowody obu twierdzeń (o funkcji malejącej i o nieoznaczoności) w jedno rozumowanie. Mówiąc obrazowo, prawdopodobnie, zamiast dwóch elementów, pozostał mi do wykonania tylko jeden, mający dwa elementy składowe, ale płynnie łączące się ze sobą. Przy zastosowaniu uliniowionej wersji języka, połączenie to nie było widoczne.

Generalnie jestem z obrotu sytuacji bardzo zadowolony i intuicyjnie czuję się nieco "wyzwolony", że miałem siłę podważyć wcześniejsze sztywne stanowisko, że liniowa postać języka lepiej się sprawdzi, że nie brnąłem w nią na siłę. Choć udałoby się przy jej pomocy zapiać wszystko, to nie byłbym z efektu końcowego zadowolony i byłby on mało klarowny dla czytelnika.

Przede mną zapis obu twierdzeń przy pomocy klasycznej wersji języka VMPC. Po zakończeniu tego etapu praca będzie już formalnie zapisana do samego końca. Potem pozostanie tylko uzupełnienie jej o kilka dodatkowych elementów (raczej nie niosących już ryzyka komplikacji) oraz uporządkowanie treści pracy, aby nadawała się ona do czytania.




09.07.2020. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#090720

Pierwsze (z ostatnich...) koty za płoty. Pierwszy element na drodze do zapisania dowodu twierdzenia o funkcji malejącej wykonany - zapis na czysto relacji pomiędzy zbiorami V, Y, K. Dokładniej, w jakich sytuacjach zbiory te mają, a w jakich nie mają części wspólnej. Choć ta informacja w tym momencie nikomu niczego nie mówi, tylko mi, to miałem potrzebę ją zapisać. Był to wstępny krok, porządkujący (już na czysto w oficjalnej wersji pracy) formalny "grunt" pod zapisanie dowodu twierdzenia o funkcji malejącej.

Szkic formalnego zapisu dowodu tego twierdzenia też jest już gotowy. W tym momencie ma on zaskakująco prostą postać.

Pewne jest to, że koniec pracy jest już merytorycznie na wyciągnięcie ręki. Zostały do wykonania dwa elementy - zapisanie dowodu tegoż twierdzenia o funkcji malejącej oraz zapisanie dowodu twierdzenia o nieoznaczoności. Oba te elementy są bardzo mocno "dojrzałe" (dopracowywałem je na brudno i w głowie przez bardzo długi czas) i mam nadzieję, że uda się ukończyć ich formalny zapis bez większych formalnych komplikacji. Dodam, że pierwszy pomysł twierdzenia o funkcji malejącej pojawił się w roku 2015, a twierdzenia o nieoznaczoności w 2017.

W ostatnim czasie miałem na drodze sporo czynników zakłócających, które utrudniały mi pełną koncentrację na pracy. Związane były one z "normalnymi" aspektami życia. A to musiałem stać się hydraulikiem, bo w domu, gdzie wynajmuję lokum, pękła rura doprowadzająca wodę (przed głównym zaworem, więc nie dało się jej zakręcić). Wyciek był na tyle mały, że udało mi się go własnoręcznie zatamować i naprawić. Polecam opaskę zaciskową z uszczelką gumową, a na to bandaż z włókna szklanego nasączony żywicą poliuretanową. Kombinacja działa świetnie, ale zanim ją znalazłem, trochę musiałem poeksperymentować.

Jako ciekawostkę dodam, że na trop tej pękniętej rury doprowadził mnie przykry zapach, który niedawno się w garażu pojawił. Po małym dochodzeniu znalazłem jego źródło - spoczywającą niedaleko pękniętej rury... zdechłą mysz.

Oprócz dwóch dalszych komplikacji życiowo-logistycznych, z których ostatnią właśnie dziś udało mi się pozytywnie rozwiązać, dodatkowe zajęcie mam z moją nieśmiertelną Toyotką, która w październiku ma przegląd i muszę ją trochę podreperować od spodu, bo w obecnym stanie przeglądu już by nie przeszła. Zdjęcie poglądowe progów:

Wszystkie te przyziemne problemy, choć zabierają mój czas, to stymulują mój umysł i podświadomie czuję, że są mi potrzebne. W każdym szukam sam kreatywnego rozwiązania. Zamiast zadzwonić po hydraulika lub oddać auto do blacharza. I zwykle po wykonaniu takiego przyziemnego zadania, koniecznie własną twórczą metodą, wpadają mi nowe pomysły, jak wykonać kolejne kroki w zapisywaniu dowodu. To może się niektórym wydać dziwne / śmieszne, ale u mnie działa to bardzo skutecznie i wierzę, że jest choć kilka osób, które mają podobne doświadczenia i wiedzą, o czym mówię.

Na chwilę obecną wszystkie przyziemne problemy mam rozwiązane. Rurę muszę tylko pomalować, a podwozie Toyotki ukończyć wg opracowanych już metod, więc nie będą mnie już stresować (że muszę szukać rozwiązania), a tylko dostarczą rozrywki, że muszę zrobić coś manualnego, co wiem, jak zrobić.

Mam nadzieję, że tych manualnych zajęć wystarczy mi do czasu, aż skończę zapisywać na czysto dowód jednokierunkowości funkcji VMPC. Zostało tych manualnych czynności niewiele. Mam nadzieję, że nie będę musiał wyszukiwać kolejnych... Zobaczymy. Na razie wszystko idzie dobrze, swoim naturalnym tempem, do właściwego celu.




22.06.2020. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#220620

Wreszcie zdecydowałem, w jaki sposób przeprowadzić dowód twierdzenia o funkcji malejącej. Ta paradoksalnie prosta decyzja zajęła mi bardzo dużo czasu i analiz i dopiero dziś uświadomiłem sobie, jaka ta droga była złożona i długa. Dziś zebrałem wszystkie etapy tej analizy w myślach, a potem zapisałem roboczo w pliku tekstowym z intencją, aby opublikować to tu na blogu. Po zapisaniu tego własnym żargonem, okazało się, że zajęło to pół ekranu tekstu. Przeredagowanie tego do języka popularnonaukowego, jakim staram się posługiwać tu na blogu, przerosło moje siły.

Ograniczę się więc tylko do podzielenia się finalnymi wnioskami, które z tego procesu sam dla siebie wyciągnąłem. Że jeśli intuicja mówi, żeby zrobić sobie przerwę i zdystansować się, to warto tak zrobić (to dotyczy mojej pracy nad aplikacją VMPC Secret Book w niedawnych miesiącach), że nie warto się spieszyć, że warto rewidować wcześniejsze ustalenia, szczególnie te, mówiące, że czegoś nie da się zrobić, i że warto zgłębiać wszystkie dygresje i poboczne pomysły, które intuicja podpowiada, bo ich wyniki mogą się przydać w przyszłości. I warto cierpliwie czekać (czytaj - pracować) tak długo, aż intuicja wreszcie da głębokie i napawające spokojem przekonanie, że wszystko jest tak, jak ma być.

W moim przypadku te wszystkie elementy pozwoliły mi wreszcie ułożyć wyniki dotyczące dowodu twierdzenia o funkcji malejącej w spójną i prostą całość, która harmonizuje z pozostałymi elementami pracy. Jest to - choć nic dla nikogo to nie znaczy, bo to mój wewnętrzny żargon - dowód przez przepełnienie od strony negatywnej.

Paradoksalne i nieco niewdzięczne jest to, że czytelnik, analizując zapis tego dowodu w pracy, najprawdopodobniej odniesie wrażenie "no tak, to jest proste i dość oczywiste". Bo takie jest. Ale jednocześnie droga, aby takie się stało, była tak długa i męcząca. Ponieważ w pracy trudów tej drogi nie będzie widać, musiałem to sobie na pamiątkę zapisać w owym pliku tekstowym, a tu na blogu podzielić się tym.

Przede mną formalny zapis dowodu twierdzenia o funkcji malejącej wybranym powyżej sposobem.




06.06.2020. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#060620

Dziękuję osobom, które przesłały mi inspirujące komentarze. W ostatnim czasie udało mi się wykonać dwa istotne kroki. Pierwszym było... Proszę bez nadmiernego entuzjazmu, bo sama obecność na mecie nie musi jeszcze oznaczać, że pokonało się wszystkie etapy do niej prowadzące.

Pierwszym z tych kroków było zapisanie dowodu formalnie do samego końca. Praca jest już na tyle kompletna formalnie, że wreszcie było to możliwe. Jednak nie oznacza to jeszcze, że praca jest już ukończona. Do uzupełnienia pozostaje jeszcze kilka elementów po drodze.

Celem tego "skoku na finisz" było upewnienie się, czy formalne struktury skomponowane do opisu funkcji VMPC pozwalają zapisać dowód do samego końca. Poszło zaskakująco gładko i pracę udaje się spójnie zamknąć ostatecznym wnioskiem, że funkcja jest jednokierunkowa i P ≠ NP.

Wcześniej wielokroć było tak, że przyjęte formalne struktury musiałem modyfikować, aby możliwe było kontynuowanie zapisywania rozumowania. Tak było choćby z "językiem VMPC", który przechodził ewolucję przez kilka lat. Tylko formalną ewolucję, bowiem od samego początku (2016) opisywał i dziś opisuje dokładnie to samo zjawisko.

Elementem "po drodze", który wciąż pozostał do formalnego zapisania jest dowód "twierdzenia o funkcji malejącej", o którym wielokroć wspominałem i który stanowi jeden z centralnych elementów pracy.

Tu miał miejsce drugi ze wspomnianych kroków. Po powrocie do funkcji po małej przerwie około lutego-marca 2020, kiedy nadrabiałem prace nad aplikacją VMPC Secret Book, znalazłem sposób na znacznie prostsze zapisanie dowodu tego twierdzenia. Konkretniej, w październiku 2019 strategia dowiedzenia tego twierdzenia, która wydała mi się najbardziej naturalna, nie sprawdziła się i poszedłem inną drogą. Ta inna droga, choć dawała oczekiwane wyniki, to jednak mniej mi się podobała. Chyba podświadomie nie dokończyłem tej drogi w lutym 2020, gdyż intuicyjnie czułem, że warto wrócić do tego jeszcze po przerwie. I teraz, po powrocie, jednak udało mi się znaleźć sposób, jak pokonać przeszkodę, którą napotkałem wtedy w 2019. Tym samym dowód "twierdzenia o funkcji malejącej" będzie zapisany wg tej pierwotnej, bardziej intuicyjnej i znacznie prostszej koncepcji.

To kolejny przykład, że metoda dystansowania się i wracania do problematycznych elementów bardzo dobrze mi się sprawdza i to praktycznie przez cały czas pisania pracy. Zajmuje dużo czasu, ale daje dobre wyniki. Choć jest trudna psychicznie, gdyż pokusa jest duża, aby dokończyć opracowywany element od razu i przejść dalej, a nie zostawiać go rozgrzebanego, aby wrócić do niego nieco później. Jednak to właśnie to drugie podejście, przynajmniej u mnie, zawsze dawało lepsze wyniki w długim okresie. Dlatego tak bardzo nie lubię wszelkich terminów w pracy naukowej - one bowiem stoją w sprzeczności z tą metodą. To znów odwołanie do tego, co mówiłem podczas mojego wystąpienia na TEDx w 2015, że czas rozwiązuje problemy (time solves problems).

Co więcej, jakieś 2 tygodnie temu wpadł mi do głowy jeszcze jeden pomysł dotyczący szczegółów realizacji dowodu "twierdzenia o funkcji malejącej". Jest on o tyle ciekawy, że na pierwszy rzut oka wydaje się niezbyt elegancki, ale okazuje się, że kosztem (pozornego?) ubytku elegancji, wprowadzając większe uogólnienie, pozwala zaskakująco "przemknąć" się nad kilkoma formalnymi szczegółami, które jeszcze muszę uwzględnić w pracy. Mówiąc koncepcyjnie, ten podwyższony poziom uogólnienia absorbuje owe formalne szczegóły tak, że nie trzeba ich będzie w ogóle opisywać. Jeśli to się potwierdzi, byłby to mały bonus i zaoszczędzi mi trochę pracy.

Na deser wygląda na to, że opisywany wielokroć wcześniej element, "twierdzenie o nieoznaczoności" (kiedyś na blogu odwoływane jako "kartka 36"), co wierniejsi czytelnicy bloga mogą taki obiekt kojarzyć, będzie znacznie łatwiejsze do formalnego opisania. Możliwe to będzie dzięki temu, że obecny model "prawdopodobieństwa warunkowego" (wpis z 08.04.2020) w zaskakujący sposób pochłania "twierdzenie o nieoznaczoności", które teraz zostanie wyrażone niemal automatycznie przy pomocy obecnego modelu "prawdopodobieństwa warunkowego".

Jest to kolejne ciekawe połączenie przeszłości z teraźniejszością. Stosując obecne formalne struktury, mogę opisać wyniki z 2017 w znacznie prostszy sposób niż mogłem to zrobić w 2017.

Obecnie pozostało mi dokończyć formalne zapisy dwóch elementów, czyli dowodu "twierdzenia o funkcji malejącej" oraz "twierdzenia o nieoznaczoności". Po tym pozostanie tylko dopisanie kilku drobnych (już bezproblemowych, także formalnie, elementów) oraz finalne szlifowanie pracy.

Dotychczas zawsze wszystko zajmowało więcej czasu niż pierwotnie przewidywałem, więc teraz nie chcę deklarować żadnego terminu ukończenia przed osiągnięciem faktycznego końca. Optymistyczne jest to, że teraz wszystko zaczyna się spójnie układać w całość, a odległe elementy zaczynają się łączyć ze sobą tak harmonijnie, że sam jestem tym zaskoczony.




19.04.2020. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#190420

Spontanicznie - nie mogłem się powstrzymać przed skomentowaniem na gorąco nowych wyników. Wygląda, że strategia budowania dystansu (o której wspomniałem w poprzednim wpisie z nieco ponad tygodnia) dalej sieje pozytywnymi skutkami.

Otóż formalny zapis 3 lematów (o których pisałem 03.01.2020 i które stanowią jeden z centralnych elementów pracy) udało mi się teraz po świeżym spojrzeniu jeszcze znacznie uprościć! Poprzednia wersja ze stycznia 2020 w stanie nowego roboczego "rozgrzebania":

Nowa wersja uporządkowana, najprawdopodobniej już oficjalna wersja do publikacji:

Uproszczenie odbyło się aż na trzech płaszczyznach. Jestem tym wynikiem tak podekscytowany, że musiałem o tym napisać.

1. Poprzednia wersja zawierała dwie postaci każdego lematu - jedną postać "nadmiernie ogólną", z której dopiero wyprowadzana była postać "właściwa", nieco bardziej szczegółowa, ale i bardziej złożona, użyta w dalszej części pracy. Niby elegancko, od ogółu do szczegółu, ale jednocześnie uzyskana tu postać "właściwa" posiada ten odpowiedni poziom ogólności, a postać "nadmierna ogólna" tak naprawdę sama w sobie nie ma żadnej wartości i służyła tylko jako krok pośredni do wyprowadzenia postaci "właściwej". Teraz udało się wyprowadzić postać "właściwą" bezpośrednio. Tym samym dowód każdego lematu skrócił się o mniej więcej połowę i tyleż samo zyskał na (subiektywnie pojętej) przejrzystości.

2. Jeden z 3 lematów przed zastosowaniem w dalszej części pracy wymagał wyprowadzenia jeszcze pewnego wynikającego z niego wniosku (corollary). Teraz wplotłem ten wniosek od razu w postać samego lematu i to - dzięki zmianom opisanym w punkcie 1 powyżej - prawie bez komplikowania postaci samego lematu. Dodatkowo wszystkie 3 lematy dzięki temu zabiegowi zyskały na (subiektywnie pojętej) wzajemnej spójności.

3. Ostatnia zmiana była tą, która zainspirowała mnie do napisania o tym. Jeden z elementów (obecny w każdym z 3 lematów) rozbudowałem tak, aby zawierał bezpośrednie formalne nawiązanie do "języka VMPC" (opisywanego tu wielokrotnie). Wcześniej nawiązania nie było, aby już dodatkowo nie komplikować postaci tych lematów i czytelnik miał to nawiązanie sam zauważyć. Jednocześnie nawiązanie jest dość odległe i wielu czytelnikom mogłoby, przynajmniej na pierwszy "rzut oka", umknąć.

Po uproszczeniu lematów zrobiło się trochę "miejsca" na dodatkowe komplikacje, więc postanowiłem dopisać to nawiązanie. Gdy się za to zabierałem, bałem się, że wyjdzie z tego formalny potworek, właśnie ze względu na "odległość" skojarzenia i w efekcie więcej powstanie zamieszania niż jasności i że lepiej będzie pozostawić to czytelnikowi do samodzielnego wydedukowania. Ale spróbowałem, z myślą, że najwyżej potem usunę to, jeśli wyjdzie za bardzo zagmatwane.

Gdy to opisałem, aż otworzyłem usta z zaskoczenia, jak pięknie i spójnie elementy się połączyły ze sobą! Niemal "poetycko"! W jedno zdanie zapisane w języku ludzkim (tu - angielskim) formalne definicje z "języka VMPC" wplotły się tak naturalnie i płynnie, że aż mnie to zachwyciło. Po prostu pięknie pasowało do siebie, może jak złożona figura idealnie wpasowuje się do mozolnie wyrzeźbionego otworu o tym samym kształcie? Jednocześnie dopracowując te elementy ("język VMPC" i "3 lematy") nigdy nie myślałem o tym, aby się ładnie łączyły. Samo tak wyszło!

Tak, teraz nieelegancko chwalę siebie (choć może bardziej chwalę kompatybilność formalnych zapisów, które mój mózg z trudem wygenerował po długiej pracy), ale jednocześnie jest mi to psychicznie potrzebne, aby utrzymać siły. Niestety, pisząc pracę samodzielnie, nie mam innego wyjścia. Jednocześnie możliwość podzielenia się tym tu na blogu dodatkowo mi pomaga. Dziękuję więc także wszystkim, którzy go czytają.




08.04.2020. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#080420

W ramach budowania dystansu, postanowiłem wykonać kilka towarzyszących zadań dotyczących nowego programu do szyfrowania VMPC Secret Book. W efekcie cała infrastruktura nowego programu jest już gotowa - "kompilator" przygotowujący indywidualne licencje i instalatory oraz mini-baza danych, którą napisałem od zera, nie korzystając z gotowych silników, co wymagało trochę pracy, ale za to baza jest idealnie zintegrowana z resztą.

Na deser tych intelektualnych "wakacji", jako element niezbędny przy przeszukiwaniu owej bazy danych, napisałem w assemblerze algorytm wyszukiwania tekstów z ignorowaniem wielkości znaków. Wprawdzie nie musiałem tego robić, bo środowisko programowania dostarcza takie rozwiązanie systemowo, ale okazało się, że moja procedura działa 12-krotnie szybciej niż rozwiązanie systemowe.

Co mnie zdziwiło, cały algorytm w assemblerze (44 linie kodu):

zapisałem jednym ciągiem (z jedną kompilacją na końcu) i po przetestowaniu okazało się, że od razu działał prawidłowo. Nigdy wcześniej mi się coś takiego nie zdarzyło - zwykle musiałem długo dopracowywać procedury napisane w assemblerze, zanim zaczęły prawidłowo działać.

Dla osób niezagłębionych w temat - kod w assemblerze jest ekstremalnie nieczytelny, gdyż jest tylko ciągiem elementarnych instrukcji procesora, w których nie widać żadnej logiki. Dopiero śledząc kolejność wykonywania tych instrukcji i skoków pomiędzy nimi, można "rozszyfrować" (bardziej niż odczytać), jakie logiczne zadanie realizują. Stąd w assemblerze dużo łatwiej popełnić błąd niż w językach wysokiego poziomu typu C czy Java (wielu powie, że C jest językiem niskiego poziomu, choć dla mnie niskopoziomowy jest dopiero assembler).

Niektórzy mogą się zastanawiać, dlaczego tyle energii poświęciłem na zadania niezwiązane bezpośrednio z funkcją VMPC... Otóż był to celowy zabieg, który miał mi dać dodatkowy dystans do ostatnich wyników w pracy nad funkcją, a jednocześnie stymulować mózg do utrzymania lub poprawienia formy. Jednocześnie intuicyjnie czułem, że jest mi to potrzebne.

Gdy się myśli non-stop o jednym problemie, mózg zaczyna wpadać w schematy i traci część zdolności twórczych, a tu konkretnie - zdolności krytycznej oceny, czy czegoś nie da się zrobić prościej. Do samej funkcji intensywnie wróciłem już kilka dni temu i z radością poczułem, że etap budowania dystansu zadziałał tak, jak chciałem, a nawet może lepiej.

Jednym z kluczowych elementów pracy jest ten, który tu nazywam "funkcją malejącą". Zaaplikowanie go do dowodu jednokierunkowości funkcji VMPC wymaga sformalizowania pewnego modelu "prawdopodobieństwa warunkowego". Model ten był już gotowy w lutym, ale nie byłem z niego zadowolony. Czułem, że da się go zapisać prościej, ale wtedy nie umiałem wymyślić, jak.

Dzień po zabraniu się za ten problem - po "zabawie" w bazy danych i assembler - zauważyłem fundamentalne uproszczenie, które redukuje stopień jego formalnej komplikacji kilkukrotnie.

I mam teraz poczucie, że nowy sposób zapisu jest tym właściwym. Jestem z niego wreszcie zadowolony. Jest tym, na który czekałem... Czekałem, aż mózg mi go wygeneruje. A nie - wymyśliłem go.

Gdybym siedział nad tym non-stop, najprawdopodobniej nie zauważyłbym tego uproszczenia, gdyż wychodzi ono od samych podstaw sposobu opisania zjawiska. Myśląc non-stop, najprawdopodobniej tylko doskonaliłbym ewolucyjnie obraną na początku (też poprawną, ale niepotrzebnie skomplikowaną) koncepcję.

Na razie jest optymistycznie, bo spodziewałem się, że do pierwszych efektów twórczych owego nabierania dystansu będę musiał czekać znacznie dłużej. Przede mną sfinalizowanie formalnego zapisu "funkcji malejącej" przy pomocy nowego, uproszczonego modelu "prawdopodobieństwa warunkowego".

To wszystko dotyczy finalnego etapu pracy, z którego wnioskiem będzie już ostateczny wynik, że funkcja VMPC spełnia formalne wymogi określone w definicji funkcji jednokierunkowej. Oby po drodze nie pojawiły się już żadne formalne opóźniacze. Potem zostanie już tylko kilka elementów pobocznych, które nie powinny już nastręczyć żadnych problemów.

Przy tej okazji chciałbym wszystkim życzyć zdrowia i jak najszybszego rozprawienia się z koronawirusem. Jedną pozytywną rzeczą, jaką w tym widzę, jest to (skoro już się zdarzyło, to choć wyciągnijmy z tego coś pozytywnego), że po tej pandemii być może łatwiej będzie zrozumieć grupie społecznej, nazywanej "antyszczepionkowcami", do uniknięcia czego służą szczepionki. Co w długim terminie może wszystkim wyjdzie na zdrowie.




11.03.2020. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#110320

Po ostatniej intensywnej pracy potrzebowałem chwili zwolnienia, aby mózg mi się nieco zregenerował, nabrał dystansu i skonsolidował dotychczasowe wyniki. To dość trudne psychicznie, bo mam głęboką potrzebę, aby dojść wreszcie do - leżącego już na bliskim horyzoncie - końca, a jednocześnie wiem z doświadczenia, że taka konsolidacja zawsze dawała pozytywne efekty merytoryczne.

Aby jednak nie było tak pięknie, to zamiast odpoczywać, zastosowałem ponownie zasadę, że zmiana jest równie dobra jak odpoczynek i zamiast odpoczywać, zabrałem się intensywnie do finalizowania pracy nad nowym programem do szyfrowania. No i jak się rozpędziłem, to wygląda na to, że program udało mi się prawie całkowicie ukończyć! Można powiedzieć, że "merytorycznie" program jest już w 100% gotowy, a zostały do sfinalizowania tylko szczegóły związane z ekranem powitalnym, instalatorem i tym podobnymi elementami. Program będzie nosił nazwę VMPC Secret Book. Będzie dostępy od razu w polskiej i angielskiej wersji językowej.

Postawiłem sobie za cel, aby program był maksymalnie ergonomiczny, przyjazny i wygodny w obsłudze. Tak, aby był "przyjacielem" użytkownika, pozwalającym wygodnie i bezpiecznie w jednym miejscu trzymać zaszyfrowane wszystkie prywatne informacje tekstowe (loginy, hasła, linki, kody, informacje - co kto tylko będzie chciał). Program ma bardzo elastyczny system zapamiętywania ustawień, rozbudowany system skrótów klawiszowych (przy odrobinie wprawy można złożone operacje wykonywać w mgnieniu oka) i dopracowaną organizację okien / przycisków oraz funkcji wyszukiwania - tak, aby obsługa była możliwie najwygodniejsza i najbardziej intuicyjna. Oczywiście, czy faktycznie udało się osiągnąć taką wygodę, jak mi się wydaje, ocenią użytkownicy.

Taka strategia "odpoczynku" od pracy nad funkcją dobrze mi się sprawdza, bo programowanie mocno stymuluje mózg i, podobnie, jak matematyka, wymaga absolutnej precyzji formułowania myśli (w przypadku programowania - formułowania instrukcji, jak komputer ma wykonać złożone operacje). Dla osób mniej zagłębionych w komputerowy świat - komputer to kompletny idiota, który potrafi robić tylko jedną rzecz - odróżniać zero od jedynki. IQ na poziomie może 1? :-) Ma jednak jeden atut - potrafi robić to bardzo szybko. Np. odróżnić od siebie 100 miliardów zer od jedynek w ciągu sekundy. Komputerowi trzeba więc wszystko bardzo precyzyjnie, łopatologicznie wytłumaczyć, ale można za to nauczyć go robić niemal wszystko i to bardzo szybko. To taka rozrywkowa dygresja na temat komputerów na świeżo - intensywne prace nad programem skończyłem właśnie wczoraj.

Teraz chwila prawdziwego odpoczynku (pewnie za długo nie wytrzymam) i wracam na ostatnią prostą (mam nadzieję) w finalizowaniu pracy nad funkcją. Mam nadzieję, że uda mi się teraz oba projekty prowadzić równolegle i co kilka dni w ramach chwilowego odpoczynku od funkcji będę poświęcał po kilka godzin na finalizowanie ostatnich drobnych elementów w programie. Przy odrobinie szczęścia, uda mi się oba projekty ukończyć w jednym momencie.




07.02.2020. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#070220

Aby kontynuować zapis "funkcji malejącej" przy pomocy wspomnianych w poprzednim wpisie 3 lematów, musiałem wreszcie zapisać formalnie dowód pewnej fundamentalnej własności funkcji VMPC. Mówiąc (bardzo!) ściśle - że coś jest równe 3G/2. Równość ta jest bardzo prosta do wyobrażenia sobie albo wytłumaczenia "humanistycznego". Jednak formalny zapis matematyczny (czyli z rozbiciem na "logiczne atomy") okazał się ponownie złośliwie mozolny. Aby to zapisać, musiałem się cofnąć aż do opisu języka VMPC i w nim przeformułować sporo elementów, aby otworzyć pole do precyzyjnego zdefiniowania, czym formalnie jest owo "coś", a następnie udowodnić, że równe jest ono 3G/2.

W efekcie potrzebnych było 9 stron czystopisu, aby to wykonać:

Moje plany, aby cieszyć się ostatnim etapem pisania pracy, na razie pozostają fikcją, bo takie komponowanie formalnych konstrukcji nie należy do przyjemnych. Musi to być nie tylko poprawne formalnie, ale też możliwie najprostsze.

Wygląda, że do samego końca pracy właśnie tego typu zadania mnie czekają. Na pocieszenie pozostaje świadomość, że zostało już tego niewiele i że mimo wszystko jest to zwieńczenie całej pracy koncepcyjnej, więc jak już będzie gotowe, to chociaż przyjemnie mi się to przeczyta.

Teoretycznie pozostała do wykonania część pracy już tylko "czeka" na powyżej opisany wynik "coś = 3G/2" i po zaaplikowaniu go tam, w optymistycznej wersji, wszystko do samego końca powinno pójść już gładko, nawet od strony formalnej. Oczywiście, na pewno tak nie będzie i formalności na pewno nastręczą jeszcze sporo kłopotów, których teraz nie widzę. A może nie. Zobaczymy.

W każdym razie udowodnienie owych 3G/2 jest dużym postępem formalnym, takim odbębnieniem "pracy fizycznej", jak sprzątanie mieszkania, nic przyjemnego, ale trzeba to wykonać i dobrze jest, gdy jest to już za nami i możemy korzystać z efektów.

Z innych wieści - w serwisie
MADDOWNLOAD pojawiła się anglojęzyczna recenzja mojej aplikacji do szyfrowania danych VMPCrypt 5.






03.01.2020. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#030120

W ostatnim miesiącu, chyba widząc moją ekscytację ze zbliżającego się zakończenia pracy, moja piękna funkcja postanowiła mi przypomnieć, dlaczego praca tak się przedłuża. Pomysł (dotyczący sposobu opisania tzw. "funkcji malejącej", jaki miałem w listopadzie i który otworzył drogę do samego końca pracy) musiał przejść przez drogę weryfikacji. Weryfikacji, czy jest to faktycznie najlepszy sposób na opisanie tego zjawiska.

Był to dość masochistyczny proces, bo pomysł ten od początku wydawał mi się bardzo dobry i miałem naturalną chęć, aby od razu go realizować. Jednak zanim mogłem to zrobić z pełnym przekonaniem, musiałem wiedzieć, że wszystkie inne pomysły, jakie byłem w stanie wygenerować, są gorsze. Miałem zapisanych wcześniej kilka koncepcji i choć pokusa była duża, aby z góry uznać je za gorsze, to niestety, aby wynik był rzetelny, musiałem wszystkie te pomysły zgłębić i ocenić. Aby mieć pewność, że wybrany sposób jest faktycznie najlepszy, jaki jestem w stanie znaleźć.

I to właśnie udało mi się ukończyć. Wyszło dobrze, to znaczy pomysł, na który wpadłem w listopadzie i po którym napisałem tu na blogu, że czuję, że już wszystko jest opanowane, okazał się najlepszym podejściem, a nawet jedynym, które prowadziło do wyniku. Aby uzyskać to przekonanie, w grudniu powstało na tę okoliczność 15 (!) nowych stron brudnopisu z opisem i oceną tychże konkurencyjnych koncepcji opisania "funkcji malejącej".

Tak bardzo, jak pragnę, aby tę pracę wreszcie skończyć, jeszcze ważniejsze jest dla mnie, żeby praca była dobra. A dokładniej - najlepsza, jaką jestem w stanie napisać. Czy to wystarczy, aby była dobra, ocenią już inni, mądrzejsi ode mnie.

Drugi krok, w którym moja funkcja w grudniu przypomniała mi, dlaczego praca tak się przedłuża, była konieczność zaktualizowania formalnego zapisu pewnych 3 lematów (będących jednym z centralnych elementów pracy). Niestety znów zajęło to więcej czasu niż się spodziewałem. Mimo że intuicyjnie lematy te są bardzo proste - językiem potocznym, używając małych skrótów myślowych, można je zapisać w kilku linijkach tekstu. Jednocześnie pełny formalny ich zapis wraz z udowodnieniem wszystkich własności, z których dowód korzysta, zajęło 3 strony czystopisu.

To kolejny przykład, jak mozolne są formalne zapisy matematyczne. Czasami trzeba stracić wiele dni, żeby opisać coś intuicyjnie oczywistego. To jest ból i piękno matematyki w jednym. Precyzja i ogólność, która z tego powstaje, może być piękna, ale ból i wysiłek podczas komponowania tego jest dotkliwy. Tak wygląda finalny albo prawie finalny zapis owych 3 lematów:

Jeszcze małym problemem na deser jest nazewnictwo zmiennych. Gdy praca ma 50 stron (to jej obecna objętość po usunięciu wielu starych elementów w 2019 roku) okazuje się, że powoli robi się ciasno z alfabetem - zaczyna brakować zmiennych do opisywania zjawisk. Pomimo użycia alfabetu łacińskiego, greckiego oraz liter z podwójną linią. Jeszcze nie jest tak źle, żeby całkiem brakowało symboli, ale trzeba się trochę nagimnastykować z gospodarowaniem nazwami obiektów. I to też zajmuje dodatkowy czas, a nie daje szczególnej satysfakcji, gdy np. przez godzinę szukam, jakim symbolem oznaczyć nowy obiekt, aby nie kolidował z innymi.

Mimo tych komplikacji w tej chwili wygląda to tak, że wszystko jest opanowane i przygotowane do postawienia "kropki nad i" - zapisania dowodu już do samego końca. Pewność, że jestem na końcu, będę miał dopiero, jak do niego dotrę. Nie chcę znowu pisać, że za tydzień skończę pracę. Można powiedzieć, że nie mam nad tym pełnej kontroli. To funkcja bardziej mnie prowadzi niż ja nad nią panuję. Ale pewne jest to, że jestem już tuż tuż przed faktycznym końcem. I choć pewnie wiele osób, które czytają mojego bloga, się niecierpliwi, to proszę mi wierzyć, że ze wszystkich osób ja jestem najprawdopodobniej tą, która jest najbardziej nieszczęśliwa z tego, że ta praca tak się przedłuża. Robię wszystko, co w mojej mocy, aby tę pracę skończyć.




05.12.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#051219

W ostatnim czasie podgoniłem trochę prace nad nowym programem do szyfrowania, bo został trochę w tyle za postępami w pracy nad funkcją. Idealnie chciałbym, aby "pod choinkę" w tym roku położyć sobie gotową pracę o funkcji oraz skończony nowy program do szyfrowania. Potem niech się dzieje, co chce.

Z ciekawostek naukowych, ostatnio "odkryłem" liczbę e (liczbę Eulera równą 2,71...). Analizując pewne zjawisko w funkcji VMPC, uzyskałem wynik, że prawdopodobieństwo zajścia czegoś tam opisane jest przez pewien szereg. Po chwili zorientowałem się, że szereg ten jest zbieżny do liczby e pomniejszonej o 2, czyli do 0,71.... Naukowo nie ma to żadnej wartości (wyważyłem dawno otwarte drzwi), ale i tak jest to przyjemne uczucie.

Przez chwilę myślałem, że odkryłem też nowy sposób na wyliczenie liczby e, ale mój entuzjazm opadł, gdy znalazłem ten sam wzór
tu (wyszukać w tekście (Ctrl+F) "floor((e-2)*n!)"). Wzór ten "ujawnił" się w mojej pracy w takiej formie:

e = 2 + A(n)/n!

(formalnie, e dąży do tego wyniku dla n dążącego do nieskończoności).

Mamy tu zależność rekurencyjną: A(n) = n*A(n-1) + 1
gdzie wartości początkowe wynoszą: A(0)=-1, A(1)=0, A(2)=1

Teraz chwila rozrywki dla mnie oraz dla osób, które nie są matematykami, a śledzą mojego bloga. Zagorzali formalni puryści powinni przeskoczyć ten akapit, bo może im podskoczyć ciśnienie :-)

Na powyższym przykładzie spróbuję pokazać, że matematyka to nie jest wcale zbiór egzotycznych szlaczków, które mają jakąś magiczną moc rozumianą tylko przez garstkę dziwaków (zwanych matematykami). Ale że matematyka to piękny zapis przeróżnych logicznych zjawisk, opisujących świat, który nas otacza. Aby wyliczyć słynną liczbę e wg powyższego pozornie zagmatwanego wzoru, robimy taką prostą liczbową "kanapkę". Można bardzo łatwo obliczyć to na kalkulatorze, takim najzwyklejszym, który jest nawet w smartfonie. Zapewniam, że każdy da radę, więc jak ktoś lubi zabawy z liczbami, to zapraszam do wspólnego liczenia :-)

Na początek bierzemy cyferkę 0. Zero czyli nic. Mnożymy ją przez 2. Czyli dalej mamy 0. Potem dodajemy do tego 1. I mamy już 1. To już coś! Teraz mnożymy to nasze 1 razy 3. I też dodajemy do tego 1. Uzyskujemy 4. Otrzymany wynik (4) mnożymy teraz przez 4 i też dodajemy 1. Mamy 17. Czyli 4*4+1=17. Dalej liczymy identycznie, mnożąc w każdym kroku przez liczbę o 1 większą, ale dodając zawsze 1. Czyli teraz liczymy 17 razy 5 plus 1 = 86. Dalej mnożymy przez 6 i plus 1, czyli 86 * 6 + 1 = 517. Teraz przez 7 i plus 1: 517 * 7 + 1 = 3620. Dalej: 3620 * 8 + 1 = 28961. I tak dalej i tak dalej, ile komu cierpliwości wystarczy. Im dłużej będzie tak liczył, tym dokładniejszy wynik uzyska.

Teraz trzeba tylko odpokutować swoją cierpliwość i podzielić uzyskany wynik kolejno przez wszystkie użyte mnożniki... Czyli dzielimy wynik przez 8 potem dzielimy uzyskany wynik przez 7, potem dzielimy przez 6, przez 5, 4, 3, 2. Tym sposobem otrzymujemy wynik 0,71827. Teraz wystarczy dodać do tego 2 i mamy... 2,71827. A liczba Eulera e to 2,71828... Obliczyliśmy zatem samodzielnie liczbę e z dokładnością do 4 miejsc po przecinku!

Powyższe, choć zajmuje kawałek tekstu, jest bardzo proste do wykonania i nie wymaga żadnej wiedzy z matematyki, wystarczy znać cyferki od 0 do 9 i znaleźć na kalkulatorze operacje dodawania + oraz mnożenia x i dzielenia /. I można obliczyć samodzielnie słynną stałą matematyczną e!

Przy tej okazji wszystkie osoby, które gardzą "egzotycznymi" matematycznymi zapisami, mogą spojrzeć na sprawę z innej strony. Ten przydługi opis słowny jest zapisany wyżej formalnym językiem matematyki w 2 linijkach wzoru matematycznego. Jest to dokładnie to samo, tylko zapisane innym językiem. Może więc matematyka nie jest taka straszna i nie trzeba się jej bać, tylko wystarczy zagłębić się w nią i zobaczyć, co ma nam do powiedzenia o świecie? Bo każdy wzór matematyczny czy twierdzenie da się tak rozwinąć w mniej lub bardziej poetycki opis zjawisk w otaczającym nam świecie. Jeśli powyższe słowa zachęciły choć jedną osobę do tego, żeby przestała bać się matematyki, to warto było to napisać :-)


Wracając "na ziemię", jestem ciekaw komentarzy czytelników, którzy może zajmowali się generowaniem liczby e. Czy inne metody obliczania liczby e są bardziej wydajne? Nie robiłem dokładnego rozeznania, więc być może odpowiedź jest oczywista. Obiecujące w tym wzorze wydaje się to (pod względem wydajności obliczeniowej), że wymaga on tylko jednego dzielenia (a dzielenie jest dla procesora czasochłonną operacją).

Z innych wieści, moja recenzja pracy naukowej nadesłanej przez kogoś do zagranicznego czasopisma matematycznego "Computational and Applied Mathematics" pojawiła się na moim profilu ORCID. Moja recenzja była mocno krytyczna, ale okazało się, że pozostałe 4 recenzje także były negatywne i praca została odrzucona. Było to dla mnie ciekawe nowe doświadczenie recenzować cudzą pracę. Niedługo moja praca o funkcji najprawdopodobniej będzie przechodziła podobną drogę. Mam nadzieję, że z innym skutkiem :-)

W samej pracy o funkcji zbieram wszystko w celu zapisania ostatnich dwóch elementów, które w zasadzie są już tam prawie zapisane. Mam nadzieję, że nic już mnie nie zaskoczy i że pod choinką będę miał skończoną pracę. Samo odkrycie funkcji VMPC nastąpiło właśnie w Boże Narodzenie. W 1998 roku, gdy byłem na pierwszym roku studiów.

Szykując się do sezonu świątecznego (w którym sprzedaż Permutu trochę się zwiększa), zaktualizowałem formularz zakupu gry, teraz płatność za grę można wykonać wygodnie szybkim przelewem, przez Blik, kartą płatniczą, PayPal oraz oczywiście tradycyjnym przelewem. Jeśli ktoś chciałby, kupując Permutu na Gwiazdkę, zrobić dwa prezenty (obdarowanemu oraz mi poprzez fakt zakupu gry), może łatwo kupić grę z wysyłką za 39 zł:

Formularz zamówienia Permutu

Ponownie zaktualizowałem też tekst na zrzutce. Zrzutka niedługo zostanie zamknięta. Wygląda na to, że ma ona charakter dość elitarny, obecnie 55 osób wsparło tam mój projekt. Niewielka to liczba, która trochę mnie smuci, ale jednocześnie podkreśla wyjątkowość tych osób, które wpłaciły.

www.zrzutka.pl/vmpc

Mojej pierwszej pracy o funkcji VMPC w 2004 roku nikt wcześniej nie czytał i nie oceniał. Bez konsultacji wysłałem ją najwyżej, gdzie się dało na świecie. Racjonalnie było spodziewać się, że zostanie odrzucona. Praca została jednak przyjęta do publikacji (FSE 2004). Jak będzie z obecną pracą, dowodzącą jednokierunkowości VMPC i rozwiązującą problem P vs NP? Nie wiem. Przekonamy się.




01.11.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#011119

Doraźnie zakleiłem ubytek w podwoziu mojego samochodu żywicą poliestrową zbrojoną włóknem szklanym. Pięknie to nie wygląda, ale poprawia sytuację doraźnie, dopóki nie uda mi się zdobyć środków na nowe auto.

Grigorij Perelman (Rosjanin, który rozwiązał jeden z Problemów Milenijnych, ale odmówił przyjęcia nagrody Claya) zapytany, który z etapów pracy nad dowodem był najprzyjemniejszy, odparł, że ostatni rok - gdy wiedział już, że wszystko na pewno dobrze rozwiązał i pozostało mu tylko uporządkować zapis.

Szukałem momentu w swojej pracy, w którym poczułbym się podobnie. Niby przez długi czas byłem blisko takiego poczucia, ale zawsze czegoś mi brakowało, zawsze przede mną było jeszcze za dużo, aby móc w pełni odczuć taki spokój.

Do wczoraj. Wczoraj poczułem ten właśnie stan. Bez szukania go na siłę (jak wcześniej próbowałem), tylko poczułem go naturalnie.

Odbyło się to wczoraj (30.11.2019) wieczorem. Wpadł mi wtedy do głowy pomysł, jak w zaskakująco krótki sposób zapisać ostatni brakujący element pracy, nazywany tu na blogu "funkcją malejącą". Do dziś (24 godziny później) pomysłu nie obaliłem i jestem prawie pewien, że pomysł się sprawdzi.

Jakkolwiek absurdalnie to zabrzmi, to czuję, że pomysł ten zawdzięczam mojej robocie z klejeniem żywicą dziur w moim samochodzie. Po tej robocie poczułem się niesamowicie dobrze. Nie umiem tego wytłumaczyć, ale dawno się tak dobrze nie czułem. Coś jak dziecko, które skonstruowało jakąś fajną budowlę z klocków Lego. Miałem po tym wyjątkowo odświeżony i czysty umysł. Gdy tego wieczora siadłem do pracy nad funkcją, wpadł mi do głowy nagle ten właśnie pomysł. Pomysł na to, jak zaskakująco prosto udowodnić to, co trzeba było udowodnić w etapie "funkcja malejąca".

Jak wiadomo (o tym pisałem w poprzednim wpisie) niedługo wcześniej okazało się, że wzór z czerwca 2019 zaskakująco, jako efekt uboczny, pozwolił mi udowodnić ostatni z dwóch pozostałych elementów pracy, czyli "twierdzenie o nieoznaczoności".

Czuję się tak, jakbym wreszcie wykonał całą czarną robotę i po 20 latach mocowania się z funkcją VMPC miał wreszcie wszystkie detale dowodu opracowane. Pozostało tylko czysto warsztatowo dokończyć zapisywanie tego.

Co więcej, teraz mam znacznie większe przekonanie o prawidłowości dowodu niż kiedykolwiek wcześniej.

To poczucie daje mi ogromną radość, jakiej wcześniej nie czułem. Wydaje mi się, że to może być takie właśnie uczucie, jakie opisywał Grigorij Perelman.

Teraz pomysł trzeba zapisać, więc jeszcze trochę pracy zostało. Ale od teraz do samego końca będzie to najprzyjemniejszy czas mojej 20-letniej pracy nad dowodem jednokierunkowości funkcji VMPC.

Jestem teraz praktycznie pewien, że uda mi się skończyć pracę do końca 2019 roku.

Jeśli masz ochotę podzielić się ze mną jakąś myślą, zapraszam do skorzystania z poniższego formularza*:

* Wszystkich hejterów, którzy regularnie wysyłają mi agresywne, idiotyczne i pozbawione podstawowych zasad kultury wiadomości, których nawet nie czytam, tylko rejestruję i przenoszę do specjalnego śmietnika, zapraszam do zmobilizowania się, bo to już są ostatnie okazje, aby dać upust swojej frustracji, zazdrości i agresji, wyrzucić z siebie jad. Oczywiście anonimowo, bo nikt z owych hejterów nie ma odwagi podpisać się swoim nazwiskiem pod rzucanymi słowami.

Po zakończeniu pracy opublikuję wszystkie otrzymane hejterskie wiadomości, aby pokazać normalnym ludziom, jak kolorowa może być wyobraźnia zakompleksionych ludzi, którzy zamiast na budowanie własnych osiągnięć, marnują swoją energię na wylewanie jadu agresywnej zazdrości na wysiłki innych.

Jest to, niestety, powszechne zjawisko, ludzka ułomność. Tak, jak są w społeczeństwie np. mordercy, tak są i hejterzy. Szkoda, że są, ale są. Zjawisko to towarzyszy mi od około 2003 roku i stąd znam je dość dobrze. Dawno się do niego przyzwyczaiłem i od dawna śmieję się z niego, ale mimo wszystko żal mi tych sfrustrowanych ludzi.

Zjawisko to nie dotyczy tylko Polaków (piszę z własnego doświadczenia), choć w Polsce prawdopodobnie jest bardziej nasilone niż w innych krajach, gdyż zazdrość i zawiść to nasze cechy narodowe.

Jeśli ktoś pisze pracę naukową lub artykuł na temat zjawiska hejteryzmu, zapraszam do kontaktu ze mną, mam sporo materiałów, przemyśleń, hipotez i chętnie podzielę się nimi.




26.10.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#261019

Okazało się, że złowrogo wyglądająca korozja w podwoziu mojej "wiecznie młodej" Toyotki niestety okazała się chorobą śmiertelną. Po rozdrapaniu ogniska korozji śrubokrętem, resztki zardzewiałej podłużnicy zsypały się na ziemię. Po czym zmiotłem je na szufelkę. Ujawniła się taka oto piękna dziura:

Jest to niestety newralgiczne miejsce - do podłużnicy (czyli teraz do dziury po podłużnicy) zamocowany jest wahacz, który trzyma prawe przednie koło. Grozi mi, że w każdej chwili mogę zgubić przednie prawe koło i wylądować na drzewie. Oto moja pacjentka (Toyota Corolla E9, rocznik 1990):

Zmieniłem całkowicie opis na zrzutce. Celem jest zebranie środków na nowy samochód. Jeśli ktoś miałby ochotę pomóc bezpośrednio - wpłacając dowolną kwotę - albo pośrednio - udostępniając zrzutkę na facebooku czy w jakikolwiek inny sposób dzieląc się informacją o niej z innymi - byłbym ogromnie wdzięczny.

www.zrzutka.pl/vmpc

Jest mi smutno, bo bardzo chciałbym do końca roku 2019 skończyć pracę. A tego typu przyziemne problemy - jak "śmiertelna choroba" samochodu - wybijają mnie z koncentracji i absorbują nerwy. W zeszłym roku dopadła mnie przeprowadzka, a teraz ten głupi samochód. Żal mi auta tym bardziej, że jest utrzymane w bardzo dobrym stanie technicznym, ale rdzy w takim miejscu nie da się już naprawić :-(

Cóż, życie trwa dalej. W pracy wszystko idzie lepiej niż planowałem. Obecnie przegryzłem się już przez wszystkie analizy z roku 2017, dotyczące ostatniego etapu pracy, czyli tzw. twierdzenia o nieoznaczoności. Wcześniej odwoływałem się do tych analiz także jako "kartka 36".

Wygląda na to, że nowe wyniki z czerwca 2019 w zaskakujący sposób (jako efekt uboczny) dostarczają inną drogą dużą część wyników z "kartki 36".

To dość fascynująca podróż, muszę przyznać. Ten wzór z czerwca 2019 (którego uproszczenie zawdzięczam tajemniczemu pomocnikowi), jak się z czasem okazało, ma znacznie głębszy sens niż jego znaczenie bezpośrednie. Ze sposobu, w jaki wzór ten został wyprowadzony, wynika kilka zaskakujących i cennych dodatkowych własności, które pozwalają uprościć pozostałą część pracy.

Co ciekawe, dostrzegłem je dopiero z czasem. Potwierdzałoby się to, co już wielokroć zauważyłem i opowiadałem podczas wystąpienia na konferencji TEDx:

Czas rozwiązuje problemy. To zdanie, może kontrowersyjne, ma w sobie głęboki sens. Oczywiście nie należy go interpretować tak, że wystarczy mieć problem, a on się z czasem sam rozwiąże. Trzeba się jeszcze ciągle nim zajmować i ciągle o nim myśleć. Ale nie można popychać niczego na siłę do przodu, tylko trzeba iść do przodu naturalnym tempem, tak jak problem nas prowadzi, a nie jak my go chcemy pchać. A wtedy wszystko zaskakująco układa się tak, jak powinno, często lepiej niż sami się spodziewamy. I w tym sensie czas nam pomaga rozwiązać problem. Zapewne da się to wyjaśnić psychologicznie (psychologiem nie jestem), ale podejrzewam, że jest to związane z plastycznością mózgu i tym, że mózg nawet bez naszej świadomości ciągle porządkuje informacje. Pracuje w tle. I po pewnym czasie porządkowania dostarcza nam nowych rozwiązań. A my je odczytujemy jako pomysły, na które nagle wpadamy. Sekret w tym, aby właśnie pozwolić czasowi działać... I nie spieszyć się za bardzo. Dotyczy to raczej trudnych problemów, wymagających twórczego myślenia, znajdowania nowych sposobów. Jeśli mamy prosty problem, np. umyć naczynia, to lepiej go szybko rozwiązać :-)

Przy okazji chciałbym zaprezentować nowe logo projektu VMPC. Zawdzięczam je anonimowemu pomocnikowi (którego miałem przyjemność poznać) i którego z tego miejsca serdecznie pozdrawiam.

Logo zostanie użyte w nowym programie do szyfrowania informacji tekstowych, który jest już blisko ukończenia i nad którym pracuję równolegle. Przy funkcji obecnie pracuję nad dwoma pozostałymi elementami - "funkcją malejącą" i wspomnianym powyżej "twierdzeniem o nieoznaczoności".




12.10.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#121019

Konkurs został rozstrzygnięty! Szukana permutacja F ma postać:
F=(25, 6, 9, 19, 7, 21, 1, 5, 20, 16, 2, 24, 18, 11, 14, 23, 8, 10, 12, 17, 3, 4, 0, 13, 22, 15)*
*Formalnie permutacje zapisujemy bez przecinków, a tu mamy jej zapis w tablicy w języku programowania, aby łatwiej było ją wkleić, gdyby ktoś jeszcze chciał się tymi liczbami pobawić.

Trzy alternatywne rozwiązania (czyli 3 pary elementów F, które należało zgadnąć) to:

F(14)=14, F(11)=24
F(14)=14, F(24)=22
F(14)=14, F(25)=15
Po ich zgadnięciu można odtworzyć całą permutację F bezpośrednio z użytej w konkursie definicji funkcji VMPC: V(x)=F(F(F(x))+1), gdzie dane było:
V=(8, 9, 10, 12, 1, 21, 5, 0, 7, 16, 2, 13, 11, 15, 23, 14, 4, 19, 17, 24, 3, 20, 25, 18, 6, 22)

Przebieg konkursu był dość dramatyczny! O czym wiedzą sami zwycięzcy :-) To między innymi spowodowało, że zwycięzców jest aż dwóch! Oboje znaleźli wszystkie 3 pary.

Oto wygrani (przedstawienie zwycięzców odbywa się, oczywiście, za ich zgodą oraz z możliwością usunięcia stąd swoich nazwisk w dowolnym czasie, gdyby wyrazili taką wolę):

1. Wojciech Drozd, uczeń Uniwersyteckiego LO i Zespołu Szkół Muzycznych im. Karola Szymanowskiego w Toruniu

2. Agnieszka Lejb, specjalistka IT i pasjonatka matematyki z Bydgoszczy

Każda z tych osób otrzymuje w nagrodę egzemplarz gry Permutu z okolicznościową dedykacją.

Serdecznie gratuluję!




08.10.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#081019

Wraz z początkiem października 2019 wchodzę w intensywny etap, który, mam nadzieję, skończy się ukończeniem całej pracy do końca 2019 roku. Okres akademickich wakacji (od lipca do września) był czasem lekkiego spowolnienia, które wykorzystałem na zregenerowanie sił i konsolidację dotychczasowych wyników. I tak sporo pracowałem w tym czasie, nigdzie nie wyjeżdżałem nawet, ale nie była to tak intensywna praca, jak w czerwcu 2019 i jaką planuję do końca roku 2019.

1. Konkurs z poprzedniego wpisu sprzed tygodnia wciąż pozostaje nierozstrzygnięty. Aby dodatkowo zachęcić do udziału, podaję podpowiedź. Jednym z elementów, które należy zgadnąć, jest F(14)=?. Drugi zgadywany element ma 3 alternatywne postaci F(?)=?. Zadanie ma zatem 3 rozwiązania. Wystarczy podać jedno z nich.

2. Jak co bardziej wierni czytelnicy mogą być zorientowani, moja praca odbywała się od szczegółu do ogółu. Najpierw zauważyłem szczególne własności funkcji VMPC eksperymentalnie, na konkretnych liczbach (permutacjach), a dopiero potem, począwszy od roku 2015, zacząłem te własności uogólniać, czego zwieńczeniem będzie, mam nadzieję poprawny, dowód jednokierunkowości funkcji VMPC.

Jednakże każdy proces uogólniania niesie ze sobą ryzyko, że po drodze coś zgubimy i ostatecznie opiszemy jakieś zjawisko, ale nie do końca to, od którego zaczynaliśmy. Kiedyś musiał nadejść moment, kiedy teoria będzie już tak dobrze opisana, że będzie ją można zweryfikować na konkretnym przykładzie, czy faktycznie opisuje ona zjawisko, które miała opisywać. To nie jest, oczywiście, dowód na poprawność tej teorii, a jedynie upewnienie się, czy teoria gdzieś po drodze nie zbłądziła. Do tego celu posłużyły mi klocki
Permutu, które reprezentowały wartości funkcji VMPC.

To, przy okazji, małe potwierdzenie, że moje deklaracje, iż gra Permutu wywodzi się z funkcji VMPC, nie są pustymi słowami. Tych klocków Permutu użyłem faktycznie w badaniach nad funkcją. Co nie zmienia jednoczesnego faktu, że Permutu jest grą niezwykle prostą i grając w nią nawet nie mamy świadomości, że wywodzi się ona ze złożonego zjawiska matematycznego. Przy tej okazji pozwolę sobie zachęcić osoby, które jeszcze nie mają swojego egzemplarza Permutu, do zakupu, który wspiera finansowo mój skromny projekt badawczy:

Tak to wyglądało w praktyce. Funkcja VMPC przed odwróceniem:

Funkcja VMPC po odwróceniu:

Ku mojej radości okazało się, ze opracowana w latach 2015-2019 teoria idealnie celnie opisuje to, co miała opisywać.

Szczególnie ekscytujące, a raczej wzruszające, było dla mnie zaobserwowanie, jak w praktyce (czyli na liczbach) działa twierdzenie o równowadze. Czym ono jest, będzie można przeczytać dopiero w oficjalnej wersji pracy, ale jest to jedno z fundamentalnych twierdzeń, które odkryłem w 2011 roku i które pojechałem zapisywać do Szklarskiej Poręby, bo było tak przełomowe, że chciałem nadać wydarzeniu jakąś ceremonię. To ono otworzyło drogę do przeprowadzenia dowodu jednokierunkowości funkcji VMPC.

Poszukiwania tego twierdzenia trwały od roku 2004 do 2011, a zaczęły się zaraz od publikacji funkcji VMPC na konferencji FSE w Indiach. Co ciekawe, zapis twierdzenia, wraz z dowodem, zajmuje w pracy pół strony. Sprawny czytelnik przeczyta je i zrozumie w 5 minut. Jego znalezienie i udowodnienie zajęło mi 7 lat.

Dlatego tak sentymentalnie istotne było dla mnie zobaczyć, jak twierdzenie to faktycznie działa w praktyce. Niestety pewnie nikt poza mną nie doceni emocjonalnej istoty i wagi tej chwili, ale mimo wszystko chciałem się nią podzielić.

3. Jeśli chodzi o odkrytą podgrupę permutacji, która stanowi jeszcze wyższy poziom uogólnienia funkcji VMPC, to choć odkrycie to pozostaje prawdziwe, to postanowiłem nie zgłębiać tego tematu. Ze względów czasowych. Mimo obecnego entuzjazmu jestem długofalowo na granicy wyczerpania wszelkiej energii i inspiracji i czuję, że zostało mi jej dokładnie tyle, ile potrzeba, aby dokończyć pracę, ale już bez wchodzenia w żadne dodatkowe badania. W oficjalnej wersji pracy najprawdopodobniej tylko wspomnę o tej podgrupie permutacji i pozostawię przebadanie jej w kontekście jeszcze dalszego uogólnienia funkcji VMPC już innym badaczom.

Póki co wspomnę tylko, że miejscem, w którym odkryta podgrupa permutacji gdzieś tam łączy się z dotychczasowym dorobkiem matematycznym, jest pewna sekwencja liczbowa, opisująca jedną z bardzo podstawowych permutacji tej podgrupy. Liczności permutacji z tej podgrupy (dla grup symetrycznych SN dla kolejnych wartości N) wynoszą 1, 2, 20, 232, 3728, 74528, 1788736,... a sekwencja opisana jest w bazie OEIS, sekwencja A296660.

Co ciekawe (choć całkiem przypadkowe i bez znaczenia), adres tej sekwencji ma w członie 666 :-) W przyszłości prawdopodobnie dopiszę w komentarzach do tej sekwencji w OEIS interpretację tej sekwencji, odpowiadającą odkrytej podgrupie, związanej z VMPC. Jednak z powodów paranoicznych i kryptograficznego zboczenia zawodowego (gdzie analizuje się bardzo mało prawdopodobne zdarzenia i uznaje się je za istotne zagrożenia), nie zrobię tego teraz, bo boję się, że jakaś hipotetyczna osoba z gigantycznym ilorazem inteligencji i wyjątkową błyskotliwością umysłu z tego komentarza mogłaby wywnioskować, jaką strategią przyjąłem w moim dowodzie jednokierunkowości funkcji VMPC. Dlatego komentarz ten dopiszę w OEIS w powyżej podanym linku dopiero po opublikowaniu pracy. Jako ciekawostka, kilka spokrewnionych sekwencji, opisujących liczności permutacji z tej podgrupy, ale dla nieco bardziej skomplikowanych warunków, to na przykład: 20, 684, 39744, 3614400 lub 24, 524, 15280, 572622 tych jednak już nie ma na OEIS.

4. Jakieś dwa tygodnie temu miałem ciekawe doświadczenie - redaktor czasopisma matematycznego z długą tradycją (wydawanego od 1981), Computational and Applied Mathematics zwrócił się do mnie z prośbą o zrecenzowanie nowej pracy naukowej nadesłanej tam do publikacji. Nie jest to jakieś wiodące czasopismo matematyczne, ale mimo wszystko było to dla mnie ciekawe doświadczenie, szczególnie, że prośba przyszła z zagranicy, a ja formalnie nie posiadam żadnego tytułu naukowego ponad magistra i żeby znaleźć mnie i przeanalizować moje kompetencje, trzeba się trochę zagłębić. Tym milej mi było, że ktoś gdzieś tam na świecie to zrobił.

5. Na koniec coś bardziej przyziemnego. Moja nieśmiertelna Toyotka Corolla, którą posiadam od 20 lat i która ani razu mnie nie zawiodła pomimo wieku 29 lat i przebiegu 380 tys. km.

ujawniła ostatnio niepokojące ognisko korozji w miejscu mocowania przedniego prawego wahacza do podłużnicy:

w zasadzie bez komentarza, element ten jest raczej trudny do naprawy, gdyż podłużnica (czyli to skorodowane na zdjęciu) jest fundamentalnym elementem nośnym konstrukcji samochodu, a wahacz (to, co jest tam przykręcone po lewej stronie) trzyma prawe przednie koło. Gdyby koło zostało podczas jazdy "uwolnione" (gdyby wahacz się oderwał od tej skorodowanej podłużnicy) to chyba spowoduje to, że samochód odbije na bok w niekontrolowany sposób? Tak mi się przynajmniej wydaje. Chyba że ktoś przerabiał już taki temat i może koło trzyma się wystarczająco mocno na samej zwrotnicy i urwanie wahacza podczas jazdy nie spowoduje utraty kontroli nad pojazdem i można będzie auto bezpiecznie zatrzymać? Zawieszenie jest tu konstrukcji McPherson bez stabilizatora (nie wiem, czy ta informacja ma jakieś znaczenie). Nie jestem tu ekspertem, gdyby ktoś miał w tym temacie dokładniejszą wiedzę lub doświadczenie, byłbym wdzięczny za jakąś poradę, czy urwanie wahacza podczas jazdy musi się skończyć źle?




30.09.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#300919

Najbliższa merytoryczna aktualizacja pojawi się za kilka dni. Jako jej zapowiedź załączam małe rozrywkowe zadanie dla co bardziej wnikliwych czytelników.

Zgodnie z pierwotnymi wynikami badań z 2004 roku odwrócenie funkcji VMPC dla 26-elementowej permutacji (tyle symboli ma gra Permutu) wymaga zgadnięcia średnio 5 elementów permutacji. Tu mamy jednak 26-elementową permutację, będąca wartością funkcji VMPC, którą da się odwrócić, zgadując tylko 2 elementy. Funkcja VMPC opisana jest tu klasycznym wzorem V(x)=F(F(F(x))+1) dla x=0,1,...,25, gdzie + jest dodawaniem modulo 26. F oraz V są permutacjami zbioru {0,1,...,25}.

Oto permutacja V:
V=(8, 9, 10, 12, 1, 21, 5, 0, 7, 16, 2, 13, 11, 15, 23, 14, 4, 19, 17, 24, 3, 20, 25, 18, 6, 22)
Mamy więc V(0)=8, V(1)=9,..., V(25)=22.

Zadaniem jest wskazać, które 2 elementy F należy zgadnąć, aby odtworzyć całą permutację F. Czyli odpowiedź miałaby formę np. "trzeba zgadnąć F(1)=11 oraz F(2)=22".

Pierwsza osoba, która znajdzie te dwa elementy (a najlepiej znajdzie całą permutację F) otrzyma w nagrodę grę Permutu z dedykacją.

Jednak głównym tematem dzisiejszego wpisu jest coś nietypowego.
Malutka cegiełka do rozwoju demokracji w Polsce.

Niedawno w rozmowie z moim przyjacielem,
Tomaszem Szynalskim, doszliśmy do wniosku, że wiele osób mieszkających poza swoim miejscem zameldowania (np. studenci) ma kłopot, aby zagłosować w nadchodzących wyborach parlamentarnych (w niedzielę, 13 października 2019). Aby oddać głos, muszą dopełnić kilku dodatkowych formalności, ale zebranie informacji, jak dokładnie to zrobić, gdzie znaleźć najbliższy lokal wyborczy, wymaga trochę fatygi. Nie każdy chce poświęcać na to swój cenny czas.

To powoduje, że studenci i osoby mobilne, często zmieniające miejsce zamieszkania, mają "zaniżoną" reprezentację w parlamencie. Jest bardzo prawdopodobne, że wyniki wyborów byłyby inne, gdyby więcej takich osób oddawało głos.

Tu z inicjatywą wyszedł Tomasz i otworzył stronę, na której wszystkie potrzebne informacje są zebrane w jednym miejscu i podane w przyjazny i precyzyjny sposób.

www.jakglosowac.org

Informacja o stronie pojawiła się na wykopie.

Jeśli masz konto na wykopie i miałbyś/miałabyś ochotę wspomóc tę skromną inicjatywę, kliknij wykop!

Zachęcam też do udostępnienia strony www.jakglosowac.org na facebooku.

Inicjatywa jest o tyle szlachetna, że autor zainwestował własny czas i własne pieniądze w stworzenie tej strony, a jej celem jest tylko ułatwienie ludziom głosowania, nie ma z tego tytułu żadnych korzyści, nie namawia też do tego, na kogo głosować.




30.08.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#300819

Lipiec i sierpień miałem przeznaczyć na regenerację sił. Udało się częściowo, bo w tym czasie nastąpiły też małe postępy w pracy. Zarówno nad funkcją, jak i nad programem do szyfrowania tekstów. Mimo że technicznie nowy program to tylko wycięcie z VMPCrypt'a modułu tekstowego wraz z szyfrowaną książką, to sporo pracy wymagają poprawki ergonomiczne, mające sprawić, że program będzie przyjaźniejszy i łatwiejszy w obsłudze. Wstępny wygląd głównego okna programu:

W pracy nad funkcją w wakacje powstało trochę nowych materiałów:

Stanowią one porządkowanie myśli przed formalnym (czyli przy użyciu "matematycznych robaczków") finalizowaniem na czysto etapu "funkcja malejąca". Do liczenia permutacji spełniających pewne warunki ponownie zaprzęgnięta została tablica różnic Eulera (Euler's difference table). Nie mogę odżałować, że czas nie płynie w przeciwnym kierunku, gdyż wówczas odkryłbym tę tablicę przed Eulerem :-)

Najciekawsze przyszło w ostatnim czasie, może ostatniego tygodnia. Jakimś splotem (neuronów w mózgu?) myśli nakierowały mi się na zdefiniowanie pewnej podgrupy permutacji, spełniających pewne szczególne warunki. Są to proste i ogólne, pozornie niezwiązane z funkcją VMPC warunki.

Ciekawą własnością tej podgrupy jest fakt, że prawdopodobieństwo trafienia na permutację z tej podgrupy jest niewielomianowe (czyli dla jakiegoś rozmiaru permutacji N jest ono mniejsze niż odwrotność dowolnej wielomianowej funkcji N). Mówiąc bardziej po polsku - jest to prawdopodobieństwo "jednokierunkowe", czyli takie, jakie jest potrzebne do dowodu jednokierunkowości funkcji VMPC.

Najciekawszą własnością tej podgrupy jest jednak to, że problem odwracania funkcji VMPC da się zredukować do problemu znalezienia permutacji z tej podgrupy. A to jest już coś bardzo bardzo ciekawego i potencjalnie przełomowego. Mimo że przełomy nie są już mi potrzebne, to trafić na jakiś zawsze lepiej niż nie trafić.

Redukcja ta nie jest niezbędna i dowód można przeprowadzić bez niej (powołując się pośrednio na zjawiska kombinatoryczne występujące w funkcji VMPC) i taka była pierwotna strategia zapisania dowodu. Ona zostanie zrealizowana, ale ta redukcja będzie stanowiła dodatkową wartość i ona jeszcze bardziej zwiększy klarowność dowodu.

Wygląda na to, że koncepcja "funkcji malejącej" (czyli dotychczasowa strategia) oraz wspomniana powyżej redukcja są ze sobą ściśle powiązane i może okazać się, że opisując jedno i drugie ostatecznie uzyskam jeden wspólny wynik, do którego prowadzi droga zarówno od "funkcji malejącej", jak i od "redukcji".

Po odkryciu tej redukcji finalizacja pracy wygląda na jeszcze bardziej ekscytującą!

Jeszcze mała ciekawostka, ale już znacznie mniej istotna. Takie sentymentalno-matematyczne nawiązanie do przeszłości. Podczas wstępnych analiz opisanej powyżej podgrupy permutacji, dotyczącej tejże redukcji, natknąłem się na sekwencję liczbową 3, 15, 105, 945, 10395,... Określona jest ona wzorem 3*5*7*... (mnożymy kolejne liczby nieparzyste), jest to podwójna silnia (double factorial) dla liczb nieparzystych.

Sekwencja ta jest opisana w bazie danych sekwencji liczbowych
OEIS. W bazie tej różne osoby z biegiem czasu dodają różne interpretacje danej sekwencji liczbowej (podobnie, jak tworzona jest Wikipedia). Zajrzałem tam i zaskoczony przeczytałem jedną z interpretacji tej sekwencji: "Number of ways to choose n-1 disjoint pairs of items from 2*n-1 items (one item remains unpaired)" której autorem jest... Bartosz Żółtak, czyli ja :-). Interpretację tę dopisałem tam w 2012 roku, gdy akurat natknąłem się na pewne zjawisko podczas badań nad funkcją. Obecnie nie pamiętałem, że opisywałem tam właśnie tę sekwencję. Dopiero po przeczytaniu tam własnego nazwiska zrozumiałem, że już tu wcześniej byłem! :-)

Ponieważ trzymam cały brudnopis moich badań i jest on względnie ustrukturyzowany, znalezienie w nim notatek z 2012, dotyczących tej sekwencji, zajęło mi 3 minuty. Oto te notatki z 2012 roku:

To nawiązanie do przeszłości nie ma bezpośredniego wpływu na bieżące wyniki, ale było ciekawym przeżyciem emocjonalnym, że idąc dalej tą samą drogą, natknąłem się na ślad własnych badań sprzed 7 lat.

To jeden z małych przykładów spójności, o której wielokroć mówiłem na różnych wystąpieniach. Moja pewność siebie dotycząca funkcji VMPC wynika głównie z tego, że po 20 latach analizowania tego samego zjawiska na wiele różnych sposobów za każdym razem dochodziłem do podobnych zjawisk kombinatorycznych, opisujących problem odwracania funkcji jako niewielomianowo (czyli jednokierunkowo) trudny. To nie jest dowód, że mam w moich badaniach rację, ale jest to mocny subiektywny argument, który pozwala mi wierzyć, że mam rację.




02.07.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#020719

Udało mi się ukończyć kolejny etap pracy - integrację nowej części pracy z "językiem VMPC". Nowe pomysły na zdefiniowanie "języka VMPC" z końca maja sprawdziły się i pozwoliły zapisać "język" w znacznie prostszy sposób. Koncepcyjnie prostszy, gdyż objętość formalnego czystopisu spadła raptem z 6 do 5 stron.

"Język VMPC" stanowi centralny element pracy. Pozwala opisać proces odwracania funkcji VMPC w taki sposób, że możliwe jest udowodnienie jej jednokierunkowości bez względu na zastosowany algorytm. Innymi słowy, każdy algorytm odwracania funkcji, szczególnie taki, o którym nigdy nie pomyślałem, musi "pokonać" pewne kombinatoryczne zjawiska, które w funkcji VMPC zachodzą, a które "język VMPC" opisuje formalnie.

Nie obyło się bez masochistycznych sytuacji. Etap ten był już raz zakończony około połowy czerwca. Dziś mamy początek lipca.

Po zakończeniu pracy w połowie czerwca zauważyłem kolejny sposób na uproszczenie dwóch głównych definicji (pewnych zbiorów). Uproszczenie było dość fundamentalne, gdyż pozwalało zrezygnować z jednego poziomu rekurencji (czyli definiowania następnego obiektu na podstawie poprzedniego). W wyniku tego uproszczenia całą pracę wykonaną przez pierwszą połowę czerwca musiałem zrobić jeszcze raz.

Najgorsze zostało "na deser" - ostatni tydzień czerwca. Zostały mi do udowodnienia dwa "bzdurne" lematy, które intuicyjnie są oczywiste. Ich dowód w poprzedniej rekurencyjnej wersji języka był trywialny, gdyż wynikał wprost z rekurencji. W nowej wersji musiałem znaleźć "źródło tej oczywistości" bez rekurencji i zapisać je formalnie. Udało się i choć wymagało sporo wysiłku, nie dało mi satysfakcji intelektualnej ani twórczej.

Dodam, że wszystkie 3 wersje "języka VMPC" są prawidłowe i opisują dokładnie to samo zjawisko. Walka toczy się tylko o to, aby sposób formalnego opisu tego zjawiska był możliwie najbardziej zwięzły i elegancki. A może mimo moich wysiłków ktoś mądrzejszy ode mnie kiedyś zapisze to wszystko jeszcze zwięźlej i jeszcze ładniej. Np. na 1 stronie. Nie wiadomo.

Jestem przemęczony i widzę u siebie kilka objawów wypalenia zawodowego. Nie mam za bardzo siły cieszyć się z zakończenia obecnego etapu.

Przede mną jeszcze dwa duże etapy oraz kilka mniejszych. Dwa duże to "funkcja malejąca" (w dużej mierze opracowana już koncepcyjnie, pozostało sformalizowanie) oraz "twierdzenie o nieoznaczoności" (jest to formalny zapis tego, nad czym pracowałem cały 2017 rok, "kartka 36").

Po obejrzeniu z dystansem wszystkich stworzonych w ostatnim miesiącu materiałów nie wiem, kiedy to wszystko zrobiłem. Nie wiem, o czym to wrażenie świadczy. Może wynika z przemęczenia?

Obecnie potrzebuję poważnej regeneracji, bo w tej chwili nie mam kompletnie sił. Siły oczywiście wrócą, to naturalne, a niczego w świecie nie chcę bardziej niż ukończenia tej cholernej pracy.

Brudnopis obecnego etapu (z ostatniego miesiąca):

Stara wersja "języka VMPC" z 2016 roku:

Nowa rekurencyjna wersja "języka VMPC" z 1. połowy czerwca 2019:

Najnowsza nierekurencyjna wersja "języka VMPC" z 2. połowy czerwca 2019. W klamerkach dopisanych piórem zaznaczyłem dowody owych dwóch bzdurnych lematów, które w starej wersji powyżej zajmują dwie linijki, a w nowej wersji poniżej - całą stronę.




29.05.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#290519

Zawsze wierzyłem, że ważną rolę w skuteczności pracy odgrywa ergonomia stanowiska pracy (czyli wygoda, dopasowanie do kształtu ciała). Jeśli ergonomia jest na dobrym poziomie, pozwala skupić się na samej pracy, bez uciążliwych "impulsów dyskomfortu", które świadomie lub nie dekoncentrują umysł.

Choć mam bardzo wygodne (samodzielnie przerobione) biurko komputerowe, to zawsze brakowało mi ergonomicznego miejsca do pracy tradycyjnej, czyli z kartką papieru i piórem. Wystarczy zwykły stół, jednak tu, gdzie mieszkam, mam krzywą podłogę i zwykły 4-nożny stół, "telepie się", czyli jedna z 4 nóg nie dochodzi do podłogi. Próby podkładania czegoś pod nogę się nie sprawdziły, bo stół za każdym razem stoi trochę w innym miejscu i za każdym razem musiałem podkładać inną ilość podkładek.

Uznałem, że nowy etap pracy (integracja wyprowadzenie wzoru P4 z "językiem VMPC") pójdzie mi znacznie sprawniej, jeśli wykonam małe udoskonalenie w obszarze ergonomii, aby uodpornić stół na nierówność podłogi. Niestety nie mogłem w żadnym sklepie znaleźć stołu, który spełniałby moje wymagania co do wymiarów, braku poprzeczki pod blatem i aby się nie telepał na krzywej podłodze. Oczywiście nie stać mnie na zamówienie stołu u stolarza, więc wykonałem taki stół samodzielnie:



Oszacowałem, że budowa nowego stołu się opłaci, bo choć zajęła mi 2 dni, pozwoli zaoszczędzić znacznie więcej czasu dzięki polepszeniu ergonomii pracy.

Z innych ciekawostek, udało mi się wreszcie rozpocząć prace nad nową aplikacją do szyfrowania, o której wspominałem kilka miesięcy temu. Powstanie ona poprzez wyodrębnienie z VMPCrypt szyfrowanej książki, udoskonalenie jej i zastosowanie technologii szyfrowania VMPC-R (o której wspominałem na początku roku).

Wróćmy jednak do pracy nad funkcją. Ponieważ ów "język VMPC" jest mocno skomplikowany, a ostatni raz pracowałem nad nim 3 lata temu, założyłem, że jego integracja z nowymi oznaczeniami (powstałymi podczas wyprowadzania wzoru P4) może mi zająć czas do końca czerwca.

Przeczytałem i dokładnie przeanalizowałem stary "język VMPC" oraz powiązane z nim tzw. "twierdzenie o równowadze" (robocza nazwa). Twierdzenie to jest jednym z najważniejszych w całej pracy. Stanowi ono fundamentalny element, który umożliwił przeprowadzenie dowodu jednokierunkowości funkcji VMPC w formie ogólnej (czyli dla dowolnego zrandomizowanego algorytmu odwracania funkcji). Odkryłem to twierdzenie około 2011. Było ono tak przełomowe i byłem nim wówczas tak nim podekscytowany, że aby je zapisać, pojechałem na samotną wycieczkę (do Szklarskiej Poręby), aby nadać wydarzeniu więcej ceremonii i podelektować się nim.

"Język VMPC" był potem stworzony przede wszystkim po to, aby formalnie zapisać to twierdzenie. Język wraz z dowodem tego twierdzenia zajmują w pracy na czysto 6 stron.

Jak wiadomo, zawsze kiepsko mi szło szacowanie czasu... Prawie zawsze elementy zajmowały mi znacznie więcej czasu niż pierwotnie zakładałem. I już wiem, że teraz też bardzo źle mi poszło oszacowanie czasu pracy nad nowym etapem...

Okazało się, ze etap zaplanowany na miesiąc czasu udało mi się wykonać w 7 dni! Tak wyglądają efekty (na razie na brudno):

Na brudno udoskonalona wersja języka VMPC wraz z dowodem twierdzenia o równowadze zajmuje około... 1/3 strony (większość z powyższych 7 stron to zapis ewolucyjnej drogi do tego wyniku). Oczywiście po zapisaniu formalnie na czysto objętość ta może wzrosnąć kilkakrotnie, ale już widzę, że zapis będzie wielokrotnie prostszy od starej wersji!

Zagadką jest dla mnie, jak to się stało. Prześledziłem zapisane rozumowanie kilkakrotnie i jest ono prawidłowe. Albo moja sprawność w opisywaniu funkcji VMPC tak bardzo się zwiększyła przez ostatnie 3 lata, a może nowe oznaczenia ze wzoru P4 ułatwiły wpadnięcie na lepsze pomysły opisania zjawiska. Albo pomógł nowy stół, który w szczególny sposób utrzymuje... równowagę? :-) A może był to efekt synergiczny i każdy z tych czynników (plus inne, nieznane mi) odegrały jakąś rolę?

Ze starej wersji "języka VMPC" praktycznie nic nie zostało... Wszystko zostało zapisane na nowo, innym sposobem.

Nowy zapis wykracza o jeden ważny krok dalej od starej wersji (która miała ten krok dopiero przed sobą). Po raz pierwszy zapisałem (na razie brudno) jedną z dwóch postaci finalnego wzoru całej pracy - na niewielomianowe prawdopodobieństwo odwrócenia funkcji VMPC! Jest to pierwszy konkretny znak, że praca faktycznie jest na ukończeniu.

Wciąż poszukuję odpowiedzi, dlaczego wielcy matematycy twierdzą, że matematyka jest sztuką. Podejrzewam (to tylko moje subiektywne zdanie), że aspekt sztuki w matematyce przejawia się w tego typu sytuacjach, że jakąś myśl można zapisać na wiele różnych sposobów, a wybór danego sposobu (spośród różnych alternatywnych poprawnych) jest rodzajem sztuki. Czy sposób, na który wpadłem teraz, jest znacznie lepszy (piękniejszy?) niż poprzedni? Czuję, że tak. Czy nie da się znaleźć piękniejszego? Na pewno się da. Ale ja już nie będę szukał, ten mi wystarczy.

Być może wygląda to podobnie, jak gdy np. malarz czy autor wiersza chce przekazać jakąś myśl, jakąś emocję, ma nieskończoną ilość sposobów, jak ją wyrazić, i od jego inspiracji zależy, jaki sposób wybierze / stworzy?

Mam nadzieję, że kiedyś będę miał okazję podyskutować o tym z kimś, kto także przechodził przez podobną drogę. Jestem niezmiernie ciekaw, czy moje obserwacje są choć trochę trafne.




12.05.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#120519

Formalne zapisanie wyprowadzenia wzoru P4 zostało ukończone. Okazało się złośliwie skomplikowane, gdyż jest w nim niestandardowo duża rozpiętość pomiędzy prostotą intuicyjną a komplikacją formalną.

Mówiąc bardziej po ludzku - na poziomie intuicyjnym, czyli używając (względnie precyzyjnych!) skrótów myślowych, można to wyprowadzenie zapisać na 1/3 (jednej trzeciej) kartki A4. Tymczasem zapis formalny (a więc zawierający formalne sprecyzowanie tych wszystkich wykorzystanych faktów) zajmuje 6 stron A4. Czyli 18-krotnie więcej.



Dodam pokornie, że końcowa postać wyprowadzenia jest mocno odmienna od tego, jak sobie je na początku wyobrażałem... Wchodząc w kolejne etapy formalizowania skrótów myślowych czułem, jakby to funkcja mówiła mi (a nie ja planuję), jakie fakty należy kolejno opisać i udowodnić. Z wyniku końcowego jestem jednak bardzo zadowolony, nawet bardziej niż początkowo sądziłem, że będę.

Kolejny etap zapowiada się wyjątkowo ciekawie. Wyprowadzenie wzoru P4 zostanie zintegrowane ze wspominanym wcześniej "językiem VMPC", czyli zajmującym 4 strony A4 zbiorem definicji służących do opisu funkcji VMPC. Język ten zostało skomponowany w roku 2016. Jednocześnie wyprowadzenie P4 używa nieco innych oznaczeń. Połączenie obu w spójną całość będzie twórczym wyzwaniem, na które się bardzo cieszę!

W jeszcze kolejnym etapie wzór P4 zostanie uogólniony o kolejny poziom. Będzie to etap, w którym będzie już widać związek z ogólną definicją funkcji jednokierunkowej oraz problemem "czy P=NP?".

W następnym etapie wzór zostanie uogólniony o jeszcze kolejny poziom i to będzie wynik końcowy całej pracy. Ten właśnie etap opisywałem wcześniej ogólnie pod hasłem "funkcji malejącej".

Na koniec zostanie formalny zapis twierdzenia, nad którym pracowałem w roku 2017 ("kartka numer 36").

Na deser pozostanie formalne opisanie implikacji, że z istnienia (jednokierunkowej) funkcji VMPC wynika, że P≠NP.

Nigdy wcześniej nie umiałem tak precyzyjnie zidentyfikować elementów pozostałych do wykonania. To pozwala mi wierzyć, że koniec faktycznie jest już blisko!

Z innych informacji:

Niedawno otrzymałem propozycję "pracy" (zlecenia) przy opracowaniu modelu matematycznego do gry komputerowej od pewnego studia. Mimo że na zleceniu tym prawdopodobnie mógłbym zarobić kilka tysięcy złotych, to odrzuciłem propozycję, gdyż zbyt mocno zajęłaby mi głowę i odciągnęła od pracy nad funkcją na zbyt długi czas. Po podjęciu tej decyzji ani chwili jej nie żałowałem.

W ostatnim czasie miałem też przyjemność prezentować projekt VMPC w pewnym ciekawym miejscu, łączącym świat nauki i biznesu.

Gdy na końcu prezentacji podsumowałam, że 70% czasu mojej pracy nad funkcją (czyli 14 z 20 lat...) to czas stracony na badanie ślepych uliczek, słuchacze z uśmiechem pokiwali głową, że w ich branży sytuacja wygląda podobnie. Ludzką rzeczą jest błądzić ;-)

Dla uściślenia - etap błądzenia mam za sobą, ale tylko dzięki przejściu przez niego jestem dziś tu, gdzie jestem.

Jeśli masz ochotę wesprzeć mój projekt, możesz wpłacić dowolną kwotę na zrzutkę:

www.zrzutka.pl/vmpc




13.04.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#130419

Stokrotne ponowne podziękowania dla anonimowego pomocnika, który przed chwilą (również o godzinie 23:05!) przesłał mi uproszczenie wzoru P4, o którym była mowa w poprzednim wpisie!

Zawarta tam równość okazała się prawidłowa, ale wyprowadzenie okazało się bardziej złożone niż się spodziewałem, a to tylko powiększa zasługę, gdyż jest to dla mnie nie mała ulga, ale co najmniej zauważalna ulga!

Bardzo gorąco dziękuję za tę pomoc! Jeśli tylko osoba ta będzie sobie tego życzyła i skontaktuje się ze mną bezpośrednio (na razie nie wiem, kim ona jest!), to podziękowanie za ten miły i cenny gest chciałbym zawrzeć w oficjalnej wersji pracy w sekcji "podziękowania". Do tego darmowy egzemplarz gry Permutu z pisemnym podziękowaniem - ponownie, jeśli tylko osoba ta życzyłaby sobie go otrzymać.

Na razie w sekcji "podziękowania" znajdzie się jeszcze jedno inne nazwisko osoby, z którą współpracowałem kilka lat temu i która udowadniała dla mnie pewną nierówność (istnieje tylko jedna osoba, która odpowiada temu opisowi, więc jeśli osoba ta czyta niniejsze słowa, to ma pewność, że mowa jest o niej :-)). Oczywiście podziękowanie zostanie zapisane tylko, jeśli podczas finalizowania pracy (to jeszcze nie teraz) osoba ta potwierdzi chęć zawarcia tam swojego nazwiska.

Tymczasem wracam do pracy nad finalizowaniem zapisu na czysto wyprowadzenia wzoru P4, a zaraz po tym - do zapisania przesłanego uproszczenia!

Jest to naprawdę ważny element pracy, dlatego jestem tą sytuacją tak ucieszony!

Jeśli masz ochotę wesprzeć mój projekt, możesz wpłacić dowolną kwotę na zrzutkę:

www.zrzutka.pl/vmpc




11.04.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#110419

Serdecznie dziękuję osobie, która w środę o 23:05 przesłała mi anonimowo (korzystając z WolframAlpha) bardzo ciekawe uproszczenie wzoru, wykraczające znacznie poza zakres ogłoszonego konkursu!

Idąc za ciosem, zamieszczam kolejny wzór, P4, który jest uogólnieniem wzoru P3 (wzór P4 zawiera już w sobie uproszczenie, będące rozwiązaniem wczorajszego konkursu).



I tu moja prośba do tej osoby: jeśli to nie kłopot, będę bardzo wdzięczny za wykonanie analogicznych przekształceń, jak dla wzoru P3, ale dla powyższego wzoru P4 oraz za przesłanie mi tych przekształceń w formie jakiegoś pliku, może być nawet skan / zdjęcie zapisu własnoręcznego, emailem na adres:


Byłaby to dla mnie choć mała ulga, gdyż nie musiałbym wykonywać tej części pracy samodzielnie.

Podana powyżej równość to wynik roboczy i może zawierać jakiś błąd, gdyż zapisałem ją z głowy jako intuicyjnie spodziewany wynik. Mimo to może uprości pracę (a raczej nie utrudni).

Z góry dziękuję za pomoc i bardzo się cieszę, że niniejszy nieformalny blog może dawać takie formalne pożytki!

Dziękuję też gorąco osobie, która wspaniałomyślnie wpłaciła dziś największą jak dotąd kwotę 500 zł na zrzutkę! Takie gesty mają podwójną moc - bezpośrednią i pośrednią - motywacyjną. Bardzo serdecznie dziękuję!!!

Dziękuję też osobie, która przesłała mi wiadomość dość celnie uświadamiającą, że wiele z osób czytających mojego bloga nie jest w stanie wspomóc mnie finansowo, a mimo to mi kibicują i śledzą przebieg projektu. Takie osoby są dla mnie bardzo ważne i zawsze z przyjemnością czytam takie wiadomości. Dodają mi one także energii!

Mam nadzieję, że ostatni napad depresji sprzed dwóch tygodni był ostatnim i teraz jednym ciągiem (z małymi przerwami na odpoczynki) uda mi się dokończyć pracę w ciągu najbliższych kilku miesięcy!

Jeśli masz ochotę wesprzeć mój projekt, możesz wpłacić dowolną kwotę na zrzutkę:

www.zrzutka.pl/vmpc




10.04.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#100419

Aby trochę ożywić atmosferę, postanowiłem ogłosić mały konkurs związany z wyprowadzonym ostatnio wzorem:

Konkurs polega na znalezieniu sposobu, jak uprościć licznik powyższego ułamka tak, aby zawierał nie 5, ale 4 czynniki. Dla mniej wtajemniczonych dodam, że podkreślenie wykładnika (np. G-R) posiada swoje matematyczne znaczenie.

Konkurs wygra pierwsza osoba, która znajdzie taki sposób. W nagrodę osoba ta otrzyma wysyłkowo grę Permutu z okolicznościową dedykacją i autografem!

Zadanie nie jest trudne ani podchwytliwe. Zachęcam! Wyniki zostaną ogłoszone tu na blogu. Zwycięzca zostanie ogłoszony albo anonimowo albo zostanie przedstawiony tak, jak sobie tego zażyczy.

Ogłoszenie zwycięzcy powinno się pojawić w ciągu kilku godzin od nadesłania odpowiedzi, więc można przyjąć w uproszczeniu, że dopóki ogłoszenia o rozwiązaniu nie ma tu, to znaczy, że konkurs jest aktualny!

Tymczasem trwają intensywne prace nad formalnym zapisem wyprowadzenia tego wzoru. Wzór jest stosunkowo prosty w swojej postaci oraz w kombinatorycznym znaczeniu i wydaje mi się, że mózg generuje mi go jedną myślą w ułamku sekundy. Jednocześnie wyprowadzenie go, jak dotąd, zajmuje 6 stron matematycznych formalizmów, a jeszcze nie jest ukończone.

To piękno i przekleństwo matematyki jednocześnie. Piękna jest jej precyzja, a przekleństwem jest droga do osiągnięcia tej precyzji.

To zjawisko występuje od samego początku pisania pracy i jest główną przyczyną, dla której zapisanie całej pracy formalnie na czysto zamiast roku, trwa już ponad 4 lata.

Jeśli masz ochotę wesprzeć mój projekt, możesz wpłacić dowolną kwotę na poniższą zrzutkę:

www.zrzutka.pl/vmpc




02.04.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#020419

W ostatnich dniach ukończyłem wyprowadzać najważniejszy jak dotychczas wzór (P3). Jest on jednym z trzech finałowych wzorów całej pracy.



Jest on spokrewniony (opisuje to samo zjawisko, tylko od innej strony), z "wielkim" wzorem (P2) z roku 2015 (wpis z dnia 19.02.2015). Cała praca od 2015 do teraz, wraz ze wszystkimi wykonanymi po drodze elementami, służyła jednemu celowi - aby ze wzoru P2 przejść do wzoru P3.

Wzory te powinny dawać zbliżone wyniki (ale nie mogą dawać zawsze takich samych wyników). Liczyłem, że w optymistycznej wersji wyniki P3 będą się odchylały o nie więcej niż 50% od P2.

Tymczasem okazało się, że maksymalne odchylenie wynosi nie 50%, ale mniej niż 1%! Co więcej, przy parametrach N, G dających wyniki bliskie 0 lub bliskie jedności oba wzory są asymptotycznie dość szybko zbieżne do siebie.

Co jeszcze ciekawsze, dla G=1 oba wzory upraszczają się do identycznej postaci.

Zbieżność obu wzorów da się uzasadnić kombinatorycznie (czyli teoretycznie), ale nie spodziewałem się, że wymiar liczbowy (czyli praktyczny) tej zbieżności będzie aż tak wyraźny! Ogólnie rzecz biorąc, jest to fenomenalny wynik, którego sam się nie spodziewałem!

Z innych wieści, otrzymałem pierwsze zaproszenie na prelekcję na temat mojego projektu, umówioną na wrzesień 2019. Jeśli wszystko pójdzie zgodnie z planem, odbędzie się ona już po ukończeniu pracy.

Jeśli masz ochotę wesprzeć mój projekt, możesz wpłacić dowolną kwotę na poniższą zrzutkę:

www.zrzutka.pl/vmpc




06.03.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#060319

Zakończyłem właśnie etap, otwierający formalną drogą już do samego końca pracy. Opracowałem kolejną porcję definicji (zmiennych, zbiorów i funkcji), potrzebnych do formalnego opisu procesu zgadywania elementów permutacji podczas odwracania funkcji VMPC. Brzmi banalnie, ale nie było to zadanie łatwe. Opracowane definicje musiały być eleganckie, najprostsze, jak to możliwe, pasować do istniejącej już treści w pracy i umożliwiać elastyczne opisywanie zjawisk. Od początku do wersji końcowej opracowanie tych definicji zajęło mi dwa tygodnie. Długo jak na kilka definicji, ale mam satysfakcję, że definicje są bardzo dobre.

Zostały już wykorzystane do opisu trzech bardzo ważnych lematów, stanowiących jeden z głównych filarów dowodu jednokierunkowości funkcji VMPC. Wcześniej opis tych 3 lematów był dość skomplikowany, co więcej wymagał jeszcze uzupełnienia. Teraz, przy pomocy nowo opracowanych definicji, zapisanie każdego z nich w kompletnej postaci możliwe było w jednej linijce. Dowód każdego z 3 lematów zajmuje teraz tylko 2 linijki formalnego zapisu. Dla takich efektów warto było poświęcić 2 tygodnie.



Nowo opracowane definicje formalnie stanowią uzupełnienie tzw. "języka VMPC", o którym tu wielokroć pisałem. Jest to zestaw definicji, który umożliwia formalny zapis dowodu jednokierunkowości funkcji VMPC. Pozornie może się wydawać, że wartość samych definicji nie jest zbyt wielka, a liczy się przede wszystkim rozumowanie. Na poziomie intuicyjnym jest to prawda. Jednak na poziomie formalnym jakość skonstruowanych definicji jest niezwykle ważna. Może ona nawet stanowić warunek decydujący o tym, czy uda się rozumowanie zapisać formalnie, czy nie. A co najmniej decyduje o tym, jak elegancki będzie powstały zapis.

Ze skomponowanego zapisu powyższych 3 lematów - każdy w 3 linijkach wraz z dowodem - mam bardzo dużą satysfakcję. Niestety nikt mnie za to nie pochwali, gdyż pracuję sam, więc muszę pochwalić się sam. Przyznaję sobie za skomponowanie tych definicji i zapis tych lematów 10 punktów!

Uważni czytelnicy mogą pamiętać moje narzekania na mozolną pracę przy wyprowadzaniu rozkładów prawdopodobieństwa (25.09.2018), gdzie po zapisie 11 stron rozumowania przy użyciu niemal samych symboli matematycznych, przyznałem sobie za wykonaną pracę 0 punktów. Teraz za zapisanie kilku definicji i 9 linijek rozumowania 10 punktów.

Skąd taka różnica? Tamta praca nie miała żadnego aspektu twórczego, była tylko matematyczną pracą fizyczną, kojarzeniem faktów, dopasowywaniem ich do wzorów, formułowaniem wniosków. Praca taka jest szlachetna i potrzebna, ale nie wymaga szczególnej inteligencji, a tym bardziej zdolności twórczych. Jedynie jakiegoś zmysłu do porządkowania informacji, bardzo podobnego do zmysłu używanego np. podczas porządkowania zagraconej szuflady ze szpargałami (mówię tu całkowicie poważnie). Praca taka jest jednak niezbędna do wykonania. Jedynym źródłem satysfakcji po jej wykonaniu jest fakt, że już nie trzeba jej więcej wykonywać. Nie ma żadnej satysfakcji twórczej. Stąd 0 punktów za taką pracę. Jednak 0 punktów to też jakaś forma docenienia, lepsza niż nic.

Tym bardziej cieszę się, że dla kontrastu teraz udało mi się skończyć etap, który miał w sobie dużo elementu twórczego, wymagał faktycznie myślenia, a nie tylko pracy fizycznej, i tu jestem dumny z efektów. Stąd 10 punktów.

Opracowane teraz definicje, wraz z wcześniejszymi, teoretycznie powinny umożliwić opisanie wszystkich brakujących elementów dowodu, do samego końca. Z ekscytacją zabieram się za zapisywanie kolejnych elementów!

Równocześnie miało miejsce szczególne wydarzenie, związane z grą Permutu. Permutu, jak wiadomo, jest grą wywodzącą się z funkcji VMPC oraz, przynajmniej teoretycznie, bo praktycznie to nie, próbuje stanowić źródło finansowania moich badań nad funkcją VMPC.

22.02.2019 sprzedał się ostatni przeznaczony do normalnej sprzedaży egzemplarz
kolekcjonerskiej (drewnianej) wersji Permutu. Zestaw numer 15.

Jak niektórzy mogą pamiętać, wyprodukowanych zostało tylko 35 sztuk zestawów kolekcjonerskich. Na przestrzeni lat sprzedawało się po kilka sztuk rocznie, aż teraz przyszedł czas, kiedy sprzedała się ostatnia sztuka.

Obecnie w mojej prywatnej kolekcji pozostały zestawy o numerach 5,7,14,16,17. Nie są one już jednak przeznaczone do normalnej sprzedaży.

Kolekcjonerskie zestawy Permutu

Oznacza to, że to źródło finansowania projektu VMPC dla mnie właśnie się skończyło. Jednocześnie gorąco zachęcam wszystkich śledzących i chcących wyrazić swoje poparcie dla mojej pracy do wsparcia projektu. Nawet drobne wpłaty podnoszą mnie na duchu i motywują do dalszej pracy. Pokazują bowiem, że ktoś popiera moje wysiłki i potrafi to wyrazić czynami, a nie tylko słowami lub myślami. Z góry gorąco dziękuję za każdą wpłatę.

www.zrzutka.pl/vmpc




18.02.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#180219

Na fali pesymizmu przez ostatnie tygodnie odłożyłem na razie plany rozwijania nowej aplikacji do szyfrowania. Wrócę do nich nieco później. Poczyniłem zamiast tego znaczne postępy w pracy nad funkcją. Zakończyłem wyprowadzanie wszystkich pozostałych rozkładów prawdopodobieństwa, które są potrzebne. Rozkład, o którym pisałem wcześniej (25.09.2018), był największym i najtrudniejszym z nich, co nie zmienia faktu, że łącznie wyprowadzić trzeba było 10 różnych rozkładów prawdopodobieństwa. Jeden z pozostałych 9 był już wcześniej wyprowadzony roboczo, jednak teraz jego wyprowadzenie wykonałem całkowicie na nowo, używając lepszego warsztatu. Wyprowadziłem też, już na czysto, wszystkie brakujące 8 rozkładów.

To dość ważne osiągnięcie, bo całkowicie zamyka mozolną, warsztatową część pracy, dotyczącą rozkładów prawdopodobieństwa. Łącznie z powyższymi 9 rozkładami, zajmuje ona 20 stron na czysto w pracy.

Obecnie praca ma już 82 strony. W tej chwili trwa już kolejny etap, związany z zapisywaniem na czysto wyników analiz nazywanych roboczo "funkcją malejącą", nad którymi pracowałem od października 2018.

Środki zebrane z poprzedniej zrzutki z 2015 roku miały mi wystarczyć na rok badań. Pracowałem za nie 4 lata, dzięki dodatkowej pomocy kilku osób dobrej woli oraz rodziców. Teraz sytuacja się pogorszyła i dlatego powstała nowa
zrzutka.

Sądząc po względnie dużej liczbie udostępnień nowej zrzutki (392) i zakładając ostrożnie, że 28% osób czytających bloga zdecydowało się dokonać udostępnienia, wynikałoby, że bloga śledzi około 1400 osób (28% * 1400 = 392).

Jednocześnie tylko 14 z nich zdecydowało się na wpłatę. Czyli jedna na 100 osób (1/100 * 1400 = 14) postanowiła wyrazić swoje poparcie dla mojego projektu czynami. Bardzo dziękuję tym 14 osobom i pozdrawiam także wszystkich pozostałych.




26.01.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#260119

Opublikowałem pracę naukową dotyczącą opracowanego przeze mnie schematu uwierzytelnionego szyfrowania dla szyfru strumieniowego
VMPC-R. Praca została opublikowana w serwisie IACR Cryptology ePrint Archive Międzynarodowego Stowarzyszenia Badań Kryptologicznych.

Pracę można pobrać bezpośrednio: Message Authentication (MAC) Algorithm For The VMPC-R (RC4-like) Stream Cipher (Algorytm uwierzytelnionego szyfrowania dla szyfru strumieniowego VMPC-R).

Zestaw algorytmów opisanych w tej pracy zostanie użyty w aplikacji do szyfrowania, którą zapowiadałem w poprzednich wpisach i która powinna być gotowa w ciągu kilku miesięcy. Praca nad tą aplikacją będzie stanowiła dla mnie (chyba nietypową) formę rozrywki podczas finalizowania pracy nad funkcją VMPC.

Zaktualizowałem wreszcie anglojęzyczny opis projektu na najstarszej stronie www, na której pojawił się opis funkcji VMPC w 2003 roku: www.vmpcfunction.com.

Powyższymi elementami zamknąłem wszystkie niedokończone projekty.

Było to dla mnie ważne. Teraz mam czystą drogę do dokończenia głównej części całego projektu, czyli pracy dowodzącej jednokierunkowości funkcji VMPC. Obecnie jestem na etapie budowania koncentracji - przegryzam się przez ostatnie wyniki, dotyczące etapu "funkcja malejąca", które uzyskałem w grudniu 2018. W najbliższych dniach zabieram się już za zapisywanie ich na czysto.

Będzie to wejście w ostatni duży etap całego projektu - od teraz jednym ciągiem powinienem doprowadzić pracę do końca. Liczę, że do końca czerwca 2019 praca powinna być gotowa.

Całkowicie przeredagowałem opis nowej zrzutki. Jest teraz bardziej przejrzysty i skupiony na głównym celu. Zapraszam do lektury.

Jednocześnie chciałem wyrazić ubolewanie nad skutecznością nowej zrzutki. Na razie udało mi się zebrać jedynie 385 zł z 11 wpłat. Wynik ten oznacza, że wiele osób, które śledzą postępy mojego projektu, nie ma chęci wyrazić swojego poparcia choćby symboliczną wpłatą. Mimo wszystko chciałbym podziękować tym kilku osobom, które dokonały wpłaty.

Moją pracę o funkcji ukończę bez względu na to, jaki będzie wynik zrzutki. Jednak decyzje na temat mojej przyszłości będą już zależne od wyniku zrzutki.

Wszystkim, którzy chcieliby wpłacić choć symboliczną kwotę, gorąco dziękuję. Każda wpłata jest dla mnie cenna, nie tylko finansowo. Każda wpłata jest wyrazem poparcia dla moich wysiłków i autentycznie motywuje mnie do dalszej pracy. Za każdą bardzo dziękuję.

www.zrzutka.pl/vmpc




11.01.2019. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#110119

Jutro (12.01.2019) ważny dla mnie dzień - 40 urodziny :-) Mówi się, że życie zaczyna się po 40. Zobaczę, czy u mnie się to sprawdzi. Przeciwności losu uniemożliwiły mi ukończenie pracy nad dowodem jednokierunkowości funkcji VMPC do tej 40. Jednocześnie wszystko wskazuje na to, że nastąpi to zanim skończę 41, więc w jakimś przynajmniej sensie uda się to "w trakcie" 40.

Ale nie ma tego złego i zgodnie z postanowieniem z poprzedniego wpisu postanowiłem zakończyć do 40 urodzin inny projekt, który zawsze żałowałem, że nie został doprowadzony do końca. Algorytm szyfrowania VMPC-R. Aby zgodnie z planem zastosować go w nowej aplikacji do szyfrowania danych tekstowych, potrzebne było na początek rozszerzenie go o funkcję uwierzytelniania (generowania tzw. kodów MAC, które pozwalają zweryfikować, czy dane po odszyfrowaniu są dokładnie tymi samymi danymi, które zostały zaszyfrowane). Zaawansowany prototyp oraz roboczą pracę (ale nigdzie nieopublikowaną) miałem gotowe od 2013 roku, a teraz wreszcie znalazłem energię, aby to ukończyć! Od początku roku intensywnie pracowałem nad zaimplementowaniem wszystkich potrzebnych procedur. W tym także w assemblerze. To stara szkoła programowania. Jeśli ktoś interesuje się tematem i uważa, że C++ to programowanie niskiego poziomu, jest w błędzie :-) Niski poziom mamy dopiero, pisząc kod w assemblerze. Choć jest to niezwykle mozolny proces i opłacalny tylko dla procedur wymagających dużej wydajności. Implementacja assemblerowa pozwala (w tym przypadku) uzyskać około 2,5-krotnie szybszy kod. Tak wygląda mały wycinek (cały moduł zajmuje 1300 linii kodu):

Jednocześnie opis algorytmu oraz analiza jego bezpieczeństwa zostaną opublikowane w pracy naukowej. A tę właśnie ukończyłem pisać! Bardzo szybko, ale duża jej część była napisana w 2013 i teraz zostało mi tylko jej sfinalizowanie, co razem z implementacją i intensywnym przetestowaniem wszystkich algorytmów udało mi się zrobić w ciągu pierwszych 10 dni 2019 roku, z czego jestem bardzo zadowolony! Publikacja tej pracy (proszę nie mylić z publikacją pracy o jednokierunkowości funkcji VMPC!) nastąpi wkrótce.

Cieszę się, że przynajmniej coś ważnego uda mi się symbolicznie ukończyć w te 40 urodziny. VMPC-R jest ciekawym algorytmem, gdyż obecnie wszystko wskazuje, że jest on najlepszym na świecie algorytmem tzw. "typu RC4". Generuje strumień danych o najlepszych własnościach statystycznych spośród wszystkich (znanych mi) algorytmów z tej rodziny. Jest lepszy nawet od Spritza, czyli "drugiej próby" wielkiego Ronalda Rivesta, autora RC4 oraz współautora używanego przez wszystkich (najczęściej nieświadomie :-)) algorytmu RSA.

Nieskromnie nadmienię, że moja praca z 2014 roku:
Statistical weakness in Spritz against VMPC-R: in search for the RC4 replacement
jako pierwsza na świecie opisywała jakąś słabość statystyczną (tzw. bias) Spritza. Jednocześnie mój algorytm, VMPC-R, który jest konkurentem dla Spritza, prezentuje w tej dziedzinie dużo wyższą jakość - generuje strumień danych o znacznie lepszych własnościach statystycznych.

Jak pisałem wcześniej, wadą VMPC-R jest jego niska wydajność, więc nie będzie to praktyczna rewolucja w kryptografii, ale jest to co najmniej cenne osiągnięcie naukowe, które jednocześnie znajdzie dobre zastosowanie w nowej aplikacji do szyfrowania tekstów, którą stworzę.

Ciężka robota (implementacja algorytmów i finalizowanie pracy naukowej) dotycząca VMPC-R jest już za mną. Sama praca nad aplikacją będzie już czystą przyjemnością i będzie stanowiła dla mnie, zgodnie z planem, formę intelektualnego odpoczynku przez odmianę podczas finalizowania pracy nad funkcją.

Jednocześnie dziś (podczas gotowania ziemniaków...) wpadł mi do głowy ciekawy wniosek dotyczący kolejnego etapu pracy nad funkcją. Jeśli myśl okaże się trafna, będzie stanowiła kolejne uproszczenie pozostałej do wykonania pracy nad dowodem. A kolejny etap jest związany z integracją najnowszych wyników, czyli "funkcji malejącej" i wspomnianego w ostatnich wpisach jubileuszowego wzoru ze "starą" częścią pracy, czyli tzw. "językiem VMPC", stworzonym w 2016 (to ów wspominany tu niegdyś 4-stronicowy zestaw definicji zmiennych i zbiorów, służących do opisu funkcji VMPC).

Na koniec pozdrowienia dla osoby A ze zbioru osób A i B :-). Dziękuję za wpłatę na zrzutkę i za pamięć!




30.12.2018. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#301218

Z powodu przeszkód życiowych, które zabrały mi łącznie 5 miesięcy z 2018 roku (przeprowadzka, samochód i szereg mniejszych), nie uda mi się sfinalizować pracy do moich 40 urodzin, 12.01.2019. Prognozując ten termin, zakładałem, że będę miał do dyspozycji 12 miesięcy roku 2018, a miałem ich tylko 7 = 12 - 5. Liczę, że uda mi się ukończyć pracę do końca czerwca 2019.

Aby jeszcze bardziej usprawnić pracę nad funkcją, postanowiłem wypróbować nietypowy sposób na odpoczynek. Istnieje powiedzenie, że zmiana jest równie dobra jak odpoczynek (a change is as good as rest).

Dlatego w przerwach pomiędzy etapami pracy nad funkcją, zamiast realizować typowe czynności odpoczynkowe, będę programował. Tak powstanie nowa aplikacja do szyfrowania danych.

Najbardziej unikalną funkcją istniejącej od ponad 10 lat aplikacji VMPCrypt jest szyfrowana książka. Pozwala przechowywać i organizować w folderach w zaszyfrowanej postaci dowolne treści tekstowe, np. loginy i hasła (jak menedżer haseł), prywatną korespondencję, pamiętnik czy treść pisanej powieści.

Szyfrowana książka stanowi jednak tylko dodatkową funkcję VMPCrypt. Obok rozbudowanego modułu szyfrowania plików, schodzi tam na drugi plan. A szkoda!

Nowa aplikacja powstanie poprzez wyodrębnienie i udoskonalenie szyfrowanej książki z VMPCrypt. Będzie posiadała także nową wyjątkową cechę.

Osoby wiernie śledzące mój projekt od 2010 roku mogą pamiętać akcję testów statystycznych na komputerach ponad setki ochotników. Celem było zbadanie własności statystycznych tworzonego wtedy algorytmu szyfrowania VMPC-R. Założeniem konstrukcyjnym VMPC-R była bezkompromisowa odporność na ataki typu distinguisher (odróżniające generowany strumień liczb od modelu losowego). Cel został osiągnięty - dla przykładu, VMPC-R wygenerował w testach 122 biliony pseudolosowych liczb 3-bitowych (z zakresu 0..7) bez wykazywania statystycznie istotnych odchyleń od modelu losowego. Jest to wynik o wiele rzędów wielkości lepszy od jakiegokolwiek znanego mi algorytmu szyfrowania tego typu, włączając w to algorytm Spritz autorstwa legendy światowej kryptografii, Rona Rivesta (współtwórcy algorytmu RSA). Spritz miał być jego odpowiedzią na liczne ataki na jego inny, popularny algorytm RC4. Mówiąc wprost, VMPC-R osiąga w tych testach wielokrotnie lepszy wynik od Spritza.

VMPC-R stał się jednak ofiarą własnej perfekcji. Choć osiąga doskonałe wyniki w testach, ma zbyt niską wydajność, która wynika ze skomplikowania algorytmu. Mimo że VMPC-R powstał jako najprostszy (i jedyny na świecie) algorytm, który jest w stanie te testy przejść.

VMPC-R został opublikowany w serwisie IACR Cryptology ePrint Archive w 2013: VMPC-R Cryptographically Secure Pseudo-Random Number Generator Alternative to RC4. Od tamtego czasu nikt nie znalazł w nim żadnej słabości.

Wydajność algorytmu VMPC-R to około 50 Mbajtów / sekundę. Przy szyfrowaniu dużych plików mogłaby stać się wąskim gardłem, szczególnie na dyskach SSD.

Jednakże 50 milionów znaków na sekundę, to znowu nie jest tak mało! Dla przykładu, zaszyfrowanie tekstu o objętości 1000 stron A4 zajmie algorytmowi VMPC-R zaledwie 0,05 (5 setnych) sekundy. Do szyfrowania dokumentów tekstowych, nawet gigantycznej wielkości, wydajność taka jest aż zanadto wystarczająca!

Tak powstał pomysł zastosowania w nowej aplikacji właśnie algorytmu VMPC-R! Zapewni on bezkompromisowy poziom bezpieczeństwa szyfrowanym tekstom, a jednocześnie jego wydajność nie będzie stanowiła w tym zastosowaniu żadnego ograniczenia! Tym sposobem znalazłem wreszcie zastosowanie dla tego algorytmu!

Przy okazji, pozdrowienia dla autorki "metody kolorkowej", która została użyta do prawidłowego wyłonienia ostatecznej (i poddanej testom) postaci algorytmu VMPC-R ze zbioru finałowych kandydatów! :-)

Mam też prośbę do osób, które są użytkownikami VMPCrypt. Nieważne, czy używają wersji zarejestrowanej, czy darmowej. Zachęcam wszystkich do przesłania swoich opinii oraz pomysłów na udoskonalenia szyfrowanej książki w VMPCrypt. Co jest uciążliwe? Czego brakuje? Co może działać lepiej? Pomysły te mogą zostać uwzględnione podczas tworzenia nowej aplikacji.

Mile widziane są także pomysły na nazwę dla nowej aplikacji. Jeśli zdecyduję się na nazwę zaproponowaną przez któregoś użytkownika, otrzyma on w nagrodę licencję na nową aplikację oraz grę Permutu!

W tej zainspirowanej atmosferze, gdzie i praca nad świętującą 20-lecie odkrycia funkcją VMPC idzie dobrze, i pojawił się pomysł na stworzenie nowej aplikacji do szyfrowania, chciałbym podziękować wszystkim wiernym czytelnikom za śledzenie postępów projektu, zachęcić do jeszcze częstszego dzielenia się ze mną uwagami oraz chciałbym życzyć wszystkim wiele szczęścia i powodzenia w 2019 roku!




21.12.2018. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#211218

Funkcja VMPC obchodzi jubileusz. Właśnie mija 20. rocznica odkrycia funkcji VMPC. 20 grudnia 1998 zapisałem pierwszą prototypową postać funkcji. Od tamtego czasu zajmuję się nią nieprzerwanie.

Mam nadzieję, że 21 rocznicę będziemy obchodzić już po publikacji pracy.

Szczęśliwie się zbiegło w czasie, że właśnie teraz wyprowadziłem ważny wzór, o którym pisałem we wczorajszym wpisie poniżej. Znaczenie tego wzoru jest na tyle duże, że można uczynić go bohaterem tego jubileuszu.

Ja sam także uczciłem ten jubileusz. Udając się na okresową wizytę do dentysty, gdzie załatałem dwie dziury bez znieczulenia. Jak świętować, to z rozmachem :-)

Osoby śledzące mój projekt znają moją sytuację bytową oraz to, jak dużo czasu musiałem poświęcić na zmagania z różnymi życiowymi przeszkodami, jak własnoręczny remont mieszkania czy samochodu. Nie wspominając o mniejszych problemach. Nie mam już siły się żalić, zaczynam chyba powoli wchodzić w okres obojętności, że jest mi wszystko jedno i biorę to, co los mi przynosi. Jednak nie jest to łatwe.

Swoją misję udowodnienia jednokierunkowości funkcji VMPC przypłacam całkowitym zaniedbaniem "normalnej" części swojego życia - emocjonalnej i materialnej.

Osoby, które wsparły mój projekt na zrzutce w 2015 roku mogą pamiętać, że moim pierwotnym planem było ukończenie pracy w rok. Niestety, okazało się, że był to jednak niemożliwy do spełnienia cel, że napisanie pracy naukowej na podstawie około 1700 stron brudnopisu wymaga trochę więcej czasu. Za kwotę zebraną na rok pracy pracowałem 4 lata.

Z przymusu oraz z okazji jubileuszu odkrycia funkcji założyłem wczoraj drugą zrzutkę. Zatytułowaną "Buntownik z wyboru", dzięki której bardzo chciałbym pod koniec mojej pracy poczuć choć trochę ulgi.

Nowa zrzutka jest dodatkowo manifestem mojego marzenia, aby w przyszłości założyć fundację wspierającą osoby, które obrały podobną drogę do mojej. Indywidualistów, którzy nie odnajdują się w standardowych strukturach systemu akademickiego, ale jednocześnie odkrywają lub tworzą nowe wartościowe elementy dorobku naukowego lub kulturowego ludzkości.



www.zrzutka.pl/vmpc

Matematyk Srinivasa Ramanujan, żyjący w latach 1887-1920 w Indiach był naturalnym geniuszem, który bez formalnego wykształcenia zajmował się matematyką wyższą. W wieku 20 lat odciął się od systemu akademickiego i żyjąc w ekstremalnej biedzie, kontynuował swoje badania niezależnie. 6 lat później został odkryty przez profesora Hardy'ego z Uniwersytetu Cambridge. Razem stworzyli wiele wspaniałych teorii matematycznych. Niestety, Ramanujan zmarł w wieku 32 lat na gruźlicę. Przez całe życie miał kłopoty ze zdrowiem, częściowo będące skutkiem niedożywienia, wynikającego z biedy. Prof. Hardy powiedział, że największym matematycznym osiągnięciem jego życia było... odkrycie Ramanujana.

Grigori Perelman, który rozwiązał inny Problem Milenijny - udowodnił hipotezę Poincare'go - całkowicie odciął się od środowiska akademickiego i to mimo że z takim osiągnięciem każde drzwi stałyby przed nim otworem. Nie przyjął nawet nagrody instytutu Claya ani uważanego za matematycznego Nobla Medalu Fieldsa. Mimo bycia tak radykalnym buntownikiem, rozwiązał problem, z którym żaden matematyk na świecie nie poradził sobie przez dziesiątki lat.

Ludzi tego pokroju, tak utalentowanych i tak zbuntowanych, nie ma zapewne wielu na świecie, ale jak wspaniale by było móc ich odnaleźć i - całkowicie szanując ich buntownicze wybory - zaoferować im poprawę warunków pracy, ale nie oczekując niczego bezpośrednio w zamian. W długoterminowym rozrachunku największy pożytek z ich dorobku i tak ma cywilizacja. My wszyscy. I nasi potomkowie.

Swoją pracę ukończę bez względu na wynik tej zrzutki. Nawet jeśli nie zbiorę ani złotówki i tak doprowadzę swoją pracę do końca. Wynik zrzutki określi jedynie to, w jakich warunkach będę pracę kończył oraz to, jak szybko będę w stanie stworzyć taką fundację.

Byłbym także bardzo wdzięczny wszystkim, którzy mają możliwość przekazania wiadomości o tej zrzutce gdzieś dalej. Przy pomocy swojej lub zaprzyjaźnionej strony internetowej, Facebooka, na słynnym Wykopie lub innym portalu rozsiewającym pomysły.

Taka pomoc jest może jeszcze bardziej cenna niż sama wpłata. Z góry ogromnie dziękuję wszystkim za każde działanie w tym kierunku.

www.zrzutka.pl/vmpc

Mam nadzieję, że nikt po mnie, kto dokona jakiegoś znaczącego odkrycia lub będzie posiadał jakiś szczególny talent, ale będzie podążającym własną drogą indywidualistą, poza standardowymi schematami, nie będzie musiał wykazywać się taką psychopatyczną determinacją, nie będzie musiał poświęcić tak bardzo swojego normalnego życia, jak ja. Nie będzie musiał czuć, że ten niby dar był bardziej przekleństwem i że wolałby urodzić się zwykłym, po prostu szczęśliwym i żyjącym normalnie człowiekiem.

Wczoraj zamieściłem na blogu wpis dotyczący wyprowadzenia i znaczenia wspomnianego powyżej jubileuszowego wzoru. Zapraszam wszystkich do lektury poniżej.




20.12.2018. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#201218

Dobra passa etapu "funkcja malejąca" trwa. Etap ten zapowiadał się na pracochłonny oraz obarczony stosunkowo wysokim ryzykiem przedłużenia się w czasie.

Z tym większą nieśmiałością wyprowadziłem właśnie... finalny wzór tego etapu! Pracę ułatwiły efekty poprzedniego etapu, czyli rozkładu prawdopodobieństwa. Przynajmniej wysiłek włożony w mozolne wyprowadzenie tego rozkładu na 11 stron przyniósł jakieś dodatkowe korzyści ponad to, co pierwotnie zakładałem, że jest to tylko element obowiązkowy, który w pracy musi się znaleźć, aby była ona kompletna.

Wzór wyprowadza się z dość skomplikowanych własności funkcji VMPC oraz z powiązanych z nimi elementów wspomnianego rozkładu prawdopodobieństwa. Można było się spodziewać, że wzór będący taką kompilacją będzie bardziej złożony od (względnie skomplikowanego) wzoru na ów rozkład prawdopodobieństwa. I tak to szło, dopóki wszystko się pięknie nie poupraszczało i nie dało takiego finalnego wyniku:

Wzór jest bardzo prosty, co mnie ogromnie ucieszyło. Zgaduję tylko (a w tym zgadnięciu mogę się całkowicie mylić), że Albert Einstein, gdy wyprowadził swoje słynne, ale mające bardzo prostą formę równanie E=mc2, mógł odczuć podobną radość, że z bardzo skomplikowanych obliczeń wyszedł mu pięknie prosty wynik.

Jak powiedział Leonardo da Vinci, prostota jest szczytem wyrafinowania (simplicity is the ultimate sophistication). Przy okazji, pozdrowienia dla osoby, od której znam ten cytat :-)

Co oznacza ten prosty wzór? Nieco metaforycznie można powiedzieć, że fakt, iż dla dowolnej stałej wartości G wzór ten opisuje funkcję malejącą zmiennej N, stanowi najgłębszy pokład istoty jednokierunkowości funkcji VMPC. Innymi słowy, jeśli na powierzchni jest definicja funkcji, to na samym dnie tajemnicy jej jednokierunkowości leży ten właśnie wzór.

Wzór ten będzie stanowił główny element finalnego wzoru całej pracy, czyli niewielomianowego wzoru na prawdopodobieństwo odwrócenia funkcji VMPC. Ten finalny wzór nie będzie już tak pięknie prosty, ale mimo to będzie zbudowany właśnie z tej prostej "cegiełki", tylko powtórzonej odpowiednią ilość razy i za każdym razem nieco "oszlifowanej". Pozostałe 72 (na razie) strony pracy potrzebne są po to, aby uzasadnić, dlaczego tak jest.

Podtrzymuję to, co już kiedyś tu na blogu zapisałem, że po ukończeniu pracy możliwe będzie napisanie wiersza, który bez użycia żadnych terminów matematycznych odda istotę oraz główne założenia koncepcyjne dowodu jednokierunkowości funkcji VMPC. Takie artystyczne ukoronowanie matematycznej pracy. Czuję, że jest to merytorycznie osiągalne. Sam wierszy nie potrafię pisać, dlatego potrzebowałbym poety-ochotnika do współpracy.




27.11.2018. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#271118

Ostatni miesiąc minął niepostrzeżenie. Z jednej strony czułem ogromne wyczerpanie po intensywnej pracy nad rozkładem prawdopodobieństwa. Czułem, że powinienem odpocząć i zregenerować siły. Z drugiej strony czułem pociąg do kolejnego etapu pracy, "funkcji malejącej".

Jest to wbrew pozorom dość poważny dylemat decyzyjny. Przykładowo, jeśli rozwiązanie problemu zajmuje wypoczętemu umysłowi 1 dzień, a umysł jest zmęczony i wypoczęcie zajęłoby 2 dni, to rozwiązanie problemu zajmie łącznie 3 dni (2 dni odpoczynku, 1 dzień pracy). A jeśli rozwiązanie tego samego problemu przez wymęczony umysł zajęłoby 4 dni, to wariant z 2 dniami odpoczynku pozwala zaoszczędzić 1 dzień.

I tak powinienem był zrobić, odpocząć... Choć czy na pewno? Bo na pewno tak nie zrobiłem. Pokusa zajęcia się kolejnym etapem była zbyt silna. Jednocześnie umysł był mocno wyeksploatowany poprzednim etapem.

Efekt tej mieszanki jest co najmniej zaskakujący...

Z jednej strony ograniczałem aktywność intelektualną, aby choć trochę pozwolić umysłowi się zregenerować. Z drugiej strony każdego dnia pozwalałem mu generować luźne wstępne pomysły i wnioski dotyczące kolejnego etapu pracy. Każdy z nich zapisywałem - nietypowo - na małych fiszkach.

Po zapisaniu niemal całego biurka fiszek okazało się, że to, co w nich zapisałem, układa się w zaskakująco spójną i celną całość. Do tego stopnia, że na pewnym bardzo bardzo optymistycznym poziomie interpretacji mogę powiedzieć, że już wykonałem - roboczo - niemal cały kolejny etap pracy! To bardzo zaskakująca i ekscytująca sytuacja. Oczywiście nie jest to w żadnym razie oficjalne zakończenie tego etapu, ba, oficjalnie etap ten nie został nawet jeszcze rozpoczęty! Ale wygląda na to, że etap ten uda się zrealizować dużo sprawniej niż pierwotnie sądziłem!

Na domiar dobrego, pojawił się kolejny dość fascynujący element, który w piękny sposób spina obecny etap z etapem... pierwszym. Czyli "wielkim" wzorem na pewne prawdopodobieństwo, który wyprowadzałem w 2015 roku i którego finalną postać opisywałem tu na blogu 19.02.2015. Okazuje się, że efektem ubocznym obecnego etapu, "funkcji malejącej", jest alternatywny sposób dojścia do tamtego wzoru z 2015 roku... Od całkiem innej strony. Ekscytujące jest, gdy osiągamy ten sam wynik podchodząc do problemu od całkiem różnych stron.

Uściślę, że póki co widzę dopiero sposób, w jaki z obecnego etapu można tamten wzór alternatywnym sposobem wyprowadzić. Ale czy warto to wyprowadzenie wykonywać - oto jest pytanie! Wyprowadzenie jest dość skomplikowane i mozolne. Mogłoby się okazać jeszcze bardziej pracochłonne niż wyprowadzenie ostatniego rozkładu. Zająć mogłoby nawet miesiąc czasu albo więcej. I ostatnie kilka dni poświęciłem na rozwiązanie problemu decyzyjnego, czy wyprowadzać ten wzór alternatywnym sposobem, czy też nie.

Z jednej strony byłaby to kolejna cegiełka, opisująca własności funkcji VMPC. Byłby to element dodatkowy, mogący mieć zastosowanie w praktycznych zastosowaniach funkcji, ale który nie ma bezpośredniego związku i nie zwiększa wartości samego dowodu jednokierunkowości funkcji VMPC.

Gdybym miał zespół asystentów, bez zastanowienia zleciłbym jednemu z nich wykonanie tego wyprowadzenia. Jednak w mojej sytuacji, gdy takowych asystentów nie posiadam, muszę rozsądnie gospodarować własnym czasem i własną energią intelektualną i podjąłem decyzję, że nie będę tego dodatkowego wyprowadzenia przeprowadzał. W oficjalnej pracy opiszę jedynie ogólną strategię przeprowadzenia tego wyprowadzenia (na wypadek gdyby jakiś naukowiec po mnie chciał się tym problemem zająć), a sam skupię się teraz na głównym torze dowodu.

Uzupełniając wpis z poprzedniego miesiąca, zacytuję - już z oficjalnej wersji pracy - szereg podstawowych własności funkcji VMPC.

Jednakże funkcja VMPC to wciąż po prostu f(f(f(x))+1) i taką jej postać darzę największym sentymentem. Postać ta spełnia wszystkie powyższe lematy i pokazuje najszybciej, najgenialniej sens funkcji VMPC. Choć w pracy musiałem ją uogólnić do takiej, mało przystępnej oficjalnej postaci:

to wciąż wzór f(f(f(x))+1), choć formalnie jest tylko szczególnym przypadkiem funkcji VMPC, to jest tym pierwszym, tym najprostszym, tym wyjątkowym. Tym bliskim mojemu sercu, bo od niego zaczęła sią cała moja, trwająca łącznie już niemal 20 lat, przygoda ze przeprowadzeniem dowodu jednokierunkowości funkcji VMPC.




27.10.2018. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#271018

Dziękuję wszystkim za przesłane słowa wsparcia. Było ich więcej niż się spodziewałem, co mnie bardzo ucieszyło. Choć, niestety, w ogólnej perspektywie, moje samopoczucie pozostaje kiepskie. Wiadomości podnoszą mnie na duchu, ale efekt utrzymuje się tylko przez krótki czas, niestety. Potem wraca "szara rzeczywistość". Mam nadzieję, że nie wpadnę w żadną poważną depresję przed ukończeniem pracy.

Tymczasem coś z pozytywnego frontu - otrzymałem propozycję nakręcenia filmu dokumentalnego o mojej skromnej osobie i moim projekcie. Zaskoczyło mnie to, bo chyba za wcześnie na takie pomysły, ale i ucieszyło jednocześnie. Nie była to propozycja dużego kalibru. Odmówiłem jednak, gdyż uznałem, że udział w takim filmie na obecnym etapie mojego projektu za bardzo by mnie zdekoncentrował i odciągnął od pracy. Może w przyszłości, jeśli podobna propozycja się pojawi.

W ramach sentymentalnego sięgnięcia do historii projektu postanowiłem wreszcie zebrać w jednym miejscu wszystkie notatki na brudno dokumentujące moje badania nad funkcją VMPC, począwszy od jej odkrycia w 1998 roku. Po skompletowaniu okazało się, że całość to jedynie słoik notatek. Wysokość stosu ma 17 cm (na zdjęciu wygląda na 18 cm ze względu na zjawisko paralaksy).

Odświeżyłem także treść strony głównej poświęconej funkcji:
www.pieknafunkcja.pl

oraz podstronę z formalną definicją funkcji VMPC i problemu jej odwracania, gdzie pojawiła się już oficjalna definicja funkcji, użyta na czysto w pracy:
www.pieknafunkcja.pl/definicja.php

Przy okazji skomponowałem też okolicznościowe logo funkcji VMPC:

Tymczasem merytoryczne ostatni miesiąc upłynął mi na dopracowywaniu wyprowadzonego rozkładu prawdopodobieństwa, o którym mowa była w poprzednim wpisie. Niestety, twórcze przegryzienie się przez takiej postaci "literaturę piękną":

okazało się, oczywiście, procesem mozolnym, szczególnie w połączeniu z moim perfekcjonizmem, gdzie nie potrafiłem zaakceptować postaci takiej, która była tylko poprawna, ale nie była najbardziej (w mojej ocenie) elegancka. Bywało tak, że optymalizowanie jednego przypadku (cały rozkład ma 16 przypadków, a powyższa strona to przykład postaci jednego takiego przypadku) zajmowało mi cały dzień. Ale przebrnąłem przez to.

Dodatkowo był to czas na formalne uporządkowanie kilku elementarnych faktów dotyczących funkcji VMPC. Faktów, których używałem w całej pracy, ale które kiedyś musiały zostać zapisane formalnie i udowodnione. I ponownie udowodnienie każdego faktu (lematu) zajęło sporo czasu, bo choć same lematy są dla mnie oczywiste (zapisywałem je najpierw z wyobraźni, a dopiero później udowadniałem formalnie), to znalezienie zadowalająco eleganckiego sposobu na zapisanie dowodu każdego z nich zajęło trochę czasu. Oczywiście jest to kwestia subiektywna, gdyż ktoś inny może powiedzieć, że wybrany przeze mnie styl zapisu wg niego nie jest elegancki. I, oczywiście, szanuję to. Tu przykład postaci jednego z takich elementarnie prostych dowodów:

Obecnie pracuję nad zapisaniem zwięzłego komentarza do drugiego rozkładu dotyczącego funkcji VMPC:

który nie dotyczy funkcji ogólnie, a dotyczy pewnej szczególnej sytuacji, która "wygładza" pewne zjawiska statystyczne występujące w rozkładzie ogólnym. Powyższego rozkładu na szczęście nie muszę wyprowadzać, gdyż nie dotyczy on dowodu jednokierunkowości, a stanowi jedynie praktyczną wskazówkę, która może być pomocna przy ewentualnych zastosowaniach funkcji VMPC w kryptografii.

Jednym z przykładowych (z ostatnich dni) pytań dotyczących tego rozkładu, na które chciałem znaleźć odpowiedź, było... I tu uwaga :-) Będą dwie wersje, jedna w języku popularnym, a druga w języku matematycznym. Osobiście wolę tę popularną, ponieważ jest krótsza i ambitniejsza (wymaga więcej myślenia, aby ją zrozumieć).

Wersja popularna (ambitna): Ile jest tych na tym, które dla takich tych, że ten, dają tego?

Wersja matematyczna (prosta): Ile jest permutacji σ na zbiorze o parzystej liczności, które dla permutacji δσ składającej się z dokładnie jednego cyklu, dają taką samą postać permutacji σδσ?

Odpowiedź brzmi: N/2.

Potem wyznaczyłem ogólną postać wszystkich tych (N/2) permutacji, ale uznałem, że to jest wystarczający stopień zagłębienia w ten poboczny temat. Oczywiście będę musiał jeszcze zapisać to na czysto, ale to nie powinno być zbyt czasochłonne.

Zanim przejdę definitywnie do dwóch finalnych etapów, czyli "funkcja malejąca" i "36", muszę uzyskać poczucie, że wszystkie elementy, włącznie z powyżej wspomnianymi pobocznymi, dotyczące rozkładów prawdopodobieństwa, są zapisane na czysto i nie wymagają już żadnej istotnej korekty.




25.09.2018. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#250918

Summa summarum jestem wdzięczny wrocławskiej policji za zabranie mi dowodu rejestracyjnego do mojego starego auta, bo to mnie zmobilizowało do usunięcia wszystkich usterek, pomalowania auta, odzyskania dowodu rejestracyjnego i dzięki temu teraz nie muszę przez jakiś czas myśleć o usterkach, które muszę usunąć w swoim aucie. Efektem tego jest dość owocny ostatni okres badań nad funkcją, który zaowocował wreszcie ukończeniem wyprowadzania rozkładu prawdopodobieństwa wartości funkcji VMPC na czysto. Czyli zamiana brudnopisu, o którym była mowa w poprzednich wpisach, na czysto. Zła wiadomość jest taka, że sądziłem, że skoro brudnopis ma około 10 stron, to na czysto, używając minimalnej ilości komentarzy słownych, a wykorzystując tylko formalizmy matematyczne, uda się to zapisać na znacznie mniejszej ilości stron. Nic z tego. Zapis wyprowadzenia poniższego rozkładu prawdopodobieństwa:

zajął na czysto, oficjalnie w pracy, 11 stron... Oto one. To pierwszy moment, kiedy publikuję jakiekolwiek (na razie dość nieczytelne) fragmenty z oficjalnej pracy na czysto:

Jest to najmniej innowacyjny element pracy - zwykła warsztatowa robota, którą mógłby wykonać każdy, nawet bez wykształcenia matematycznego, mając tylko odrobinę wytrwałości i czasu oraz tylko elementarną zdolność logicznego rozumowania.

Przy tej okazji chciałbym po raz pierwszy podzielić się w szczegółach (tzn. czytelnie) jakimiś miniaturowymi elementami pracy (która obecnie ma na czysto równo 70 stron). Oto 3 bardzo elementarne zadania, które faktycznie musiałem rozwiązać po drodze do wyprowadzenia powyższego rozkładu:

Do ich rozwiązania nie trzeba żadnej zaawansowanej wiedzy matematycznej, wystarczy znajomość pojęcia silnia (N! = 1*2*3*...*N) i chwila cierpliwości. Poziom trudności tych zadań określam na 0 (zero), czyli gdyby pojawiły się na kolokwium/egzaminie/sprawdzianie, to za ich poprawne rozwiązanie należałoby się 0 punktów :-) Jednakże te 3 proste zadania stanowiły autentyczny element mojej oficjalnej pracy. Były finalnym krokiem kombinatorycznej analizy niezbędnej do wyprowadzenia powyższego rozkładu prawdopodobieństwa. I choć rozwiązanie tych zadań stanowiło może 0,0001% czasu, jaki musiałem poświęcić na wyprowadzenie powyższego rozkładu (pozostałą część czasu zajęła kombinatoryczna analiza, że to właśnie te zadania, a nie inne, na koniec należy rozwiązać), to prawdą pozostaje, że były to autentyczne zadania, które faktycznie musiałem rozwiązać i których rozwiązanie stanowi faktyczny oficjalny element pracy.

Innymi słowy, nie publikuję tych zadań jako wyzwania matematyczne (dla matematyków będą to zadania trywialne, stąd 0 punktów za ich rozwiązanie), ale chodzi w nich o coś innego, coś bardziej miękkiego. Mianowicie te osoby, które rozwiążą wszystkie 3 zadania, to choć otrzymają 0 punktów, będą mogły się poczuć jakby w jakimś minimalnym stopniu udowadniały razem ze mną jednokierunkowość funkcji VMPC. Bo, jak już wspomniałem, sam musiałem w pracy na czysto te dokładnie zadania rozwiązać. Zadania są na tyle przystępne (wymagają tylko kilku prostych przekształceń lewej strony równania, aby otrzymać prawą stronę równania), że nawet osoby, które myślą, że nie lubią matematyki, powinny sobie, przy odrobinie wytrwałości i czasu, poradzić. Jedno jest pewne, drogi czytelniku - im bardziej nie lubisz albo boisz się matematyki, tym większą będziesz miał/miała satysfakcję z samodzielnego rozwiązania powyższych zadań :-)

Ważna wskazówka dla wszystkich mało zaprzyjaźnionych z matematyką. Jedna z bardzo ważnych zasad pomocnych przy rozwiązywaniu matematycznych (ale i zapewne z innych dziedzin także) problemów:

JEŚLI NIE WIESZ, CO ZROBIĆ, ZRÓB COKOLWIEK.

Choć pozornie może brzmieć bezsensownie, jest to wg mnie genialna i zaskakująco skuteczna zasada. Wymaga dość głębokiego i dłuższego zastanowienia, aby odkryć jej sens. Jeśli ktoś po krótkiej chwili zastanowienia uważa ją za bezsensowną, to znaczy, że najprawdopodobniej za krótko się nad nią zastanawiał. Wskazówka - ewolucja, czyli zjawisko przyrody, dzięki któremu istniejemy, opiera się na tej właśnie zasadzie...

W praktyce tutaj oznacza ona ni mniej nie więcej, tylko jeśli nie widzisz od razu rozwiązania powyższych zadań, zacznij robić z lewą stroną równania cokolwiek. Zapisz lewą stronę równania na inne sposoby, losowe (oczywiście prawidłowe), ale nie przejmuj się wcale, czy zastosowane przekształcenie ma jakikolwiek sens, czy zbliża Cię, czy oddala od celu. Po prostu zapisuj lewą stronę równania na przeróżne sposoby (czyli rób cokolwiek), a będziesz zdziwiony, jak szybko trafisz na rozwiązanie i uzyskasz to, co jest po prawej stronie równania!

Jestem ogromnie ucieszony faktem, że skończyłem wreszcie wyprowadzenie tego rozkładu. Był to właśnie ten mozolny etap, taka matematyczna "praca fizyczna", którą równie dobrze za mnie mógłby zrobić ktoś inny. Nie wymagała żadnej kreatywności, a jedynie warsztatowej staranności, cierpliwości i określonej ilości czasu. Zadanie to jest dobrym przykładem na moje wcześniejsze powiedzenie, że matematyk różni się od sprzątaczki tylko tym, że pracuje na siedząco. Wyprowadzenie powyższego rozkładu to nic innego jak uporządkowanie dość sporej ilości wzajemnie powiązanych faktów. Sprzątaczka, która miałaby za zadanie ułożenie na regałach porozrzucanych na podłodze książek wg określonych reguł, miałaby mniej więcej podobne zadanie. Ilość tych reguł oraz stopień ich wzajemnego powiązania determinuje trudność zadania. Tutaj tych powiązań trochę było, dlatego też rozwiązanie zajęło aż 11 stron A4... Ale mimo wszystko koncepcyjnie czy od strony stopnia twórczości była to praca fizyczna. Przyznaję sobie za jej wykonanie 0 (zero) punktów. Ważne jednak jest to, że praca ta jest już wykonana.

I teraz wreszcie mogę zająć się dwoma najciekawszymi, znacznie trudniejszymi i bardziej kreatywnymi, elementami pracy. Elementy te, to, hasłowo rzecz biorąc, "funkcja malejąca" oraz "36", czyli zapisanie na czysto wyników badań z roku 2017, "słynnej" kartki brudnopisu z numerem [3](36).

W najbardziej optymistycznym wariancie (nierealistycznie optymistycznym) każdy z tych etapów może mi zająć jeden-dwa dni. W realnie-optymistycznym scenariuszu uda mi się skończyć te dwa etapy do końca roku.

W obecnej chwili te dwa etapy, czyli "funkcja malejąca" oraz "36" są dwoma ostatnimi ważnymi brakującymi elementami w pracy. Po ich ukończeniu zostanie mi tylko kilka drobniejszych (deserowych i nietrudnych) elementów. Potem finalne szlifowanie pracy - główne redakcyjne - i praca będzie gotowa do publikacji. Podtrzymuję, że do 12 stycznia 2019 (moich 40 urodzin) osiągnięcie tego etapu jest realne.

Wszystkich, którzy kibicują mojemu projektowi, zachęcam do kontaktu przy pomocy poniższego formularza. Muszę przyznać, że od strony psychicznej jestem dość mocno na skraju wyczerpania, a wszystkie głosy jakiegokolwiek poparcia, nieważne od kogo, czy od profesora matematyki, czy od sprzątaczki, każde dodają mi energii. Z góry dziękuję.




07.09.2018. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#070918

W ramach regeneracji sił przed zapisaniem wyprowadzenia rozkładu prawdopodobieństwa na czysto postanowiłem odwiedzić wrocławską wystawę aut klasycznych "Moto Classic". Jak na ironię, w drodze na wystawę zatrzymała mnie policja do rutynowej kontroli. Jeżdżę bezpiecznie, więc uwagę szanownych policjantów przykuć musiał wygląd (stary i brzydki) mojego auta. W swojej wnikliwości panowie policjanci postanowili zatrzymać mi dowód rejestracyjny za kilka drobnych usterek (brak 2 żarówek - pozycyjnej i oświetlenia tablicy rejestracyjnej - i źle wyregulowany hamulec ręczny). Na nic zdały się moje zapewnienia, że usterki te potrafię usunąć samodzielnie i że wkrótce to zrobię. Rozmowa skończyła się tak:

Ten incydent niestety popsuł mi plany i relaksu, i dalszej pracy i postanowiłem zmniejszyć ryzyko powtórzenia się takiej sytuacji poprzez zmniejszenie stopnia przyciągania wzroku opłakanym stanem lakieru w mojej poczciwej Toyocie. Mimo że auto mam utrzymane we wzorowym stanie technicznym (w tym nowe hamulce, sztywne przewody hamulcowe wymienione na miedziane, dobre amortyzatory, brak luzów i prawidłowa geometria zawieszenia, itd.), to jednak zmatowiały i popękany lakier, jak widać, przyciąga uwagę policjantów szukających łatwej zdobyczy. A jak ktoś będzie chciał, to w 28-letnim aucie zawsze znajdzie coś, do czego można się przyczepić.

W efekcie przez ostatnie 2 tygodnie zamiast zajmować się funkcją, zajmowałem się tym:

oczywiście z powodów finansowych nie wchodziło w grę profesjonalne lakierowanie, ale efekt jest dobry i z odległości 3 metrów nie widać, że jest to domowa robota.

Dopiero teraz wracam do pracy i kończenia zapisania wyprowadzenia rozkładu prawdopodobieństwa (tego z poprzedniego wpisu) na czysto, stopniowo odbudowuję koncentrację i wciągam się z powrotem w rytm pracy nad funkcją.

I zaczynam mieć dość tych wszystkich przeciwności losu - w ostatnich miesiącach miałem awarię pralki, musiałem się przeprowadzić do mieszkania, które musiałem własnoręcznie wyremontować, a teraz musiałem własnoręcznie malować samochód.

Najśmieszniejsze jest to (jestem już w takim stanie, że autentycznie śmieję się z tego), że dokonałem bardzo ważnego odkrycia naukowego (odkryłem w 1998 roku pierwszą na świecie funkcję jednokierunkową, VMPC), funkcja ta została opublikowana w roku 2004 na jednej z najbardziej prestiżowych ogólnoświatowych konferencji naukowych z dziedziny kryptografii (FSE 2004), na którą wyjazd sfinansowała mi Kancelaria Prezydenta RP oraz Prezydent Wrocławia (więc obaj szanowni panowie prezydenci musieli uznać to wydarzenie za istotne). Własności tej funkcji (jej jednokierunkowość) pozwalają rozwiązać słynny problem matematyczny "czy P=NP", który jest uznawany za jeden z największych nierozwiązanych problemów matematycznych na świecie. Jestem na ostatniej prostej finalizowania pracy, która - jeśli okaże się prawidłowa - rozwiąże ten słynny problem stwierdzeniem, że P≠NP.

Jednakże na kilka miesięcy przed ukończeniem tej pracy muszę własnoręcznie malować samochód wałkiem i własnoręczne remontować kuchnię. Wszystko dlatego, że skoro odkryłem funkcję sam, to chciałem doprowadzić badania nad nią do końca też samodzielnie.

Tylko dzięki pomocy garstki osób dobrej woli i rodziny mogę jakimś ostatnim tchem i na granicy biedy kontynuować te badania.

Śmiać mi się chce na myśl, co będą pisać zagraniczne media na temat tego, w jakich warunkach pracowałem i jakie wsparcie otrzymałem. Autentycznie mnie to śmieszy i mam nadzieję, że spotka mnie jeszcze więcej podobnie kolorowych nieszczęść.




14.08.2018. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#140818

Po wyprowadzeniu od nowa tej (drugiej) części rozkładu, o której była mowa w poprzednim wpisie, do ukończenia całego etapu pozostała mi jeszcze jedna część, trzecia, najtrudniejsza. Nie byłem pewien, czy zajmę się nią od razu, czy najpierw opiszę na czysto tamte dwie prostsze. Zabrałem się jednak za trzecią część i dzisiaj po kilku dniach - mówiąc po ludzku: mozolnego porządkowania stosu pozornie chaotycznie porozrzucanych cyferek, a mówiąc matematycznie: poszukiwania odpowiedzi na pytanie:

udało mi się tę odpowiedź znaleźć, zapisawszy kolejne 4 strony brudnopisu (te w dolnym rzędzie), po czym cała odpowiedź na powyższe pytanie zajęła mi 8 stron:

i wygląda tak niepozornie prosto:

Teraz pozostało zamienić te bazgroły na język formalny, czyli zapisać na czysto w pracy. To zajmie kilka dni, ale dopiero po tym, jak trochę zregeneruję siły.

Było to właśnie zadanie tego typu, o którym pisałem wcześniej, proste, warsztatowe, niewymagające kreatywności, ani dużej inteligencji, ale mozolne - była w nim duża ilość wzajemnie powiązanych faktów, które trzeba było ustrukturyzować i zsyntezować wzorami. Każdy, kto miałby trochę cierpliwości i zacięcia, mógłby to zrobić. I żałuję, że muszę poświęcać sporo czasu na takie mozolne przegryzania się przez proste zadania, które jednak mimo prostoty intelektualnej, wymagają sporą ilość pracy.

Wg obecnego planu, oprócz kilku pobocznych mniejszych zadań, przede mną są już tylko dwa trudniejsze i bardziej twórcze zagadnienia, a do nich znacznie bardziej mnie ciągnie. Oba są w dużej mierze rozwiązane i pozostało uporządkować wyniki oraz zapisać na czysto. To są duże zadania (nad roboczym rozwiązaniem jednego z nich pracowałem cały rok 2017), więc ich finalizowanie zajmie więcej niż kilka dni, ale liczę, że do końca roku praca będzie gotowa do publikacji.




06.08.2018. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#060818

To trzeci wpis w ciągu ostatnich 5 dni. Najlepsza rada na kryzys energii to zagryźć zęby i pracować bez energii. A energię czerpać z wykonywanej bez energii pracy... I tak w ciągu weekendu zabrałem się za analizę tej szczególnej sytuacji, która zagnieździła się w poprzedniej analizie rozkładu prawdopodobieństwa. Niestety zagnieździła się tak głęboko, że musiałem całą analizę wykonać od nowa. Tak wyglądają efekty. Poniższe dwie nowe kartki zastępują prawą kartkę z wpisu z 02.08.2018:

Pozostaje tylko przenieść ten kompletnie nieuporządkowany zapis brudnopisu do formalnej postaci na czysto w pracy.

Przy tej okazji chciałby zwrócić się do matematycznej części czytelników o opinię.

Mianowicie, co szanowni czytelnicy sądzicie o następującym skrótowym zapisie:

Czy gdzieś stosuje się może taki zapis?

Zanim powiecie, że to mizerna oszczędność, proszę policzyć, że zapis w górnym wierszu posiada 17 osobnych znaków. Tymczasem zapis dolny wymaga tylko 11 znaków, czyli o 35% mniej. Zajmuje też o 30% mniej miejsca (górny ma szerokość 151 pikseli, a dolny 105).

Zapis taki powstał mi samorzutnie w notatkach. W ostatnim czasie zapisałem kilka stron przekształceń złożeń funkcji, gdzie około połowa z nich to funkcje odwrotne (czyli "do potęgi -1"). Dodatkowo ciągłe zapisywanie nawiasów wkoło x przy f(x) także zaczęło stawać się uciążliwe. I powyższy zapis zacząłem stosować samoczynnie, jako ulga w tej niedoli. I powiem szczerze, że nie tylko szybkość pracy, ale i przyjemność mi wzrosła. Ręka nie hamowała już umysłu i bardziej można było skupić się na zapisywanej treści, a mniej na przepisywaniu jedynek i nawiasów.

Oto przykład zastosowania - żywcem wzięty z mojego brudnopisu:

Czy szanowni czytelnicy zwróciliby mi uwagę na ewentualne nieścisłości powyższego skrótowego zapisu?

Na obronę:

Złożenie funkcji: dopuszcza się zapis złożenia funkcji (np. F,G,H) w formie skrótowej: FGH. Nieformalnie mówiąc, interpretacja tego zapisu jest taka - bierzemy wartość funkcji H i przepuszczamy ją przez funkcję G, a następnie uzyskany wynik przepuszczamy przez funkcję F.

Jeśli dodalibyśmy do tego zapisu zmienną x bez nawiasu: FGHx to zapis taki współgrałby z powyższą interpretacją: bierzemy wartość x, przepuszczamy ją przez funkcję H, a następnie uzyskany wynik przepuszczamy przez funkcję G i tak dalej. Oczywiście z kontekstu musi jasno wynikać, co jest funkcją (F,G,H), a co zmienną (x).

Idąc dalej - zamiast F(x) moglibyśmy pisać Fx. I znowu - jeśli z kontekstu wynika jasno, że F to funkcja, a x to zmienna, to nawiasy wkoło x w zapisie F(x) nie spełniają żadnej funkcji uściślającej, są więc zbędne, przy założeniu powyższej interpretacji zapisu Fx: bierzemy wartość x i przepuszczamy ją przez funkcję F... Czyli dokładnie to samo, co oznacza F(x).

Funkcja odwrotna: zapis liczby ujemnej -X oznacza (-1)X. Czyli w zapisie -X zamiast liczby -1 piszemy sam znak minus: -. Dlaczego tego samego skrótu nie użyć do zapisu funkcji odwrotnej, czyli F -1, i zapisać krócej F -

Oczywiście wiem, że mamy standardowy zapis, więc należy się go trzymać. Mimo to dyskusja mnie frapuje, choćby dla intelektualnej przyjemności: czy zaproponowany zapis jest precyzyjny? Albo w jakich okolicznościach byłby nieprecyzyjny?

Zapraszam gorąco do podzielenia się swoją opinią!




03.08.2018. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#030818

To nietypowo drugi wpis w ciągu ostatnich 2 dni (poprzedni zamieściłem wczoraj). Mam chyba lokalny kryzys energii. Jestem w trakcie opisywania owego wspomnianego poniżej rozkładu prawdopodobieństwa i okazuje się, że istnieje w nim pewna "zakamuflowana" szczególna sytuacja, która komplikuje go jeszcze bardziej. Najbardziej "złośliwe" jest to, że nieuwzględnienie tej sytuacji daje poprawny wynik, lecz tak zostać, oczywiście, nie może.

Dla uspokojenia - jest to element czysto warsztatowy i nie ma żadnego wpływu na jednokierunkowość funkcji, tak naprawdę ktoś mógłby go opisać za mnie. Ale dla porządku opisany musi być (w pełni poprawnie). I to są elementy, które mi odbierają czasami energię. Takie warsztatowe komplikacje, które nie dotyczą głównego nurtu rozumowania, a więc są dla mnie nieciekawe, nieambitne, ale są uciążliwe, bo wymagają mozolnej pracy, aby je uporządkować. Coś może jak na budowie - fajnie jest projektować dom, ale ktoś musi też wykonać ciężką pracę kładzenia cegieł jedna po drugiej. I taką "matematyczną fizyczną pracę" muszę, niestety, też wykonywać sam. Nie jest to trudne i oczywiście poradzę sobie z tym, ale problem w tym, że to zajmuje czas i energię. A energii mam coraz mniej. I żałuję, gdy muszę ją poświęcać na takie problemy warsztatowe. To się trochę wyżaliłem.

Dla lepszej ilustracji mojej frustracji w tej sytuacji (ale piękne rymy!) dodam, że okazało się, że do analizy tego rozkładu należy dodać pewną szczególną sytuację, która wg wstępnych ustaleń powstaje wtedy, kiedy złożenie pewnych dwóch permutacji zbioru {0,...,N-1} posiada cykl długości 2 i cykl ten zawiera pewną wartość. Oczywiście jest to tylko kwestia czasu, aby zrozumieć, dlaczego tak jest i opisać to, jest to zadanie merytorycznie bardzo proste, ale i tak trzeba na nie poświęcić energię, a żeby to zrobić, to trzeba tę energię mieć. Dziwnie widzę po sobie, że dużo więcej energii mam, gdy pracuję nad dużo bardziej skomplikowanymi elementami pracy. One mnie motywują samą swoją komplikacją, wyzwaniem. A takie proste warsztatowe problemy, a jak jeszcze są żmudne i obszerne (jak ten), odbierają mi energię. Ale nie da się od tego uciec i trzeba energię w sobie wymusić, przebrnąć przez to i przejść do łatwiejszych (czyli trudniejszych) elementów.

Półżartobliwie pozwolę sobie stwierdzić, że trudniejszy problem jest łatwiejszy. Poprzez fakt bycia trudniejszym wyzwala więcej motywacji, inspiracji i przez to więcej energii jednostkowej (przypadającej na jednostkę komplikacji problemu) i przez to staje się łatwiejszy do rozwiązania. Na przykład - problem o komplikacji 10 wyzwala u badacza 7 jednostek energii (7 / 10 = 0,7 energii jednostkowej), a problem o komplikacji 100 jest tak fascynujący i inspirujący, że wyzwala 120 jednostek energii (120 / 100 = 1,2 energii jednostkowej). 1,2 > 0,7, czyli problem trudniejszy jest łatwiejszy do rozwiązania.

I taka sytuacja właśnie ma miejsce w tym problemie opisu rozkładu prawdopodobieństwa. Jest to mało inspirujący, choć jednocześnie mozolny problem i wyzwala on u mnie za mało energii, aby go szybko rozwiązać. Jak wykrzesam tę energię z siebie na siłę, to rozwiążę go prawdopodobnie bardzo szybko. I teraz mam właśnie taką chwilę słabości energetycznej.

Oczywiście słabość ta minie, bo nie ma innego wyjścia. W najgorszym razie po prostu zmuszę się. Jednak znacznie przyjemniej, łatwiej i efektywniej się pracuje, gdy energia przychodzi sama, gdy nie trzeba się zmuszać. Jeśli komuś wpadają do głowy jakieś pozytywne słowa, które mogłyby mi tu pomóc, to bardzo poproszę...

Gwoli uspokojenia - nie ma możliwości, abym nie ukończył pracy. Jedynym pytaniem jest to, jak bardzo będę musiał jeszcze zagryzać zęby, ile łez wylać i jak bardzo się zmuszać. Ale praca i tak zostanie ukończona na 100%.




02.08.2018. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#020818

Dziękuję wiernym czytelnikom za troskę. Muszę przyznać, że każda otrzymana wiadomość, także anonimowa, ma dla mnie duże znaczenie motywujące i za każdą dziękuję. Obecnie powiedziałbym, że byłem (ale już nie jestem) w dołku (psychicznie i energetycznie, choć nie merytorycznie), ale to jest doskonała wiadomość, ponieważ to oznacza, że teraz może być już tylko lepiej! I wierzę, że od teraz do samego końca będzie już tylko coraz lepiej!

Udręka przeprowadzki jakoś została ogarnięta. Ze względu na wrodzony perfekcjonizm, niestety sporo czasu zajęło mi zorganizowanie się w nowym miejscu. W tym pedantyczne wyczyszczenie wszystkiego, ustawienie i przy okazji modernizacja stanowiska pracy. Jestem bardzo wrażliwy na punkcie ergonomii, tu rozumianej jako ustawienie stanowiska pracy (biurka, krzesła, komputera, monitora) tak, aby czuć się w nim absolutnie naturalnie, wygodnie i bez żadnych dyskomfortów. To, choć brzmi banalnie, jest dla mnie naprawdę istotne i ma znaczący wpływ na efektywność pracy.

W ostatnich dniach wreszcie udało mi się już porządnie skupić i poczynić pierwsze dalsze postępy w finalizowaniu pracy. Jestem obecnie w trakcie opisywania na czysto rozkładu prawdopodobieństwa wartości funkcji VMPC, a dokładniej na opisie na czysto tego, co tu mam zanotowane na brudno:

To, co na kartce z lewej strony, jest już zapisane na czysto i jest prawidłowe. To, co na prawej kartce, jest trochę bardziej skomplikowane i w tej chwili jestem w trakcie opisywania tego na czysto.

Gdy pierwszy raz czytałem ten brudnopis po przeprowadzce, to złapałem się za głowę, że przecież nic z tego nie rozumiem! A sam przecież kilka miesięcy wcześniej to pisałem! Ale rozumienie wymaga koncentracji, a ta z kolei przychodzi z czasem. Na zrozumienie każdego problemu matematycznego, nawet takiego, który samemu się wcześniej opisało (a co dopiero takiego, który ktoś inny opisał, np. autor zadania), trzeba poświęcić trochę czasu, aby wgryźć się w niego, aby umysł "zaskoczył". Dopiero po tym czasie umysł zaczyna wszystko rozumieć.

Na marginesie dodam, że uważam, iż wiele osób zniechęca się do matematyki właśnie z tego powodu, że nie dają sobie tej chwili pokornego czasu, aż umysł się rozkręci i zrozumie problem krok po kroku, powoli. Wielu, widząc, że na samym początku problemu nie rozumieją wszystkiego od razu, z miejsca rezygnuje. I to jest błąd! Matematyka wymaga czasu... Czasami 15 minut, czasami godziny, a czasami kilku dni! Dopiero po tym czasie cała "czarna magia" nagle się rozjaśnia i wszystko okazuje się być całkiem proste, a nawet oczywiste! Ja muszę być wyjątkowo oporny, gdyż nad jednym zagadnieniem - jednokierunkowości funkcji VMPC - pracuję od 20 lat (minie w grudniu 2018).

Wracając do postępów w pracy - te wyglądają optymistycznie. Teoretycznie jestem w stanie wyznaczyć roboczy plan, co jeszcze zostało do zrobienia do końca, czyli do uzyskania pracy gotowej do publikacji:

1. Dokończenie powyżej wspomnianego opisu rozkładu prawdopodobieństwa. Jest to dość elementarny/szkolny etap (mało w nim twórczego myślenia), ale jest on mozolny oraz relatywnie skomplikowany (opis na czysto zajmie w pracy kilka stron prawie samych symboli matematycznych; dwie z tych stron są już gotowe - powstały w ciągu ostatnich kilku dni).

2. Zapisanie na czysto wyników badań z roku 2017, czyli "słynnej" kartki brudnopisu z numerem [3](36) (oraz wszystkich wcześniejszych kartek [3](1..36)). To może zająć trochę czasu, ale mam nadzieję, że pójdzie sprawniej niż ilość kartek brudnopisu (36) sugeruje.

3. Opisanie funkcji malejącej. Szczegółów merytorycznych tej części nie będę rozwijał przed publikacją pracy, ponieważ jest to jeden z kluczowych elementów pracy, który umożliwił przeprowadzenie dowodu jednokierunkowości funkcji. Uściślić mogę jedynie, że koncepcja "funkcji malejącej" zastąpiła i jednocześnie uogólniła koncepcję "blokowanych pozycji" (to mój własny żargonowy termin) i stanowiła to poważne uproszczenie i udoskonalenie pracy, o którym pisałem na blogu 16.04.2018. Teraz pozostaje tylko opisać to na czysto.

4. Umiejscowienie funkcji VMPC i ukończonego dowodu jej jednokierunkowości w kontekście problemu "czy P=NP". To już czysto deserowy techniczny etap i nawet ktoś inny mógłby go opisać za mnie. Dlatego zostaje na koniec.

Oczywiście, jak to już nieraz bywało, i tu po drodze mogą pojawić się nieprzewidziane rozgałęzienia i komplikacje. Na szczęście jestem pełen wiary, że wszystko na pewno skończy się pozytywnie, bo nigdy dotychczas żadne komplikacje nie podważyły dowodu merytorycznie, a jedynie wydłużały czas jego formalnego opisania.

Dodam, że mogę bez żadnego stresu postawić swoje życie na to, że funkcja VMPC jest jednokierunkowa. Czy mój dowód tego faktu jest na tyle mocny, aby akademickie środowisko matematyków na świecie uznało go za prawidłowy - to jest pytanie, na które znajdziemy odpowiedź po publikacji pracy. A całą pracę wciąż mam nadzieję, że uda mi się ukończyć szlifować do swoich 40 urodzin, czyli do 12.01.2019.

Pozdrawiam wszystkich wiernych czytelników. Zapraszam wszystkich chcących podzielić się jakąkolwiek myślą dotyczącą mojego projektu do kontaktu przy pomocy poniższego formularza. I do następnego wpisu!




16.06.2018. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#160618

Chciałbym podziękować pewnej osobie (która lubi ósemki) za wspaniałomyślne wsparcie mojego projektu w chwili, gdy byłem (jeszcze jestem) w mocnym dołku.

Jestem na końcowym etapie urządzania się w nowym lokum. W ostatnich tygodniach przeprowadzka niestety zdominowała mój czas. Ale wygląda, że to bardzo dobra inwestycja czasu. Nowe lokum - niezależna część domu jednorodzinnego, którą wynajmuję - posiada niesamowicie inspirującą atmosferę do pracy. Panują tu idealne warunki termiczne - mimo braku klimatyzacji podczas upałów jest tu doskonała do pracy temperatura 21-22 stopni. Z okna piękny widok na ogród. Cisza i spokój. Wygląda to na idealne miejsce do niezależnej pracy naukowej czy twórczej. Do tego przemiła starsza pani - właścicielka. Konieczność wykonania własnoręcznego remontu kuchni (już na ukończeniu) wydaje się wysiłkiem wartym podjęcia, aby móc tu mieszkać i pracować!

Zgodnie z powiedzeniem "a change is as good as rest" (zmiana jest równie dobra, jak odpoczynek), traktuję tę przeprowadzkę i remont jako wakacje dla umysłu, który regeneruje się i zbiera siły do dalszej pracy.

Do intensywnej pracy nad funkcją będę wracał już w najbliższych dniach, gdy tylko uporam się z najpilniejszymi robotami remontowymi, które umożliwią normalne funkcjonowanie. Dalsze prace remontowe będę prowadził powoli, jako rozrywka i oderwanie od pracy.

Tymczasem aktualizacja sytuacji dotyczącej
kolekcjonerskich zestawów do Permutu. W ostatnich dniach nowego właściciela znalazł zestaw numer 10.

Zestawów kolekcjonerskich Permutu istnieje tylko 35. Do sprzedaży pozostały już tylko ostatnie sztuki o numerach 11,12,14,15,16,17 oraz 5 i 7.

Rezerwacja, jaką był objęty zestaw numer 11, została przeze mnie anulowana i zestaw nr 11 jest obecnie także dostępny do sprzedaży. Jest to w tej chwili najniższy numer dostępny w normalnej cenie (dwa zestawy o numerach jednocyfrowych mają wyższą cenę).

Dochody ze sprzedaży kolekcjonerskich zestawów Permutu pomagają mi finansować projekt VMPC, a dla nabywcy stanowią one nie tylko piękne dobro luksusowe, ale za kilka lat mogą okazać się dobrą inwestycją.

Po sprzedaniu jeszcze kilku sztuk (około trzech) sprzedaż zostanie definitywnie zakończona i pozostałe egzemplarze pozostawię w swojej kolekcji.

Jest to więc ostatnia okazja, aby stać się właścicielem kolekcjonerskiego zestawu Permutu.




27.05.2018. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#270518

Niestety los ostatnio nie jest dla mnie łaskawy. Mimo że merytoryczna część pracy ma się dobrze, to co rusz atakują mnie problemy życiowe, które nie pozwalają w pełni skupić się na pracy.

Najpierw - tuż po podjęciu tej ważnej decyzji o uproszczeniu pracy - zachorowałem. Choroba trwała trzy tygodnie, było to jakieś perfidne przeziębienie, które ciągnęło się ze zmiennymi w czasie objawami. Ale udało się pokonać bez antybiotyków.

Nie było mi dane długo się cieszyć dojściem do zdrowia, bo zaraz potem dowiedziałem się, że muszę się przeprowadzić. Kawalerka, którą wynajmowałem na preferencyjnych warunkach przez ostatnie 10 lat od sąsiada zza ściany, zostanie - z powodu jego postępującej choroby - zajęta przez osobę, która będzie sprawowała nad nim opiekę.

W domu moich rodziców nie ma fizycznie miejsca. Nie mogę też wynająć pokoju w mieszkaniu studenckim, bo mój tryb pracy do około 3 rano nie da się połączyć z innymi "normalnymi" domownikami.

Znalezienie mieszkania (kawalerki) do wynajęcia w moim rodzinnym mieście, Wrocławiu, w mojej sytuacji finansowej, niestety jest trudne. I tym sposobem ponownie przyziemne problemy finansowe odciągają mnie od pracy.

Na tym tle tylko szczegółem wydaje się być konieczność zakupu nowej pralki, gdyż poprzednia, kupiona jako nowa niby renomowanej firmy, zepsuła się w nienaprawialny sposób (koszt naprawy przekracza wartość nowej pralki) pół roku po gwarancji. Gratuluję księgowym korporacyjnym precyzyjnego planowania żywotności nowych sprzętów i zaśmiecania środowiska urządzeniami, które powinny popracować jeszcze co najmniej 10 lat. Ale przecież trzeba poprawić ROE, P/E, a akcjonariusze wystawili zarządowi opcje kupna akcji z ceną wykonania 10% powyżej obecnego kursu giełdowego, więc co innego pozostaje zrobić? Trzeba wyciągać od klientów coraz więcej pieniędzy coraz to bardziej "zaawansowanymi" sposobami. Pralkę musiałem kupić nową, innej firmy, co dodatkowo nadszarpnęło moje rezerwy finansowe.

Udało mi się znaleźć lokum w cenie, na którą mnie stać, ale kosztem jest standard, który jest tak niski, że przed wprowadzeniem muszę tam zrobić remont. Oczywiście ze względów finansowych muszę to zrobić własnoręcznie. Zamiast poświęcać 20 godzin na własnoręczne malowanie nowego lokum, potem drugie tyle na umeblowanie kuchni, mógłbym wykorzystać ten czas na kończenie mojej pracy naukowej. Ale nie stać mnie na to.

Poświęciłem się pasji, nauce i wybrałem pracować niezależnie. Ale dzisiejszy świat, opanowany przez pieniądz i sztywne struktury organizacyjne, nie pozostawia miejsca na takie wybory.

Aż śmiać mi się chce, że przez tego typu opóźnienia może się okazać, że ktoś przede mną rozwiązał problem "czy P=NP", a ja na pytanie "dlaczego nie skończył pan pracy na czas", odpowiem, że musiałem remontować kuchnię. Nie wiem, czego oznaką jest to, że bardziej mnie to śmieszy niż smuci, ale trochę niepokoi mnie taka reakcja.

Nie polecam nikomu obranej przeze mnie drogi. Zamiast podążać za pasją i niezależnymi odkryciami naukowymi, lepiej jest pójść do pracy, np. programować czy obliczać ryzyko kredytowe w banku (do obu mam kwalifikacje), zarabiać pieniądze i dzięki temu normalnie żyć.


16.04.2018. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#160418

Wreszcie zakończyłem pomyślnie proces decyzyjny na temat owego dużego uproszczenia pracy. Pewna mozolna i skomplikowana część pracy, zwana przeze mnie potocznie analizą "blokowanych pozycji", zostanie zastąpiona rozwiązaniem znacznie prostszym i bardziej eleganckim.

Jest to jedna z ważniejszych decyzji. Do śmieci pójdzie kilkanaście stron pracy i grube kilka miesięcy pracy. Nie dlatego, że były złe, ale dlatego, że znalazłem znacznie lepszy sposób na osiągnięcie tego samego celu.

Przed podjęciem tak istotnej decyzji musiałem ją przeanalizować od każdej strony. Dodam tylko, że sam skrót argumentów za tą decyzją zajął mi 4 strony brudnopisu. Ale musiałem mieć pewność, że to jest właściwa decyzja.

W wyniku tej decyzji wykonuję bardzo duży skok naprzód w kierunku ukończenia całej pracy. Analiza "blokowanych pozycji" była elementem, który w pracy mi się najmniej podobał i wymagał najwięcej szlifowania. Był to trochę taki wrzód, ale wdawał się być niezbędny. Teraz mogę się go pozbyć w całości i jest to jedna z najpiękniejszych chwil w całym procesie pisania i szlifowania pracy!

Po podjęciu tej decyzji postanowiłem trochę odpocząć, bo byłem już przemęczony i efektywność mojej pracy znacznie spadła. Jak na złość, nie mogę zbytnio zaświętować bo dopadło mnie jakieś perfidne przeziębienie. Być może także trochę z przemęczenia.

Ale perspektywy są teraz bardzo optymistyczne i jak tylko odzyskam zdrowie, to z zapałem przystępuję do realizacji nowego rozwiązania!

Konkurs z poprzedniego wpisu wciąż jest aktualny - na razie nikt nie przesłał poprawnej odpowiedzi.


25.03.2018. Link do tego wpisu: www.pieknafunkcja.pl/postepy/#250318

Niespodzianka. Ale (jeszcze) nie ta duża, o której pisałem poprzednio.

Jest to kolejny przykład na to, jak bardzo nieprzewidywalny (dla mnie samego) jest proces kończenia tej pracy. Jeszcze 10 dni temu nie rozważałem nawet, że zajmę się tym zagadnieniem.

Przy tej okazji ogłoszę nawet mały konkurs!

Mianowicie niniejsza "mała niespodzianka" usuwa pewną anomalię statystyczną, jaką można zaobserwować w wartościach funkcji VMPC. Własność ta była znana od dawna (została odkryta około 2003 roku przez pewnego francuskiego naukowca). Choć nie stanowi ona żadnej przeszkody dla jednokierunkowości funkcji, to jest pewnym elementem zakłócającym powierzchowną estetykę funkcji. Funkcja byłaby piękniejsza, gdyby tej anomalii nie było. Ale skoro jest, to niech sobie będzie, dawno ją zaakceptowałem i uwzględniłem w badaniach.

Ale właśnie odkryłem, w jaki sposób można się jej pozbyć!

Okazało się, że można to osiągnąć, jeśli usuniemy z dziedziny funkcji pewien bardzo łatwo definiowalny podzbiór permutacji. W efekcie wprawdzie pewien znacznie mniej istotny rozkład prawdopodobieństwa trochę się komplikuje i przyjmuje postać:

ale dzięki temu zamiast wspomnianej anomalii, uzyskujemy taki piękny rozkład jednostajny:

I pytanie konkursowe: jaką anomalię statystyczną usuwa powyższe rozwiązanie?

Osoba, która jako pierwsza prześle mi odpowiedź, otrzyma w nagrodę darmowy egzemplarz gry Permutu! I zaciekawi mnie swoją wnikliwością...


15.03.2018.
Link do tego wpisu:
www.pieknafunkcja.pl/postepy/#150318
(w analogiczny sposób można uzyskać bezpośrednie linki do wszystkich wcześniejszych wpisów. Kod liczbowy (tu #150318) to data wpisu bez kropek, z tylko dwoma ostatnimi cyframi roku, czyli tu zamiast 15.03.2018 mamy 150318. Poprzedni wpis (z dnia 03.02.2018) ma adres www.pieknafunkcja.pl/postepy/#030218. I tak dalej).

Oprócz wielu ogólniejszych analiz, w ostatnim czasie wróciłem do zmagania z rozkładami prawdopodobieństwa dotyczącymi funkcji VMPC. Oprócz wcześniej opisanego rozkładu (wpis z 10.10.2017), z którym poszło mi dość gładko, opisać trzeba było jeszcze jeden rozkład. Miałem nadzieję, że nim pójdzie równie prosto, ale niestety nie było tak łatwo i nie znalazłem żadnej drogi "na skróty". Pozostało mozolne rozbicie zjawiska na kombinatoryczne czynniki pierwsze.

W biografii Richarda Feynmana przeczytałem, że gdy analizował on jakiś problem, potrzebował konkretnego (liczbowego czy fizycznego) przykładu. Tym przykładem posiłkował się, analizując zjawisko, aby potem sformułować ogólne wnioski. Oczywiście, gdy zjawisko jest proste, do jego opisania może wystarczyć przekształcanie znanych wzorów. Gdy problem jest bardziej skomplikowany, wspomożenie się konkretnym przykładem może znacznie ułatwić jego rozwiązanie.

Celem jest, oczywiście, uzyskanie rozwiązania ogólnego, ale konkretny przykład pomaga zobaczyć zjawisko oczami wyobraźni. Jak mawiał Albert Einstein - wyobraźnia jest ważniejsza od wiedzy. Może można dodać, że wyobraźnia pomaga zdobywać wiedzę? W tej sytuacji - zgodnie z zasadą od szczegółu do ogółu.

Poniżej zamieszczam zdjęcia mojego brudnopisu, na którym widać przebieg tego procesu. Proszę, oczywiście, nie zwracać uwagi na estetykę ani pozorny chaos. To jest brudnopis, który nie był przeznaczony do publikacji, ale mimo to postanowiłem go tu zamieścić dla ilustracji.

Tak wyglądał zapis przykładu dla wybranego "z kapelusza" N=5. Za duże N spowodowałoby, że liczb będzie za dużo i trudno będzie się poruszać po przykładzie. Za małe N może spowodować, że nie ujawnią się wszystkie charakterystyczne zjawiska. Wybór rozmiaru przykładu jest trochę sztuką.

A tak wyglądają porządki - proces uogólniania powyższego pozornie chaotycznego przykładu:



Na marginesie dodam, że ten etap pracy jest podobny to pracy sprzątaczki. Zastaje ona chaos i musi go uporządkować. Tu trzeba zrobić dokładnie to samo. Zastaję rozrzucone pozornie chaotycznie liczby i muszę je uporządkować, znajdując ogólne zależności między nimi.

Pozwolę sobie sformułować tu okolicznościowy żart:

Czym różni się matematyk od sprzątaczki? Matematyk pracuje na siedząco.

Tak wygląda opis zjawiska po zrobieniu porządku:

Przede mną kolejne etapy, ale koniec jest coraz bliżej. W rękawie mam niespodziankę, do której przymierzam się z ekscytacją, a która może radykalnie uprościć jedną dużą i mozolną część dowodu. Zanim wykonam tak duży krok, muszę go bardzo dokładnie przeanalizować od wielu stron. Nie zapeszając jeszcze bardziej, wracam do ostatniego etapu rozważania tego kroku!



03.02.2018. Rok 2017 upłynął pod znakiem walki z kilkoma elementami, które znacznie przeciągnęły się w czasie. Na szczęście walka zakończyła się sukcesem (mój poprzedni wpis z grudnia 2017). Mam nadzieję, że 2018 upłynie pod znakiem zbierania tego efektów. Na razie zaczęło się dobrze.

Pozytywne jest, że dzięki temu przeciągnięciu nabrałem świeższego spojrzenia na pozostałe elementy pracy, którymi nie zajmowałem się przez dużą część 2017. Mam na nie teraz trochę takiego spojrzenia, jakbym był recenzentem, a nie tylko autorem.

Jednocześnie szukam najlepszego sposobu na wkomponowanie wyników z kartki "36" (głównego wyniku pracy w 2017) na czysto. I jednocześnie rozpocząłem dalsze analizy rozkładu prawdopodobieństwa, opisanego tu 10.10.2017. Muszę zgłębić, jak wiele rozkład ten ma wspólnego z funkcją VMPC. W optymistycznej wersji uda się zasymulować generowanie wartości funkcji VMPC bez użycia wzoru funkcji. Jedynie przy pomocy generatora pseudolosowych permutacji wg tego rozkładu. No, wg trochę zmodyfikowanej jego postaci. Nie ma to fundamentalnego znaczenia dla dowodu, ale nie potrafię się powstrzymać, aby tego nie zgłębić. Może to bowiem dać jeszcze więcej szerokiego rozumienia, czym jest funkcja VMPC.

Na drodze do tego celu natrafiłem małą ciekawostkę. Okazało się, że prowadzi to trochę pośrednią drogą do ciągu Fibonacciego, a jeszcze dokładniej, do "złotego podziału", czyli "magicznej" liczby 1,618... Często pojawia się ona w przyrodzie, muzyce, estetyce. Ma wiele definicji, a jest to po prostu taki dobór dwóch liczb, że gdy podzielimy liczbę większą przez mniejszą to uzyskamy taki sam wynik, jak po podzieleniu sumy tych dwóch liczb przez liczbę większą. Przykładowo - osoby, które czytają to na monitorze o proporcji obrazu 16:10 (np. w rozdzielczości 1680x1050, jak np. ja :-)) zamiast w popularnej 16:9 (np. 1920x1080), oglądają obraz w proporcjach bliskich właśnie złotemu podziałowi (16 / 10 = 1,6 to właśnie prawie 1,618).

Potraktowałem to jako weekendową rozrywkę i zapisałem kilka zależności. Oczywiście nie jest to nic odkrywczego, ale przyjemnie było natrafić na jakieś znane wyniki i na "kopalnię metali szlachetnych" :-), wychodząc od własnych badań
(dokładniej - od ciągu rekurencyjnego x k,n, gdzie x k,0 może mieć dowolną wartość rzeczywistą).

Ogólnie moja praca o funkcji jest dość samotna. Nie korzystam prawie wcale z zewnętrznych wyników. Chyba jedyną rzeczą, jaka w mojej pracy pochodzi z zewnętrznych źródeł, jest sama definicja funkcji jednokierunkowej. I dlatego cieszę się, gdy w tym morzu samotności natknę się czy choć zahaczę o coś znanego.

Podobnie było z tablicą Eulera (Euler's Difference Table), którą odkryłem samodzielnie, ale po jakimś czasie znalazłem, że Euler zrobił to samo wiele lat wcześniej. Zamienione mieliśmy jedynie kolumny z wierszami.

Z bardziej przyziemnych spraw, w styczniu skończyłem 39 lat i postanowiłem bardzo mocno, że do ukończenia "40", czyli do 12 stycznia 2019, muszę mieć pracę albo już opublikowaną albo całkowicie skończoną i gotową do publikacji. Będę robił wszystko, aby to się udało.

W 2018 roku chcę skoncentrować się maksymalnie na pracy. Jednym z elementów tego było... pogorszenie swojej i tak kiepskiej sytuacji finansowej. Zrezygnowałem z prowadzenia księgowości w małej firmie mojego ojca. Miałem z tego jakieś małe dochody, ale za bardzo angażowało to moją uwagę. Teraz czuję się znacznie lżej, mobilniej i łatwiej mi będzie poświęcić 100% koncentracji na pracę nad funkcją. Finansowo, oczywiście, jest to decyzja nieracjonalna. Ale mimo to czuję, że jest to decyzja dobra. Zobaczymy, co się okaże.



23.12.2017. Gorąco dziękuję tajemniczej grupie stałych czytelników za przesłane poetyckie życzenia! Nie wiem, czy odłożę całkiem VMPC, żeby zjeść karpia, ale na pewno uda się połączyć jedno z drugim!

Obecny etap badań ciągnie się od początku 2017 roku. Jest on łącznikiem między definicją funkcji VMPC, a zapisanym już na czysto i stanowiącym główny trzon dowodu modelem odwracania funkcji.

Nie wierzę w szczęśliwe liczby, ale kilka razy w życiu szczęśliwe zdarzenia zbiegły mi się z liczbą 36. Jednocześnie na początku tego roku doznałem dość przejmującego przeczucia, że zakończenie tego etapu rozpoznam po tym, że uzyskany wniosek formalny będzie tak spójny i piękny, że polecą mi łzy.

Z biegiem czasu niecierpliwiłem się coraz bardziej, bo łzy nie chciały lecieć, a zapisałem ponad 40 stron brudnopisu (numerowanych liczbami, czasami z literami, np. 26a, 26b). W nim wiele prób opisania zjawiska, które miałem od samego początku "na końcu języka", które doskonale rozumiem, ale nie mogłem znaleźć sposobu na zapisanie go w sposób formalny, czyli przy użyciu samych symboli matematycznych, bez żadnego intuicyjnego uzasadnienia. Zacząłem nawet wmawiać sobie, że przepowiednia ze łzami to brednia i że mam po prostu pracować, a nie płakać.

20 grudnia 2017 o godzinie 2:16 zapisałem kartkę numer 36.

Na jej końcu wyszedł mi pewien pięknie spójny formalny zapis. Zacząłem się nad nim zastanawiać. Z chwili na chwilę, zaczynał się zazębiać z kolejnymi analizowanymi przez ten rok podejściami. Każde podejście było słuszne, ale żadne nie kończyło się zapisem formalnym. Każde potrzebowało intuicyjnego komentarza, co w dowodzie matematycznym jest niedopuszczalne.

Siedziałem tak przez jakieś pół godziny. Wpasowując nowy zapis do kolejnych podejść, poczułem zaszklenie w oczach. Po chwili miałem policzki zalane łzami. To było głębokie logiczno-emocjonalne przeżycie. Źródłem wzruszenia była logika. Uzyskany formalny wniosek tak idealnie wypełniał wszystkie intuicyjne nieścisłości w każdym rozważanym wcześniej podejściu!

Dla przykładu - analizowałem intuicyjne stwierdzenie "droga rozpoczynająca się od kolejnego elementu musi być inna". To umiałem udowodnić. Ale nie umiałem udowodnić, dlaczego w ogóle trzeba rozważać drogę od innego elementu! Na kartce 36 naturalnie powstało mi twierdzenie, które łatwo udowodniłem i wyprowadziłem z niego formalny wniosek, który wypełnia wszystkie tego typu intuicyjne niedopowiedzenia wcześniejszych koncepcji!

Twierdzenie powstało nie z formalnych przekształceń, tylko intuicyjnie. Mogło pozostać kolejną niedokończoną intuicyjną koncepcją. Zapisałem na kartce notatkę - "udowodnić formalnie powyższe". Z nadzieją, że następnego dnia spróbuję się z tym zmierzyć. Ale przed pójściem spać pomyślałem, "a, przynajmniej zacznę coś kombinować, to rano łatwiej mi będzie się za to zabrać". I chwilę później wyszedł mi gotowy dowód twierdzenia! Dowód okazał się bardzo prosty. Ale tyle wysiłku (rok!) kosztowało mnie, aby znaleźć taki "punkt widzenia" - sposób opisania zjawiska (a tych sposobów jest pewnie nieskończenie wiele) - który da się zakończyć prostym i łatwym do udowodnienia twierdzeniem!

Matematyka jest piękna. Ale proces wymyślania i odkrywania może być bolesny i długotrwały. Doceniajmy twierdzenia, jakie napotykamy na swojej matematycznej drodze. Być może uzyskanie niektórych z nich kosztowało kogoś wiele wysiłku i wyrzeczeń. Nawet (a może w szczególności...), jeśli twierdzenie ma prostą postać i jest bardzo ogólne.

To, oczywiście, jeszcze nie koniec pracy, teraz trzeba to uporządkować i zapisać na czysto. Ale przewiduję, że wszystkie kolejne etapy - do samego końca pracy - powinny być już znacznie prostsze! Obym się nie mylił!

Życzę wszystkim czytającym te słowa szczęśliwych i spokojnych Świąt Bożego Narodzenia!

Jeśli masz ochotę podzielić się ze mną swoim komentarzem, gorąco zapraszam do skorzystania z poniższego formularza kontaktowego. Każda otrzymana wiadomość mnie cieszy i inspiruje do dalszej pracy.



29.11.2017. Obecny etap pracy jest dość mozolny, niestety. Zapisałem kolejne 20 stron brudnopisu. Razem w obecnym etapie powstało na razie 40 stron brudnopisu. Wszystko po to, aby znaleźć najlepszy sposób na formalne zapisanie stosunkowo prostej myśli, opisującej istotę funkcji VMPC. Stanowi ona łącznik między definicją funkcji, a właściwą częścią dowodu, które są już ukończone. Wiedziałem, że ten etap będzie długi, ale nie sądziłem, że aż tak. Na razie efekty tej pracy wyglądają tak (kartki rozłożyłem na podłodze):

Choć widzę, że puenta tego etapu jest już blisko, to czuję się nim przemęczony.
Czasami zastanawiam się, skąd biorę, a czasami, skąd brać siły do dalszej pracy.

Jeśli zastanawiasz się, drogi czytelniku, nad prezentami dla swoich bliskich, nieśmiało podsuwam pomysł na skromny dodatek do puli prezentów pod choinką - grę planszową Permutu, która, jak wiadomo, powstała jako efekt uboczny moich badań nad funkcją VMPC.

Za jednym razem zrobisz prezent komuś bliskiemu i jednocześnie mi, wspierając projekt zakupem gry. Permutu kosztuje 39 zł z wysyłką. Jest naprawdę dobrą i wciągającą grą, tak przynajmniej mówią wszyscy, którzy w nią grali i podzielili się opinią.

Na tę okazję wymyśliłem akcję dla wszystkich, którzy śledzą mój projekt (a więc czytają te słowa).
Akcja Gwiazdka z VMPC i Permutu.

Każdy, kto wpisze "VMPC" w polu "dodatkowe informacje" podczas
składania zamówienia na Permutu, otrzyma rabat i może kupić Permutu za 36 zł zamiast 39. Wystarczy złożyć zamówienie i zapłacić 36 zł (razy ilość zamawianych sztuk), a nie wyświetlone w formularzu 39 zł.

Taki tajny kod do tańszego zakupu Permutu dla wszystkich, którzy to czytają :-)

Koszt 36 zł obejmuje już wysyłkę, a więc po zamówieniu otrzymasz grę na następny dzień (najpóźniej za dwa dni), dostarczoną Pocztą do domu.

Mam nadzieję, że choć kilka osób zdecyduje się na zakup.

Jeśli ktoś ma możliwość przesłać wiadomość o tej akcji dalej, czy na facebooku czy gdzie kto ma pomysł, będę bardzo wdzięczny. Wystarczy wspomnieć o projekcie i zamieścić link do formularza zamówienia Permutu:

www.permutu.pl/zamow

Przed Świętami wykonam jeszcze jeden wpis z życzeniami i mam nadzieję, że także z dobrymi informacjami o dalszych postępach w pracy. Tu można kliknąć, aby przejść do formularza zamówienia Permutu.

Dziękuję wszystkim za przesłane komentarze i zachęcam do wysyłania kolejnych! Zaskakująco wiele osób decyduje się pozostać anonimowymi i nie podaje adresu zwrotnego. Nie mam nic przeciwko, ale w takiej sytuacji trudno mi odpowiedzieć. A niektóre z anonimowych wiadomości zawierały konkretne pytania...

Dla jednej z takich osób, która pytała o pewien zakład o to, czy funkcję VMPC da się odwrócić: zakład wygrałem (funkcji nie da się odwrócić), ale druga strona, po przyznaniu się do błędu w swoim rozumowaniu, uznała zakład za nieważny i zaczęła straszyć mnie prawnikami, gdybym opublikował szczegóły sytuacji.

26.10.2017. Kilka kolejnych gałęzi odciętych! Jeśli istota funkcji VMPC jest gołym pniem, do którego dążę, to mój obecny etap pracy można porównać do pracy drwala, który odcina gałęzie, aż do gołego pnia. Różnica w tym, że drwalowi robota idzie szybciej. Ja potrafię zastanawiać się kilka dni przed odcięciem którejś gałęzi.

W ciągu ostatnich 2 tygodni postęp jest znaczny. Bardzo pomocne w eliminowaniu gałęzi jest porównanie VMPC do funkcji g(x)=f(f(f(x))) oraz h(x)=f(f(f(x)+1)+1). Co może wydawać się paradoksalne, h(x) jest tak samo łatwa do odwrócenia, jak g(x). Mimo że h(x)=f(f(f(x)+1)+1) wygląda "jak" albo "jeszcze mocniej" niż VMPC.

Istota funkcji VMPC: v(x)=f(f(f(x))+1) = f(f(f(x)+0)+1) tkwi bowiem w tym, że operacje modyfikujące są zmienne - raz jest to "+0", a raz "+1". Z tego faktu wynika siła, jak i sama nazwa funkcji - Variably Modified Permutation Composition.

Obecny etap pracy skierował mnie na zgłębienie problemu odwracania funkcji f(f(f(x))) i formalnego uzasadnienia, dlaczego funkcja ta jest łatwa do odwrócenia. To znacznie pomaga nakierować myśli, metodą kontrastu, na kluczowe fakty decydujące trudności odwrócenia VMPC.

Etap ten wymaga trochę pracy koncepcyjnej, a ta u mnie wiąże się z papierem i piórem. Obecny rozdział zwiększył rozmiar brudnopisu VMPC o 20 stron.

Oto wizualne przedstawienie istoty funkcji VMPC. Mamy 4 kocki, każdy ma 3 wytłoczenia. Z klocków trzeba zbudować jeden ciąg tak, aby klocki łączyły się dwoma wytłoczeniami.

Jeśli uda się zbudować taki ciąg - funkcja jest odwrócona.
Klocki po lewej stronie reprezentują funkcję f(f(f(x))). Ułożenie ciągu ze wszystkich klocków jest proste.
Klocki po stronie prawej to funkcja VMPC. Żadnych klocków nie da się połączyć dwoma wytłoczeniami.

Jeśli masz ochotę podzielić się ze mną swoim komentarzem, proszę zrób to! To dla mnie ważne widzieć, że to, co robię, kogoś interesuje. Nieważne, czy jesteś matematykiem, drwalem, artystą czy uczniem. Nawet jeśli masz do powiedzenia coś, co Ci się wydaje banalne, dla mnie każda wiadomość jest ważna i może mnie inspirować.

10.10.2017. Pierwszy etap formalizowania istoty jednokierunkowości funkcji VMPC za mną. To na pewno nie koniec tego etapu, ale już ostateczny obraz dotyczącego go rozdziału zaczyna się klarować.

Zrobiłem tez duże postępy w selekcji i syntezie kilku innych kluczowych faktów, dotyczących źródła jednokierunkowości funkcji VMPC. Niektóre z nich są już tak wyklarowane, że są niemal gotowe do zapisania formalnie na czysto w pracy.

Pozostał jeszcze co najmniej jeden ważny fakt, który jeszcze musi "dojrzeć", a więc pomęczyć mi głowę przez jakiś czas, aż oczyści się ze wszystkich zbędnych informacji i pozostanie tylko jego naga istota. Logiczne źródło zjawiska, z którego wszystko inne jest tylko wnioskiem. Wtedy problem można uznać za rozwiązany i gotowy do zapisania formalnie przy pomocy symboli matematycznych. Wymaga to cierpliwości, wnikliwości i czasu.

To fascynujący proces, który nieustannie przewija się przez mój projekt. Tym razem dotyczy naprawdę fundamentalnego problemu i to czyni ten etap pracy tak bardzo ekscytującym.



18.09.2017. Osobiste burzliwości i dotykanie istoty funkcji VMPC.

W ostatnim ponadmiesięcznym okresie, niestety, burzliwości życia osobistego (rozstanie z dziewczyną) znacznie utrudniły mi pracę. Postępy merytoryczne, choć są, to nie są spektakularne.

Problemy osobiste są już jednak definitywnie za mną, a w żaglach czuję świeży powiew czystej energii do pracy, więc teraz powinno być już tylko lepiej! Wierzę, że do końca roku 2017 uda się dojść do końca szlifowania pracy. Nie gwarantuję tego, ale wierzę w to.

Obecny etap pracy jest bardzo trudny, gdyż stanowi dotykanie istoty funkcji VMPC. Nie zakończy się żadnym nowym spektakularnym wzorem, ale wywodem formalnym, który będzie syntetycznie prześwietlał właśnie istotę funkcji VMPC. I będzie trafiał w jej samo serce, które bije tylko... w jedną stronę (funkcja jednokierunkowa!)

Subiektywnie wydaje mi się, że etap ten jest najpiękniejszy w całym dowodzie. Być może po jego zakończeniu ktoś, kto zrozumiałby istotę tego etapu na ogólnym poziomie (bez wnikania w formalizmy matematyczne, skupiając się tylko na koncepcyjnej warstwie rozumowania) miałby inspirację nawet do napisania wiersza o samym źródle jednokierunkowości funkcji VMPC. Niestety sam talentu do napisania takowego wiersza - nie posiadam!

Moja praca w ostatnim czasie zawierała bardzo dużo "pracy bez pracy" - czystego myślenia, bez komputera, nawet bez kartki papieru. Zbieranie i układanie w głowie kluczowych faktów. W momencie, gdy fakty zaczęły się powtarzać i zazębiać, przeszedłem do zapisywania ich. I to już od kilku dni ma miejsce. Jest już więc teoretycznie z górki, ale nie ma pewności, czy jeszcze wiele razy nie będzie trzeba "wrócić w chmury" i np. chodzić z jakąś myślą wiele dni, aż ułoży się i zazębi z pozostałymi.

Jestem w pełni świadomy, że powyższy tekst bardziej może pasować do relacji z pisania powieści niż dowodu matematycznego. Jest to jednak, przynajmniej dla mnie, tylko potwierdzeniem tego, co powszechnie się mówi, ale w co wielu nie wierzy:

Matematyka jest formą sztuki. Przynajmniej ta część matematyki, gdzie szukamy (najpiękniejszego?) sposobu na przelanie swoich (logicznych) myśli na język (formalny matematyczny). Jest to proces twórczy, w którego zwieńczeniu czytelnik może doszukiwać się (logicznego) piękna.

Mam nadzieję, że i mi się uda choć małą cząstkę tego, zakorzenionego w funkcji VMPC piękna, przelać na papier w tym etapie pracy.



02.08.2017. Zakończyłem kolejny etap szlifowania pracy. Jego przebieg ponownie potwierdza, dlaczego szlifowanie pracy trwa tak długo. Dopiero teraz udało mi się zakończyć etap, który rozpoczął się w kwietniu 2017, a który miał zająć co najwyżej tydzień. Efektem jest uściślenie, do jakich dokładnie sytuacji wzór na prawdopodobieństwo postępu odwracania funkcji (ten wielki wzór z początku pracy) ma zastosowanie. Niestety zamiast planowanych kilku zdań na ten temat, w pracy jest obecnie 5 nowych stron dotyczących tego problemu. Pocieszeniem jest to, że teraz jest to już najprawdopodobniej wersja ostateczna tego etapu pracy.

Przede mną kolejny etap, tym razem trochę bardziej abstrakcyjny. Sformalizowanie przejścia pomiędzy definicją funkcji VMPC a opisanym w pracy modelem jej odwracania. Wstępne wyniki na brudno tego etapu już są, ale ile czasu zajmie dojście do wersji ostatecznej na czysto - okaże się w trakcie.

Czuję się tak, jakbym to nie ja, a funkcja decydowała, ile czasu zajmują mi kolejne etapy.

Jako ciekawostka "po godzinach" udało mi się znaleźć na strychu stare materiały dotyczące moich badań nad funkcją z lat 1999-2005. Nie liczę nawet ile zajmują stron. Mają około 10 cm grubości.

   



Wszystkich, którzy wierzą w mój projekt, zachęcam do zakupu
kolekcjonerskiej wersji Permutu, a więc gry powstałej na bazie funkcji VMPC.

Ostatnie egzemplarze o najbardziej atrakcyjnych numerach jednocyfrowych i dwucyfrowych "naście" są jeszcze dostępne. Środki uzyskane z ich sprzedaży wspomagają moją mozolną pracę nad funkcją VMPC.



17.06.2017. Kolejny element, którego dopracowanie miało zająć tylko chwilę, zajął kilka tygodni. Tym razem efektem jest znaczne rozbudowanie definicji funkcji VMPC. Podczas gdy dla zwykłego człowieka jest to po prostu f(f(f(x))+1), to przez ostatni miesiąc znacznie rozbudowane zostało rozróżnienie na szczególną i ogólną postać funkcji VMPC. Obecnie sama definicja funkcji zajmuje całą stronę, do tego kolejna nowa strona dowodu pewnej własności, którą ogólna postać funkcji musi spełniać, aby ta była funkcją typu VMPC i była jednokierunkowa.

Obecnie badam liczność zbioru wartości funkcji VMPC dla dużych permutacji, udało mi się przebadać N=13, a obecnie kilka komputerów pracuje nad N=14. Wyzwaniem jest tu nie tylko moc obliczeniowa, ale przede wszystkim pamięć - gdzie zapamiętać, które z 14! (ponad 87 miliardów) możliwych permutacji już zostało wygenerowanych przez funkcję VMPC?

Dla N=14 powinno się udać, ale N=15 (ponad 1,3 biliona permutacji) już jest raczej poza zasięgiem. Chyba że ktoś chciałby użyczyć na około 20 dni pracy non-stop jeden rdzeń superkomputera mającego 170 GB pamięci RAM.

Na pewno dokończę pracę, ale pracując nad jednym problemem 19 lat, bez żadnej nagrody, powoli tracę siły. Kolejne kroki przychodzą mi z coraz większym trudem. Nawet w optymistycznej wersji, gdzie rozwiążę problem, czy P=NP, wykażę, że VMPC jest pierwszą na świecie funkcją jednokierunkową - czy jest to warte takich wyrzeczeń? Poświęcenia 19 lat życia bez żadnej bieżącej nagrody, a przeciwnie, zmagając się z trudnościami, będąc zdanym na siebie.



08.05.2017. Dobrze jest być w błędzie, gdy myśli się, że jest się w błędzie. Miesiąc temu wyglądało, że prawdopodobieństwo odwrócenia funkcji jest zależne od wyboru szczególnej wersji wzoru funkcji (a więc od permutacji m1 i m2 we wzorze f(m2(f(m1(x))))). Jeszcze wcześniej sądziłem, że nie jest zależne. Symulacje pokazały jednak minimalne różnice w tym prawdopodobieństwie w zależności właśnie od wyboru m1 i m2. Okazało się jednak, że winę za to ponosi... jakość wbudowanego generatora liczb pseudolosowych!

Tu ukłony w kierunku osób (było ich kilkaset), które w 2010 roku pomagały mi w symulacjach komputerowych podczas tworzenia algorytmu generowania liczb pseudolosowych VMPC-R. Pamiętacie
dziennik z symulacji i kipiące od wysiłku komputery, które łącznie wygenerowały 1 300 000 000 000 000 liczb? Otóż liczby te ponownie przydały się teraz. Gdy zastąpiłem standardowy generator liczb pseudolosowych przez stworzony wtedy VMPC-R, symulacje zaczęły układać się tak, jak powinny! A więc tak, jak pierwotnie sądziłem - że wybór m1 i m2 jednak nie ma wpływu na prawdopodobieństwo odwrócenia funkcji. Na razie nie jest to wynik ostateczny, a wstępny, bo przede mną przeprowadzenie bardzo wielu symulacji, które mają to zweryfikować. Ale dobrze jest, gdy coś, co się stworzyło ogromnym wysiłkiem kilka lat wcześniej, nagle przydaje się i rozwiązuje (najprawdopodobniej) problem, który ma się dzisiaj!

Prace z innego toru, teoretycznego, nad możliwie najelegantszym opisaniem zjawiska, które obecnie roboczo nazywam przejściem między definicją funkcji a modelem odwracania funkcji, trwają i posuwają się powoli do przodu. W chwili obecnej stan pracy jest taki, że jeśli uda mi się ukończyć te dwa etapy, a więc symulacje oraz to przejście, osiągnę kolejny stan zakończenia pracy. To nie będzie jeszcze oficjalny koniec, bo ciągle zostanie jeszcze kilka rzeczy do doszlifowania. Ale będzie to istotny krok do oficjalnego zakończenia pracy.

Wiadomość z ostatniej chwili jest też taka, że przy okazji optymalizowania algorytmu symulującego zauważyłem czystym przypadkiem, pewną bardzo ciekawą zależność, wprawdzie poboczną, nie mającą żadnego wpływu na główne rozumowanie, ale mimo to ciekawą i umieszczającą funkcję VMPC w nieco szersze ramy. Zauważyłem zaskakującą ścisłą zależność między prawdopodobieństwem zajścia pewnego zjawiska "atomowego" podczas odwracania funkcji, a ilością sytuacji m1(x)=m2(x). Funkcja VMPC z definicji nie posiada ani jednej takiej sytuacji. "Zwykłe" potrójne złożenie N-elementowych permutacji, a więc f(f(f(x))), posiada N takich sytuacji. Wygląda, że
Pk = Pv - K (Pv - Pr)
gdzie Pk to prawdopodobieństwo zajścia tegoż atomowego zjawiska dla funkcji mającej K sytuacji m1(x)=m2(x), Pv to prawdopodobieństwo tego zjawiska dla funkcji VMPC, a Pr - dla funkcji posiadającej dokładnie jedną sytuację m1(x)=m2(x). Jest to na razie obserwacja wstępna i nieuporządkowana, ale jest o tyle ciekawa, że łączy wiele rodzajów funkcji jednym wzorem i, co jeszcze ciekawsze "filozoficznie", wreszcie łączy dwie funkcje: zwykłe złożenie permutacji f(f(f(x))) oraz VMPC (a więc np. f(f(f(x))+1) wzorem, który mówi, że te dwie funkcje są skrajnymi przypadkami pewnego zjawiska. A skądinąd wiemy, że funkcje te są także skrajnościami w trudności odwracania, gdzie f(f(f(x))) jest łatwa do odwrócenia, podczas gdy f(f(f(x))+1) (VMPC), jest niemożliwa do odwrócenia - jednokierunkowa.



30.03.2017. Praca posuwa się powoli do przodu. Wolniej niż chciałbym, a tym razem spowalnia mnie... moc obliczeniowa procesora. Zanim zacznie być całkiem z górki, muszę jeszcze doprecyzować jeden element pracy, a ten wymaga trochę więcej pracy niż początkowo sądziłem. Zarówno trochę koncepcyjnej pracy (jak opisać zjawisko, aby było najbardziej elegancko), jak i pracy obliczeniowej - trzeba wykonać symulacje komputerowe weryfikujące wpływ wyboru szczególnej wersji wzoru funkcji VMPC na prawdopodobieństwo odwrócenia funkcji. Początkowo sądziłem, że wpływu tego nie ma i że funkcja może pozostać zdefiniowana w abstrakcyjny sposób jako f(m2(f(m1(x)))), gdzie m1 i m2 to dowolne stałe, jawne permutacje. Po długotrwałych symulacjach komputerowych okazuje się, że wartości m1 i m2 mają minimalny wpływ na uzyskiwane prawdopodobieństwa. Obliczenia czasami wymagają kilku dni pracy komputera, gdyż różnice pojawiają się dopiero np. na 5 miejscu po przecinku (np. 0,12345 vs 0,12346) i aby tak mała różnica była statystycznie istotna, potrzeba ogromnej próbki, a ta wymaga bardzo długich obliczeń na komputerze.

Wynikiem tych analiz będzie najprawdopodobniej odejście od ogólnego wzoru funkcji VMPC, f(m2(f(m1(x)))), i powrót do korzeni, czyli do któregoś wzoru szczegółowego, np. właśnie do pierwotnego f(f(f(x))+1), który formalnie oznacza, że m1(x)=x, a m2(x)=x+1 mod N, i który na razie w symulacjach daje najlepsze wyniki (najniższe prawdopodobieństwo odwrócenia funkcji).

Niestety, dysponuję słabym sprzętem komputerowym (procesor AMD Athlon II X4 640), co wydłuża proces symulacji.



14.02.2017. Chyba najgorsza część szlifowania pracy za mną. Cała pierwsza część pracy, która była najmniej sformalizowana i przez to wymagała najwięcej dopracowywania, została sfinalizowana. Teraz szlifowanie pracy powinno już pójść z górki. Co nie znaczy, oczywiście, że skończę ją jutro! W ostatnim czasie zrobiłem sobie trochę intelektualnej przerwy, aby naładować mózg i inspirację świeżymi siłami. Ale ta przerwa właśnie się kończy i właśnie teraz zabieram się za kolejny etap!

Wszystkich, którzy wierzą w mój projekt, zachęcam do zakupu
kolekcjonerskiej wersji Permutu, a więc gry powstałej na bazie funkcji VMPC.

Ostatnie egzemplarze o najbardziej atrakcyjnych numerach jednocyfrowych i dwucyfrowych 1n są jeszcze dostępne. Środki uzyskane ze sprzedaży tych unikalnych dzieł sztuki wspomagają ukończenie mojej pracy nad funkcją VMPC.

Życzę wszystkim zakochanym wszystkiego najlepszego z okazji Walentynek!



31.12.2016. Postępy w pracy idą dobrze, merytorycznie zgodnie z planem, a czasowo - niezgodnie z planem. Jeszcze nie skończyłem szlifowania pracy. Niemal wszystko zajmuje znacznie więcej czasu niż na początku mi się wydaje. Wynika to w dużej mierze z mojego perfekcjonizmu, którego jestem niewolnikiem. Nawet najprostsza rzecz musi być zrobiona doskonale. Czasami oznacza to, że muszę przez wiele dni czytać różne materiały, aby zdecydować, jak opisać jakieś zjawisko. Mimo że mógłbym je opisać tak, jaki wpadł mi pierwszy pomysł i też by było dobrze. Może źle robię, ale chcę, aby praca była faktycznie dopracowana najlepiej, jak potrafię. Abym nie miał sobie nic do zarzucenia, że coś mogłem zrobić lepiej.

Dla przykładu przez cały okres okołoświąteczny (Święta, oczywiście, "ukradły" trochę dni pracy) studiowałem różne prace matematyczne, aby zainspirować się do udoskonalenia samej definicji funkcji VMPC. Definicja funkcji, oczywiście, była już 18 lat temu. Ale czy była najlepsza? Czy była najbardziej ogólna? Na pewno nie. W pracy przez prawie dwa lata była jedna definicja funkcji VMPC, już dużo bardziej ogólna, ale teraz wzięło mnie na to, aby ją jeszcze bardziej udoskonalić.

No i zajęło to dużo czasu. Ale za to są efekty. Teraz definicja funkcji jest faktycznie najlepsza, jaką jestem w stanie skonstruować. I dopiero teraz jestem z niej zadowolony! "Popularny" wzór funkcji VMPC, a więc f(f(f(x))+1) jest wobec nowej definicji tylko szczególnym przypadkiem szczególnego przypadku funkcji VMPC. Dopiero teraz definicja funkcji jest wystarczająco mocno uogólniona i odpowiednio elegancko zapisana formalnie.

Wiąże się to, niestety z jedną komplikacją, a mianowicie, że w całej pracy muszę zmienić przyjęty dla funkcji VMPC zbiór z {0,1,...,N-1} na {1,2,...,N}. Niby bzdura, niby merytorycznie bez znaczenia, ale nowa wersja będzie ciut bardziej elegancka. A że praca zajmuje 57 stron, to będzie sporo "fizycznej" pracy z tym. Z koniecznością zachowania bardzo dużej ostrożności, aby nigdzie nie popełnić błędu przy tej zmianie.

Męczy mnie ten proces, ale muszę być twardy i nie mogę podarować sobie choć jednego pomysłu na udoskonalenie pracy.

Nie chcę podawać kolejnego terminu zakończenia prac. Pewne jest to, że zakończenie szlifowania pracy jest blisko. Pewne jest to, że cała praca jest napisana. Jest to dzieło mojego życia i muszę je dopracować do tego stopnia, aby być z niego w pełni zadowolony.

Proszę o trzymanie kciuków za to, aby udało mi się ukończyć szlifowanie pracy najszybciej, jak jestem w stanie to zrobić.

Życzę wszystkim powodzenia w nadchodzącym 2017 roku!



22.11.2016. Kolejny etap szlifowania pracy za mną. W tym momencie uważam, że najtrudniejszy etap. Uff. Polegało to na przebiciu się ponownie przez wyprowadzenie "kobylastego" wzoru, nad którym pracowałem na początku 2015 (wzoru na prawdopodobieństwo sukcesu pierwszego kroku odwracania funkcji VMPC). Ponieważ całe wyprowadzenie zajmuje 12 stron matematycznych "szlaczków", przetrawienie tego wymagało trochę czasu... Całość musiałem na nowo przeanalizować i, co najtrudniejsze, przetłumaczyć na "język VMPC", a więc wspominany już wielokrotnie 4-stronicowy zbiór symboli, służących do opisu funkcji VMPC.

Nad jednym z bardziej "niewdzięcznych" etapów tego wyprowadzenia pracowałem prawie 2 tygodnie. Mianowicie w jednym tylko miejscu we wzorze jest użyty pewien wzór kombinatoryczny D'. Wzór ten musiałem wyprowadzić sam, bo nie znalazłem go nigdzie w literaturze. Aby jednak go wyprowadzić, musiałem najpierw wyprowadzić pewien inny wzór, Dx(N). Aby wyprowadzić ten wzór, musiałem wymyślić pewną tablicę liczb, określoną pewnym wzorem. Potem, gdy już tę tablicę wymyśliłem i wyprowadziłem z niej odpowiednie wzory, okazało się, że tablicę tę wymyślił już ktoś przede mną! Nazywał się Leonhard Euler! Tablicą tą jest "Euler's difference table". Swoją drogą - ekscytujące przeżycie - wymyślić coś całkiem samemu, a potem dowiedzieć się, że dokładnie to samo wymyślił już wcześniej jeden z najwspanialszych matematyków świata.

Oczywiście świadczy to tylko o mojej niewiedzy - w przeciwnym razie nie musiałbym tej tablicy wymyślać sam, tylko po prostu wiedziałbym, że Euler już ją dawno temu wymyślił.

Teraz muszę chwilowo odpocząć, może kilka dni, a zaraz potem zabieram się za szlifowanie kolejnych elementów pracy. Na razie pracę udało się skrócić do 57 stron (z pierwotnych 63). Im mniej, tym lepiej. Choć wiem, że jeszcze kilka rzeczy muszę dopisać, więc objętość może jeszcze o parę stron wzrosnąć.



27.10.2016. A tu przykład z ostatniej chwili, jaką "siłę" upraszczania ma język opisu funkcji VMPC. Wiele zjawisk, których formalny zapis wymagał gimnastyki bez użycia języka (dotyczy to tej części pracy, która powstała przed jesienią 2015), teraz udaje zapisać w sposób elementarnie prosty przy użyciu tegoż właśnie języka.



26.10.2016. Pierwsze efekty porządkowania pracy już za mną! Zacząłem od najstarszej części pracy - ona powstała przed zdefiniowaniem języka opisu funkcji - 4-stronicowego zestawu zmiennych i zbiorów, pozwalającego opisać każdą sytuację, jaka może wystąpić podczas odwracania funkcji. Teraz wplatam tę pierwszą część pracy w język opisu funkcji, aby cała praca była spójna. Przy tej okazji uporządkowałem wyprowadzenie niektórych wzorów. Dla przykładu wyprowadzenie dwóch wzorów, które w pierwotnej wersji pracy zajmowało 3 strony, teraz mieści się na jednej stronie, a jednocześnie jest jeszcze jaśniejsze. Do tego doszły prace "kosmetyczne" - ujednolicone zostały symbole w całej pracy. Na razie wrażenia mam bardzo pozytywne. Planuję skończyć szlifowanie pracy do końca roku 2016.



11.09.2016. Duża część odpoczynku za mną. Nie udało mi się wyjechać nigdzie, ale odpoczynek to głównie stan umysłu. Lokalne wycieczki, relaks i jakoś udało się poczuć napływ świeżej energii do pracy. Oficjalnie powrót to pracy zaplanowałem równo z ropoczęciem roku akademickiego, a więc na 1 października.



12.07.2016. KONIEC!!! 12 lipca o godzinie 01:30 nad ranem zakończyłem pisanie pracy! Zajęło mi to półtora roku. Zapis całego rozumowania - od definicji funkcji jednokierunkowej do wniosku, że funkcja VMPC jest taką właśnie funkcją - zajęło 63 strony A4 czcionką 12 pkt. z marginesami 2,5 cm.

Czuję ogromną ulgę i satysfakcję. Cały procs pisania przebiegł bez merytorycznych komplikacji. Najwięcej energii pochłonęło to, co dla matematyki charakterystyczne - formalna precyzja. Wymyślenie formalnych sposobów na zapisanie niektórych zjawisk okazało się dużym wyzwaniem. Nad zapisaniem niektórych pracowałem po kilka tygodni.

Sam "język" opisu funkcji to 4 strony definicji zbiorów i zmiennych. Na szczęście po jego zaprojektowaniu na przełomie 2015 i 2016 roku sprawdził się on aż do samego końca pracy i wymagał tylko drobnych ewolucyjnych modyfikacji.

Chciałbym ogromnie podziękować wszystkim osobom dobrej woli, które wsparły mój projekt! To dzięki takiej postawie Was - odważnej, z wiarą w potencjał - możliwe było doprowadzenie tej pracy do końca!

Co dalej. Teraz jestem mocno przemęczony. Mam zamiar odpocząć. Na wymyślny wyjazd wakacyjny, na który może zasłużyłem wg własnego sumienia po półtora roku intensywnej pracy twórczej, niestety mnie nie stać, ale i bez tego odpoczynek spełni swoją rolę - regeneracji umysłu i zebrania sił!

Po okresie odpoczynku, który będzie trwał zależnie od subiektywnie odczuwanych potrzeb od kilku tygodni do 2 miesięcy, nastąpi powrót do pracy. Przede mną bowiem jest jeszcze etap szlifowania pracy. Polegał on będzie na wielokrotnym czytaniu całości i wprowadzaniu udoskonaleń językowych, związanych z układem treści i być może kilku usprawnień zapisu rozumowania. Etap szlifowania może potrwać kilka miesięcy.

Po etapie szlifowania nastąpi publikacja. Wstępnie planuję, że praca powinna być gotowa do publikacji jesienią-zimą 2016.



03.07.2016. Praca jest prawie skończona! Pozostał jeden drobny element, który powinno mi się udać skończyć w ciągu najbliższych dni. Element ten jest formalnie gotowy, ale nie jestem z niego zadowolony, bo opisałem go wg mnie w zbyt skomplikowany sposób i chcę znaleźć prostszy.

Praca obecnie ma 61 stron. Po zakończeniu upraszczania tego elementu ogłoszę oficjalne zakończenie pisania pracy!

Potem przede mną będzie jeszcze sporo dopracowywania szczegółów przed publikacją. To będzie jednak już dużo przyjemniejsza praca, można powiedzieć deserowa, choć może zająć kilka miesięcy, zanim praca będzie całkiem gotowa do publikacji.

Mam nadzieję, że po zakończeniu pisania, a przed rozpoczęciem dopracowywania, uda mi się wreszcie trochę odpocząć.



19.05.2016. Niespodzianka, tym razem optymistyczna. Od ostatniego wpisu (10 dni temu) prace układają się wyjątkowo gładko i postępują szybciej niż zwykle. Już teraz widzę, że pewne jest (pewne, a ściślej - prawdopodobne na subiektywnie oszacowane 98%), że uda się dotrzymać terminu zakończenia prac do końca czerwca 2016! To dla mnie ekscytujące uczucie po 17 latach pracy nad funkcją VMPC. Opłaciła się strategia starannego przygotowania gruntu pod wyprowadzenie ostatecznych wzorów - wyprowadzanie ich obecnie idzie bardzo sprawnie i spodziewam się, że to się utrzyma do samego końca! Na deser.



09.05.2016. Wygląda na to, że przede mną ostatnia prosta. W marcu i kwietniu udowodniłem wszystkie poboczne własności, tak, aby ostatni etap poszedł możliwie najgładziej. Ten ostatni etap to wyprowadzenie ostatecznych wzorów na prawdopodobieństwo odwrócenia funkcji. Wzory są już naszkicowane, więc teoretycznie wystarczy tylko uporządkować i zapisać na czysto ich wyprowadzenie. W praktyce, jak zawsze, zajmie to więcej czasu niż się pierwotnie wydaje, ale mam nadzieję, że do końca maja uda mi się z tym uporać, że do końca czerwca praca będzie już po pierwszym etapie szlifowania i tym samym zasłużę wreszcie na wakacyjny odpoczynek. O publikację pracy będę zabiegał po wakacjach.



26.02.2016. Początek roku 2016 zaowocował dwoma cennymi obserwacjami oraz dalszymi postępami w porządkowaniu dowodu. Udało mi się wyprowadzić uniwersalny wzór opisujący każdą sytuację, jaka może wystąpić podczas odwracania funkcji VMPC:



Nie jest to wprawdzie nic rewolucyjnego, gdyż dalsza część dowodu będzie wciąż taka sama, jak pierwotnie założyłem, ale teraz będzie ona jeszcze bardziej klarowna, gdyż będzie wyprowadzona właśnie z tego uniwersalnego wzoru. Wzór ten udało się wyprowadzić dzięki zastosowaniu opracowanego pod koniec 2015 rok języka (zestawu zbiorów i zmiennych) służącego do opisu funkcji VMPC. W obecnej wersji (dopracowywanie języka trwa ciągle, a ostatnie udoskonalenie wprowadzałem wczoraj, być może to już ostatnie!) same definicje pojęć tego języka zajmują 4 strony czystopisu. Jednakże pozwalają niesamowicie dokładnie opisywać funkcję VMPC! I powyższy wzór - obiektywnie wcale nieskomplikowany, jest właśnie efektem tego, że język udało się tak ładnie ułożyć, aby dało się z niego wyprowadzić prosto wyglądające wzory, ale niosące ze sobą dużą ilość treści. I z tego efektu jestem niezmiernie zadowolony.

Co więcej, dzięki zapisaniu powyższego wzoru - udało mi się bardzo jasno zilustrować istotę funkcji VMPC. Nie jest to formalnie część dowodu na jednokierunkowość funkcji, jednakże jest bardzo silnym argumentem wstępnym, pozwalającym intuicyjnie zrozumieć, czym tak naprawdę jest funkcja VMPC i dlaczego nie może się jej dać odwrócić. Formalny dowód jest przeprowadzony całkowicie niezależnie od tej obserwacji, jednakże obserwacja jest na tyle ciekawa, że zostanie zawarta w pracy jako element wstępny. Mianowicie, korzystając z powyższego wzoru, udało mi się pokazać, że funkcja VMPC - mimo że jest przekształceniem jednej N-elementowej permutacji, działa tak, jakby stanowiła zbiór trzech losowych permutacji o N-1 elementach. Innymi słowy - kosztem jedynie odjęcia jednego elementu permutacji (zamiast N mamy N-1 elementów, co nie jest żadnym zauważalnym kosztem) zyskujemy taki efekt, jaki mielibyśmy generując dwie dodatkowe losowe permutacje. A to w oczywisty sposób utrudnia odwracanie funkcji, gdyż w losowości, z definicji, nie ma regularności, a więc i nie da się znaleźć algorytmu wykorzystującego te regularności w celu odwrócenia funkcji.

Tyle nowych pomysłów. Obecnie, od około 2 tygodni, intensywnie porządkuję powyższe nowe optymistyczne myśli i wplatam je w dotychczasowe rozumowanie, jednocześnie udoskonalając język opisu funkcji tak, aby wynikające ostatecznie wzory były jak najprostsze.

Póki co najnowszym wynikiem tego porządkowania jest zawyżające przybliżenie powyższego wzoru, które także zostanie użyte w dowodzie, choć jako element dodatkowy. Przybliżenie poniższe, choć wygląda na bardziej skomplikowane niż sam wzór, który ono ma przybliżać, to jednak istotą tego przybliżenia jest to, że pozbywa się ono zmiennych K oraz H, aby możliwe było stosowanie wzoru także bez znajomości wartości zmiennych K i H:



Przede mną dalsze porządkowanie rozumowania i podążanie w kierunku ostatecznego wzoru na prawdopodobieństwo odwrócenia funkcji VMPC. To ostateczne prawdopodobieństwo będzie musiał pokonać każdy algorytm odwracania funkcji. Tylko algorytm hipotetycznie doskonały mógłby się do tego prawdopodobieństwa zbliżyć, choć w praktyce każdy możliwy do wymyślenia algorytm odwracania funkcji będzie odwracał funkcję z prawdopodobieństwem miliardy miliardów razy mniejszym. Widok tego wzoru na horyzoncie to sygnał zbliżania się pracy do końca!

W obecnym planie przewiduję zakończenie pracy do końca czerwca 2016.

Generalnie - wszystko w pracy idzie merytorycznie bardzo dobrze i bez żadnych komplikacji. W przyszłość patrzę optymistycznie!



01.12.2015. Jesienno-zimowa mobilizacja twórcza. Trwa od pewnego czasu, a teraz pora napisać kilka słów o jej efektach. W okresie letnim i wczesnojesiennym niestety prace znacznie zwolniły. Wciąż posuwały się prawidłowo do przodu, ale znacznie wolniej. Spowodowane to było zmianami w życiu osobistym oraz koniecznością własnoręcznego wyremontowania blacharki mojego starego samochodu (Toyota Corolla, rocznik 1990) - ilość dziur w nadwodziu przekroczyła punkt krytyczny, a nie stać mnie było na zlecenie remontu blacharzowi (kosztowałoby to około 5.000 zł) i dlatego wszystkie prace wykonałem własnoręcznie.

Sytuacja osobista i samochodowa jest już opanowana i całą energię poświęcam funkcji VMPC. Być może tak właśnie musiało być. W czasie, gdy prace latem zwolniły, umysł porządkował informacje. Było to chyba potrzebne, bowiem to, co obecnie przede mną, jest wyjątkowo trudne do opisania. Są to skomplikowane zjawiska, których samo opisanie językiem werbalnym byłoby złożone, a do opisania ich formalnym językiem matematycznym musiałem stworzyć własny "język" czy jak kto woli "toolbox" (zestaw narzędzi). Język ten to zestaw funkcji i zbiorów, zdefiniowanych w taki sposób, aby umożliwić eleganckie formalne przedstawienie zjawiska.

Prace nad stworzeniem tego "języka" właśnie zakończyłem. Centralnym jego elementem jest funkcja "T". Towarzyszy jej kilka tożsamości oraz odpowiednio zdefiniowanych zbiorów. Poniżej drobny wycinek:

"Język" ten będzie używany do samego końca pracy. Przy jego bezpośredniej pomocy opisane zostaną kluczowe fakty decydujące o jednokierunkowości funkcji VMPC. Obecnie przede mną jest wyprowadzenie złożonych wzorów na prawdopodobieństwa. Przy ich wyprowadzaniu posługiwał się będę powstałym "językiem". Wzory te są dalszym rozwinięciem wzoru wyprowadzonego wiosną.

Dobra wiadomość jest taka, że wzory te stanowią "ostatnią prostą" na drodze do pierwszej fazy zakończenia pracy. Kolejne fazy zakończenia pracy będą obejmowały dopracowanie jej w szczegółach i dodanie kilku teoretycznych elementów, ale to będzie już etap "deserowy" i nie powinien przysporzyć kłopotów, a jedynie zająć trochę czasu.

Moim celem jest, aby osiągnąć wspomnianą pierwszą fazę zakończenia pracy do końca roku 2015. Następnie kilka miesięcy zapewne zajmie etap dopracowywania szczegółów.

Pierwszy wzór tego finałowego etapu pracy już jest. Jest to właśnie ten wzór, którego ostateczna postać wpadła mi do głowy latem na huśtawce ogrodowej. Dopiero teraz jednak można go odnieść do funkcji w elegancki formalny sposób - korzystając właśnie z opracowanego "języka".

Przede mną zapisanie na czysto w pracy wyprowadzenia tego wzoru, a następnie przejście do dalszych wzorów.

Generalnie - wszystko w pracy idzie merytorycznie bardzo dobrze i bez żadnych komplikacji. W przyszłość patrzę optymistycznie!



15.09.2015. Prace idą skutecznie do przodu. Przede mną kluczowe elementy, na opisanie których zbieram siły. Jesienią prace powinny przyspieszyć i w optymistycznej wizji powinny jednym ciągiem dotrzeć do finału z końcem roku 2015. Upały nie sprzyjają naukowej zadumie, ale za to doskonale pozwalają skumulować siły na jesienno-zimową intensywną pracę.



15.08.2015. Upalna pogoda nie sprzyja pracy. Wszystko idzie dobrze, tylko w ostatnim czasie powoli. Choć fakt, przyszły w ostatnim czasie dwa ważne "olśnienia". Ostatnie trafiło mnie jak huśtałem się na... huśtawce ogrodowej u rodziców. Nie była to nawet żadna ogólna wizja, tylko czysty konkret - wzór na pewne prawdopodobieństwo, którego od pewnego czasu szukałem. Po weryfikacji wzór okazał się prawidłowy. Wzór ten jest bardzo ważny, ponieważ ukierunkowuje dalsze prace niemal do samego końca. Czuję, że obecny etap wakacyjnego spowolnienia mój mózg wykorzystuje na porządkowanie, obranie kierunku i skumulowanie siły do intensywnej pracy w jesieni i zimą.



25.06.2015. Jestem obecnie w chyba najmniej wdzięcznym etapie pracy. Postępy idą teraz powoli mimo że mógłbym je "na siłę" przyspieszyć. Nie chcę popaść w pułapkę czasową i nie uroić sobie żadnej presji czasowej. Jedynym priorytetem jest jakość pracy. Obecny etap jest najważniejszy w całej pracy. Uzyskuję w nim niewielomianowy wzór na prawdopodobieństwo odwrócenia funkcji niezależnie od zastosowanego algorytmu. Z wzoru tego wynika jednokierunkowość funkcji VMPC. Jest to centralna część całego dowodu. Mimo że wzór jest już gotowy (czyli w bardzo uproszczonym sensie praca osiągnęła pierwszą fazę ukończenia), to z racji wagi tego etapu, prowadzę ze sobą swoistą grę. Próbuję sam atakować ten wzór ze wszelkich stron. I jednocześnie go bronić. Tak, aby od razu zawrzeć w pracy odpowiedzi na możliwie największą ilość pytań, jakie czytelnik może mieć. To, owszem, spowalnia proces pisania, ale po publikacji powinno znacznie przyspieszyć proces weryfikacji.

Nie znaczy to jednak, że praca zostanie za chwilę ukończona. Przede mną jeszcze trochę tej gry. Następnie - uporządkowanie i opisanie jej wyników.

Potem powinno być już z górki do samego końca - opis wielu dodatkowych faktów dotyczących funkcji, które uzupełniają obraz całości. A na samym końcu wielokrotne sprawdzenie i dopracowanie pracy w szczegółach. Także jest już wstępna wizja sięgająca samego końca. Zobaczymy na końcu, czy poszło tak, jak tu przewiduję :-) Ogólnie jestem z efektów pracy bardzo zadowolony i na razie znacznie wyprzedzam założony sobie w grudniu 2014 harmonogram.



10.05.2015. Analiza wzoru-kobyły wraz z opisem na czysto zajęły trochę czasu, ale ten etap już za mną! Wszedłem teraz w kolejny etap, w którym będę analizował zjawiska spokrewnione z tym wzorem, ale już będące o krok bliżej finałowego wniosku, iż funkcja VMPC jest jednokierunkowa. Etap ten zakończy się dodaniem kolejnego rozdziału. Praca na czysto ma na razie objętość 26 stron.



31.03.2015. Udało mi się zauważyć tożsamość, która pozwala w znacznym stopniu uprościć wyjściową postać wzoru. Dokładniej - cała suma ze zmienną E może zostać zastąpiona znacznie prostszym wyrażeniem:

Obserwacja ta zmniejsza subiektywnie postrzeganą komplikację wzoru o 30%. To dobra wiadomość, bo ten wzór będzie się przewijał do samego końca pracy, a im będzie prostszy, tym lepiej! Poprzedni wpis podający znacznie prostszą postać wzoru to w odróżnieniu od obecnego wyniku wzór przybliżony (też będzie potrzebny), a ten jest wzorem dokładnym.



18.03.2015. Są już pierwsze konkretne wyniki obróbki wzoru. Jest to dość żmudny etap pracy ze względu na "masywność" tego wzoru. Aby wydrukować go w jednej linijce, musiałem zmienić orientację papieru na poziomą :-) Ale wszystko zaczyna się dobrze układać i uzyskałem wynik, że wzór-kobyła może być przybliżony wzorem znacznie prostszym:

W specyficznych okolicznościach wzór główny przybiera postać wzoru uproszczonego, a w innych okolicznościach dąży do niego od góry, a od dołu dąży do tegoż uproszczonego wzoru dla N'=N-1.



11.03.2015. Obecnie zajmuję się obróbką poniższego wzoru. Nie jest to przyjemne, gdyż wzór jest wielką "kobyłą". Jest już jednak pierwszy bardzo optymistyczny wynik - wzór ten da się uprościć do bardzo eleganckiej postaci, dużo łatwiejszej w dalszej analizie. Więcej szczegółów wkrótce, gdy wszystko zostanie precyzyjnie doliczone.



19.02.2015. Dziś uporządkowałem zapis ogólny wzoru. Podczas edycji w Wordzie trzeba by było zmniejszyć czcionkę do rozmiaru 7, aby wzór zmieścił się w jednym wierszu... Jest to jeden z najważniejszych wzorów w całej pracy. Tak wygląda w normalnym rozmiarze czcionki, zapisany w trzech wierszach:

gdzie e oznacza liczbę Eulera; [] zaokrąglenie do najbliższej liczby całkowitej.
S(0,N)> oznacza N-ty element sekwencji liczb 1, 0, 1, 2, 9, 44, 265, 1854, 14833, 133496, 1334961,...
S(1,N) oznacza N-ty element sekwencji liczb -1, 1, 1, 3, 11, 53, 309, 2119, 16687, 148329, 1468457,...
S(2,N) oznacza N-ty element sekwencji liczb 0, 0, 2, 4, 14, 64, 362, 2428, 18806, 165016, 1616786,...
i tak dalej.



18.02.2015. Dziś duży sukces! Po 3 tygodniach pracy uzyskałem postać ogólną jednego z najważniejszych wzorów w całym dowodzie. Jest to uogólnienie dwóch poprzednich wzorów, o których pisałem. Wzór jest tak skomplikowany, że do samego podstawienia liczb musiałem napisać program komputerowy. Będę musiał podzielić wzór na części, aby go przejrzyście zawrzeć w pracy. Gdy to zrobię, wkleję go także tutaj. Olśnienie, które pozwoliło mi pokonać ostatnią przeszkodę przyszło mi do głowy o... 3:30 w nocy.



11.02.2015. Chwila kryzysu sił. Na szczęście nie kryzysu efektów. Po kolejnym tygodniu zmagań udało mi się dojść do kolejnego wzoru, będącego elementem być może najtrudniejszego przejścia w całym dowodzie. Postaram się ten wzór wkleić tu, ale na razie jest to trudne, bo przed uproszczeniem wzór jest zbudowany z 65 wartości. Tak jak twierdzenie Pitagorasa wiąże trzy wartości (a^2+b^2=c^2). Samo podstawienie liczb do wzoru (65 liczb) było wyzwaniem. Cudem chyba okazało się, że po podstawieniu danych wzór dawał prawidłowy wynik za pierwszym razem! Gdyby był błąd, byłoby to jak szukanie igły w stogu siana i mogłoby zająć kilka dni. Na szczęście jest dobrze. Kosztowało mnie to jednak chyba bardzo dużo wysiłku umysłowego i teraz czuję się wyprany z sił. To stan normalny i przejściowy. Do tej chwili prace idą szybciej i skuteczniej niż sądziłem.



03.02.2015. Kolejne kilka dni matematycznego odpływu. Uzyskałem kolejny wzór potrzebny do wykonania chyba najtrudniejszego przejścia w dowodzie (czy faktycznie okaże się najtrudniejsze, będę mógł powiedzieć po ukończeniu całej pracy). Wzór był "gotowy" dzień wcześniej, ale niestety zawierał błąd, którego nie umiałem łatwo wychwycić. Intuicja mówiła mi, gdzie błędu szukać. Ale zauważyłem nowy "obiecujący" trop, i porzuciłem intuicję podążając nim. Trop okazał się tak błędny, że aż prawidłowy... Czysto przypadkowo wzór naprawiony w ten sposób po przekształceniach algebraicznych dawał ten sam wynik, co wzór naprawiony we właściwy sposób (znaleziony po żmudnych poszukiwaniach i właśnie ten, który na początku poszukiwań podpowiadała mi intuicja...)

gdzie e oznacza liczbę Eulera; [] zaokrąglenie do najbliższej liczby całkowitej.
S0,N oznacza N-ty element sekwencji liczb 1, 2, 9, 44, 265, 1854, 14833, 133496, 1334961,...
S1,N oznacza N-ty element sekwencji liczb 1, 3, 11, 53, 309, 2119, 16687, 148329, 1468457,...
S2,N oznacza N-ty element sekwencji liczb 2, 4, 14, 64, 362, 2428, 18806, 165016, 1616786,...



28.01.2015. Definicje oraz opisanie kilku podstawowych prawdopodobieństw za mną. Wchodzę w etap bardziej zaawansowany. Przede mną jedno z najtrudniejszych przejść w dowodzie. Dziś pierwszy sukces - po kilku dniach pracy nad jednym wzorem udało mi się określić prawdopodobieństwo, które jest jednym z ważnych kroków niezbędnych do opisania tego przejścia. Wzór na prawdopodobieństwo wyrzucenia orła monetą to P=1/2. Ten, nad którym teraz się męczyłem, jest trochę bardziej złożony :-)

gdzie e oznacza liczbę Eulera, a [] zaokrąglenie do najbliższej liczby całkowitej.



16.01.2015.
Praca jest już w trakcie tworzenia. Zapisane są już formalne definicje. Obecnie jestem w trakcie opisywania językiem matematycznym najważniejszych własności funkcji VMPC, które pozwolą zbudować dowód. Mówiąc ogólnie - wchodzę w etap definiowania klocków, z których zostanie zbudowany efekt końcowy.



17.12.2014.
Roboczy tytuł pracy: "A Few Words On Why VMPC Function Is One-Way And Implies That P ≠ NP".










FSE 2004
Publikacja na konferencji Międzynarodowego Stowarzyszenia Badań Kryptologicznych (IACR) FSE 2004


Konferencje Enigma
Publikacje na Krajowej Konferencji Zastosowań Kryptografii Enigma w Warszawie


WCTT
Nagroda Wrocławskiego Centrum Transferu Technologii przy Politechnice Wrocławskiej


Software Developer's Journal
Rekomendowany projekt magazynu Software Developer's Journal


Copyright © 1999-2019 by Bartosz Żółtak
Aktualizacja: 08.11.2020