MATRIX - nejlepší kombinace

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Odpovědět
butes
nováček
Příspěvky: 33
Registrován: 16 dub 2007 17:07

MATRIX - nejlepší kombinace

Příspěvek od butes »

Ahojte

potřeboval bych pomoc a zjistit, zda to vůbec lze.
Mám výrobky A, B, C. Přechod mezi výrobky zabere určitý čas (přestavba stroje, čištění apod.). Jednotlivé časy jsou v matrix matici. Potřeboval bych, zda existuje možnost nějakého kódu (vzorce), který by ukázal nejlepší kombinaci (nejlepší variantu - pořadí výrobků) aby čas byl co nejmenší.

Pokud jsou tři, čtyři výrobky, tak se to dá spočítat ručně, ale s vícero výrobky, je již kombinací mnoho a trvá to spoustu času.

Díky moc za radu, pomoc
Přílohy
kombinace.xlsx
(10.04 KiB) Staženo 64 x
Uziv00

Re: MATRIX - nejlepší kombinace

Příspěvek od Uziv00 »

Se divím, že se toho ještě nechytil faraon :-)
Každopádně je to zajímavý příklad...
Určitě by to šlo, jen je otázkou nejlepší řešení.
Pro tvůj příklad:
Z vrchní lajny naplním pole = (A,B,C)
Pomocí zpětné rotace pole vytvořím matici:

Kód: Vybrat vše

A B C
B C A
C A B
Z matice načtu jednotlivé kombinace (ve skutečnosti permutace), a to čtením řádek po řádku zleva doprava:
ABC, BCA, CAB a čtením řádek po řádku zprava doleva: CBA, ACB, BAC. Tak dostanu možné kombinace.
Dále z matrix tabulky dopočítám čas - tedy pro první případ najdu v tabulce řádek s A a uložím hodnotu průniku řádku A a sloupce B. Pak najdu řádek B a k uložené hodnotě přičtu hodnotu průniku řádku B a sloupce C. Výsledek uložím do buňky. Takhle projdu všechny kombinace. Pak už stačí seřadit buňky dle velikosti.
Jak to přeložit do VBA zatím nevím :-)
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7404
Registrován: 23 pro 2010 09:23

Re: MATRIX - nejlepší kombinace

Příspěvek od faraon »

Faraon měl včera odpolední a dneska ranní, takže teprve teď začíná existovat aspoň na volnoběh :lol:

Trochu podobnou úlohu jsme tu kdysi řešili, tam se skládaly sloupy z různě dlouhých částí. Celkem elegantně to šlo udělat rekurzí.

Tohle bude trochu tvrdší oříšek, protože při větším množství výrobků to vypadá spíš jako problém obchodního cestujícího. Pokud jich bude víc než pár desítek, tak by doba řešení mohla dosáhnout astronomických hodnot. Například už při dvaceti je potřeba vyzkoušet 2432902008176640000 možností, a to by ani NSA nezvládla dřív než přestane existovat tahle planeta...

Zkusil bych na to pro začátek jít "chytře", použít při každém přechodu mezi operacemi nejdřív ty s kratší prací, jestli se tak podaří dojít k uspokojivému výsledku. Podobně fungují některé šachové algoritmy, nehledají nejlepší řešení, ale jen uspokojivé, protože to je rychlejší a nestráví tím celé roky.

V tabulce vidím že přechod trvá stejnou dobu oběma směry, je to tak i ve skutečnosti? Možná by šlo kombinovat i jednotlivé operace, nejenom přestavbu celkově. Ale to už bych potřeboval reálné údaje.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
Uziv00

Re: MATRIX - nejlepší kombinace

Příspěvek od Uziv00 »

Mě je jasné, ža takové algoritmy existují, třeba směrovací protokoly počítají "cenu" cesty paketu, tím je zaručeno rychlejší doručení. Kdyby to měly dělat silou, jako je ten můj příklad, tak by bylo po internetu :-)
butes
nováček
Příspěvky: 33
Registrován: 16 dub 2007 17:07

Re: MATRIX - nejlepší kombinace

Příspěvek od butes »

maximální počet výrobků bude 10, tím bychom mohli mít maximálně 3 628 800 možností :). Při devíti je to jen 362 880. Pro jednoduchost přechod bude oběma směry stejný.
Uziv00

Re: MATRIX - nejlepší kombinace

Příspěvek od Uziv00 »

I tak je to nad možnosti excelu... To se bude muset řešit jinak.
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7404
Registrován: 23 pro 2010 09:23

Re: MATRIX - nejlepší kombinace

Příspěvek od faraon »

Tak deset kousků se ještě dá, to se dokonce vejde do operační paměti, takže by to šlo snadno propočítat i hloupým postupem, hrubou silou.

Excel má cca milion řádků, ne? Ten by dal těch devět.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
butes
nováček
Příspěvky: 33
Registrován: 16 dub 2007 17:07

Re: MATRIX - nejlepší kombinace

Příspěvek od butes »

jasně, a dalo by se to ještě eliminovat tím, že první kombinace by se našla ručně (nejnižší čas), tím by zbylo pouze 8. Vím, že to není správné, ale urychlilo by to celý proces. Jak by vypadal ten kod? Já na to nemůžu přijít
Díky
Uživatelský avatar
elninoslov
Level 2.5
Level 2.5
Příspěvky: 386
Registrován: 12 čer 2013 23:40

Re: MATRIX - nejlepší kombinace

Příspěvek od elninoslov »

@ ITCrowd: pokúsil som sa to urobiť Vašou metódou, no buď som Vás nepochopil, alebo robím niečo zle, alebo metóda nieje správna. Prípadne mrknite na rozpracované makro pod tlačítkom "v. ITCrowd" v module "modITC". Makro som teda zanechal, a urobil odlišné na tlačítko "v. ElninoSlov" v module "modELS", no nie som si istý výsledkom. 10 produktov cca 00:01:20. To nieje až také strašné. Skrátenie času som dosiahol najmä tým, že som obmedzil výsledok na 50 najlepších kombinácií. Kontrolujú sa všetky, no zaraďuje sa v kolekcii len 50. Dá sa nastaviť, ale čas bude stúpať.
Přílohy
kombinace.xlsm
(40.56 KiB) Staženo 66 x
butes
nováček
Příspěvky: 33
Registrován: 16 dub 2007 17:07

Re: MATRIX - nejlepší kombinace

Příspěvek od butes »

To vypadá hooodně dobře. Otestuji to na ostrých datech. Díky moc
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Excel 2016 - vzorec kombinace podmínek
    od MK_Vs » » v Kancelářské balíky
    5 Odpovědi
    5928 Zobrazení
    Poslední příspěvek od lubo.
  • Jaký program pro zpracování videa je nejlepší?
    od zuzana3 » » v Programy ke stažení
    7 Odpovědi
    8019 Zobrazení
    Poslední příspěvek od buchtik

Zpět na „Kancelářské balíky“