An open API service indexing awesome lists of open source software.

https://github.com/andreip/t1-ml


https://github.com/andreip/t1-ml

Last synced: 5 months ago
JSON representation

Awesome Lists containing this project

README

          

# Petre Andrei, 342 C3

Idei reprezentari stari
=======================

L - #linii
C - #coloane

Am inclus si simetria ca potential de utilizare insa n-am folosit-o fiindca era
mai dificil de programat.

Folodind idei din [1], am decis sa aleg urmatoarele strategii (calcule facute
pentru o tabla generica de L x C):
- folosind Skyline, voi retine doar o lista de diferente intre coloane adiacente
e.g. fie hi, hj doua coloane adiacente, atunci D = |hi - hj|
- folosind Resolution, voi considera ca de la un prag in colo ales, Prag, nu mai
conteaza diferenta D din Skyline, astfel ea devine
D = min(Prag, |hi - hj|), unde Prag e hardcodat la o valoare, e.g. Prag = 7.
- folosind Simetria starilor voi putea reduce numarul de stari retinute la
jumatate (foarte importanta!).

Stari tabla, general
====================

* numarul maxim de stari ar fi 2^(L*C), fiindca fiecare celula poate fi ocupata
sau goala.
* folosind Skyline, retinem doar D = |hi - hj|, deci vom avea maxim
L^(C-1) stari, rationand ca pentru doua hi,hj coloane adiacente avem maxim L
valori
* folosind Prag, reducem la cel mult 7^(C-1) stari, pentru ca L nu poate depasii
acel Prag (nu consideram utila informatia dincolo de un prag).
* folosind Simetria, rezulta 7^(C-1) / 2 stari pe tabla.

Concret, numar stari, inclusiv piese
====================================

Pentru ca in implementare folosesc numai prima tehnica (Skyline),
pentru maxim LxC = 10x6, avem un numar de stari 10^5 ~ 2^16-2^17 maxim stari.

Avem 7 piese (A-G):
=> o piesa are 2^2 miscari stanga (medie) x 2^2 rotiri = 2^4 miscari
=> maxim 2^3 piese x 2^4 miscari fiecare = 2^7 stari piese

Total
-----

=> Maxim stari folosind ideile prezentate este:

2^7 stari piese * 2^17 stari tabla = 2^24 stari totale

, reprezentabil intr-un calculator modern fara prea mari batai de cap.

Grafic, plot octave
===================

Fisierele implicate sunt in directorul grafice/.

Am folosit myfun.m si urmatoarele comenzi:
>>> load score2
>>> length(score2)
ans = 100000
>>> plot(1:length(score2), score2, 'bx')
>>> hold on
>>> avgs_line = myfun(score2);
>>> length(avgs_line)
ans = 1000
>>> plot(linspace(1,length(score2),length(avgs_line)), avgs_line, 'r-')

Am reusit sa rulez pentru 100k date doar pentru dist2 si am adaugat un grafic
in directorul grafice/.

Voi mai adauga un fisier score3 cu 100k date sau mai mult la adresa[2], cu
aceeasi arhiva trimisa acum, aceiasi parametri alpha,gamma,delta.

[1]: http://www.cs.huji.ac.il/~lirchi/AIP/Tetris3.pdf
[2]: http://swarm.cs.pub.ro/~anpetre/.ml-t1/