-
Data: 2015-03-31 12:20:24
Temat: Re: poprawność algorytmu
Od: g...@g...com szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu sobota, 28 marca 2015 10:54:16 UTC+1 użytkownik M.M. napisał:
> > >
> > > Mój (hipotetyczny) klient zamawia najlepszy program do gry w
> > > szachy o łącznym rozmiarze kodu i danych nie większym niż 1MB. Napisałem
> > > taki program. Jak mam przeprowadzić dowód, że nie istnieje w
> > > ramach tego rozmiaru lepszy program?
> >
> > To akurat nie jest problem metody dowodowej,
> Właśnie, tego nie da się udowodnić, a jest to też ważny aspekt
> programu. A w testach tak się robi, porównuje się kilka
> różnych algorytmów dla różnych danych.
To, że "nie istnieje w ramach określonego rozmiaru >>lepszy<< program"
jest "ważnym aspektem programu"? Dla kogo jest to ważne? Klienta
interesuje, żeby program działał zadowalająco dobrze, a nie to, żeby
"w ramach określonego rozmiaru programu nie istniał jakiś lepszy".
(W każdym razie ja nie spotkałem nigdy klienta o tak osobliwych
zainteresowaniach. Ale nawet gdybym spotkał, pewnie po prostu nie
uwierzyłbym własnym uszom)
Nie widzę też, w jaki sposób testy miałyby tu być pomocne.
> > tylko nieprecyzyjnej
> > specyfikacji. Co to znaczy,że "w ramach określonego rozmiaru program
> > jest lepszy od innego programu"?
> Zakładamy że specyfikacja jest dobra. To jest kwestia jakości
> użytych algorytmów/heurystyk.
To, co piszesz, nic nie wyjaśnia.
Powiedzenie, że coś jest najlepsze, jest po prostu powiedzeniem
nieprecyzyjnym. Co to znaczy "najlepsze"? Że przynosi najwięcej
pieniędzy? Że ma najwięcej użytkowników? Że najbardziej podoba
się klientowi?
Jeżeli podajesz jawnie złą specyfikację, to potem nie możesz mówić
"zakładamy, że specyfikacja jest dobra", bo nie jest.
> > Zresztą cechy użytkowe nie są czymś, co dowodzi się formalnie
> > (bo są subiektywne). Formalnie chcemy dowodzić raczej pewnych
> > inwariantów -- że na przykład w programie wielowątkowym nie dojdzie
> > do sytuacji dead-locku (klasyczne zastosowane logik temporalnych),
> Nie słyszałem o logice temporalnej. Może się mylę, ale to się
> wydaje łatwe. Dla mnie taki dowód sprowadza się do tego, aby
> wszystkie pary kodu, który może wykonać się równolegle, były
> opatrzone semaforami w tej samej kolejności w sensie wykonania i
> w odwrotnej kolejności (też w sensie wykonania).
Mylisz się z pewnością, choćby dlatego, że semafor nie jest jedynym
mechanizmem synchronizującym używanym w programach wielowątkowych.
Następne wpisy z tego wątku
- 31.03.15 14:48 M.M.
- 31.03.15 16:39 g...@g...com
- 31.03.15 19:08 slawek
- 31.03.15 19:29 M.M.
- 31.03.15 19:43 M.M.
- 31.03.15 19:49 g...@g...com
- 31.03.15 19:59 slawek
- 31.03.15 20:10 slawek
- 31.03.15 20:34 g...@g...com
- 31.03.15 21:01 M.M.
- 31.03.15 23:04 slawek
- 31.03.15 23:25 g...@g...com
- 31.03.15 23:32 Andrzej Jarzabek
- 31.03.15 23:59 slawek
- 01.04.15 00:08 g...@g...com
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-22 Gdańsk => System Architect (Java background) <=
- 2025-01-22 Katowice => Senior Field Sales (system ERP) <=
- 2025-01-22 Warszawa => Java Developer <=
- 2025-01-22 pokolenie Z
- 2025-01-22 Wyświtlacz ramki cyfrowej
- 2025-01-22 Białystok => Architekt rozwiązań (doświadczenie w obszarze Java, A
- 2025-01-22 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2025-01-22 Ostrów Wielkopolski => Konsultant Wdrożeniowy Comarch XL/Optima (Ksi
- 2025-01-22 oferta na ubezpieczenie OC życie prywatne
- 2025-01-22 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-01-22 Warszawa => International Freight Forwarder <=
- 2025-01-22 Gdańsk => Specjalista ds. Sprzedaży <=
- 2025-01-21 Zgromadzenie użytkowników pojazdów :-)
- 2025-01-21 bateria na żądanie
- 2025-01-21 Warszawa => IT Business Analyst <=