abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 07:33 | Komunita

    O víkendu probíhá konference OpenAlt 2025 (Stream). Na programu je spousta zajímavých přednášek. Pokud jste v Brně, stavte se. Vstup zdarma.

    Ladislav Hagara | Komentářů: 0
    včera 00:55 | IT novinky

    Josef Průša představil novou velkoformátovou uzavřenou CoreXY 3D tiskárnu Prusa CORE One L a nový open source standard chytrých cívek OpenPrintTag i s novou přepracovanou špulkou.

    Ladislav Hagara | Komentářů: 7
    31.10. 18:33 | IT novinky

    Na GOG.com běží Autumn Sale. Při té příležitosti je zdarma hororová počítačová hra STASIS (ProtonDB: Platinum).

    Ladislav Hagara | Komentářů: 0
    31.10. 13:22 | Komunita

    Ubuntu 25.10 má nově balíčky sestavené také pro úroveň mikroarchitektury x86-64-v3 (amd64v3).

    Ladislav Hagara | Komentářů: 8
    31.10. 01:22 | Nová verze

    Byla vydána verze 1.91.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    31.10. 00:11 | IT novinky

    Ministerstvo průmyslu a obchodu vyhlásilo druhou veřejnou soutěž v programu TWIST, který podporuje výzkum, vývoj a využití umělé inteligence v podnikání. Firmy mohou získat až 30 milionů korun na jeden projekt zaměřený na nové produkty či inovaci podnikových procesů. Návrhy projektů lze podávat od 31. října do 17. prosince 2025. Celková alokace výzvy činí 800 milionů korun.

    Ladislav Hagara | Komentářů: 5
    30.10. 23:44 | Komunita

    Google v srpnu oznámil, že na „certifikovaných“ zařízeních s Androidem omezí instalaci aplikací (včetně „sideloadingu“) tak, že bude vyžadovat, aby aplikace byly podepsány centrálně registrovanými vývojáři s ověřenou identitou. Iniciativa Keep Android Open se to snaží zvrátit. Podepsat lze otevřený dopis adresovaný Googlu nebo petici na Change.org.

    Ladislav Hagara | Komentářů: 0
    30.10. 15:22 | Nová verze

    Byla vydána nová verze 18 integrovaného vývojového prostředí (IDE) Qt Creator. S podporou Development Containers. Podrobný přehled novinek v changelogu.

    Ladislav Hagara | Komentářů: 2
    30.10. 12:55 | Nová verze

    Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 2.0. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).

    Ladislav Hagara | Komentářů: 1
    30.10. 02:55 | Nová verze

    Google Chrome 142 byl prohlášen za stabilní. Nejnovější stabilní verze 142.0.7444.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 20 bezpečnostních chyb. Za nejvážnější z nich bylo vyplaceno 50 000 dolarů. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (48%)
     (19%)
     (19%)
     (23%)
     (16%)
     (20%)
     (16%)
     (17%)
    Celkem 297 hlasů
     Komentářů: 15, poslední dnes 08:25
    Rozcestník

    Dotaz: hledani optimalni kombinace slozeni

    Gilhad avatar 15.11.2012 23:40 Gilhad | skóre: 20 | blog: gilhadoviny
    hledani optimalni kombinace slozeni
    Přečteno: 242×
    Mam velke mnozstvi smesi, ktere se skladaji z maleho mnozstvi prvku. Mam zadanou vyslednou smes, kterou potrebuju vyrobit (kdyz ne presne, tak aspon neco podobneho). Potrebuju najit, kolik kterych smesi mam smichat, abych dostal pozadovany vysledek. (aspon jedno z moznych reseni).

    data vypadaji asi takto:
    SMESI.txt:
    # p1, p2, p3, p4, p5, p6 # (sloupecky obsahuji mnozstvi prvku v dane smesi, radky jsou jednotlive receptury)
      1   2   10   5   6   7 # smes cislo jedna 1xp1 + 2xp2 + 10xp3 .... + 7xp6
      4   7    3   1   8   12 # smes cislo dva 4xp1 + 7xp2 + 3xp3 .... + 12xp6
    ...........
      11  2    8   1  96   18 # smes cislo dveste 11xp1 + 2xp2 + 8xp3 .... + 18xp6
    
    
    POZADAVEK.txt
      230 300 127 55  200  700 # chci smes obsahujici priblizne 230xp1 + 300xp2 + 127xp3 ... + 700xp6
    
    ==============
    VYSLEDEK.txt
    5
    0
    3
    12
    .
    .
    35
    # vezmi napriklad 5 dilu smesi 1+ 0 dilu smesi 2 + 3 dily smesi 3 + ... + 35 dilu smesi 200
    # a dostanes neco velmi blizkeho pozadavku
    

    Je to nejake carovani s maticemi, ale ted mu nemuzu prijit na jmeno. Problem je samozrejme v tom, ze
    • prvku je malo, smesi hodne, dost podobnych, moznych kombinaci muze vyjit hodne - nas zajima najit aspon jednu kombinaci (kteroukoli)
    • samozrejme nesmi vyjit zaporne mnozstvi u zadne smesi
    • naopak muze vyjit vysledek jako realna cisla, tedy nevadi nam 12.5 dilu smesi osm a 0.12345 dilu smesi devet
    • nemusi byt mozne exaktni reseni (pozadavak nelze namichat presne), pak nas zajima aspon reseni priblizne (co nejlepsi aproximace, napriklad metoudou nejmensich ctvercu, nebo tak neco)
    • samozrejme nektere smesi muzou mit podobne ci stejne slozeni, (linearne zavisle radky), pak je celkem jedno, jak se to z nich namicha (2 dily mirne slane vody, nebo 1 dil hodne slane vody napriklad)
    Doufam, ze jsem problem popsal dost dukladne a nekdo bude vedet, jaka metoda se na to pouziva (idealne kdyby to byla nejaka funkce v pythonu, ale kdyz ne, tak v nejakem snadno dostupnem jazyku, nebo pochopitelny matematicky popis - nacteni a vypis hodnot se uz vzdycky nejak zvladne)

    Řešení dotazu:


    Odpovědi

    Jendа avatar 16.11.2012 00:23 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: hledani optimalni kombinace slozeni
    Nepřipomíná to trochu problém batohu?
    16.11.2012 18:58 sss
    Rozbalit Rozbalit vše Re: hledani optimalni kombinace slozeni
    Jo, presne ... cili resenim je klasicke prohledavani s navratem (backtracking).
    Josef Kufner avatar 16.11.2012 00:31 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: hledani optimalni kombinace slozeni
    Asi bych se vykašlal na superchytré matematické úvahy a šel na to genetickým programováním.

    Napsat nějaký jednoduchý evoluční algoritmus není nic těžkého. Fitness funkci (hodnocení kvality jedinců) máš jasnou. Bude potřeba vymyslet rozumnou reprezentaci jedinců, ale i něco naivního postačí. Pak postačí to doplnit o nějaké rozumné optimalizace jedinců, např. pokud vyjde součet moc veliký, tak aby ho to normalizovalo na požadované množství.

    Pak to spustíš, necháš to sežrat kopec paměti, zajdeš si na oběd a můžeš začít míchat koktejl.
    Hello world ! Segmentation fault (core dumped)
    Josef Kufner avatar 16.11.2012 00:49 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: hledani optimalni kombinace slozeni
    ... A jak tak nad tím přemýšlím, v podstatě hledáš sadu koeficientů m, které se hodí do součtu y = sum(m(i) * p(i)), kde m je reálné kladné číslo a p jsou polynomy reprezentující jednotlivé směsi (pole floatů m = jedinec).

    Trošku mi to ale smrdí lineární algebrou a bázemi lineárních prostorů, kdy pokud by jsi z dostupných směsí vybral skupinu, jejichž polynomy by byly lineárně nezávislé (to lze celkem snadno; projít všechny kombinace a ověřit si to), bude jednoduché je namíchat do správného poměru, tedy přenásobit maticí pro převod z prostoru reprezentovaného jednotkovou maticí (zadání po složkách) do prostoru tvořeného vybranými směsmi.
    Hello world ! Segmentation fault (core dumped)
    Řešení 1× (Gilhad (tazatel))
    16.11.2012 07:16 Kit
    Rozbalit Rozbalit vše Re: hledani optimalni kombinace slozeni
    Možná hledáš simplexovou metodu.
    16.11.2012 15:46 lertimir | skóre: 64 | blog: Par_slov
    Rozbalit Rozbalit vše Re: hledani optimalni kombinace slozeni
    No vždyt to je sada lineárních rovnic asi někde ze 6 třídy.

    Když označíme množství směsi jako neznámé veličiny A1, A2, ... A200. Tak pro prvky p1,p2... máme rovnice
    1*A1 + 4*A2 +...+ 11*A200 = 230
    2*A1 + 7*A2 +...+  2*A200 = 300
    .
    .
    .
    
    Vzhledem k tomu, že proměnných je více než rovnic tak všechna řešení budou vytvářet podprostor v tom 200 dimensionálním prostoru směsí. Stačí to pak oříznout pro nezáporný podprostory. Asi nejjednodušší řešení je nalézt prvních n nezávislých směsí, kde n je počet prvků ve směsích a to jednoduše vyřešit jako soustavu rovnic. Třeba tím simplexem.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.