Forum www.zinfa.fora.pl Strona Główna
FAQ Szukaj Użytkownicy Grupy Profil Zaloguj się, by sprawdzić wiadomości
Forum www.zinfa.fora.pl Strona Główna  Zaloguj  Rejestracja
Gdala party V
Idź do strony 1, 2  Następny
 
Napisz nowy temat   Odpowiedz do tematu    Forum www.zinfa.fora.pl Strona Główna -> Rok IV / Terminy, wydarzenia IV
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
inatheith




Dołączył: 15 Maj 2011
Posty: 7
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Wschowa

PostWysłany: Pią 10:58, 03 Cze 2011    Temat postu: Gdala party V

Witam,

orientuje się ktoś, czy kolejne podejście jest 4 czy 5 czerwca?


Post został pochwalony 0 razy

Ostatnio zmieniony przez inatheith dnia Pią 11:01, 03 Cze 2011, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
Autor Wiadomość
emil_seba




Dołączył: 22 Lis 2007
Posty: 109
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Pią 15:54, 03 Cze 2011    Temat postu:

4, sobota Smile godzina tak jak ostatnio

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Autor Wiadomość
inatheith




Dołączył: 15 Maj 2011
Posty: 7
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Wschowa

PostWysłany: Pią 16:45, 03 Cze 2011    Temat postu:

Dzięki:)
Czyli po raz kolejny po 15 w sali A0-1 dostaniemy questa;]


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Autor Wiadomość
zbychup




Dołączył: 17 Paź 2010
Posty: 130
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Pią 20:58, 03 Cze 2011    Temat postu:

podobno w sobote nie ma szymanskiego i pilki wiec bedzie wczesniej gdala pewnie.

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Autor Wiadomość
zbychup




Dołączył: 17 Paź 2010
Posty: 130
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Sob 15:03, 04 Cze 2011    Temat postu:

co jest grane? czemu zle wyniki?

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Autor Wiadomość
zbychup




Dołączył: 17 Paź 2010
Posty: 130
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Sob 15:07, 04 Cze 2011    Temat postu:

mi wszlo w pierwszym 10,880327

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Autor Wiadomość
zbychup




Dołączył: 17 Paź 2010
Posty: 130
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Sob 15:14, 04 Cze 2011    Temat postu:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MinFun
{
class Program
{
public static double min(double x, double y, double z)
{
return Math.Abs(Math.Sqrt((x - 5) * (x - 5) + (y - 5) * (y - 5) + (z - 5) * (z - 5)) - 3)+ Math.Abs(z - Cool - 0.0625;

}

static void Main(string[] args)
{

double[] tab = new double[3];
double[] pkt = new double[3];


Random r = new Random();

for (int k = 0; k < 1; k++)
{
tab[0] = r.NextDouble();
tab[1] = r.NextDouble();
tab[2] = r.NextDouble();

double tmpMin = Program.min(tab[0], tab[1], tab[2]);
for (int i = 0; i < 1000000; i++)
{
double tmp = 0;
tab[0] = r.NextDouble();
tab[1] = r.NextDouble();
tab[2] = r.NextDouble();
tmp = Program.min(tab[0], tab[1], tab[2]);
if (tmpMin > tmp)
{
tmpMin = tmp;
pkt = tab;
}
}
System.Console.WriteLine("Min Fun:" + tmpMin + " pkt: {0} , {1}, {2}", tab[0], tab[1], tab[2]);
}
System.Console.ReadKey();

}
}
}


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Autor Wiadomość
zbychup




Dołączył: 17 Paź 2010
Posty: 130
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Sob 15:19, 04 Cze 2011    Temat postu:

wynik ma byc z dokladnoscia do 6 po przecinku moze dlatego? mi wychodzi :
Min Fun:10,8858920095567 pkt: 0,142318828097693 , 0,388144135190241, 0,61990099
100531


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Autor Wiadomość
zbychup




Dołączył: 17 Paź 2010
Posty: 130
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Sob 15:39, 04 Cze 2011    Temat postu:

mam tak:
Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MinFun
{
    class Program
    {
        public static double min(double x, double y, double z)
{
return Math.Abs(Math.Sqrt((x - 5) * (x - 5) + (y - 5) * (y - 5) + (z - 5) * (z - 5)) - 3)+ Math.Abs(z - 8) - 0.0625;

}

        static void Main(string[] args)
        {

            double[] tab = new double[3];
            double[] pkt = new double[3];


            Random r = new Random();

            for (int k = 0; k < 10; k++)
            {
                tab[0] = r.NextDouble();
                tab[1] = r.NextDouble();
                tab[2] = r.NextDouble();

                double tmpMin = Program.min(tab[0], tab[1], tab[2]);
                for (int i = 0; i < 1000000; i++)
                {
                    double tmp = 0;
                    tab[0] = r.NextDouble();
                    tab[1] = r.NextDouble();
                    tab[2] = r.NextDouble();
                    tmp = Program.min(tab[0], tab[1], tab[2]);
                    if (tmpMin > tmp)
                    {
                        tmpMin = tmp;
                        pkt = tab;
                    }
                }
                String.Format("{0:0.000000}", tmpMin);
                System.Console.WriteLine("Min Fun:" + String.Format("{0:0.000000}", tmpMin) + " pkt: {0} , {1}, {2}", String.Format("{0:0.000000}", tab[0]), String.Format("{0:0.000000}",tab[1]), String.Format("{0:0.000000}",tab[2]));
            }
            System.Console.ReadKey();

        }
    }
}


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Autor Wiadomość
zbychup




Dołączył: 17 Paź 2010
Posty: 130
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Sob 15:40, 04 Cze 2011    Temat postu:

wyniki dostaje takie:
Min Fun:10,885024 pkt: 0,221552 , 0,846913, 0,206256
Min Fun:10,882992 pkt: 0,763098 , 0,624452, 0,821182
Min Fun:10,877295 pkt: 0,741560 , 0,789277, 0,158707
Min Fun:10,876206 pkt: 0,104036 , 0,158995, 0,970485
Min Fun:10,879002 pkt: 0,023003 , 0,106188, 0,398090
Min Fun:10,881079 pkt: 0,380263 , 0,984567, 0,774546
Min Fun:10,886065 pkt: 0,624511 , 0,943701, 0,641397
Min Fun:10,876455 pkt: 0,149440 , 0,328886, 0,837766
Min Fun:10,874666 pkt: 0,353533 , 0,967931, 0,811852
Min Fun:10,880235 pkt: 0,083416 , 0,788106, 0,174173


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Autor Wiadomość
zbychup




Dołączył: 17 Paź 2010
Posty: 130
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Sob 15:40, 04 Cze 2011    Temat postu:

zonk

Post został pochwalony 0 razy

Ostatnio zmieniony przez zbychup dnia Pon 15:08, 06 Cze 2011, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
Autor Wiadomość
zbychup




Dołączył: 17 Paź 2010
Posty: 130
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Sob 15:43, 04 Cze 2011    Temat postu:

tresc zad: znalezc z dokl. 6 cyfr po przecinku min funkcji :/

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Autor Wiadomość
inatheith




Dołączył: 15 Maj 2011
Posty: 7
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Wschowa

PostWysłany: Sob 20:33, 04 Cze 2011    Temat postu:

sorki, że tak późno, zamieszałem się z przepisywaniem funkcji (wiecie 5, a 5.0 w javie to nie to samo;P itd. itp.) no i ledwo zdążyłem.

patrząc na powyżej zaproponowane rozwiązanie zapytuje;) się o jedno... gdzie masz wartości powyżej 1.0? fukcja działała z <0,10> ... minumum było w 5,5,8 (wówczas zerowały się wartości bezwzględne i zostawało tylko -1/16

ZAD.1.
W pierwszym zadaniu trudnością było trafić w to równo 5.0,5.0 i 8.0, same losowanie przy dokładności duble to jakieś miliardy operacji do potęgi 3 ( trzeba we wszystkich wspł. było trafić w punkt), więc tu jedynie pomagało poprawianie.
Ja żeby trafić z dokładności do 3 miejsc (czyli coś jak -0.062499999) musiałem poprawiać 20 tys. razy najlepszy wynik z losowania przy kroku ok. 0.0000002.
Wielkość kroku dobierałem patrząc na których miejscach mam zły wynik tzn. jeśli wychodziło mi 5.00011244143, to widziałem, że krok musi być dokładniejszy niż 0.0001 (np. 5 miejscu po przecinku)

ZAD.2. w sumie kod działał jak się szukało w przedziale 0.0 do 10.0 (wzorcowy alg. działał na przedziale 0.0 10.0) i tak naprawdę to był mój błąd, bo przez godzinę algorytm wypluwał mi, że nie ma miejsc zerowych (bo w <0.0,1.0> niebyło;P).

Mam nadzieję, że komuś się przydadzą powyższe uwagi.

Pozdrawiam:D


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Autor Wiadomość
zbychup




Dołączył: 17 Paź 2010
Posty: 130
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/5

PostWysłany: Sob 23:24, 04 Cze 2011    Temat postu:

inatheith napisał:


Mam nadzieję, że komuś się przydadzą powyższe uwagi.

Pozdrawiam:D


nie pierd... k...wa dawaj kod!!! Wink lol


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Autor Wiadomość
inatheith




Dołączył: 15 Maj 2011
Posty: 7
Przeczytał: 0 tematów

Ostrzeżeń: 0/5
Skąd: Wschowa

PostWysłany: Nie 0:57, 05 Cze 2011    Temat postu: zad.1.

kod jak kot;P ... w moim jest pełno śmieci, ale nie che mi się na niego już patrzeć więc wklejam jak leci.
zadanie pierwsze metodą monte carlo:
Kod:

package solver;

/**
 *
 * @author krzys
 */
public class Main {

    /**
     * @param args the command line arguments
     */

    //wynik to suma parametrow
    public static double black_box(int n, double[] tab){
        double odp=Math.abs(Math.sqrt(
                Math.pow((tab[1]-5.0),2)+Math.pow((tab[2]-5.0),2)+Math.pow((tab[3]-5.0),2)
                )-3.0)
                +Math.abs(tab[3]-8.0)-0.0625;
           
        return odp;
    }

    public static double[] fiat_monte_carlo(int n,int testy, double x1[]){
        double x[]= new double[10];
        double xM[]= new double[10];
//usyawiam jakieĹ› mini
        xM=x1.clone();

//szukamy punktu o najmniejej wartości funkcji blax_box
        for(int j=1;j<=testy;j++){
    //losujemy punkt
           
        for (int i=1;i<=n;i++){
            x[i] = Math.random()*10.0;
            //x[i]=5.0+Math.random()*3.0;
        }
    //sprawdzamy czy jest to minimum
        if ( black_box(n,x)<black_box(n,xM)) {
            xM=x.clone();
//System.out.print("mam mniejszy\n");
        }
        }
//obecnie mamy w tablicy xM najmniejsza wartosc   
        return xM;
    }

    public static double kroczek(double wartosc, double krok){
        double k;
        k=wartosc+krok;
        if ( (k) > 10.0 ){
            k = 10.0;
        }
        if ( (k) < 0.0){
            k = 0.0;
        }
        return k;
    }

    public static double[] popraw(double[] x, int n,double krok){
       
        double xM[]= new double[10];
        double tmp1[]= new double[10];
        double tmp2[]= new double[10];
        xM=x.clone();
//szukamy punktu o najmniejej wartości funkcji blax_box
        for(int j=1;j<=n;j++){
        //poruszamy siÄ™ po osiach
        tmp1=xM.clone();
        tmp2=xM.clone();
        tmp1[j]=kroczek(tmp1[j],krok);
        tmp2[j]=kroczek(tmp2[j],-krok);
        //sprawdzamy, ktĂłra wartość jest najmniejsza oryginalna(ew. poprawiona na innej osi)
        // lewa, czy prawa
        if ( black_box(n,tmp1)<black_box(n,xM)) {
            xM=tmp1.clone();
        }
        if ( black_box(n,tmp2)<black_box(n,xM)) {
            xM=tmp2.clone();
        }
        }
//obecnie mamy w tablicy xM najmniejsza wartosc   
        return xM;
    }

    public static void main(String[] args) {
//dane parametryzujace
        int wymiar = 3;
        int proby = 1000;
        double x[] = new double[4];
        int ilosc_poprawek = 20000;
        double epsilon = 0.0000002;


        for (int i=1;i<=wymiar;i++){
            x[i] = Math.random()*10.0;
        }

       // x[1]=5.0;
        //x[2]=5.0;
       // x[3]=8.0;


        for (int j=1;j<200;j++){
        x=fiat_monte_carlo(wymiar,proby,x.clone()).clone();
        for (int i=1;i<=ilosc_poprawek;i++){
            x=popraw(x.clone(),wymiar,epsilon).clone();
        }
        }
       
        String  odp;
        odp="Punkt minumum black_box:\nx =(\n";
        for (int j=1;j<=wymiar;j++){
            odp=odp+x[j]+"\n";
        }
        odp=odp+");\n";
        odp=odp+"f="+black_box(wymiar,x);
        System.out.print(odp);
    }
}


przy takich parametrach program zwraca wynik ok. -0.0624999...
jak okazało się, że to wystarczy, to nie bawiłem się dalej (kluczem była odpowiednia ilość poprawek o czym pisałem we wcześniejszym poscie).


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.zinfa.fora.pl Strona Główna -> Rok IV / Terminy, wydarzenia IV Wszystkie czasy w strefie CET (Europa)
Idź do strony 1, 2  Następny
Strona 1 z 2

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2002 phpBB Group
BBTech Template by © 2003-04 MDesign
Regulamin