În teoria graficelor, produsul în zig-zag al graficelor obișnuite (notat ) ia un grafic mare și un grafic mic și creează un grafic aproximativ de dimensiunea graficului mare, dar puterea celui mic. O proprietate importantă a produsului în zig-zag este că, pentru un expandator bun , răspândirea graficului rezultat este doar puțin mai slabă decât răspândirea graficului .
În linii mari, produsul în zig-zag înlocuiește fiecare vârf al graficului cu o copie (nor) a graficului și conectează vârfurile făcând un pas mic (zig) în interiorul norului și apoi un pas mare (zag) între cei doi nori, și încă un pas mic în interiorul norului final.
Produsul zigzag a fost introdus de Reingold, Wadhan și Wigderson [1] . Produsul în zig-zag a fost folosit inițial pentru a construi în mod explicit expansoare și extractoare cu grad constant. Mai târziu, produsul zigzag a fost folosit în teoria complexității computaționale pentru a demonstra egalitatea dintre SL și L [2] .
Fie un grafic -regular peste c rotație , și fie -regular grafic peste c rotație mapare .
Un produs în zig -zag este definit ca un grafic -regular peste , a cărui rotație este definită după cum urmează :
Rezultă direct din definiția produsului în zig-zag că graficul este transformat într-un nou grafic -regular. Astfel, dacă este substanțial mai mare decât , produsul în zig-zag scade gradul de .
Aproximativ, produsul în zig-zag transformă fiecare vârf al graficului într-un nor de dimensiunea graficului și distribuie arcele fiecărui vârf original către vârfurile norului care l-a înlocuit.
Răspândirea unui grafic poate fi măsurată prin decalajul său spectral. O proprietate importantă a produsului în zig-zag este conservarea decalajului spectral . Astfel, dacă expanderul este „destul de bun” (are un decalaj spectral mare), atunci răspândirea produsului în zig-zag este aproape de răspândirea inițială a graficului .
Formal: definit ca orice graf cu vârf regulat a cărui a doua valoare proprie ca mărime are o valoare absolută de cel puțin .
Fie — și — două grafice, atunci este un grafic , unde .
Produsul zigzag funcționează separat pentru fiecare componentă conectată a graficului .
Formal: să fie date două grafice: — -graf regulat peste și — -graf obișnuit peste . Dacă este o componentă conexă a graficului , atunci , unde este un subgraf al graficului format din vârfuri (adică un grafic peste , care conține toate arcele dintre vârfuri din ).
În 2002, Omer Reingold, Salil Wadhan și Avi Widgerson [3] au arătat o construcție combinatorie explicită simplă a expansoarelor de grad constant. Construcția se face iterativ și necesită ca bază un expander de grad constant. La fiecare iterație, produsul zigzag este folosit pentru a crea un alt grafic a cărui dimensiune crește, dar gradul și distribuția rămân aceleași. Prin repetarea procesului, pot fi create expandoare arbitrar mari.
În 2005, Ömer Reingold a introdus un algoritm pentru rezolvarea problemei st-connectivity , folosind un spațiu de memorie logaritmic. Problema este de a verifica dacă există o cale între două vârfuri date ale unui graf nedirecționat. Algoritmul se bazează în mare măsură pe produsul zigzag.
În linii mari, pentru a rezolva problema de conectivitate nedirecționată st într-un spațiu de memorie logaritmic, graficul original este transformat folosind o combinație de produs și un produs în zig-zag într-un grafic obișnuit de grad constant cu un diametru logaritmic. Produsul mărește răspândirea (prin creșterea diametrului) prin creșterea gradului, iar produsul în zigzag este folosit pentru a scădea gradul menținând în același timp răspândirea.