Ik denk dat de video te laat begint met lopen want de vraagstelling valt er af.
Ik vermoed dat ze de Subset sum vragen van 1 en 3. Ik ben verre van een wiskundige maar ik doe mijn best om wat er in de film staat te verduidelijken. Ze lossen hier en zogenaamd Subset Sum problem op, vaak gebruikt als voorbeeld in de wiskunde en computerwetenschappen.
Wat ze niet zeggen:
Ze starten met een rij
(matrix) genaamd
a met
2 elementen: Respectievelijk
1 en 3
dus:
a[2] = {3,1};;
Als je 2 cijfers in uw matrix hebt staan heb je uiteindelijk 2
2 mogelijkheden = 4. Je weet dus dat je 4 mogelijkheden hebt. De totale som = 0 + 1 + 3 = 4 dus 4 uitgangen. Daarom staat er in de video dat er 4 uitgangen zijn: ( Ofwel 0, ofwel 1, ofwel 3 ofwel 4)
De subsets zijn: (Subset is een onderdeel van de Set hiervoven. ( 0, 1 en 3 zijn subsets van de set a) Ze komen er immers allemaal in voor.
{}
{3}
{1}
{3,1}
(We merken op dat 2 er niet in voorkomt.)
De Som van de subsets is dan:
{} -> 0
{3} -> 3
{1} -> 1
{3,1} -> 4
Oplossing
Je kan het ook voluit schrijven dacht ik als: Som van subsets
A(sum)=
{0,3,1,4}} --> oplossing van de eiwitcomputer.
Dus in dit geval hebben deze moleculen de subset sum berekend van de matrix {3,1}, namelijk A(sum)= {0,3,1,4}
Parallele berekening via eiwitten
Je hebt 2 soorten 'Junctions' of kruispunten. 1 splitskruispunt en 1 passagekruispunt. Als het eiwit aan een splitkruispunt komt heeft het 50% kans of links (extra waarde toekenne) te gaan en 50% kans om rechts (waarde weglaten) te gaan. Het eiwit in kwestie mag tijdens zijn reis mag een getal toevoegen of weglaten aan de matrix, de waarde van dat getal = het aantal passagekruispunten die na het plitskruispunt komt.
Zover ik het begrijp zijn de moleculen gewoon lompe dingen die zelf geen data overdragen, ze zijn als knikkers in een doolhof die bij toeval ergens uitkomen. De wetenschappers gaan gewoon kijken op welke uitgangen ze uitkomen.
Logica in de opstelling
De passagekruispunten en splitskruispunten staan steeds in dezelfde logica opgebouwd. Als uw kleinste getal 1 is, zullen er splitskruispunten ontstaan op de gehele 1ste rij, als het getal 3 is zullen er splitskruispunten ontstaan op de gehele 3de rij waardoor er voor getal 3 bovenaan 2 splitskruispunten bijkomen. (zie filmpje) Steeds beginnende met het kleinste getal en zo naar onderen werken.
In het voorbeeld zie je dat het eiwit rechts gaat op de splitsing en het getal 1 weggelaten aan de matrix, de volgende splitsing wordt gevolgd door 3 passages = waarde 3. Omdat het eiwitmolecule naar links ging wordt de waarde 3 wel in de reeks gezet {3} -> S
tel je gaat 2x naar links, dan mag je die waarden (aantal keer een passagekruispunt tegengekomen) optellen.
Door zeer veel eiwitmoleculen in het doolhof tegelijk te laten reizen ( Op de foto zie je dat eiwitten blijkbaar ook niet kunnen botsen) heb je een vorm van parallel computing terwijl onze computers alles serieel uitvoeren.
De logica van de positie en aantal van de splitsingskruispunten, passagekruispunten en de 50% kans op de splitsen zorgt ervoor dat je de Subset sum kan berekenen met simpele eiwitten.
2de berekening
Stel we zouden 3 ipv 2 drie getallen zouden hebben: {2, 5, 9} dan zouden er 16 uitgangen. (0+ 2 + 5 +9 = 16)
De subset sum die de moleculen moeten vinden is dan:
{} -> 0
{2} -> 2
{5} -> 5
{9} -> 9
{5,2} -> 7 (Deze twee vormen een subset en mag je dus optellen)
{5,9} -> 14
{2,9} -> 11
{5,2,9} -> 16
De getallen 1, 3, 8, 10, 12,13,15 zijn weggevallen zodat de molecule 1 passagekruispunten heeft gepasseerd na het naar rechts ging op een splitsingskruispunt + 3 passagekruispunten heeft gepaseerd na het naar rechtsgaas op een splitsingskruispunt enz enz.
Bereking met een seriële supercomputer onmogelijk bij vele variabelen
Omdat de omvang van de subset expenentieel stijgt met de aantal elementen in de matrix heb je giga veel computerpower nodig om alle subsets te berekenen van een grotere matrix.
Stel je hebt veel meer cijfers in uw matrix dan heb hje 2
30 = 1 Miljard mogelijkheden. Als uw probleem nog groter word bijvoorbeeld: 128 variabelen dan heb je extreem veel mogelijkheden met amper 128 variabelen. 34028236893836563839063638263739373637393628390363849527393735382
Als je denk dat een supercomputer dit kan oplossen heb je het mis.
Stel uw computer is een ruwe vermogen van 10
51 Petaflops = 10
51 x 1015 Flops [Flops = Floating point operations per second]
Je hebt ongeveer
1000 (ik weet niet of het opgaat voor matrixes, maar je moet met een verschillende operaties uitvoeren om na te gaan of een uitkomst wel degelijk een onderdeel is van de subset.
Dan is de hoeveelheid variabelen die je kan testen per seconde = (10
15 x 1015) / 1000 = 10.51 x 1012
Aantal seconden in een jaar= 365 x 24 x 60 x 60 = 31536000
Het duurt dus = (3.4 x 1038) / [(10.51 x 1012) x 31536000]
= (0.323 x 1026)/31536000
= 1.02 x 1018
= 1 miljard * miljard jaar, hoe schrijf je dit? ;-) Om dit op te lossen met een standaard supercomputer.
Berekening op de quantum wijze
Quantum is een ingewikkeld verhaal dat ik niet goed snap maar het komt er op neer dat het kwadraat wegvalt doordat een quantumdot in superpositie zowel 0 als 1 kan zijn. Hij kan dus
2 sneller rekenen waardoor de tijd om zoiets te berekenen pakweg 128
2 seconden nodig heeft. ipv Miljarden en miljarden jaren.
In dit geval demolecule het antwoord gevonden. Ik vermoed dat ze meerdere moleculen tegelijk loslaten =
Parallel computing:
Van de bron:
The current study showed the solution to a well-known combinatorial problem, ‘Subset Sum Problem’. Compared with a sequential computer, a parallel computer can take a drastically shorter time to test all the solutions for a problem. (In mathematical terms: N^2 compared with 2^N, where N represents the size of the problem).
Het verschil gigantisch:
128
2 = 16384
2
128 = 34028236893836563839063638263739373637393628390363849527393735382
Wat ik niet goed begrijp aan deze oplossing:
Aangezien de splitskruispunten en passagekruispunten speciaal gemaakt moeten worden per matrix lijk het er op dat de voor elke berekening een nieuw doolhof moeten maken wat het wel heel omslachtig maakt om het universeel te kunnen inzetten.
[Reactie gewijzigd door Coolstart op 22 juli 2024 15:16]